Verify sms request working

This commit is contained in:
Maxime Lalo 2023-11-24 15:34:24 +01:00
parent 0cf67261a0
commit 6017803cee
2 changed files with 58 additions and 4 deletions

View File

@ -0,0 +1,29 @@
import BaseApiService from "@Front/Api/BaseApiService";
export type IMailVerifyParams = {
email: string;
};
export type IMailVerifyReturn = {
partialPhoneNumber: string;
};
export default class Auth extends BaseApiService {
private static instance: Auth;
protected readonly namespaceUrl = this.getBaseUrl().concat("/customer");
private readonly baseURl = this.namespaceUrl.concat("/auth");
public static getInstance() {
return (this.instance ??= new this());
}
public async mailVerifySms(body: IMailVerifyParams): Promise<IMailVerifyReturn> {
const url = new URL(this.baseURl.concat("/mail/verify-sms"));
try {
return this.postRequest<IMailVerifyReturn>(url, body);
} catch (err) {
this.onError(err);
return Promise.reject(err);
}
}
}

View File

@ -8,15 +8,17 @@ import { useCallback, useEffect, useState } from "react";
import Customers from "@Front/Api/Auth/Id360/Customers/Customers";
import classes from "./classes.module.scss";
import LandingImage from "./landing-connect.jpeg";
import Link from "next/link";
import Confirm from "@Front/Components/DesignSystem/Modal/Confirm";
import Form from "@Front/Components/DesignSystem/Form";
import TextField from "@Front/Components/DesignSystem/Form/TextField";
import Module from "@Front/Config/Module";
import { ValidationError } from "class-validator";
import Auth from "@Front/Api/Auth/Customer/Auth";
export default function Login() {
const router = useRouter();
const error = router.query["error"];
const [validationError, setValidationError] = useState<ValidationError[]>([]);
const [isErrorModalOpen, setIsErrorModalOpen] = useState(false);
const redirectCustomerOnConnection = useCallback(() => {
@ -43,6 +45,25 @@ export default function Login() {
if (error === "1") openErrorModal();
}, [error, openErrorModal]);
const onSubmitHandler = useCallback(
async (e: React.FormEvent<HTMLFormElement> | null, values: { [key: string]: string }) => {
try {
console.log(values);
if (!values["email"]) return;
const phoneNumber = await Auth.getInstance().mailVerifySms({ email: values["email"] });
/* router.push(
Module.getInstance().get().modules.pages.DeedTypes.pages.DeedTypesInformations.props.path.replace("[uid]", "1"),
); */
} catch (validationErrors: Array<ValidationError> | any) {
console.log(validationErrors);
if (validationErrors.length > 0) {
setValidationError(validationErrors as ValidationError[]);
}
return;
}
},
[router],
);
return (
<DefaultDoubleSidePage title={"Login"} image={LandingImage}>
<div className={classes["root"]}>
@ -55,8 +76,12 @@ export default function Login() {
<Typography className={classes["or"]} typo={ITypo.P_16}>
Ou
</Typography>
<Form className={classes["form"]}>
<TextField placeholder="E-mail" name="email" />
<Form className={classes["form"]} onSubmit={onSubmitHandler}>
<TextField
placeholder="E-mail"
name="email"
validationError={validationError.find((error) => error.property === "email")}
/>
<Button type="submit" variant={EButtonVariant.PRIMARY} className={classes["submit_button"]}>
Suivant
</Button>