UNPKG

zerobounce

Version:
93 lines (92 loc) 3.76 kB
"use strict"; 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;