36 lines
996 B
Ruby
36 lines
996 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Resolvers
|
|
module Ml
|
|
class FindModelsResolver < Resolvers::BaseResolver
|
|
extension ::Gitlab::Graphql::Limit::FieldCallCount, limit: 1
|
|
|
|
type ::Types::Ml::ModelType.connection_type, null: true
|
|
|
|
argument :name, GraphQL::Types::String,
|
|
required: false,
|
|
description: 'Search for names that include the string.'
|
|
|
|
argument :order_by, ::Types::Ml::ModelsOrderByEnum,
|
|
required: false,
|
|
description: 'Ordering column. Default is created_at.'
|
|
|
|
argument :sort, ::Types::SortDirectionEnum,
|
|
required: false,
|
|
description: 'Ordering column. Default is desc.'
|
|
|
|
def resolve(**args)
|
|
return unless current_user.can?(:read_model_registry, object)
|
|
|
|
find_params = {
|
|
name: args[:name],
|
|
order_by: args[:order_by].to_s,
|
|
sort: args[:sort].to_s
|
|
}
|
|
|
|
::Projects::Ml::ModelFinder.new(object, find_params).execute
|
|
end
|
|
end
|
|
end
|
|
end
|