@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
92 lines • 3.04 kB
JavaScript
import { TodoListParamsSchema, TodoGetParamsSchema, TodoResponseSchema, TodoListResponseSchema, } from '../schemas';
/**
* Creates the todos resource methods
* OpenAPI Path: /todos → todos.*
* @description Methods for managing Basecamp2 todos
*/
export function createTodosResource(executeRequest) {
return {
/**
* List all todos with pagination
*
* @fullPath api.basecamp2.todos.list
* @service basecamp2
* @domain project-management
* @dataMethod todosData.list
* @discoverable true
* @searchTerms ["todos", "tasks", "list", "basecamp", "project management"]
*
* @param params List parameters including pagination and ordering
* @returns Promise<TodoListResponse> Paginated list of todos
*/
list: async (params) => {
return executeRequest({
method: 'GET',
path: '/todos',
paramsSchema: TodoListParamsSchema,
responseSchema: TodoListResponseSchema,
}, params);
},
/**
* Get a specific todo by ID
*
* @fullPath api.basecamp2.todos.get
* @service basecamp2
* @domain project-management
* @dataMethod todosData.get
* @discoverable true
* @searchTerms ["todo", "task", "get", "details", "basecamp"]
*
* @param id Todo ID
* @param params Request parameters with site ID
* @returns Promise<TodoResponse> Todo details
*/
get: async (id, params) => {
return executeRequest({
method: 'GET',
path: `/todos/${id}`,
paramsSchema: TodoGetParamsSchema,
responseSchema: TodoResponseSchema,
}, params);
},
};
}
/**
* Creates the todosData resource methods (data-only versions)
*/
export function createTodosDataResource(todos) {
return {
/**
* List todos data without full response metadata
*
* @fullPath api.basecamp2.todosData.list
* @service basecamp2
* @domain project-management
* @discoverable true
*
* @param params List parameters
* @returns Promise<TodoData[]> Array of todo data objects
*/
list: async (params) => {
const response = await todos.list(params);
return response.data;
},
/**
* Get todo data without full response metadata
*
* @fullPath api.basecamp2.todosData.get
* @service basecamp2
* @domain project-management
* @discoverable true
*
* @param id Todo ID
* @param params Request parameters
* @returns Promise<TodoData> Todo data object
*/
get: async (id, params) => {
const response = await todos.get(id, params);
return response.data;
},
};
}
//# sourceMappingURL=todos.js.map