12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- import type { Options, SearchParams, SearchResponse, SomeRequired, WithId } from './lib'
- import { request, writeSearchParams } from './lib'
- export interface Task {
-
- _herd: string
-
- _account: string
-
- description: string
-
- position: number
-
- done: boolean
- }
- export interface CreateTaskRequest {
- task: SomeRequired<Task, '_herd' | '_account' | 'description'>
- }
- export interface CreateTaskResponse {
- task: WithId<Task>
- }
- export interface DeleteTaskResponse {
- task: WithId<Task>
- }
- export interface GetTaskResponse {
- task: WithId<Task>
- }
- export interface MoveTaskResponse {
- task: WithId<Task>
- tasks: {
- affectedCount: number
- }
- }
- export interface ToggleTaskDoneResponse {
- task: WithId<Task>
- }
- export interface UpdateTaskRequest {
- task: Partial<Task>
- }
- export interface UpdateTaskResponse {
- task: WithId<Task>
- }
- export async function createTask(opt: Options, data: CreateTaskRequest): Promise<CreateTaskResponse> {
- return request(opt, 'POST', '/task', undefined, data)
- }
- export async function deleteTask(opt: Options, id: string): Promise<DeleteTaskResponse> {
- return request(opt, 'DELETE', `/task/${id}`)
- }
- export async function getTask(opt: Options, id: string): Promise<GetTaskResponse> {
- return request(opt, 'GET', `/task/${id}`)
- }
- export async function moveTask(opt: Options, id: string, position: number): Promise<MoveTaskResponse> {
- return request(opt, 'PATCH', `/task/${id}/move/${position}`)
- }
- export async function searchTasks(opt: Options, herd?: string, params?: SearchParams): Promise<SearchResponse<GetTaskResponse>> {
- return request(opt, 'GET', herd ? `/herd/${herd}/tasks` : '/tasks', params && writeSearchParams(params))
- }
- export async function toggleTaskDone(opt: Options, id: string): Promise<ToggleTaskDoneResponse> {
- return request(opt, 'PATCH', `/task/${id}/done`)
- }
- export async function updateTask(opt: Options, id: string, data: UpdateTaskRequest): Promise<UpdateTaskResponse> {
- return request(opt, 'PUT', `/task/${id}`, undefined, data)
- }
|