UNPKG

@jokoor/sdk

Version:
89 lines 2.87 kB
"use strict"; /** * Templates resource - User-friendly wrapper for SMS templates API */ Object.defineProperty(exports, "__esModule", { value: true }); exports.Templates = void 0; const base_1 = require("./base"); const api_1 = require("../generated/api"); const result_1 = require("../types/result"); class Templates extends base_1.BaseResource { constructor(configuration) { super(configuration); this.api = new api_1.SMSTemplatesApi(configuration); } /** * Create a new SMS template * @param params Template creation parameters * @returns Created template */ async create(params) { const apiParams = { name: params.name, body: params.body }; const result = await this.handleApiCall(() => this.api.v1SmsTemplatesPost(apiParams)); if ((0, result_1.isErr)(result)) { return result; } return (0, result_1.ok)(this.convertKeysToCamelCase(result.data)); } /** * Get a template by ID * @param id Template ID * @returns Template details */ async get(id) { // Validate ID is not empty if (!id || id.trim() === '') { return (0, result_1.err)('Template ID is required'); } const result = await this.handleApiCall(() => this.api.v1SmsTemplatesIdGet(id)); if ((0, result_1.isErr)(result)) { return result; } return (0, result_1.ok)(this.convertKeysToCamelCase(result.data)); } /** * Update a template * @param id Template ID * @param params Update parameters * @returns Updated template */ async update(id, params) { const apiParams = { name: params.name, body: params.body }; const result = await this.handleApiCall(() => this.api.v1SmsTemplatesIdPut(id, apiParams)); if ((0, result_1.isErr)(result)) { return result; } return (0, result_1.ok)(this.convertKeysToCamelCase(result.data)); } /** * Delete a template * @param id Template ID * @returns Deletion confirmation */ async delete(id) { return await this.handleApiCall(() => this.api.v1SmsTemplatesIdDelete(id)); } /** * List templates * @param options List options * @returns Paginated list of templates */ async list(options) { const result = await this.handlePaginatedApiCall(() => this.api.v1SmsTemplatesGet(options?.limit, options?.offset, options?.search)); 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.Templates = Templates; //# sourceMappingURL=templates.js.map