From c003084690c539629dc3adaa9eb6b7d1487866e3 Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Sat, 28 Dec 2024 12:05:24 +0100 Subject: [PATCH] fix: email endpoints (to be cleaned TODO@matmair) --- src/frontend/src/enums/ApiEndpoints.tsx | 5 +- .../AccountSettings/SecurityContent.tsx | 55 +++++++++++++------ 2 files changed, 40 insertions(+), 20 deletions(-) diff --git a/src/frontend/src/enums/ApiEndpoints.tsx b/src/frontend/src/enums/ApiEndpoints.tsx index c230c5cb45..1fa858f054 100644 --- a/src/frontend/src/enums/ApiEndpoints.tsx +++ b/src/frontend/src/enums/ApiEndpoints.tsx @@ -21,10 +21,7 @@ export enum ApiEndpoints { user_change_password = 'auth/password/change/', user_sso = 'auth/social/', user_sso_remove = 'auth/social/:id/disconnect/', - user_emails = 'auth/emails/', - user_email_remove = 'auth/emails/:id/remove/', - user_email_verify = 'auth/emails/:id/verify/', - user_email_primary = 'auth/emails/:id/primary/', + user_emails = '_allauth/app/v1/account/email', user_login = '_allauth/app/v1/auth/login', user_login_mfa = '_allauth/app/v1/auth/2fa/authenticate', user_logout = '_allauth/app/v1/auth/session', diff --git a/src/frontend/src/pages/Index/Settings/AccountSettings/SecurityContent.tsx b/src/frontend/src/pages/Index/Settings/AccountSettings/SecurityContent.tsx index 089ee71025..814896d8a0 100644 --- a/src/frontend/src/pages/Index/Settings/AccountSettings/SecurityContent.tsx +++ b/src/frontend/src/pages/Index/Settings/AccountSettings/SecurityContent.tsx @@ -106,20 +106,45 @@ function EmailContent() { api.get(apiUrl(ApiEndpoints.user_emails)).then((res) => res.data) }); - function runServerAction(url: ApiEndpoints) { + function runServerAction( + url: ApiEndpoints, + action: 'post' | 'put' | 'delete' = 'post' + ) { + let act: any; + switch (action) { + case 'post': + act = api.post; + break; + case 'put': + act = api.put; + break; + case 'delete': + act = api.delete; + break; + } + act(apiUrl(url), { email: value }) + .then(() => { + refetch(); + }) + .catch((res: any) => console.log(res.data)); + } + + function addEmail() { api - .post(apiUrl(url, undefined, { id: value }), {}) + .post(apiUrl(ApiEndpoints.user_emails), { + email: newEmailValue + }) .then(() => { refetch(); }) .catch((res) => console.log(res.data)); } - function addEmail() { + function changePrimary() { api .post(apiUrl(ApiEndpoints.user_emails), { - email: newEmailValue, - user: user?.pk + email: value, + primary: true }) .then(() => { refetch(); @@ -139,19 +164,19 @@ function EmailContent() { label={t`The following email addresses are associated with your account:`} > - {data.map((link: any) => ( + {data.map((email: any) => ( - {link.email} - {link.primary && ( + {email.email} + {email.primary && ( Primary )} - {link.verified ? ( + {email.verified ? ( Verified @@ -183,18 +208,16 @@ function EmailContent() { -