google-ads-api
Version:
Google Ads API Client Library for Node.js
63 lines (62 loc) • 4.19 kB
TypeScript
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 {};