@iletimerkezi/iletimerkezi-node
Version:
İleti Merkezi Node.js SDK
92 lines • 3.18 kB
JavaScript
"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