Class: Osso::GraphQL::Mutations::CreateIdentityProvider

Inherits:
BaseMutation
  • Object
show all
Defined in:
lib/osso/graphql/mutations/create_identity_provider.rb

Instance Method Summary collapse

Methods inherited from BaseMutation

#account_domain, #admin_ready?, #domain_ready?, #field_errors, #internal_ready?, #provider_domain, #ready?, #response_data, #response_error

Instance Method Details

#domain(enterprise_account_id:, **_args) ⇒ Object


35
36
37
# File 'lib/osso/graphql/mutations/create_identity_provider.rb', line 35

def domain(enterprise_account_id:, **_args)
  (enterprise_account_id: )&.domain
end

#enterprise_account(enterprise_account_id:) ⇒ Object


39
40
41
# File 'lib/osso/graphql/mutations/create_identity_provider.rb', line 39

def (enterprise_account_id:)
  @enterprise_account ||= Osso::Models::EnterpriseAccount.find()
end

#resolve(enterprise_account_id:, oauth_client_id:, service: nil) ⇒ Object


16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/osso/graphql/mutations/create_identity_provider.rb', line 16

def resolve(enterprise_account_id:, oauth_client_id:, service: nil)
  customer = (enterprise_account_id: )

  identity_provider = customer.identity_providers.build(
    service: service,
    domain: customer.domain,
    oauth_client_id: oauth_client_id,
  )

  if identity_provider.save
    Osso::Analytics.capture(email: context[:email], event: self.class.name.demodulize, properties: {
      service: service, enterprise_account_id: , oauth_client_id: oauth_client_id
    })
    return response_data(identity_provider: identity_provider)
  end

  response_error(identity_provider.errors)
end