From 332c9bcf52f7a7e1d225a5c75039abdd3e78601f Mon Sep 17 00:00:00 2001 From: Marline Vauchair <marline.vauchair@etu.unistra.fr> Date: Fri, 17 Dec 2021 12:15:07 +0100 Subject: [PATCH] :sparkles: doValidate cart with adhesion --- src/apis/student.ts | 18 ++++++++++++++++++ src/components/sell/cart.tsx | 25 +++++++++++++++++++++++-- 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/src/apis/student.ts b/src/apis/student.ts index 27e1a7e..1cc4a28 100644 --- a/src/apis/student.ts +++ b/src/apis/student.ts @@ -46,6 +46,24 @@ export async function getUsers(): Promise<User[]> { return users; }; +export async function setAdhesion() : Promise<number> { + // Fetch users data + await axios.post(`${BASE_URL}/api/pay_adhesion`, { + headers: { + 'Content-Type': 'application/json', + }, + body: { + 'student_number': '12345678', + } + }).then(({ data }) => data) + .catch(error => { + console.error(error); + return 0; + }); + + return 1; +} + function validateSubscriptionDate(dateStr: string): boolean { const YEAR_IN_MS = 31536000000; const date = Date.parse(dateStr) ?? Date.parse('01 Jan 1970 00:00:00 GMT'); diff --git a/src/components/sell/cart.tsx b/src/components/sell/cart.tsx index 8fb3c1a..4395f49 100644 --- a/src/components/sell/cart.tsx +++ b/src/components/sell/cart.tsx @@ -6,6 +6,7 @@ import { XIcon } from '@heroicons/react/outline' import { cartContext } from '../../cart/CartStore'; import { updateProductQuantity } from '../../cart/CartActions'; +import {setAdhesion} from '../../apis/student'; const Cart = () => { const { cartState, dispatch } = useContext(cartContext); @@ -15,6 +16,25 @@ const Cart = () => { return `${price.toFixed(2).replace(".", ",")} €`; } + function doValidate(): number { + const existingProduct = cartState.cart.find(p => p.name === "Adhésion"); + if (existingProduct){ + setAdhesion().then((users) => { + console.log("Envoi adhésion à STUDENT: 12345678"); + }).catch((_) => { + console.log("error adhesion"); + }); + } + cartState.totalPrice = 0; + cartState.cart.forEach((product) => { + if (product.quantity) { + cartState.totalPrice += product.price * product.quantity; + } + }); + console.log("Envoi transaction à MONEY: ", cartState); + return 1; + } + let [totalPrice, setTotalPrice] = useState(0); useEffect(() => { @@ -164,8 +184,9 @@ const Cart = () => { </div> <div className="mt-10"> <button - type="submit" - className="w-full bg-indigo-600 border border-transparent rounded-md shadow-sm py-3 px-4 text-base font-medium text-white hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-50 focus:ring-indigo-500" + onClick={() => doValidate()} + type="button" + className="w-full bg-indigo-600 border border-transparent rounded-md shadow-sm py-3 px-4 text-base font-medium text-white hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-50 focus:ring-indigo-500" > Valider </button> -- GitLab