UNPKG

nodejs-google-adwords

Version:
160 lines (159 loc) 4.28 kB
import * as soap from 'soap'; import { IAuthService } from './AuthService'; import { AdwordsOperartionService } from './AdwordsOperationService'; interface ISoapHeader { clientCustomerId?: string; developerToken: string; userAgent: string; validateOnly: boolean; partialFailure: boolean; } interface ISoapServiceOpts { authService: IAuthService; url: string; serviceName: string; xmlns: string; header: ISoapHeader; verbose?: boolean; gzip?: boolean; } interface IResponse<Rval> { rval: Rval; } declare type SoapClient = soap.Client; declare class SoapService extends AdwordsOperartionService { private url; private authService; private client; private header; private verbose; private serviceName; private namespace; private description; private xmlns; private gzip; constructor(options: ISoapServiceOpts); setVerbose(val: boolean): void; /** * enable/disable http request gzip * * @author dulin * @param {boolean} val * @memberof SoapService */ setGzip(gzip: boolean): void; setHeader(header: ISoapHeader): void; getClient(): Promise<soap.Client>; /** * mutate operation * * @author dulin * @template Operation * @template Response * @param {Operation[]} operations * @returns {Promise<Response>} * @memberof SoapService */ mutateAsync<Operation, Rval>(operations: Operation[], operationType?: string): Promise<Rval>; /** * parse mutate response * * @author dulin * @template Response * @param {Response} response * @returns * @memberof SoapService */ parseMutateResponse<Rval>(response: IResponse<Rval>): any; /** * mutate label * * @author dulin * @template Operation * @template Rval * @param {Operation[]} operations * @returns {Promise<Rval>} * @memberof SoapService */ mutateLabelAsync<Operation, Rval>(operations: Operation[], operationType: string): Promise<Rval>; /** * get operation * * @author dulin * @template ServiceSelector * @template Rval * @param {ServiceSelector} serviceSelector * @returns {Promise<Rval>} * @memberof SoapService */ get<ServiceSelector, Rval>(serviceSelector: ServiceSelector): Promise<Rval | undefined>; /** * parse get response * * @author dulin * @template Rval * @param {IResponse<Rval>} response * @returns {(Rval | undefined)} * @memberof SoapService */ parseGetResponse<Rval>(response: IResponse<Rval>): Rval | undefined; private beforeSendRequest; /** * form get parameter * https://github.com/mrdulin/nodejs-google-adwords/issues/2 * * @author dulin * @private * @template T * @param {T} serviceSelector * @returns * @memberof SoapService */ private formGetRequest; private formMutateRequest; /** * XML element order matters * * @author dulin * @private * @param {*} src * @param {*} toMatch * @returns * @memberof SoapService */ private matchJSONKeyOrder; /** * create soap client * * @author dulin * @private * @param {string} url * @param {IOAuthRefreshedCredential} credentials * @returns {Promise<void>} * @memberof SoapService */ private createSoapClient; /** * form http request core options * * gzip compress * https://developers.google.com/adwords/api/docs/guides/bestpractices#use_compression * For backwards-compatibility, response compression is not supported by default. To accept gzip-compressed responses, set the gzip option to true * * @author dulin * @private * @returns {CoreOptions} * @memberof SoapService */ private formHttpRequestOptions; /** * handle soap client events * https://developers.google.com/adwords/api/docs/guides/call-structure#response_headers * * @author dulin * @private * @memberof SoapService */ private listenSoapClientEvents; } export { SoapService, ISoapServiceOpts, IResponse, SoapClient, ISoapHeader };