nodejs-google-adwords
Version:
Google Ads API Client Library for Node.js
160 lines (159 loc) • 4.28 kB
TypeScript
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 };