UNPKG

chamesu

Version:

This package contains all packages of the chat application.

71 lines (55 loc) 2.44 kB
/* * Copyright (c) 2022. * Author Peter Placzek (tada5hi) * For the full copyright and license information, * view the LICENSE file that was distributed with this source code. */ import {CollectionResponseType, ResourceResponseType} from "@/modules/api/type"; import {AuthUser} from "@chamesu/common/domains/auth/user"; import {AuthUserImageType} from "@chamesu/common/domains/auth/user/type"; import {useApi} from "~/modules/api"; import {formatRequestRecord, RequestRecord} from "~/modules/api/utils"; export async function getUsers<T extends CollectionResponseType<AuthUser>>(options?: RequestRecord) : Promise<T> { const { data: response } = await useApi('auth').get<T>('auth/users' + formatRequestRecord(options)); return response; } export async function getUser<T extends ResourceResponseType<AuthUser>>(id: number) : Promise<T> { const { data: response } = await useApi('auth').get<T>('auth/users/'+id); return response; } export async function dropUser<T extends ResourceResponseType<AuthUser>>(id: number) : Promise<T> { const { data: response } = await useApi('auth').delete<T>('auth/users/'+id); return response; } export async function addUser<T extends ResourceResponseType<AuthUser>>(data: {[key: string] : any}) : Promise<T> { const { data: response } = await useApi('auth').post<T>('auth/users',data); return response; } export async function editUser<T extends ResourceResponseType<AuthUser>>(userId: number, data: {[key: string] : any}) : Promise<T> { const { data: response } = await useApi('auth').post<T>('auth/users/'+userId, data); return response; } export async function editUserImage<T extends ResourceResponseType<AuthUser>>( userId: number, type: AuthUserImageType, image: string | Blob, data: { coordinates: Record<string, any>, visibleArea: Record<string, any> } ) : Promise<T> { const formData = new FormData(); formData.append(type, image); for(let key in data) { for(let keySecond in data[key]) { if(!data[key].hasOwnProperty(keySecond)) continue; formData.append(key+keySecond.charAt(0).toUpperCase() + keySecond.substr(1), data[key][keySecond]); } } const { data: response } = await useApi('auth').post<T>('auth/users/'+userId, formData, { headers: { 'Content-Type': 'multipart/form-data' } }); return response; }