UNPKG

@jokoor/sdk

Version:
83 lines 2.81 kB
"use strict"; /** * Contacts resource - User-friendly wrapper for SMS contacts API */ Object.defineProperty(exports, "__esModule", { value: true }); exports.Contacts = void 0; const base_1 = require("./base"); const api_1 = require("../generated/api"); const result_1 = require("../types/result"); class Contacts extends base_1.BaseResource { constructor(configuration) { super(configuration); this.api = new api_1.SMSContactsApi(configuration); } /** * Create a new contact * @param params Contact creation parameters * @returns Created contact */ async create(params) { const apiParams = this.convertParamsToSnakeCase(params); const result = await this.handleApiCall(() => this.api.v1SmsContactsPost(apiParams)); if ((0, result_1.isErr)(result)) { return result; } return (0, result_1.ok)(this.convertKeysToCamelCase(result.data)); } /** * Get a contact by ID * @param id Contact ID * @returns Contact details */ async get(id) { // Validate ID is not empty if (!id || id.trim() === '') { return (0, result_1.err)('Contact ID is required'); } const result = await this.handleApiCall(() => this.api.v1SmsContactsIdGet(id)); if ((0, result_1.isErr)(result)) { return result; } return (0, result_1.ok)(this.convertKeysToCamelCase(result.data)); } /** * Update a contact * @param id Contact ID * @param params Update parameters * @returns Updated contact */ async update(id, params) { const apiParams = this.convertParamsToSnakeCase(params); const result = await this.handleApiCall(() => this.api.v1SmsContactsIdPut(id, apiParams)); if ((0, result_1.isErr)(result)) { return result; } return (0, result_1.ok)(this.convertKeysToCamelCase(result.data)); } /** * Delete a contact * @param id Contact ID * @returns Deletion confirmation */ async delete(id) { return await this.handleApiCall(() => this.api.v1SmsContactsIdDelete(id)); } /** * List contacts * @param options List options * @returns Paginated list of contacts */ async list(options) { const result = await this.handlePaginatedApiCall(() => this.api.v1SmsContactsGet(options?.limit, options?.offset, options?.search, options?.groupId, options?.sort)); if ((0, result_1.isErr)(result)) { return result; } return (0, result_1.ok)({ ...result.data, items: result.data.items.map(item => this.convertKeysToCamelCase(item)) }); } } exports.Contacts = Contacts; //# sourceMappingURL=contacts.js.map