[Key Contacts Management] Create GraphQL mutation endpoint for Customer attributes (personal details and company details)
Problem
Currently the application reloads whenever the contact information is submitted.
Proposal
The following MR adds and uses the fetch resolver so we can get the information:
- https://gitlab.com/gitlab-org/customers-gitlab-com/-/merge_requests/8208
- https://gitlab.com/gitlab-org/customers-gitlab-com/-/merge_requests/8209/diffs#e6593a37b5acbf652af365b06720eb7f3f59a760_167_143
In order to ensure personal details and company details is updated with an in-app experience, we should implement a GraphQL (mutation) endpoint for CustomerAttributes, so we can CRUD it with an in-app experience.
Existing draft MRs:
Description | MR |
---|---|
GraphQL Mutation backend | https://gitlab.com/gitlab-org/customers-gitlab-com/-/merge_requests/8235+ |
Mutation consumption frontend | https://gitlab.com/gitlab-org/customers-gitlab-com/-/merge_requests/8242+ |
As a part of this effort we should make sure to migrate the account_attributes to be provided as a whole object. See more information here: https://gitlab.com/gitlab-org/customers-gitlab-com/-/merge_requests/8553#note_1623261194.
Note: For the personal details, this involves implementing this to work with email confirmation, which makes this effort a lot more complicated. So as a first step we could only provide an endpoint for the area that updates the billing account settings and update the email + confirmation as a separate task (to be created).
See discussion here: #7456 (comment 1558808188)
Availability & Testing
Given that we are replacing sync with async behavior, the endpoints in question should be tested to ensure that the result is correct.
A feature test should also be added that will perform these actions in the browser.