This repository has been archived on 2024-12-15. You can view files and clone it, but cannot push or open issues or pull requests.
seepur/resources/scripts/applications/services/api.service.ts
2020-05-01 13:24:22 -04:00

116 lines
2.7 KiB
TypeScript

export default class ApiService {
static async getUser(userId?: number) {
try {
return (await fetch('/api/v1/client/user/')).json();
} catch (e) {
console.error(`getUser ERROR: ${e.message}`);
return e;
}
}
static async getAllUsers() {
try {
return (await fetch('/api/v1/admin/users')).json();
} catch (e) {
console.error(`getAllUsers ERROR: ${e.message}`);
return e;
}
}
static async getChild(id: number): Promise<IApiResponse> {
try {
return (await fetch(`/api/v1/client/child/${id}`)).json();
} catch (e) {
console.error(`getChild ERROR: ${e.message}`);
return e;
}
}
static async createConnection(payload: { child_id: number, email: string, is_parent: boolean }) {
const options = {
method: 'POST',
body: JSON.stringify(payload),
headers: {
'Content-Type': 'application/json'
}
}
try {
return (await fetch('/api/v1/client/connections/create', options)).json();
} catch (e) {
console.error(`createConnection ERROR: ${e.message}`);
return e;
}
}
static async updateChildCover(child_id: number, profile_cover: string) {
const options = {
method: 'POST',
body: JSON.stringify({
profile_cover
}),
headers: {
'Content-Type': 'application/json'
}
};
try {
const response = await fetch(`/api/v1/client/child/${child_id}/profile/cover`, options);
console.log(response);
return response.json();
} catch (e) {
console.error(`updateChildCover ERROR: ${e.message}`);
return false;
}
};
static async createCall(payload: { connection_id: number, child_id: number }) {
const options = {
method: 'POST',
body: JSON.stringify(payload),
headers: {
'Content-Type': 'application/json'
}
};
try {
const response = await fetch('/api/v1/client/call/create', options);
return response.json();
} catch (e) {
console.error(`createCall ERROR: ${e.message}`);
return false;
}
}
static async createChild(name: string, dob: Date, avatar: string): Promise<any> {
const options = {
method: 'POST',
body: JSON.stringify({
name,
dob,
avatar
}),
headers: {
'Content-Type': 'application/json'
}
};
try {
const response = await fetch('/api/v1/client/child/', options);
console.log(response);
return response.json();
} catch (e) {
console.error(`createChild ERROR: ${e.message}`);
return false;
}
}
}
interface IApiResponse {
code: number;
data?: any;
message?: string;
}