18 lines
1.0 KiB
TypeScript
18 lines
1.0 KiB
TypeScript
import api from './client';
|
|
import type { YybTask, YybSelectionOptions } from './types';
|
|
|
|
export const yybApi = {
|
|
createTask: () => api.post<YybTask, YybTask>('/yyb/tasks', {}),
|
|
login: (id: number, provider: 'qq' | 'wechat') =>
|
|
api.post<YybTask, YybTask>(`/yyb/tasks/${id}/login`, { provider, timeout: 600 }),
|
|
getTask: (id: number) => api.get<YybTask, YybTask>(`/yyb/tasks/${id}`),
|
|
listTasks: () => api.get<YybTask[], YybTask[]>('/yyb/tasks'),
|
|
options: (id: number, platform: 'android' | 'ios', points?: number, zone_id?: string) =>
|
|
api.get<YybSelectionOptions, YybSelectionOptions>(`/yyb/tasks/${id}/selection-options`, {
|
|
params: { platform, ...(points ? { points } : {}), ...(zone_id ? { zone_id } : {}) },
|
|
}),
|
|
select: (id: number, data: { platform: 'android' | 'ios'; points: number; product_id: string; zone_id: string; zone_name: string; role_id: string; role_name: string }) =>
|
|
api.post<YybTask, YybTask>(`/yyb/tasks/${id}/selection`, data),
|
|
payment: (id: number) => api.post<YybTask, YybTask>(`/yyb/tasks/${id}/payment`),
|
|
};
|