@jokoor/sdk
Version:
Jokoor SMS API SDK for JavaScript/TypeScript
89 lines • 2.87 kB
JavaScript
;
/**
* 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