convert setting modals + associate function
This commit is contained in:
@@ -1,45 +0,0 @@
|
||||
export default async function fetchWrapper(
|
||||
path,
|
||||
data = null,
|
||||
method = "GET",
|
||||
headers = {}
|
||||
) {
|
||||
try {
|
||||
const res = await fetch(
|
||||
`${import.meta.env.VITE_API_URL}${path}`,
|
||||
{
|
||||
method,
|
||||
credentials: "include",
|
||||
headers: {
|
||||
"Accept": "application/json",
|
||||
"Content-Type": "application/json",
|
||||
...headers,
|
||||
},
|
||||
body: data ? JSON.stringify(data) : null,
|
||||
}
|
||||
);
|
||||
|
||||
let responseData = null;
|
||||
|
||||
try {
|
||||
responseData = await res.json();
|
||||
} catch (_) {
|
||||
responseData = null;
|
||||
}
|
||||
|
||||
return {
|
||||
status: res.status,
|
||||
data: responseData,
|
||||
};
|
||||
|
||||
} catch (err) {
|
||||
console.error("❌ Erreur réseau :", err);
|
||||
|
||||
return {
|
||||
status: 0,
|
||||
data: {
|
||||
message: "Network error",
|
||||
},
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
/*export default async function fetchWrapper(path,data = null,method = "GET",headers = {}) {
|
||||
try {
|
||||
const res = await fetch(
|
||||
`${import.meta.env.VITE_API_URL}${path}`,
|
||||
{
|
||||
method,
|
||||
credentials: "include",
|
||||
headers: {
|
||||
"Accept": "application/json",
|
||||
"Content-Type": "application/json",
|
||||
...headers,
|
||||
},
|
||||
body: data ? JSON.stringify(data) : null,
|
||||
}
|
||||
);
|
||||
|
||||
let responseData = null;
|
||||
|
||||
try {
|
||||
responseData = await res.json();
|
||||
} catch (_) {
|
||||
responseData = null;
|
||||
}
|
||||
|
||||
return {
|
||||
status: res.status,
|
||||
data: responseData,
|
||||
};
|
||||
|
||||
} catch (err) {
|
||||
console.error("❌ Erreur réseau :", err);
|
||||
|
||||
return {
|
||||
status: 0,
|
||||
data: {
|
||||
message: "Network error",
|
||||
},
|
||||
};
|
||||
}
|
||||
}*/
|
||||
|
||||
interface FetchResponse<T = any> {
|
||||
status: number;
|
||||
data: T | null;
|
||||
}
|
||||
|
||||
export default async function fetchWrapper(
|
||||
path: string,
|
||||
data: any = null,
|
||||
method: string = "GET",
|
||||
headers: Record<string, string> = {}
|
||||
): Promise<FetchResponse> {
|
||||
try {
|
||||
const res = await fetch(
|
||||
`${import.meta.env.VITE_API_URL}${path}`,
|
||||
{
|
||||
method,
|
||||
credentials: "include",
|
||||
headers: {
|
||||
"Accept": "application/json",
|
||||
"Content-Type": "application/json",
|
||||
...headers,
|
||||
},
|
||||
body: data ? JSON.stringify(data) : null,
|
||||
}
|
||||
);
|
||||
|
||||
let responseData = null;
|
||||
|
||||
try {
|
||||
responseData = await res.json();
|
||||
} catch (_) {
|
||||
responseData = null;
|
||||
}
|
||||
|
||||
return {
|
||||
status: res.status,
|
||||
data: responseData,
|
||||
};
|
||||
|
||||
} catch (err) {
|
||||
console.error("❌ Erreur réseau :", err);
|
||||
|
||||
return {
|
||||
status: 0,
|
||||
data: {
|
||||
message: "Network error",
|
||||
},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
export default async function getXSRFToken() {
|
||||
const response = await fetch(`${import.meta.env.VITE_API_URL}/sanctum/csrf-cookie`, {
|
||||
method: 'GET',
|
||||
credentials: 'include'
|
||||
});
|
||||
|
||||
if (!response.ok && response.status !== 204) {
|
||||
throw new Error(`Error : ${response.status}`);
|
||||
}
|
||||
|
||||
const name = 'XSRF-TOKEN';
|
||||
const value = `; ${document.cookie}`;
|
||||
const parts = value.split(`; ${name}=`);
|
||||
if (parts.length === 2) {
|
||||
return decodeURIComponent(parts.pop().split(';').shift());
|
||||
}
|
||||
|
||||
throw new Error('Error: Invalid XSRF-TOKEN');
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
/*export default async function getXSRFToken() {
|
||||
const response = await fetch(`${import.meta.env.VITE_API_URL}/sanctum/csrf-cookie`, {
|
||||
method: 'GET',
|
||||
credentials: 'include'
|
||||
});
|
||||
|
||||
if (!response.ok && response.status !== 204) {
|
||||
throw new Error(`Error : ${response.status}`);
|
||||
}
|
||||
|
||||
const name = 'XSRF-TOKEN';
|
||||
const value = `; ${document.cookie}`;
|
||||
const parts = value.split(`; ${name}=`);
|
||||
if (parts.length === 2) {
|
||||
return decodeURIComponent(parts.pop().split(';').shift());
|
||||
}
|
||||
|
||||
throw new Error('Error: Invalid XSRF-TOKEN');
|
||||
}*/
|
||||
|
||||
export default async function getXSRFToken(): Promise<string> {
|
||||
const response = await fetch(`${import.meta.env.VITE_API_URL}/sanctum/csrf-cookie`, {
|
||||
method: 'GET',
|
||||
credentials: 'include'
|
||||
});
|
||||
|
||||
if (!response.ok && response.status !== 204) {
|
||||
throw new Error(`Error : ${response.status}`);
|
||||
}
|
||||
|
||||
const name = 'XSRF-TOKEN';
|
||||
const value = `; ${document.cookie}`;
|
||||
const parts = value.split(`; ${name}=`);
|
||||
if (parts.length === 2) {
|
||||
return decodeURIComponent(parts.pop()!.split(';').shift()!);
|
||||
}
|
||||
|
||||
throw new Error('Error: Invalid XSRF-TOKEN');
|
||||
}
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
import fetchWrapper from "../fetchWrapper.js";
|
||||
import getXSRFToken from "../getXSRF.js";
|
||||
|
||||
export default async function deleteUser() {
|
||||
const csrfToken = await getXSRFToken();
|
||||
|
||||
return fetchWrapper(
|
||||
"/api/users",
|
||||
null,
|
||||
"DELETE",
|
||||
{ "X-XSRF-TOKEN": csrfToken }
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
import fetchWrapper from "../fetchWrapper";
|
||||
import getXSRFToken from "../getXSRF";
|
||||
|
||||
export default async function deleteUser(): Promise<{status: number;data: any;}> {
|
||||
const csrfToken: string = await getXSRFToken();
|
||||
|
||||
return fetchWrapper(
|
||||
"/api/users",
|
||||
null,
|
||||
"DELETE",
|
||||
{ "X-XSRF-TOKEN": csrfToken }
|
||||
);
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
import fetchWrapper from "../fetchWrapper.js";
|
||||
import getXSRFToken from "../getXSRF.js";
|
||||
|
||||
export default async function updateUser(name, lastname, phone) {
|
||||
const csrfToken = await getXSRFToken();
|
||||
|
||||
return fetchWrapper(
|
||||
"/api/users/update",
|
||||
{ name, lastname, phone },
|
||||
"POST",
|
||||
{ "X-XSRF-TOKEN": csrfToken }
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
/*import fetchWrapper from "../fetchWrapper.js";
|
||||
import getXSRFToken from "../getXSRF.js";
|
||||
|
||||
export default async function updateUser(name, lastname, phone) {
|
||||
const csrfToken = await getXSRFToken();
|
||||
|
||||
return fetchWrapper(
|
||||
"/api/users/update",
|
||||
{ name, lastname, phone },
|
||||
"POST",
|
||||
{ "X-XSRF-TOKEN": csrfToken }
|
||||
);
|
||||
}*/
|
||||
|
||||
import fetchWrapper from "../fetchWrapper";
|
||||
import getXSRFToken from "../getXSRF";
|
||||
|
||||
interface UserUpdateData {
|
||||
name: string;
|
||||
lastname: string;
|
||||
phone: string | null;
|
||||
}
|
||||
|
||||
interface RequestHeaders {
|
||||
"X-XSRF-TOKEN": string;
|
||||
}
|
||||
export default async function updateUser(name: string,lastname: string,phone: string | null): Promise<Response> {
|
||||
const csrfToken: string = await getXSRFToken();
|
||||
const userData: UserUpdateData = {name,lastname,phone,};
|
||||
const headers: RequestHeaders = {"X-XSRF-TOKEN": csrfToken,};
|
||||
return fetchWrapper("/api/users/update",userData,"POST",headers);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user