UNPKG

google-ads-node

Version:

Google Ads gRPC Client Library for Node

74 lines 5.93 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; result["default"] = mod; return result; }; Object.defineProperty(exports, "__esModule", { value: true }); const grpc_1 = __importDefault(require("grpc")); const auth_1 = __importDefault(require("./auth")); const interceptor_1 = require("./interceptor"); const services = __importStar(require("./services")); const DEFAULT_VERSION = "v0"; const GOOGLE_ADS_ENDPOINT = "googleads.googleapis.com:443"; class GoogleAdsClient { constructor(options) { this.validateOptions(options); if (this.usingToken(options)) { this.options = options; } else { /* Access token has not been provided */ this.options = options; this.auth = new auth_1.default({ clientId: this.options.client_id, clientSecret: this.options.client_secret, refreshToken: this.options.refresh_token, }); } } getService(serviceName) { const serviceClientName = `${serviceName}Client`; if (!services.hasOwnProperty(serviceClientName)) { throw new Error(`Specified service "${serviceName}" does not exist in Google Ads API ${DEFAULT_VERSION}.`); } const metadataInterceptor = new interceptor_1.MetadataInterceptor(this.options.developer_token, this.options.login_customer_id, this.options.access_token, this.auth); const exceptionInterceptor = new interceptor_1.ExceptionInterceptor(); const serviceClientConstructor = services[serviceClientName]; const service = new serviceClientConstructor(GOOGLE_ADS_ENDPOINT, grpc_1.default.credentials.createSsl(), { interceptors: [ (options, nextCall) => metadataInterceptor.intercept(options, nextCall), (options, nextCall) => exceptionInterceptor.intercept(options, nextCall), ], }); return service; } validateOptions(options) { if (!options) { throw new Error(`Client expects initialisation options`); } if (!options.developer_token) { throw new Error(`Missing required key "developer_token" in options`); } if (this.usingToken(options) && !options.access_token) { throw new Error(`Missing required keys in options, expected "access_token", "developer_token"`); } if (!this.usingToken(options)) { if (!options.client_id || !options.client_secret || !options.refresh_token) { throw new Error(`Missing required keys in options, expected "client_id", "client_secret", "client_secret"`); } } } usingToken(options) { return "access_token" in options; } } exports.GoogleAdsClient = GoogleAdsClient; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBQXdCO0FBRXhCLGtEQUEwQjtBQUMxQiwrQ0FBMEU7QUFDMUUscURBQXVDO0FBRXZDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQztBQUM3QixNQUFNLG1CQUFtQixHQUFHLDhCQUE4QixDQUFDO0FBaUIzRCxNQUFhLGVBQWU7SUFJMUIsWUFBWSxPQUFzRDtRQUNoRSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTlCLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQWlDLENBQUM7U0FDbEQ7YUFBTTtZQUNMLHdDQUF3QztZQUN4QyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQStCLENBQUM7WUFDL0MsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGNBQUksQ0FBQztnQkFDbkIsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUztnQkFDaEMsWUFBWSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYTtnQkFDeEMsWUFBWSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYTthQUN6QyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFTSxVQUFVLENBQUMsV0FBbUI7UUFDbkMsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLFdBQVcsUUFBUSxDQUFDO1FBRWpELElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLEVBQUU7WUFDL0MsTUFBTSxJQUFJLEtBQUssQ0FDYixzQkFBc0IsV0FBVyxzQ0FBc0MsZUFBZSxHQUFHLENBQzFGLENBQUM7U0FDSDtRQUVELE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxpQ0FBbUIsQ0FDakQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQzdCLElBQUksQ0FBQyxPQUFrQyxDQUFDLFlBQVksRUFDckQsSUFBSSxDQUFDLElBQUksQ0FDVixDQUFDO1FBQ0YsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLGtDQUFvQixFQUFFLENBQUM7UUFFeEQsTUFBTSx3QkFBd0IsR0FBSSxRQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFdEUsTUFBTSxPQUFPLEdBQUcsSUFBSSx3QkFBd0IsQ0FDMUMsbUJBQW1CLEVBQ25CLGNBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLEVBQzVCO1lBQ0UsWUFBWSxFQUFFO2dCQUNaLENBQ0UsT0FBeUIsRUFDekIsUUFBcUUsRUFDckUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDO2dCQUNyRCxDQUNFLE9BQXlCLEVBQ3pCLFFBQXFFLEVBQ3JFLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQzthQUN2RDtTQUNGLENBQ0YsQ0FBQztRQUVGLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFTyxlQUFlLENBQUMsT0FBc0Q7UUFDNUUsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztTQUMxRDtRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFO1lBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztTQUN0RTtRQUVELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFFLE9BQWtDLENBQUMsWUFBWSxFQUFFO1lBQ2pGLE1BQU0sSUFBSSxLQUFLLENBQ2IsOEVBQThFLENBQy9FLENBQUM7U0FDSDtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzdCLElBQ0UsQ0FBRSxPQUFnQyxDQUFDLFNBQVM7Z0JBQzVDLENBQUUsT0FBZ0MsQ0FBQyxhQUFhO2dCQUNoRCxDQUFFLE9BQWdDLENBQUMsYUFBYSxFQUNoRDtnQkFDQSxNQUFNLElBQUksS0FBSyxDQUNiLDBGQUEwRixDQUMzRixDQUFDO2FBQ0g7U0FDRjtJQUNILENBQUM7SUFFTyxVQUFVLENBQUMsT0FBc0Q7UUFDdkUsT0FBTyxjQUFjLElBQUksT0FBTyxDQUFDO0lBQ25DLENBQUM7Q0FDRjtBQXpGRCwwQ0F5RkMifQ==