Sha256: 674bc24540b80f39ed202f68df1cea2b5369b96bd286549eeac3b6a091fd6ff5

Contents?: true

Size: 695 Bytes

Versions: 2

Compression:

Stored size: 695 Bytes

Contents

module Mutations
  module UserManager
    class AddUserRole < BaseMutation
      argument :target_user_id, String, required: true
      argument :user_roles, [String], required: true

      field :user, Types::UserType, null: true

      def resolve(**args)
        check_user_permissions(context[:user], context[:user], :update_user_role?)
        _, user_id = SoulsApiSchema.from_global_id(args[:target_user_id])
        target_user = ::User.find(user_id)
        target_user.roles << args[:user_roles].map(&:to_sym)
        return { user: target_user } if target_user.save

        raise
      rescue StandardError => e
        GraphQL::ExecutionError.new(e.to_s)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
souls-0.22.8 hoy/app/graphql/mutations/user_manager/add_user_role.rb
souls-0.22.7 hoy/app/graphql/mutations/user_manager/add_user_role.rb