skyeye-svc-common-utils 1.0.86 → 1.0.87
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.
- package/dist/lib/sendGridClient.js +5 -6
- package/dist/lib/sendGridClient.js.map +1 -1
- package/dist/utils/appConst.d.ts +0 -3
- package/dist/utils/appConst.js +0 -3
- package/dist/utils/appConst.js.map +1 -1
- package/package.json +1 -1
- package/src/lib/sendGridClient.ts +6 -7
- package/src/utils/appConst.ts +0 -3
|
@@ -16,7 +16,6 @@ const mail_1 = require("@sendgrid/mail");
|
|
|
16
16
|
const client_1 = require("@sendgrid/client");
|
|
17
17
|
const logger_1 = require("./../utils/logger/logger");
|
|
18
18
|
const lodash_1 = require("lodash");
|
|
19
|
-
const appConst_1 = require("../utils/appConst");
|
|
20
19
|
const moment_1 = __importDefault(require("moment"));
|
|
21
20
|
/**
|
|
22
21
|
* A SendGrid client class
|
|
@@ -77,11 +76,11 @@ class SendGridClient {
|
|
|
77
76
|
// as the records are returned in DESC order of lastEventDate, keep update nextLastEventEndDate within the loop
|
|
78
77
|
let nextLastEventEndDate = lastEventEndDate;
|
|
79
78
|
let count = 0;
|
|
80
|
-
let response, body
|
|
79
|
+
let response, body;
|
|
81
80
|
while (true) {
|
|
82
81
|
try {
|
|
83
82
|
request.qs = this.getQueryParams(batchSize, lastEventStartDate, nextLastEventEndDate, category, status);
|
|
84
|
-
logger_1.logger.info(`Sending ${method} request to ${baseUrl + url} with body: ${JSON.stringify(request)}`);
|
|
83
|
+
logger_1.logger.info(`Sending ${method} request to ${baseUrl + url} with body: ${JSON.stringify(request.qs)}`);
|
|
85
84
|
[response, body] = yield this.officialClient.request(request);
|
|
86
85
|
// Check for status code
|
|
87
86
|
if (response.statusCode != 200) {
|
|
@@ -100,12 +99,12 @@ class SendGridClient {
|
|
|
100
99
|
break;
|
|
101
100
|
// The next batch lastEventEndDate should be the last item in the current batch because data returned is sorted in descending order of last_event_time
|
|
102
101
|
nextLastEventEndDate = new Date(messages[messages.length - 1].last_event_time);
|
|
103
|
-
// Update rateLimitReset
|
|
104
|
-
rateLimitReset = response.headers['x-ratelimit-reset'];
|
|
105
102
|
}
|
|
106
103
|
catch (error) {
|
|
107
104
|
const sendGridError = error;
|
|
108
105
|
if (sendGridError.code === 429) {
|
|
106
|
+
// Get rateLimitReset from error response header
|
|
107
|
+
const rateLimitReset = Number(sendGridError.response.headers['x-ratelimit-reset']);
|
|
109
108
|
// if no more quota, wait for next refresh before making new request, to avoid Error 429
|
|
110
109
|
logger_1.logger.info(`Rate limit reached. Waiting for ${rateLimitReset} seconds...`);
|
|
111
110
|
yield new Promise((resolve) => setTimeout(resolve, rateLimitReset * 1000));
|
|
@@ -178,7 +177,7 @@ class SendGridClient {
|
|
|
178
177
|
queryParams.end_date = endDate;
|
|
179
178
|
}
|
|
180
179
|
request.qs = queryParams;
|
|
181
|
-
logger_1.logger.info(`Sending ${method} request to ${baseUrl + url} with body: ${JSON.stringify(request)}`);
|
|
180
|
+
logger_1.logger.info(`Sending ${method} request to ${baseUrl + url} with body: ${JSON.stringify(request.qs)}`);
|
|
182
181
|
const [response, body] = yield this.officialClient.request(request);
|
|
183
182
|
const statusCode = response.statusCode;
|
|
184
183
|
if (statusCode == 200) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sendGridClient.js","sourceRoot":"","sources":["../../src/lib/sendGridClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,yCAA+E;AAC/E,6CAA4D;AAE5D,qDAAkD;AAClD,mCAA+B;
|
|
1
|
+
{"version":3,"file":"sendGridClient.js","sourceRoot":"","sources":["../../src/lib/sendGridClient.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/appConst.d.ts
CHANGED
package/dist/utils/appConst.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appConst.js","sourceRoot":"","sources":["../../src/utils/appConst.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG;IAC7B,SAAS,EAAE,sCAAsC;IACjD,YAAY,EAAE;QACb,GAAG,EAAE,KAAK;QACV,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;KAClB;IACD,YAAY,EAAE;QACb,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,OAAO;KACd;IACD,UAAU,EAAE;QACX,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,KAAK;QACV,MAAM,EAAE,QAAQ;KAChB;IACD,UAAU,EAAE;QACX,SAAS,EAAE,WAAW;QACtB,aAAa,EAAE,eAAe;QAC9B,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,SAAS;QAChB,mBAAmB,EAAE,SAAS;QAChC,eAAe,EAAE,kBAAkB;KACnC;IACD,KAAK,EAAE;QACN,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,MAAM;KACZ;IACD,cAAc,EAAE;QACf,EAAE,EAAE,IAAI;QACR,WAAW,EAAE,aAAa;QAC1B,gBAAgB,EAAE,kBAAkB;KACpC;IACD,KAAK,EAAE;QACN,UAAU,EAAE;YACX,SAAS,EAAE,IAAI;SACf;QACD,UAAU,EAAE,GAAG;QACf,OAAO,EAAE;YACR,aAAa,EAAE,IAAI;SACnB;KACD;IACD,
|
|
1
|
+
{"version":3,"file":"appConst.js","sourceRoot":"","sources":["../../src/utils/appConst.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@ import { Client as OfficialClient } from '@sendgrid/client';
|
|
|
3
3
|
import helpers from '@sendgrid/helpers';
|
|
4
4
|
import { logger } from './../utils/logger/logger';
|
|
5
5
|
import { isNil } from 'lodash';
|
|
6
|
-
import {
|
|
6
|
+
import { SendGridEmailFeedStatus } from '../utils/appConst';
|
|
7
7
|
import moment from 'moment';
|
|
8
8
|
|
|
9
9
|
export interface ISgMessage {
|
|
@@ -121,11 +121,11 @@ export default class SendGridClient {
|
|
|
121
121
|
// as the records are returned in DESC order of lastEventDate, keep update nextLastEventEndDate within the loop
|
|
122
122
|
let nextLastEventEndDate = lastEventEndDate;
|
|
123
123
|
let count = 0;
|
|
124
|
-
let response: helpers.classes.Response, body: any
|
|
124
|
+
let response: helpers.classes.Response, body: any;
|
|
125
125
|
while(true) {
|
|
126
126
|
try {
|
|
127
127
|
request.qs = this.getQueryParams(batchSize, lastEventStartDate, nextLastEventEndDate, category, status);
|
|
128
|
-
logger.info(`Sending ${method} request to ${baseUrl + url} with body: ${JSON.stringify(request)}`);
|
|
128
|
+
logger.info(`Sending ${method} request to ${baseUrl + url} with body: ${JSON.stringify(request.qs)}`);
|
|
129
129
|
[ response, body ] = await this.officialClient.request(request);
|
|
130
130
|
// Check for status code
|
|
131
131
|
if (response.statusCode != 200) {
|
|
@@ -145,13 +145,12 @@ export default class SendGridClient {
|
|
|
145
145
|
|
|
146
146
|
// The next batch lastEventEndDate should be the last item in the current batch because data returned is sorted in descending order of last_event_time
|
|
147
147
|
nextLastEventEndDate = new Date(messages[messages.length - 1].last_event_time);
|
|
148
|
-
|
|
149
|
-
// Update rateLimitReset
|
|
150
|
-
rateLimitReset = response.headers['x-ratelimit-reset'];
|
|
151
148
|
}
|
|
152
149
|
catch(error) {
|
|
153
150
|
const sendGridError = error as helpers.classes.ResponseError;
|
|
154
151
|
if (sendGridError.code === 429) {
|
|
152
|
+
// Get rateLimitReset from error response header
|
|
153
|
+
const rateLimitReset = Number(sendGridError.response.headers['x-ratelimit-reset']);
|
|
155
154
|
// if no more quota, wait for next refresh before making new request, to avoid Error 429
|
|
156
155
|
logger.info(`Rate limit reached. Waiting for ${rateLimitReset} seconds...`);
|
|
157
156
|
await new Promise((resolve) => setTimeout(resolve, rateLimitReset * 1000));
|
|
@@ -241,7 +240,7 @@ export default class SendGridClient {
|
|
|
241
240
|
}
|
|
242
241
|
request.qs = queryParams;
|
|
243
242
|
|
|
244
|
-
logger.info(`Sending ${method} request to ${baseUrl + url} with body: ${JSON.stringify(request)}`);
|
|
243
|
+
logger.info(`Sending ${method} request to ${baseUrl + url} with body: ${JSON.stringify(request.qs)}`);
|
|
245
244
|
const [ response, body ]: [helpers.classes.Response, any] = await this.officialClient.request(request);
|
|
246
245
|
const statusCode = response.statusCode;
|
|
247
246
|
if (statusCode == 200) {
|