27 lines
573 B
Ruby
27 lines
573 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
module Gitlab
|
||
|
module Graphql
|
||
|
module TodosProjectPermissionPreloader
|
||
|
class FieldExtension < ::GraphQL::Schema::FieldExtension
|
||
|
def after_resolve(value:, memo:, **rest)
|
||
|
todos = value.to_a
|
||
|
|
||
|
Preloaders::UserMaxAccessLevelInProjectsPreloader.new(
|
||
|
todos.map(&:project).compact,
|
||
|
current_user(rest)
|
||
|
).execute
|
||
|
|
||
|
value
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def current_user(options)
|
||
|
options.dig(:context, :current_user)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|