From bc26faa77c296ea53e29421b031d58bd82f143f0 Mon Sep 17 00:00:00 2001 From: Ehsan Date: Sat, 26 Oct 2024 01:03:50 +0330 Subject: [PATCH] add axios and basic folder --- package-lock.json | 54 +++++++++++++++++++++++++++++++++++++++++++- package.json | 4 +++- services/api.js | 38 +++++++++++++++++++++++++++++++ services/response.js | 5 ++++ 4 files changed, 99 insertions(+), 2 deletions(-) create mode 100644 services/api.js create mode 100644 services/response.js diff --git a/package-lock.json b/package-lock.json index b2eb856..2315c6c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,6 +18,7 @@ "@mui/x-charts": "^7.16.0", "@mui/x-date-pickers": "^7.17.0", "aos": "^2.3.4", + "axios": "^1.7.7", "date-fns": "^3.6.0", "dayjs": "^1.11.13", "i": "^0.3.7", @@ -35,7 +36,8 @@ "styled-components": "^6.1.11", "stylis": "^4.3.4", "stylis-plugin-rtl": "^2.1.1", - "swiper": "^11.1.9" + "swiper": "^11.1.9", + "universal-cookie": "^7.2.1" }, "devDependencies": { "postcss": "^8", @@ -4882,6 +4884,11 @@ "@types/node": "*" } }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==" + }, "node_modules/@types/d3-color": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", @@ -6148,6 +6155,29 @@ "node": ">=4" } }, + "node_modules/axios": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", + "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axios/node_modules/form-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/axobject-query": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", @@ -19010,6 +19040,11 @@ "node": ">= 0.10" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "node_modules/psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", @@ -21959,6 +21994,23 @@ "node": ">=8" } }, + "node_modules/universal-cookie": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/universal-cookie/-/universal-cookie-7.2.1.tgz", + "integrity": "sha512-GEKneQ0sz8qbobkYM5s9elAx6l7GQDNVl3Siqmc7bt/YccyyXWDPn+fht3J1qMcaLwPrzkty3i+dNfPGP2/9hA==", + "dependencies": { + "@types/cookie": "^0.6.0", + "cookie": "^0.7.2" + } + }, + "node_modules/universal-cookie/node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", diff --git a/package.json b/package.json index 009f4c1..8e49466 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "@mui/x-charts": "^7.16.0", "@mui/x-date-pickers": "^7.17.0", "aos": "^2.3.4", + "axios": "^1.7.7", "date-fns": "^3.6.0", "dayjs": "^1.11.13", "i": "^0.3.7", @@ -36,7 +37,8 @@ "styled-components": "^6.1.11", "stylis": "^4.3.4", "stylis-plugin-rtl": "^2.1.1", - "swiper": "^11.1.9" + "swiper": "^11.1.9", + "universal-cookie": "^7.2.1" }, "devDependencies": { "postcss": "^8", diff --git a/services/api.js b/services/api.js new file mode 100644 index 0000000..1227341 --- /dev/null +++ b/services/api.js @@ -0,0 +1,38 @@ +import axios from "axios"; +import Cookies from "universal-cookie"; + +const cookies = new Cookies(); +const BASE_URL = "https://nobat724.com/"; + +const api = axios.create({ + baseURL: BASE_URL, + headers: { + "Content-Type": "application/json", + }, +}); + +api.interceptors.request.use( + (request) => { + if (cookies.get("token")) { + request.headers.authorization = `Bearer ${cookies.get("token")}`; + } + return request; + }, + (err) => Promise.reject(err) +); + +api.interceptors.response.use( + (response) => { + return response.data; + }, + (error) => { + console.log(error); + if (error.data.status === 400) { + cookies.remove("token", { path: "/" }); + window.location.reload(); + } else { + } + } +); + +export default api; diff --git a/services/response.js b/services/response.js new file mode 100644 index 0000000..e93d9d4 --- /dev/null +++ b/services/response.js @@ -0,0 +1,5 @@ +import api from "./api"; + +export const request = { + auth: (phone) => api.post("sign-up/", { phone }), +};