import httpClient from '@/api/httpClient'; import { API_URLS } from '@/api/URLs'; import axios, { AxiosResponse } from 'axios'; interface ConfirmBody { status: boolean; data: { detail: string; token: { access: string; refresh: string; }; }; } export interface GetInfo { VATRegCode: null | string VATRegStatus: null | string account: string accountant: null | string address: string bankAccount: string bankCode: string director: string | null directorPinfl: string | null directorTin: null | string fullName: string fullname: string isBudget: number isItd: boolean mfo: string na1Code: null | string na1Name: null | string name: string ns10Code: number ns11Code: number oked: null | string peasantFarm: boolean personalNum: string privateNotary: boolean regDate: null | string selfEmployment: boolean shortName: string shortname: string statusCode: null | string statusName: null | string tin: string } export interface GetDistrict { districtId: string, regionId: number, districtCode: number, name: string } export interface GetRegion { regionId: number, name: string } export interface GetTokens { status: boolean, data: { links: { previous: null | string, next: null | string }, total_items: number, total_pages: number, page_size: number, current_page: number, results: { id: number, key: string, value: string, is_active: boolean }[] } } export const auth_api = { async login(body: { phone: string }) { const res = await httpClient.post(API_URLS.LOGIN, body); return res; }, async verify_otp(body: { code: string; phone: string }): Promise> { const res = await httpClient.post(API_URLS.LoginConfirm, body); return res; }, async resend_otp(body: { phone: string }) { const res = await httpClient.post(API_URLS.ResendOTP, body); return res; }, async get_info(body: { value: string, token: string, tokenName: string }): Promise> { try { const res = await axios.get(`https://testapi3.didox.uz/v1/utils/info/${body.value}`, { headers: { "Accept-Language": "uz", [body.tokenName]: body.token } }); return res; } catch (error) { throw error; } }, async get_district(body: { token: string, tokenName: string }): Promise> { try { const res = await axios.get(`https://testapi3.didox.uz/v1/districts/all/`, { headers: { "Accept-Language": "uz", [body.tokenName]: body.token } }); return res; } catch (error) { throw error; } }, async get_region(body: { token: string, tokenName: string }): Promise> { try { const res = await axios.get(`https://testapi3.didox.uz/v1/regions/all/`, { headers: { "Accept-Language": "uz", [body.tokenName]: body.token } }); return res; } catch (error) { throw error; } }, async register(body: { phone: string; stir: string; person_type: string; referral: string; activate_types: number[]; director_full_name: string; first_name: string; last_name: string; district: number; address: number; company_name: string; }) { const res = await httpClient.post(API_URLS.Register, body); return res; }, async register_confirm(body: { phone: string; code: string }) { const res = await httpClient.post(API_URLS.Register_Confirm, body); return res; }, async register_resend(body: { phone: string }) { const res = await httpClient.post(API_URLS.Register_Resend, body); return res; }, async get_tokens(): Promise> { const res = httpClient.get(API_URLS.GetTokens) return res }, };