UNPKG

@iletimerkezi/iletimerkezi-node

Version:
92 lines 3.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BlacklistService = void 0; const BlacklistResponse_1 = require("../responses/BlacklistResponse"); const BaseResponse_1 = require("../responses/BaseResponse"); class BlacklistService { constructor(httpClient, apiKey, apiHash) { this.httpClient = httpClient; this.apiKey = apiKey; this.apiHash = apiHash; this.lastFilter = null; this.lastPage = null; this.rowCount = 1000; } /** * Get blacklisted numbers * @param filter Optional filter parameters (start date, end date, page, rowCount) */ async list(page, filter) { page = page || 1; const payload = { request: { authentication: { key: this.apiKey, hash: this.apiHash, }, blacklist: { ...(filter && { filter: { ...(filter.start && { start: filter.start }), ...(filter.end && { end: filter.end }) }, }), page: page, rowCount: this.rowCount, } }, }; this.lastFilter = filter || null; this.lastPage = page; const response = await this.httpClient.post('get-blacklist/json', payload); return new BlacklistResponse_1.BlacklistResponse(response.getBody(), response.getStatusCode(), page); } /** * Get next page of blacklisted numbers * @throws Error if list() hasn't been called before */ async next() { if (!this.lastPage) { throw new Error('No previous request found. Call list() first.'); } return this.list(this.lastPage + 1, this.lastFilter || undefined); } /** * Add numbers to blacklist */ async add(numbers) { const payload = { request: { authentication: { key: this.apiKey, hash: this.apiHash, }, blacklist: { number: Array.isArray(numbers) ? numbers[0] : numbers }, }, }; const response = await this.httpClient.post('add-blacklist/json', payload); return new BaseResponse_1.BaseResponse(response.getBody(), response.getStatusCode()); } /** * Remove numbers from blacklist */ async remove(numbers) { const payload = { request: { authentication: { key: this.apiKey, hash: this.apiHash, }, blacklist: { number: Array.isArray(numbers) ? numbers[0] : numbers }, }, }; const response = await this.httpClient.post('delete-blacklist/json', payload); return new BaseResponse_1.BaseResponse(response.getBody(), response.getStatusCode()); } } exports.BlacklistService = BlacklistService; //# sourceMappingURL=BlacklistService.js.map