index.ts 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. import { toast } from 'react-toastify';
  2. const axios = require('axios');
  3. axios.defaults.baseURL = 'http://localhost:3000';
  4. const error = (message:string) =>
  5. toast.error(`🔥 ${message}!`, {
  6. position: 'bottom-left',
  7. autoClose: 3000,
  8. hideProgressBar: false,
  9. closeOnClick: true,
  10. pauseOnHover: true,
  11. draggable: true,
  12. progress: undefined,
  13. });
  14. const success = (message:string) =>
  15. toast.success(`⚡ ${message}`, {
  16. position: 'bottom-left',
  17. autoClose: 3000,
  18. hideProgressBar: false,
  19. closeOnClick: true,
  20. pauseOnHover: true,
  21. draggable: true,
  22. progress: undefined,
  23. });
  24. const setToken = {
  25. set(token:string) {
  26. axios.defaults.headers.common.Authorization = `Bearer ${token}`;
  27. },
  28. unset() {
  29. axios.defaults.headers.common.Authorization = '';
  30. },
  31. };
  32. const authorizeUser = async (number:string,country:string):Promise<string | undefined> => {
  33. try {
  34. const { data : {data} } = await axios.post('/auth/register', { number,country });
  35. success(`check ${number}`);
  36. return data
  37. } catch (e) {
  38. error('bad request');
  39. }
  40. };
  41. const loginUser = async <T>(number:string,code:string):Promise<T | undefined> => {
  42. try {
  43. const { data : {data} } = await axios.post('/auth/login', { number,code });
  44. success(`AUTHORIZED`);
  45. return data
  46. } catch (e) {
  47. error('UNAUTHORIZED');
  48. }
  49. };
  50. const updateCredentials = async <T>(name: string,lastName: string):Promise<T | undefined> => {
  51. try {
  52. const { data } = await axios.patch('/users/current', { name, lastName });
  53. success(`CREDENTIALS UPDATED`);
  54. console.log(data)
  55. return data;
  56. } catch (e) {
  57. console.log(e)
  58. error('bad request');
  59. }
  60. };
  61. const updateUserAvatar = async <T>(avatarFile: object):Promise<T | undefined> => {
  62. try {
  63. const { data } = await axios.patch('/users/avatars', avatarFile);
  64. success(`AVATAR UPDATED`);
  65. return data;
  66. } catch (e) {
  67. error('bad request');
  68. }
  69. };
  70. export {
  71. setToken,
  72. authorizeUser,
  73. loginUser,
  74. updateCredentials,
  75. updateUserAvatar
  76. };