61 lines
1.5 KiB
TypeScript

import { db } from '../stores/storage/message'
interface Data {}
interface ResponseData {
code: number;
message: string;
data: any;
url: string;
}
export function generateSessionId() {
var characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
var sessionId = '';
for (var i = 0; i < 32; i++) {
sessionId += characters.charAt(Math.floor(Math.random() * characters.length));
}
return sessionId;
}
export function baseUrl(){
return 'https://ansnid.com';
// return '';
}
export function getToken(){
const sessionId = localStorage.getItem('AnsnidSessionId') || generateSessionId();
localStorage.setItem('AnsnidSessionId', sessionId)
return sessionId;
}
export function fetchData(data: Data | null, callback: (data: ResponseData) => void, url: string, method ? : string): void {
let fetchOptions = {
headers: {
"Content-Type": "application/json",
"Authorization": getToken()
}
};
if (method && method.toUpperCase() === "POST" && data) {
fetchOptions = { ...fetchOptions,
method: "POST",
body: JSON.stringify(data)
};
} else {
fetchOptions = { ...fetchOptions,
method: "GET"
};
}
url = baseUrl() + url;
fetch(url, fetchOptions).then(response => response.json().then(data => {
callback(data);
})).catch(error => {
console.log(error)
throw new Error('Request failed', {
cause: error?.error,
})
});
}