zerobounce
Version:
ZeroBounce Email Verification Library
93 lines (92 loc) • 3.76 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Api = exports.API_URL = void 0;
const credits_1 = require("./credits");
const validate_1 = require("./validate");
const response_type_1 = require("./response-type");
const response_error_1 = require("./response-error");
const axios_1 = require("axios");
exports.API_URL = 'https://api.zerobounce.net/v2';
class Api {
constructor(apiKey) {
this.apiKey = apiKey;
this.apiURL = exports.API_URL;
}
setApiURL(url) {
this.apiURL = url;
return this;
}
getApiURL() {
return this.apiURL;
}
setApiKey(url) {
this.apiKey = url;
return this;
}
getApiKey() {
return this.apiKey;
}
getCredits() {
return __awaiter(this, void 0, void 0, function* () {
const url = `${this.getApiURL()}/getcredits?api_key=${this.getApiKey()}`;
const response = yield axios_1.default.get(url, {
responseType: 'json',
});
if (response.status !== 200) {
throw new Error('Unexpected status code from the server');
}
const responseJSON = response.data;
const success = credits_1.CreditsResponseSuccess.fromAny(responseJSON);
if (success !== null) {
const resp = new response_type_1.ResponseType();
resp.success = success;
return resp;
}
const error = response_error_1.ResponseError.fromAny(responseJSON);
if (error !== null) {
const resp = new response_type_1.ResponseType();
resp.error = error;
return resp;
}
throw new Error('Unable to decode the response from the server');
});
}
validate(email, ipAddress = null) {
return __awaiter(this, void 0, void 0, function* () {
let url = `${this.getApiURL()}/validate?api_key=${this.getApiKey()}&email=${email}`;
if (ipAddress) {
url = `${url}&ip_address=${ipAddress}`;
}
const response = yield axios_1.default.get(url, {
responseType: 'json',
});
if (response.status !== 200) {
throw new Error('Unexpected status code from the server');
}
const responseJSON = response.data;
const success = validate_1.ValidateResponseSuccess.fromAny(responseJSON);
if (success !== null) {
const resp = new response_type_1.ResponseType();
resp.success = success;
return resp;
}
const error = response_error_1.ResponseError.fromAny(responseJSON);
if (error !== null) {
const resp = new response_type_1.ResponseType();
resp.error = error;
return resp;
}
throw new Error('Unable to decode the response from the server');
});
}
}
exports.Api = Api;