diff options
Diffstat (limited to 'app/graphql/resolvers/noteable/notes_resolver.rb')
-rw-r--r-- | app/graphql/resolvers/noteable/notes_resolver.rb | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/app/graphql/resolvers/noteable/notes_resolver.rb b/app/graphql/resolvers/noteable/notes_resolver.rb index 0d25c747ffb..b4bd1068723 100644 --- a/app/graphql/resolvers/noteable/notes_resolver.rb +++ b/app/graphql/resolvers/noteable/notes_resolver.rb @@ -7,6 +7,11 @@ module Resolvers type Types::Notes::NoteType.connection_type, null: false + argument :filter, Types::WorkItems::NotesFilterTypeEnum, + required: false, + default_value: ::UserPreference::NOTES_FILTERS[:all_notes], + description: 'Type of notes collection: ALL_NOTES, ONLY_COMMENTS, ONLY_ACTIVITY.' + before_connection_authorization do |nodes, current_user| next if nodes.blank? @@ -16,8 +21,9 @@ module Resolvers ::Preloaders::Projects::NotesPreloader.new(project, current_user).call(nodes) end - def resolve_with_lookahead(*) - apply_lookahead(object.notes.fresh) + def resolve_with_lookahead(**args) + notes = NotesFinder.new(current_user, build_params(args)).execute + apply_lookahead(notes) end private @@ -31,6 +37,17 @@ module Resolvers award_emoji: [:award_emoji] } end + + def build_params(args) + params = { + project: object.project, + target: object + } + + params[:notes_filter] = args[:filter] if args[:filter].present? + + params + end end end end |