UNPKG

google-ads-api

Version:

Google Ads API Client Library for Node.js

63 lines (62 loc) 4.19 kB
import { fields } from "./protos"; import { ConstraintKey, ConstraintOperation, ConstraintValue, ReportOptions, RequestOptions, RequestOptionsWithTotalResults, SortOrder } from "./types"; declare enum QueryKeywords { SELECT = "SELECT", FROM = "FROM", WHERE = "WHERE", ORDER_BY = "ORDER BY", LIMIT = "LIMIT", PARAMETERS = "PARAMETERS", AND = "AND", OR = "OR" } type ParsedConstraintValue = string | number | boolean; type ConstraintString = `${string} ${ConstraintOperation} ${ParsedConstraintValue}`; type SelectClause = `${QueryKeywords.SELECT} ${string}`; type FromClause = ` ${QueryKeywords.FROM} ${fields.Resource}`; type WhereClause = ` ${QueryKeywords.WHERE} ${string}` | ``; export type OrderClause = ` ${QueryKeywords.ORDER_BY} ${string} ${SortOrder}` | ` ${QueryKeywords.ORDER_BY} ${string}` | ``; type LimitClause = ` ${QueryKeywords.LIMIT} ${number}` | ``; type ParametersClause = ` ${QueryKeywords.PARAMETERS} ${string}` | ``; type Query = `${SelectClause}${FromClause}${WhereClause}${OrderClause}${LimitClause}${ParametersClause}`; export declare const QueryError: { INVALID_CONSTRAINTS_FORMAT: string; INVALID_CONSTRAINT_KEY: string; INVALID_CONSTRAINT_VALUE: (key: ConstraintKey, val: ConstraintValue) => string; INVALID_CONSTRAINT_OBJECT_FORMAT: string; INVALID_DATE_CONSTANT_TYPE: (dateConstant: ReportOptions["date_constant"]) => string; INVALID_FROM_DATE_TYPE: (fromDate: ReportOptions["from_date"]) => string; INVALID_TO_DATE_TYPE: (toDate: ReportOptions["to_date"]) => string; INVALID_LIMIT: string; INVALID_PARAMETERS: string; INVALID_ORDER: string; INVALID_ORDERLY: string; INVALID_ORDERBY: string; INVALID_SORT_ORDER: string; MISSING_FIELDS: string; MISSING_FROM_DATE: string; UNDEFINED_ENTITY: string; }; export declare function buildSelectClause(attributes: ReportOptions["attributes"], metrics: ReportOptions["metrics"], segments: ReportOptions["segments"]): SelectClause; export declare function buildFromClause(entity: ReportOptions["entity"]): FromClause; export declare function validateConstraintKeyAndValue(key: ConstraintKey, op: ConstraintOperation, val: ConstraintValue): { op: ConstraintOperation; val: ParsedConstraintValue; }; export declare function convertNumericEnumToString(key: ConstraintKey, val: ParsedConstraintValue): ParsedConstraintValue; export declare function extractConstraintConditions(constraints: Readonly<ReportOptions["constraints"]>): ConstraintString[]; export declare function extractDateConstantConditions(dateConstant: ReportOptions["date_constant"]): ConstraintString[]; export declare function extractDateConditions(fromDate: ReportOptions["from_date"], toDate: ReportOptions["to_date"]): ConstraintString[]; export declare function buildWhereClause(constraints: Readonly<ReportOptions["constraints"]>, dateConstant: Readonly<ReportOptions["date_constant"]>, fromDate: Readonly<ReportOptions["from_date"]>, toDate: Readonly<ReportOptions["to_date"]>): WhereClause; export declare function buildLimitClause(limit: ReportOptions["limit"]): LimitClause; export declare function buildParametersClause(parameters: Readonly<ReportOptions["parameters"]>): ParametersClause; export declare function completeOrderly(orderly: string, entity: ReportOptions["entity"]): string; export declare function buildOrderClauseOld(orderBy: Readonly<ReportOptions["order_by"]>, sortOrder: Readonly<ReportOptions["sort_order"]>, entity: Readonly<ReportOptions["entity"]>): OrderClause; export declare function buildOrderClauseNew(order: Readonly<Required<ReportOptions["order"]>>, entity: Readonly<ReportOptions["entity"]>): OrderClause; export declare function buildOrderClause(order: Readonly<ReportOptions["order"]>, orderBy: Readonly<ReportOptions["order_by"]>, sortOrder: Readonly<ReportOptions["sort_order"]>, entity: Readonly<ReportOptions["entity"]>): OrderClause; export declare function buildRequestOptions(reportOptions: Readonly<ReportOptions>): RequestOptions; export declare function buildQuery(reportOptions: Readonly<ReportOptions>): { gaqlQuery: Query; requestOptions: RequestOptionsWithTotalResults; }; export {};