122 lines
2.8 KiB
TypeScript
122 lines
2.8 KiB
TypeScript
export default class ApiService {
|
|
|
|
static async deleteUser(user: any) {
|
|
try{
|
|
return (await fetch(`/api/v1/admin/user/${user.id}`, {method: 'DELETE'})).json();
|
|
}
|
|
catch (e) {
|
|
console.error(`deleteUser ERROR: ${e.message}`);
|
|
return e;
|
|
}
|
|
}
|
|
|
|
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 updateChild(child_id: number, data: any) {
|
|
const options = {
|
|
method: 'POST',
|
|
body: JSON.stringify(data),
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
}
|
|
};
|
|
try {
|
|
const response = await fetch(`/api/v1/client/child/${child_id}`, 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);
|
|
return response.json();
|
|
} catch (e) {
|
|
console.error(`createChild ERROR: ${e.message}`);
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
|
|
interface IApiResponse {
|
|
code: number;
|
|
data?: any;
|
|
message?: string;
|
|
}
|