diff --git a/src/apis/student.ts b/src/apis/student.ts index 27e1a7e30ef3b06914cec36c6c079bc6ca816576..1cc4a282cf8c5814ff23265b1406a6ed686bf779 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 8fb3c1a2a78e830df5f359e7d8e74927940e3f07..4395f49e11977205d4cc49051220fc9d682ca428 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>