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 { 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; }