Merge branch '17782-react-scripts-ts-migration' into main. Closes #17782
[arvados-workbench2.git] / src / services / link-account-service / link-account-service.ts
index 74fc5eb6a5338025967f71cba5cfe100a7e768c9..6c03eed5b9a05b387cd94053bad294e54e795121 100644 (file)
@@ -3,11 +3,12 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import { AxiosInstance } from "axios";
-import { ApiActions } from "~/services/api/api-actions";
-import { AccountToLink } from "~/models/link-account";
-import { CommonService } from "~/services/common-service/common-service";
+import { ApiActions } from "services/api/api-actions";
+import { AccountToLink, LinkAccountStatus } from "models/link-account";
+import { CommonService } from "services/common-service/common-service";
 
 export const USER_LINK_ACCOUNT_KEY = 'accountToLink';
+export const ACCOUNT_LINK_STATUS_KEY = 'accountLinkStatus';
 
 export class LinkAccountService {
 
@@ -15,19 +16,32 @@ export class LinkAccountService {
         protected serverApi: AxiosInstance,
         protected actions: ApiActions) { }
 
-    public saveToSession(account: AccountToLink) {
+    public saveAccountToLink(account: AccountToLink) {
         sessionStorage.setItem(USER_LINK_ACCOUNT_KEY, JSON.stringify(account));
     }
 
-    public removeFromSession() {
+    public removeAccountToLink() {
         sessionStorage.removeItem(USER_LINK_ACCOUNT_KEY);
     }
 
-    public getFromSession() {
+    public getAccountToLink() {
         const data = sessionStorage.getItem(USER_LINK_ACCOUNT_KEY);
         return data ? JSON.parse(data) as AccountToLink : undefined;
     }
 
+    public saveLinkOpStatus(status: LinkAccountStatus) {
+        sessionStorage.setItem(ACCOUNT_LINK_STATUS_KEY, JSON.stringify(status));
+    }
+
+    public removeLinkOpStatus() {
+        sessionStorage.removeItem(ACCOUNT_LINK_STATUS_KEY);
+    }
+
+    public getLinkOpStatus() {
+        const data = sessionStorage.getItem(ACCOUNT_LINK_STATUS_KEY);
+        return data ? JSON.parse(data) as LinkAccountStatus : undefined;
+    }
+
     public linkAccounts(newUserToken: string, newGroupUuid: string) {
         const params = {
             new_user_token: newUserToken,
@@ -35,9 +49,9 @@ export class LinkAccountService {
             redirect_to_new_user: true
         };
         return CommonService.defaultResponse(
-            this.serverApi.post('/users/merge/', params),
+            this.serverApi.post('/users/merge', params),
             this.actions,
             false
         );
     }
-}
\ No newline at end of file
+}