Files
hipmi-mobile/service/api-client/api-job.ts
bagasbanuna 48196cd46b Fix Load data pada halaman yang membutuhkan infinite load
Job – User App
- app/(application)/(user)/job/(tabs)/index.tsx
- app/(application)/(user)/job/(tabs)/status.tsx
- app/(application)/(user)/job/(tabs)/archive.tsx
- app/(application)/(user)/job/create.tsx

Job – Screens
- screens/Job/ScreenBeranda.tsx
- screens/Job/ScreenBeranda2.tsx
- screens/Job/MainViewStatus.tsx
- screens/Job/MainViewStatus2.tsx
- screens/Job/ScreenArchive.tsx
- screens/Job/ScreenArchive2.tsx

API – Job (Client)
- service/api-client/api-job.ts

Notification
- screens/Notification/ScreenNotification.tsx

Docs
- QWEN.md
- docs/prompt-for-qwen-code.md

### No Issue
2026-02-02 17:09:58 +08:00

110 lines
2.2 KiB
TypeScript

import { apiConfig } from "../api-config";
export async function apiJobCreate(data: any) {
try {
const response = await apiConfig.post(`/mobile/job`, {
data: data,
});
return response.data;
} catch (error) {
throw error;
}
}
export async function apiJobGetByStatus({
authorId,
status,
page = "1",
}: {
authorId: string;
status: string;
page?: string;
}) {
try {
const response = await apiConfig.get(`/mobile/job/${authorId}/${status}?page=${page}`);
return response.data;
} catch (error) {
throw error;
}
}
export async function apiJobGetOne({ id }: { id: string }) {
try {
const response = await apiConfig.get(`/mobile/job/${id}`);
return response.data;
} catch (error) {
throw error;
}
}
export async function apiJobUpdateStatus({
id,
status,
}: {
id: string;
status: "draft" | "review" | "publish" | "reject";
}) {
try {
const response = await apiConfig.put(`/mobile/job/${id}/${status}`);
return response.data;
} catch (error) {
throw error;
}
}
export async function apiJobDelete({ id }: { id: string }) {
try {
const response = await apiConfig.delete(`/mobile/job/${id}`);
return response.data;
} catch (error) {
throw error;
}
}
export async function apiJobGetAll({
search,
category,
authorId,
page = "1",
}: {
search?: string;
category: "archive" | "beranda";
authorId?: string;
page?: string;
}) {
try {
let categoryText = category ? `?category=${category}` : "";
if (category === "archive") {
categoryText = `?category=${category}&authorId=${authorId}`;
}
const searchText = search ? `&search=${search}` : "";
const pageText = `&page=${page}`;
const response = await apiConfig.get(
`/mobile/job${categoryText}${searchText}${pageText}`
);
return response.data;
} catch (error) {
throw error;
}
}
export async function apiJobUpdateData({
id,
data,
category,
}: {
id: string;
data: any;
category: "edit" | "archive";
}) {
try {
const categoryJob = category ? `?category=${category}` : "";
const response = await apiConfig.put(`/mobile/job/${id}${categoryJob}`, {
data: data,
});
return response.data;
} catch (error) {
throw error;
}
}