127 lines
2.8 KiB
TypeScript
127 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;
|
|
}
|