Class: GdsApi::AccountApi
Overview
Adapter for the Account API
Constant Summary collapse
- AUTH_HEADER_NAME =
"GOVUK-Account-Session".freeze
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
-
#check_for_email_subscription(govuk_account_session:) ⇒ Hash
Check if a user has an email subscription for the Transition Checker.
-
#create_registration_state(attributes:) ⇒ Hash
Register some initial state, to pass to get_sign_in_url, which is used to initialise the account if the user signs up.
-
#get_attributes(attributes:, govuk_account_session:) ⇒ Hash
Look up the values of a user’s attributes.
-
#get_attributes_names(attributes:, govuk_account_session:) ⇒ Hash
Look up the names of a user’s attributes.
-
#get_sign_in_url(redirect_path: nil, state_id: nil, level_of_authentication: nil) ⇒ Hash
Get an OAuth sign-in URL to redirect the user to.
-
#set_attributes(attributes:, govuk_account_session:) ⇒ Hash
Create or update attributes for a user.
-
#set_email_subscription(govuk_account_session:, slug:) ⇒ Hash
Create or update a user’s email subscription for the Transition Checker.
-
#validate_auth_response(code:, state:) ⇒ Hash
Validate an OAuth authentication response.
Methods inherited from Base
#client, #create_client, #get_list, #initialize, #url_for_slug
Constructor Details
This class inherits a constructor from GdsApi::Base
Instance Method Details
#check_for_email_subscription(govuk_account_session:) ⇒ Hash
Check if a user has an email subscription for the Transition Checker
53 54 55 |
# File 'lib/gds_api/account_api.rb', line 53 def check_for_email_subscription(govuk_account_session:) get_json("#{endpoint}/api/transition-checker-email-subscription", auth_headers(govuk_account_session)) end |
#create_registration_state(attributes:) ⇒ Hash
Register some initial state, to pass to get_sign_in_url, which is used to initialise the account if the user signs up
44 45 46 |
# File 'lib/gds_api/account_api.rb', line 44 def create_registration_state(attributes:) post_json("#{endpoint}/api/oauth2/state", attributes: attributes) end |
#get_attributes(attributes:, govuk_account_session:) ⇒ Hash
Look up the values of a user’s attributes
73 74 75 76 |
# File 'lib/gds_api/account_api.rb', line 73 def get_attributes(attributes:, govuk_account_session:) querystring = nested_query_string({ attributes: attributes }.compact) get_json("#{endpoint}/api/attributes?#{querystring}", auth_headers(govuk_account_session)) end |
#get_attributes_names(attributes:, govuk_account_session:) ⇒ Hash
Look up the names of a user’s attributes
94 95 96 97 |
# File 'lib/gds_api/account_api.rb', line 94 def get_attributes_names(attributes:, govuk_account_session:) querystring = nested_query_string({ attributes: attributes }.compact) get_json("#{endpoint}/api/attributes/names?#{querystring}", auth_headers(govuk_account_session)) end |
#get_sign_in_url(redirect_path: nil, state_id: nil, level_of_authentication: nil) ⇒ Hash
Get an OAuth sign-in URL to redirect the user to
18 19 20 21 22 23 24 25 26 27 |
# File 'lib/gds_api/account_api.rb', line 18 def get_sign_in_url(redirect_path: nil, state_id: nil, level_of_authentication: nil) querystring = nested_query_string( { redirect_path: redirect_path, state_id: state_id, level_of_authentication: level_of_authentication, }.compact, ) get_json("#{endpoint}/api/oauth2/sign-in?#{querystring}") end |
#set_attributes(attributes:, govuk_account_session:) ⇒ Hash
Create or update attributes for a user
84 85 86 |
# File 'lib/gds_api/account_api.rb', line 84 def set_attributes(attributes:, govuk_account_session:) patch_json("#{endpoint}/api/attributes", { attributes: attributes }, auth_headers(govuk_account_session)) end |
#set_email_subscription(govuk_account_session:, slug:) ⇒ Hash
Create or update a user’s email subscription for the Transition Checker
63 64 65 |
# File 'lib/gds_api/account_api.rb', line 63 def set_email_subscription(govuk_account_session:, slug:) post_json("#{endpoint}/api/transition-checker-email-subscription", { slug: slug }, auth_headers(govuk_account_session)) end |
#validate_auth_response(code:, state:) ⇒ Hash
Validate an OAuth authentication response
35 36 37 |
# File 'lib/gds_api/account_api.rb', line 35 def validate_auth_response(code:, state:) post_json("#{endpoint}/api/oauth2/callback", code: code, state: state) end |