mtg-lets-trade

Website/webapp to facilitate trading between players of Magic: The Gathering
git clone https://kevincorvisier.fr/git/mtg-lets-trade.git
Log | Files | Refs

auth.hooks.ts (1292B)


      1 import { useMutation, useQuery } from "@tanstack/react-query";
      2 import { RegisterRequest } from "../types/RegisterRequest";
      3 import axios from "axios";
      4 import { LoginRequest } from "../types/LoginRequest";
      5 import { queryClient } from "../../main";
      6 
      7 const BASE_URI: string = "/api/authentication";
      8 
      9 export const getAuthentication = () => {
     10     return useQuery({
     11         queryKey: ["authentication"],
     12         queryFn: () => axios.get<string>(BASE_URI).then(response => response.data)
     13     });
     14 };
     15 
     16 export const useRegister = () => {
     17     return useMutation<void, string, RegisterRequest>({
     18         mutationFn: (request: RegisterRequest) => axios.post(`${BASE_URI}/register`, request),
     19         onSuccess: () => queryClient.invalidateQueries({ queryKey: ['authentication'] })
     20     });
     21 };
     22 
     23 export const useLogin = () => {
     24     return useMutation<void, string, LoginRequest>({
     25         mutationFn: (request: LoginRequest) => axios.post(`${BASE_URI}/login`, request),
     26         onSuccess: () => queryClient.invalidateQueries({ queryKey: ['authentication'] })
     27     });
     28 };
     29 
     30 export const useLogout = () => {
     31     return useMutation<void, string, void>({
     32         mutationFn: () => axios.post(`${BASE_URI}/logout`),
     33         onSuccess: () => queryClient.invalidateQueries({ queryKey: ['authentication'] })
     34     });
     35 };