diff options
Diffstat (limited to 'app/graphql/resolvers/data_transfer_resolver.rb')
-rw-r--r-- | app/graphql/resolvers/data_transfer_resolver.rb | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/app/graphql/resolvers/data_transfer_resolver.rb b/app/graphql/resolvers/data_transfer_resolver.rb new file mode 100644 index 00000000000..1a240d2811f --- /dev/null +++ b/app/graphql/resolvers/data_transfer_resolver.rb @@ -0,0 +1,57 @@ +# frozen_string_literal: true + +module Resolvers + class DataTransferResolver < BaseResolver + argument :from, Types::DateType, + description: 'Retain egress data for 1 year. Current month will increase dynamically as egress occurs.', + required: false + argument :to, Types::DateType, + description: 'End date for the data.', + required: false + + type ::Types::DataTransfer::BaseType, null: false + + def self.source + raise NotImplementedError + end + + def self.project + Class.new(self) do + type Types::DataTransfer::ProjectDataTransferType, null: false + + def self.source + "Project" + end + end + end + + def self.group + Class.new(self) do + type Types::DataTransfer::GroupDataTransferType, null: false + + def self.source + "Group" + end + end + end + + def resolve(**_args) + return unless Feature.enabled?(:data_transfer_monitoring) + + start_date = Date.new(2023, 0o1, 0o1) + date_for_index = ->(i) { (start_date + i.months).strftime('%Y-%m-%d') } + + nodes = 0.upto(3).map do |i| + { + date: date_for_index.call(i), + repository_egress: 250_000, + artifacts_egress: 250_000, + packages_egress: 250_000, + registry_egress: 250_000 + } + end + + { egress_nodes: nodes } + end + end +end |