Sha256: afcde4b6fe10d89feb896c053bac5c7412e07500b57f98ba014e215868c15e6e

Contents?: true

Size: 1.02 KB

Versions: 6

Compression:

Stored size: 1.02 KB

Contents

# frozen_string_literal: true

module Osso
  module GraphQL
    module Mutations
      class InviteAdminUser < BaseMutation
        null false

        argument :email, String, required: true
        argument :oauth_client_id, ID, required: false
        argument :role, String, required: true

        field :admin_user, Types::AdminUser, null: true
        field :errors, [String], null: false

        def resolve(email:, role:, oauth_client_id: nil)
          admin_user = Osso::Models::Account.new(
            email: email,
            role: role,
            oauth_client_id: oauth_client_id,
          )

          if admin_user.save
            verify_user(email)

            return response_data(admin_user: admin_user)
          end

          response_error(admin_user.errors)
        end

        def ready?(*)
          admin_ready?
        end

        def verify_user(email)
          context[:rodauth].account_from_login(email)
          context[:rodauth].setup_account_verification
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
osso-0.0.10 lib/osso/graphql/mutations/invite_admin_user.rb
osso-0.0.8 lib/osso/graphql/mutations/invite_admin_user.rb
osso-0.0.7 lib/osso/graphql/mutations/invite_admin_user.rb
osso-0.0.6 lib/osso/graphql/mutations/invite_admin_user.rb
osso-0.0.6.alpha lib/osso/graphql/mutations/invite_admin_user.rb
osso-0.0.5 lib/osso/graphql/mutations/invite_admin_user.rb