google-ads-api 12.0.0 → 12.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,6 +6,7 @@ declare enum QueryKeywords {
6
6
  WHERE = "WHERE",
7
7
  ORDER_BY = "ORDER BY",
8
8
  LIMIT = "LIMIT",
9
+ PARAMETERS = "PARAMETERS",
9
10
  AND = "AND",
10
11
  OR = "OR"
11
12
  }
@@ -16,7 +17,8 @@ declare type FromClause = ` ${QueryKeywords.FROM} ${fields.Resource}`;
16
17
  declare type WhereClause = ` ${QueryKeywords.WHERE} ${string}` | ``;
17
18
  export declare type OrderClause = ` ${QueryKeywords.ORDER_BY} ${string} ${SortOrder}` | ` ${QueryKeywords.ORDER_BY} ${string}` | ``;
18
19
  declare type LimitClause = ` ${QueryKeywords.LIMIT} ${number}` | ``;
19
- declare type Query = `${SelectClause}${FromClause}${WhereClause}${OrderClause}${LimitClause}`;
20
+ declare type ParametersClause = ` ${QueryKeywords.PARAMETERS} ${string}` | ``;
21
+ declare type Query = `${SelectClause}${FromClause}${WhereClause}${OrderClause}${LimitClause}${ParametersClause}`;
20
22
  export declare const QueryError: {
21
23
  INVALID_CONSTRAINTS_FORMAT: string;
22
24
  INVALID_CONSTRAINT_KEY: string;
@@ -26,6 +28,7 @@ export declare const QueryError: {
26
28
  INVALID_FROM_DATE_TYPE: (fromDate: ReportOptions["from_date"]) => string;
27
29
  INVALID_TO_DATE_TYPE: (toDate: ReportOptions["to_date"]) => string;
28
30
  INVALID_LIMIT: string;
31
+ INVALID_PARAMETERS: string;
29
32
  INVALID_ORDER: string;
30
33
  INVALID_ORDERLY: string;
31
34
  INVALID_ORDERBY: string;
@@ -46,6 +49,7 @@ export declare function extractDateConstantConditions(dateConstant: ReportOption
46
49
  export declare function extractDateConditions(fromDate: ReportOptions["from_date"], toDate: ReportOptions["to_date"]): ConstraintString[];
47
50
  export declare function buildWhereClause(constraints: ReportOptions["constraints"], dateConstant: ReportOptions["date_constant"], fromDate: ReportOptions["from_date"], toDate: ReportOptions["to_date"]): WhereClause;
48
51
  export declare function buildLimitClause(limit: ReportOptions["limit"]): LimitClause;
52
+ export declare function buildParametersClause(parameters: ReportOptions["parameters"]): ParametersClause;
49
53
  export declare function completeOrderly(orderly: string, entity: ReportOptions["entity"]): string;
50
54
  export declare function buildOrderClauseOld(orderBy: ReportOptions["order_by"], sortOrder: ReportOptions["sort_order"], entity: ReportOptions["entity"]): OrderClause;
51
55
  export declare function buildOrderClauseNew(order: Required<ReportOptions["order"]>, entity: ReportOptions["entity"]): OrderClause;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildQuery = exports.buildRequestOptions = exports.buildOrderClause = exports.buildOrderClauseNew = exports.buildOrderClauseOld = exports.completeOrderly = exports.buildLimitClause = exports.buildWhereClause = exports.extractDateConditions = exports.extractDateConstantConditions = exports.extractConstraintConditions = exports.convertNumericEnumToString = exports.validateConstraintKeyAndValue = exports.buildFromClause = exports.buildSelectClause = exports.QueryError = void 0;
3
+ exports.buildQuery = exports.buildRequestOptions = exports.buildOrderClause = exports.buildOrderClauseNew = exports.buildOrderClauseOld = exports.completeOrderly = exports.buildParametersClause = exports.buildLimitClause = exports.buildWhereClause = exports.extractDateConditions = exports.extractDateConstantConditions = exports.extractConstraintConditions = exports.convertNumericEnumToString = exports.validateConstraintKeyAndValue = exports.buildFromClause = exports.buildSelectClause = exports.QueryError = void 0;
4
4
  const protos_1 = require("./protos");
5
5
  const types_1 = require("./types");
6
6
  var QueryKeywords;
@@ -10,6 +10,7 @@ var QueryKeywords;
10
10
  QueryKeywords["WHERE"] = "WHERE";
11
11
  QueryKeywords["ORDER_BY"] = "ORDER BY";
12
12
  QueryKeywords["LIMIT"] = "LIMIT";
13
+ QueryKeywords["PARAMETERS"] = "PARAMETERS";
13
14
  QueryKeywords["AND"] = "AND";
14
15
  QueryKeywords["OR"] = "OR";
15
16
  })(QueryKeywords || (QueryKeywords = {}));
@@ -24,6 +25,7 @@ exports.QueryError = {
24
25
  INVALID_FROM_DATE_TYPE: (fromDate) => `From date must be a string. Here, typeof from date is ${typeof fromDate}`,
25
26
  INVALID_TO_DATE_TYPE: (toDate) => `To date must be a string. Here, typeof to date is ${typeof toDate}`,
26
27
  INVALID_LIMIT: "Limit must be a positive integer.",
28
+ INVALID_PARAMETERS: "Parameters must be a string.",
27
29
  INVALID_ORDER: "Order must be an array.",
28
30
  INVALID_ORDERLY: "OrderBy arrays must only contain strings.",
29
31
  INVALID_ORDERBY: "OrderBy must be a string or an array of strings.",
@@ -194,6 +196,16 @@ function buildLimitClause(limit) {
194
196
  return ` ${QueryKeywords.LIMIT} ${limit}`;
195
197
  }
196
198
  exports.buildLimitClause = buildLimitClause;
199
+ function buildParametersClause(parameters) {
200
+ if (typeof parameters === "undefined") {
201
+ return ``;
202
+ }
203
+ if (typeof parameters !== "string") {
204
+ throw new Error(exports.QueryError.INVALID_PARAMETERS);
205
+ }
206
+ return ` ${QueryKeywords.PARAMETERS} ${parameters}`;
207
+ }
208
+ exports.buildParametersClause = buildParametersClause;
197
209
  function completeOrderly(orderly, entity) {
198
210
  if (!orderly.length) {
199
211
  throw new Error(exports.QueryError.INVALID_ORDERLY);
@@ -277,11 +289,12 @@ function buildQuery(reportOptions) {
277
289
  const SELECT = buildSelectClause(reportOptions.attributes, reportOptions.metrics, reportOptions.segments);
278
290
  const FROM = buildFromClause(reportOptions.entity);
279
291
  const WHERE = buildWhereClause(reportOptions.constraints, reportOptions.date_constant, reportOptions.from_date, reportOptions.to_date);
280
- const LIMIT = buildLimitClause(reportOptions.limit);
281
292
  const ORDER = buildOrderClause(reportOptions.order, reportOptions.order_by, reportOptions.sort_order, reportOptions.entity);
293
+ const LIMIT = buildLimitClause(reportOptions.limit);
294
+ const PARAMETERS = buildParametersClause(reportOptions.parameters);
282
295
  const requestOptions = buildRequestOptions(reportOptions);
283
296
  return {
284
- gaqlQuery: `${SELECT}${FROM}${WHERE}${ORDER}${LIMIT}`,
297
+ gaqlQuery: `${SELECT}${FROM}${WHERE}${ORDER}${LIMIT}${PARAMETERS}`,
285
298
  requestOptions,
286
299
  };
287
300
  }
@@ -12,6 +12,7 @@ export interface ReportOptions extends RequestOptions {
12
12
  metrics?: fields.Metrics;
13
13
  segments?: fields.Segments;
14
14
  constraints?: Constraints;
15
+ parameters?: string;
15
16
  limit?: number;
16
17
  order?: Order[];
17
18
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "google-ads-api",
3
- "version": "12.0.0",
3
+ "version": "12.0.1",
4
4
  "description": "Google Ads API Client Library for Node.js",
5
5
  "repository": "https://github.com/Opteo/google-ads-api",
6
6
  "main": "build/src/index.js",