import { request } from '../../../utils'; import { API } from '../../../types'; import { ResponseType } from '../response-type'; import { UserRegistrationData, UserResetPasswordData, JoinTestTypes } from './queries'; export interface PostLoginUserReturn extends ResponseType { token: string; uid: string; } export interface PostRegisterUserReturn extends ResponseType { token: string; // TODO: optional uid: string; mail: 1 | 0; } export interface UserResetPasswordReturn extends ResponseType {} export interface UserJoinTestReturn extends ResponseType { field: 'USERNAME USED' | 'EMAIL USED'; } export const authApi = { loginUser: (data: { login: string; pass: string }) => request.postForm(API.LOGIN, data), registerUser: (data: UserRegistrationData) => { const formData = new FormData(); formData.append('user', JSON.stringify(data.user)); formData.append('photo', { type: data.photo.type, uri: data.photo.uri, name: data.photo.name } as unknown as Blob); return request.postForm(API.REGISTER, formData); }, resetPassword: (data: UserResetPasswordData) => request.postForm(API.RESET_PASSWORD, data), joinTest: (data: JoinTestTypes) => request.postForm(API.JOIN_TEST, data) };