Files
info-target-mobile/screens/profile/lib/api.ts
Samandar Turgunboyev d747c72c8d complated
2026-02-17 10:46:57 +05:00

145 lines
3.9 KiB
TypeScript

import httpClient from '@/api/httpClient';
import { API_URLS } from '@/api/URLs';
import { ProductBody, ProductResponse } from '@/screens/home/lib/types';
import { AxiosResponse } from 'axios';
import {
ExployeesResponse,
MyAdsData,
MyAdsDataRes,
MyBonusesData,
NotificationListRes,
UserInfoResponseData,
} from './type';
export const user_api = {
async getMe(): Promise<AxiosResponse<UserInfoResponseData>> {
const res = await httpClient.get(API_URLS.Get_Me);
return res;
},
async updateMe(body: {
first_name: string;
industries: {
id: number;
name: string;
code: string;
external_id: null | number;
level: number;
is_leaf: boolean;
icon_name: null | string;
parent: {
id: number;
name: string;
code: string;
};
}[];
person_type: 'employee' | 'legal_entity' | 'ytt' | 'band';
phone: string;
activate_types: number[];
age: number | null;
gender: 'male' | 'female' | null;
}) {
const res = await httpClient.patch(API_URLS.User_Update, body);
return res;
},
async employess(params: {
page: number;
page_size: number;
}): Promise<AxiosResponse<ExployeesResponse>> {
const res = await httpClient.get(API_URLS.Employee_List, { params });
return res;
},
async create_employee(body: { first_name: string; last_name: string; phone: string }) {
const res = await httpClient.post(API_URLS.Employee_List, body);
return res;
},
async my_ads(params: { page: number; page_size: number }): Promise<AxiosResponse<MyAdsData>> {
const res = await httpClient.get(API_URLS.My_Ads, { params });
return res;
},
async my_ads_detail(id: number): Promise<AxiosResponse<{ status: boolean; data: MyAdsDataRes }>> {
const res = await httpClient.get(API_URLS.My_Ads_Detail(id));
return res;
},
async my_bonuses(params: {
page: number;
page_size: number;
}): Promise<AxiosResponse<MyBonusesData>> {
const res = await httpClient.get(API_URLS.My_Bonuses, { params });
return res;
},
async my_sevices(params: {
page: number;
page_size: number;
my: boolean;
}): Promise<AxiosResponse<ProductBody>> {
const res = await httpClient.get(API_URLS.Get_Products, { params });
return res;
},
async add_service(body: FormData) {
const res = await httpClient.post(API_URLS.Get_Products, body, {
headers: { 'Content-Type': 'multipart/form-data' },
});
return res;
},
async update_service({ body, id }: { body: FormData; id: number }) {
const res = await httpClient.patch(API_URLS.Detail_Products(id), body, {
headers: { 'Content-Type': 'multipart/form-data' },
});
return res;
},
async delete_service(id: number) {
const res = await httpClient.delete(API_URLS.Delete_Products(id));
return res;
},
async detail_service(
id: number
): Promise<AxiosResponse<{ status: boolean; data: ProductResponse }>> {
const res = await httpClient.get(API_URLS.Detail_Products(id));
return res;
},
async my_referrals(params: { page: number; page_size: number }) {
const res = await httpClient.get(API_URLS.My_Refferals, { params });
return res;
},
async create_referral(body: {
code: string;
referral_share: number;
description: string;
is_agent: boolean;
}) {
const res = await httpClient.post(API_URLS.My_Refferals, body);
return res;
},
async notification_list(params: {
page: number;
page_size: number;
}): Promise<AxiosResponse<NotificationListRes>> {
const res = await httpClient.get(API_URLS.Notification_List, { params });
return res;
},
async is_ready_id(id: number) {
const res = await httpClient.post(API_URLS.Notification_Ready(id));
return res;
},
async mark_all_as_read() {
const res = await httpClient.post(API_URLS.Notification_Mark_All_Read);
return res;
},
};