@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
96 lines • 3.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createTodosResource = createTodosResource;
exports.createTodosDataResource = createTodosDataResource;
const schemas_1 = require("../schemas");
/**
* Creates the todos resource methods
* OpenAPI Path: /todos → todos.*
* @description Methods for managing Basecamp2 todos
*/
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: schemas_1.TodoListParamsSchema,
responseSchema: schemas_1.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: schemas_1.TodoGetParamsSchema,
responseSchema: schemas_1.TodoResponseSchema,
}, params);
},
};
}
/**
* Creates the todosData resource methods (data-only versions)
*/
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