Class: Osso::GraphQL::Mutations::BaseMutation
- Inherits:
-
GraphQL::Schema::RelayClassicMutation
- Object
- GraphQL::Schema::RelayClassicMutation
- Osso::GraphQL::Mutations::BaseMutation
show all
- Defined in:
- lib/osso/graphql/mutations/base_mutation.rb
Direct Known Subclasses
ConfigureIdentityProvider, CreateEnterpriseAccount, CreateIdentityProvider, CreateOauthClient, DeleteEnterpriseAccount, DeleteIdentityProvider, DeleteOauthClient, InviteAdminUser, RegenerateOauthCredentials, SetRedirectUris, UpdateAppConfig
Instance Method Summary
collapse
Instance Method Details
#account_domain(id) ⇒ Object
55
56
57
58
59
|
# File 'lib/osso/graphql/mutations/base_mutation.rb', line 55
def account_domain(id)
return false unless id
Osso::Models::EnterpriseAccount.find(id)&.domain
end
|
#admin_ready? ⇒ Boolean
41
42
43
|
# File 'lib/osso/graphql/mutations/base_mutation.rb', line 41
def admin_ready?
context[:scope] == 'admin'
end
|
#domain_ready?(domain) ⇒ Boolean
51
52
53
|
# File 'lib/osso/graphql/mutations/base_mutation.rb', line 51
def domain_ready?(domain)
context[:email].split('@')[1] == domain
end
|
#field_errors(errors) ⇒ Object
23
24
25
26
27
28
29
30
31
|
# File 'lib/osso/graphql/mutations/base_mutation.rb', line 23
def field_errors(errors)
errors.map do |attribute, messages|
attribute = attribute.to_s.camelize(:lower)
{
attribute: attribute,
message: messages,
}
end
end
|
#internal_ready? ⇒ Boolean
45
46
47
48
49
|
# File 'lib/osso/graphql/mutations/base_mutation.rb', line 45
def internal_ready?
return true if admin_ready?
context[:scope] == 'internal'
end
|
#provider_domain(id) ⇒ Object
61
62
63
64
65
|
# File 'lib/osso/graphql/mutations/base_mutation.rb', line 61
def provider_domain(id)
return false unless id
Osso::Models::IdentityProvider.find(id)&.domain
end
|
#ready?(**args) ⇒ Boolean
33
34
35
36
37
38
39
|
# File 'lib/osso/graphql/mutations/base_mutation.rb', line 33
def ready?(**args)
return true if internal_ready?
return true if domain_ready?(args[:domain] || domain(**args))
raise ::GraphQL::ExecutionError, 'This user lacks the permission to make the requested changes'
end
|
#response_data(data) ⇒ Object
10
11
12
|
# File 'lib/osso/graphql/mutations/base_mutation.rb', line 10
def response_data(data)
data.merge(errors: [])
end
|
#response_error(errors) ⇒ Object
14
15
16
17
18
19
20
21
|
# File 'lib/osso/graphql/mutations/base_mutation.rb', line 14
def response_error(errors)
raise ::GraphQL::ExecutionError.new(
'Mutation error',
extensions: {
'errors' => field_errors(errors),
},
)
end
|