From bd6cd5995a33e647726b536cb75caa9f41663c89 Mon Sep 17 00:00:00 2001 From: Vins Date: Thu, 4 Apr 2024 13:35:25 +0200 Subject: [PATCH] Send invitation email connected --- package.json | 2 +- .../Admin/Subscriptions/Subscriptions.ts | 35 +++++++++++++++++++ .../Subscription/SubscriptionInvite/index.tsx | 13 +++++-- 3 files changed, 46 insertions(+), 4 deletions(-) create mode 100644 src/front/Api/LeCoffreApi/Admin/Subscriptions/Subscriptions.ts diff --git a/package.json b/package.json index f3708f42..870848ea 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "scripts": { - "dev": "next dev -p 5005", + "dev": "next dev", "build": "next build", "start": "next start", "lint": "next lint", diff --git a/src/front/Api/LeCoffreApi/Admin/Subscriptions/Subscriptions.ts b/src/front/Api/LeCoffreApi/Admin/Subscriptions/Subscriptions.ts new file mode 100644 index 00000000..db6fabff --- /dev/null +++ b/src/front/Api/LeCoffreApi/Admin/Subscriptions/Subscriptions.ts @@ -0,0 +1,35 @@ +import BaseAdmin from "../../../../../common/Api/LeCoffreApi/Admin/BaseAdmin"; + +export interface IPostSubscriptionsParams { + emails: string[]; +} + +export default class Subscriptions extends BaseAdmin { + private static instance: Subscriptions; + private readonly baseURl = this.namespaceUrl.concat("/subscriptions"); + + private constructor() { + super(); + } + + public static getInstance() { + if (!this.instance) { + return new this(); + } else { + return this.instance; + } + } + + /** + * @description : Create a Document + */ + public async post(body: IPostSubscriptionsParams) { + const url = new URL(this.baseURl.concat(`/invite`)); + try { + return await this.postRequest(url, body as any); + } catch (err) { + this.onError(err); + return Promise.reject(err); + } + } +} diff --git a/src/front/Components/Layouts/Subscription/SubscriptionInvite/index.tsx b/src/front/Components/Layouts/Subscription/SubscriptionInvite/index.tsx index aec39557..36a76f9b 100644 --- a/src/front/Components/Layouts/Subscription/SubscriptionInvite/index.tsx +++ b/src/front/Components/Layouts/Subscription/SubscriptionInvite/index.tsx @@ -5,6 +5,7 @@ import { useRouter } from "next/router"; import TextField from "@Front/Components/DesignSystem/Form/TextField"; import Button from "@Front/Components/DesignSystem/Button"; import Form from "@Front/Components/DesignSystem/Form"; +import Subscriptions from "@Front/Api/LeCoffreApi/Admin/Subscriptions/Subscriptions"; export enum EForfeitType { "standard", @@ -14,7 +15,7 @@ export default function SubscriptionInvite() { const router = useRouter(); const nbOfCollaborators = parseInt(router.query["nbOfCollaborators"] as string); - const sendInvitations = (e: React.FormEvent | null) => { + const sendInvitations = async (e: React.FormEvent | null) => { if (!e) return; e.preventDefault(); const form = e.target as HTMLFormElement; @@ -26,8 +27,14 @@ export default function SubscriptionInvite() { emails.push(element.value); } }); - - console.log(emails); + const body = { + emails, + }; + try { + await Subscriptions.getInstance().post(body); + } catch (e) { + console.error(e); + } }; return (