82 lines
2.4 KiB
TypeScript
82 lines
2.4 KiB
TypeScript
|
|
class ApiController {
|
|
token: string;
|
|
apiurl: string;
|
|
|
|
|
|
async getApiurl() {
|
|
let response = await fetch(`${window.location.href}apiurl`)
|
|
if(await response.ok) {
|
|
this.apiurl = await response.text();
|
|
console.log(this.apiurl);
|
|
} else {
|
|
console.log("Failed to get apiurl");
|
|
}
|
|
}
|
|
|
|
|
|
async login(username: string , password: string) {
|
|
let promise = await fetch(`http://localhost:8000/token/`, {
|
|
method: "POST",
|
|
headers: {
|
|
"Content-Type": "application/x-www-form-urlencoded",
|
|
"accept": "application/json",
|
|
"access-control-allow-origin": "*",
|
|
"Access-Control-Allow-Methods": "POST",
|
|
"Access-Control-Allow-Credentials": "true",
|
|
},
|
|
body: new URLSearchParams({
|
|
username: username,
|
|
password: password
|
|
})
|
|
|
|
});
|
|
if(await promise.ok) {
|
|
this.token = (await promise.json())['access_token'];
|
|
console.log(this.token);
|
|
} else {
|
|
console.log("Failed to login");
|
|
}
|
|
}
|
|
|
|
async get(path) {
|
|
console.log(this.token);
|
|
let promise = await fetch(`${this.apiurl}${path}/`, {
|
|
method: "GET",
|
|
headers: {
|
|
"accept": "application/json",
|
|
"Authorization": `Bearer ${this.token}`,
|
|
"Access-Control-Allow-Origin": "http://localhost:8000",
|
|
"Access-Control-Allow-Methods": "GET",
|
|
"Access-Control-Allow-Credentials": "true",
|
|
}
|
|
});
|
|
if(await promise.ok) {
|
|
let data = await promise.json();
|
|
return data;
|
|
}
|
|
}
|
|
|
|
async post(path){
|
|
let promise = await fetch(`${this.apiurl}${path}/`, {
|
|
method: "POST",
|
|
headers: {
|
|
"accept": "application/json",
|
|
"Authorization": `Bearer ${this.token}`,
|
|
"Access-Control-Allow-Origin": "http://localhost:8000",
|
|
"Access-Control-Allow-Methods": "POST",
|
|
"Access-Control-Allow-Credentials": "true",
|
|
}
|
|
});
|
|
if(await promise.ok) {
|
|
let data = await promise.json();
|
|
return data;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
export const Api = new ApiController();
|