Skip to content

Commit d2ca63e

Browse files
refactor getSamUserCombinedState
1 parent 46bec17 commit d2ca63e

File tree

1 file changed

+41
-18
lines changed

1 file changed

+41
-18
lines changed

src/libs/ajax/User.ts

+41-18
Original file line numberDiff line numberDiff line change
@@ -198,25 +198,48 @@ export const User = (signal?: AbortSignal) => {
198198

199199
getSamUserCombinedState: async (): Promise<SamUserCombinedStateResponse> => {
200200
const res = await fetchSam('api/users/v2/self/combinedState', _.mergeAll([authOpts(), { signal }]));
201-
const response = await res.json();
202-
if (response.terraUserAttributes !== undefined) {
203-
response.terraUserAttributes = response.attributes.map((attributes) => {
204-
const { userId: _, ...rest } = attributes;
205-
return rest;
206-
});
207-
}
208-
209-
response.samUser.createdAt = response.samUser.createdAt ? new Date(response.samUser.createdAt) : undefined;
210-
response.samUser.registeredAt = response.samUser.registeredAt
211-
? new Date(response.samUser.registeredAt)
212-
: undefined;
213-
response.samUser.updatedAt = response.samUser.updatedAt ? new Date(response.samUser.updatedAt) : undefined;
201+
const responseJson = await res.json();
202+
const samUser = {
203+
id: responseJson.samUser.id,
204+
googleSubjectId: responseJson.samUser.googleSubjectId,
205+
email: responseJson.samUser.email,
206+
azureB2CId: responseJson.samUser.azureB2CId,
207+
allowed: responseJson.samUser.allowed,
208+
createdAt: responseJson.samUser.createdAt ? new Date(json.createdAt) : undefined,
209+
registeredAt: responseJson.samUser.registeredAt ? new Date(json.registeredAt) : undefined,
210+
updatedAt: responseJson.samUser.updatedAt ? new Date(json.updatedAt) : undefined,
211+
} as SamUserResponse;
212+
213+
const terraUserAllowances = {
214+
allowed: responseJson.allowances.allowed,
215+
details: {
216+
enabled: responseJson.allowances.details.enabled,
217+
termsOfService: responseJson.allowances.details.termsOfService,
218+
} as SamUserAllowancesDetails,
219+
} as SamUserAllowances;
220+
221+
const terraUserAttributes = { marketingConsent: responseJson.attributes.marketingConsent } as SamUserAttributes;
222+
223+
const termsOfService = {
224+
latestAcceptedVersion: responseJson.termsOfServiceDetails.latestAcceptedVersion,
225+
acceptedOn: responseJson.termsOfServiceDetails.acceptedOn
226+
? new Date(responseJson.termsOfServiceDetails.acceptedOn)
227+
: undefined,
228+
permitsSystemUsage: responseJson.termsOfServiceDetails.permitsSystemUsage,
229+
isCurrentVersion: responseJson.termsOfServiceDetails.isCurrentVersion,
230+
} as SamUserTermsOfServiceDetails;
231+
232+
const enterpriseFeatures = responseJson.additionalDetails.enterpriseFeatures
233+
? responseJson.additionalDetails.enterpriseFeatures.resources.map((resource) => resource.resourceId)
234+
: [];
214235

215-
response.enterpriseFeatures = response.additionalDetails.enterpriseFeatures.resources.map(
216-
(resource) => resource.resourceId
217-
);
218-
219-
return response;
236+
return {
237+
samUser,
238+
terraUserAllowances,
239+
terraUserAttributes,
240+
termsOfService,
241+
enterpriseFeatures,
242+
} as SamUserCombinedStateResponse;
220243
},
221244

222245
registerWithProfile: async (

0 commit comments

Comments
 (0)