seepur/resources/scripts/applications/services/admin.api.service.ts
2020-04-12 10:25:42 -04:00

128 lines
2.8 KiB
TypeScript

export default class AdminApiService {
static async getAllUsers() {
return (await fetch('/api/v1/admin/users')).json();
}
static async addStunServer(payload: { port: number, url: string }) {
const options = {
method: 'POST',
body: JSON.stringify({
type: 'STUN',
...payload
}),
headers: {
'Content-Type': 'application/json'
}
}
try {
return (await fetch('/api/v1/admin/ice/stun', options)).json();
} catch (error) {
return error;
}
}
static async addTurnServer(payload: { port: number, url: string, secret: string, protocols: string }) {
const options = {
method: 'POST',
body: JSON.stringify({
type: 'TURN',
...payload
}),
headers: {
'Content-Type': 'application/json'
}
}
try {
return (await fetch('/api/v1/admin/ice/turn', options)).json();
} catch (error) {
return error;
}
}
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 (error) {
return error;
}
}
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(e);
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(e);
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(e);
return false;
}
}
}
interface IApiResponse {
code: number;
data?: any;
message?: string;
}