@things-factory/operato-hub 4.3.180 → 4.3.181
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/config.development.js +8 -23
- package/dist-server/entities/email.js +4 -0
- package/dist-server/entities/email.js.map +1 -1
- package/dist-server/graphql/resolvers/email/send-emails.js +4 -2
- package/dist-server/graphql/resolvers/email/send-emails.js.map +1 -1
- package/package.json +3 -3
- package/server/entities/email.ts +4 -1
- package/server/graphql/resolvers/email/send-emails.ts +6 -2
package/config.development.js
CHANGED
|
@@ -4,42 +4,27 @@ module.exports = {
|
|
|
4
4
|
useVirtualHostBasedDomain: false,
|
|
5
5
|
fallbackRoute: '/',
|
|
6
6
|
subdomainOffset: 2,
|
|
7
|
-
port:
|
|
7
|
+
port: 1200,
|
|
8
8
|
inspect: '9260',
|
|
9
9
|
ormconfig: {
|
|
10
10
|
name: 'default',
|
|
11
11
|
type: 'postgres',
|
|
12
|
-
database: '
|
|
12
|
+
database: 'dev',
|
|
13
13
|
username: 'postgres',
|
|
14
14
|
password: 'hatio',
|
|
15
|
-
host: '
|
|
15
|
+
host: '192.168.0.153',
|
|
16
16
|
port: 15432,
|
|
17
|
-
synchronize:
|
|
18
|
-
logging:
|
|
19
|
-
connectTimeoutMS: 30000,
|
|
20
|
-
extra: { poolSize: 30 }
|
|
17
|
+
synchronize: true,
|
|
18
|
+
logging: false
|
|
21
19
|
},
|
|
22
20
|
// ormconfig: {
|
|
23
21
|
// name: 'default',
|
|
24
22
|
// type: 'postgres',
|
|
25
|
-
// database: 'dev2', // dev2
|
|
26
|
-
// username: 'postgres',
|
|
27
|
-
// password: 'abcd1234',
|
|
28
23
|
// host: 'operatov3.cluster-cijhm4n1hbst.ap-southeast-1.rds.amazonaws.com',
|
|
29
24
|
// port: 55432,
|
|
30
|
-
// synchronize:false,
|
|
31
|
-
// logging: false,
|
|
32
|
-
// connectTimeoutMS: 30000,
|
|
33
|
-
// extra: { poolSize: 30 }
|
|
34
|
-
// },
|
|
35
|
-
// ormconfig: {
|
|
36
|
-
// name: 'default',
|
|
37
|
-
// type: 'postgres',
|
|
38
|
-
// host: 'localhost',
|
|
39
|
-
// port: 15432,
|
|
40
25
|
// database: 'postgres',
|
|
41
26
|
// username: 'postgres',
|
|
42
|
-
// password: '
|
|
27
|
+
// password: 'abcd1234',
|
|
43
28
|
// synchronize: false,
|
|
44
29
|
// logging: true,
|
|
45
30
|
// connectTimeoutMS: 30000,
|
|
@@ -121,13 +106,13 @@ module.exports = {
|
|
|
121
106
|
// }
|
|
122
107
|
},
|
|
123
108
|
fulfillmentIntegrationOperato: {
|
|
124
|
-
host: '
|
|
109
|
+
host: 'operato-h.com:3000',
|
|
125
110
|
protocol: 'http',
|
|
126
111
|
platform: 'operato',
|
|
127
112
|
application: 'Operato MMS',
|
|
128
113
|
appKey: 'a9bf751e622bf146662b240d58971051',
|
|
129
114
|
appSecret: '1c385935dc131c4b902b9bbf6a4798af',
|
|
130
|
-
callback: 'http://
|
|
115
|
+
callback: 'http://operato-retail.com:5000/callback-operato'
|
|
131
116
|
},
|
|
132
117
|
marketplaceIntegrationShopee: {
|
|
133
118
|
platform: 'shopee',
|
|
@@ -54,6 +54,10 @@ __decorate([
|
|
|
54
54
|
(0, typeorm_1.Column)({ nullable: true }),
|
|
55
55
|
__metadata("design:type", String)
|
|
56
56
|
], Email.prototype, "partnerBlackList", void 0);
|
|
57
|
+
__decorate([
|
|
58
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
|
59
|
+
__metadata("design:type", String)
|
|
60
|
+
], Email.prototype, "lastSent", void 0);
|
|
57
61
|
__decorate([
|
|
58
62
|
(0, typeorm_1.OneToMany)(type => email_recipient_1.EmailRecipient, emailRecipient => emailRecipient.email),
|
|
59
63
|
__metadata("design:type", Array)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email.js","sourceRoot":"","sources":["../../server/entities/email.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qCASgB;AAEhB,yDAAgD;AAChD,iDAA8C;AAC9C,uDAAkD;AAClD,yDAAoD;AAI7C,IAAM,KAAK,GAAX,MAAM,KAAK;
|
|
1
|
+
{"version":3,"file":"email.js","sourceRoot":"","sources":["../../server/entities/email.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qCASgB;AAEhB,yDAAgD;AAChD,iDAA8C;AAC9C,uDAAkD;AAClD,yDAAoD;AAI7C,IAAM,KAAK,GAAX,MAAM,KAAK;CAoDjB,CAAA;AAnDC;IAAC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;iCACrB;AAEV;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;kDAClB,cAAM,oBAAN,cAAM;qCAAA;AAEd;IAAC,IAAA,gBAAM,GAAE;;mCACG;AAEZ;IAAC,IAAA,gBAAM,GAAE;;uCACO;AAEhB;IAAC,IAAA,gBAAM,GAAE;;sCACM;AAEf;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sCACZ;AAEf;IAAC,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;qCACX;AAEf;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACL;AAEtB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACH;AAExB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uCACX;AAEhB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gCAAc,EAAE,cAAc,CAAC,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC;;8CACzC;AAEjC;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,kCAAe,EAAE,eAAe,CAAC,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC;;+CAC1C;AAEnC;IAAC,IAAA,0BAAgB,GAAE;8BACR,IAAI;wCAAA;AAEf;IAAC,IAAA,0BAAgB,GAAE;8BACR,IAAI;wCAAA;AAEf;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE;QACvB,QAAQ,EAAE,IAAI;KACf,CAAC;kDACO,gBAAI,oBAAJ,gBAAI;sCAAA;AAEb;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE;QACvB,QAAQ,EAAE,IAAI;KACf,CAAC;kDACO,gBAAI,oBAAJ,gBAAI;sCAAA;AAnDF,KAAK;IAFjB,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EAAC,YAAY,EAAE,CAAC,KAAY,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;GACvE,KAAK,CAoDjB;AApDY,sBAAK"}
|
|
@@ -36,6 +36,7 @@ const email_base_1 = require("@things-factory/email-base");
|
|
|
36
36
|
const env_1 = require("@things-factory/env");
|
|
37
37
|
const shell_1 = require("@things-factory/shell");
|
|
38
38
|
const entities_1 = require("../../../entities");
|
|
39
|
+
const EMAIL_SEARCH_INTERVAL = 35;
|
|
39
40
|
exports.sendEmailsResolver = {
|
|
40
41
|
async sendEmails(_, {}, context) {
|
|
41
42
|
const emails = await (0, typeorm_1.getRepository)(entities_1.Email).find({
|
|
@@ -43,11 +44,11 @@ exports.sendEmailsResolver = {
|
|
|
43
44
|
relations: ['domain', 'creator', 'creator.domains', 'emailRecipients', 'emailAttachments']
|
|
44
45
|
});
|
|
45
46
|
try {
|
|
47
|
+
let now = new Date();
|
|
48
|
+
let thirtyMinsAgo = new Date(now - EMAIL_SEARCH_INTERVAL * 60000);
|
|
46
49
|
for (let email of emails) {
|
|
47
50
|
// parse cron job format (i.e. * * * * *)
|
|
48
51
|
let interval = cronParser.parseExpression(email.schedule);
|
|
49
|
-
let now = new Date();
|
|
50
|
-
let thirtyMinsAgo = new Date(now - 30 * 60000);
|
|
51
52
|
let dag = new Date(interval.prev()); // get the most recent schedule
|
|
52
53
|
let startDate = new Date(interval.prev());
|
|
53
54
|
if (dag < now && dag > thirtyMinsAgo) {
|
|
@@ -193,5 +194,6 @@ async function processEmailCronJob(email, fromDate, toDate) {
|
|
|
193
194
|
return er.emailAddress;
|
|
194
195
|
}) || []
|
|
195
196
|
});
|
|
197
|
+
await (0, typeorm_1.getRepository)(entities_1.Email).update({ id: email.id }, { lastSent: new Date().toISOString() });
|
|
196
198
|
}
|
|
197
199
|
//# sourceMappingURL=send-emails.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-emails.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/email/send-emails.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wDAAyC;AACzC,8DAA6B;AAC7B,qCAAgD;AAEhD,yDAAyD;AACzD,uDAAmD;AACnD,2DAAyE;AACzE,6CAA4C;AAC5C,iDAA0D;AAE1D,gDAAyC;
|
|
1
|
+
{"version":3,"file":"send-emails.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/email/send-emails.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@things-factory/operato-hub",
|
|
3
|
-
"version": "4.3.
|
|
3
|
+
"version": "4.3.181",
|
|
4
4
|
"main": "dist-server/index.js",
|
|
5
5
|
"browser": "client/index.js",
|
|
6
6
|
"things-factory": true,
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
"@things-factory/shell": "^4.3.179",
|
|
107
107
|
"@things-factory/system-ui": "^4.3.179",
|
|
108
108
|
"@things-factory/warehouse-base": "^4.3.180",
|
|
109
|
-
"@things-factory/worksheet-base": "^4.3.
|
|
109
|
+
"@things-factory/worksheet-base": "^4.3.181",
|
|
110
110
|
"cron-parser": "^4.7.0",
|
|
111
111
|
"koa2-swagger-ui": "^5.0.2",
|
|
112
112
|
"swagger-jsdoc": "^5.0.0",
|
|
@@ -118,5 +118,5 @@
|
|
|
118
118
|
"resolutions": {
|
|
119
119
|
"core-js": "^3.16.0"
|
|
120
120
|
},
|
|
121
|
-
"gitHead": "
|
|
121
|
+
"gitHead": "453655494525752157018565af02c96003ee20e4"
|
|
122
122
|
}
|
package/server/entities/email.ts
CHANGED
|
@@ -43,7 +43,10 @@ export class Email {
|
|
|
43
43
|
|
|
44
44
|
@Column({ nullable: true })
|
|
45
45
|
partnerBlackList: string
|
|
46
|
-
|
|
46
|
+
|
|
47
|
+
@Column({ nullable: true })
|
|
48
|
+
lastSent: string
|
|
49
|
+
|
|
47
50
|
@OneToMany(type => EmailRecipient, emailRecipient => emailRecipient.email)
|
|
48
51
|
emailRecipients: EmailRecipient[]
|
|
49
52
|
|
|
@@ -10,6 +10,8 @@ import { GraphqlLocalClient } from '@things-factory/shell'
|
|
|
10
10
|
|
|
11
11
|
import { Email } from '../../../entities'
|
|
12
12
|
|
|
13
|
+
const EMAIL_SEARCH_INTERVAL = 35
|
|
14
|
+
|
|
13
15
|
export const sendEmailsResolver = {
|
|
14
16
|
async sendEmails(_: any, {}, context: any) {
|
|
15
17
|
const emails: Email[] = await getRepository(Email).find({
|
|
@@ -18,11 +20,11 @@ export const sendEmailsResolver = {
|
|
|
18
20
|
})
|
|
19
21
|
|
|
20
22
|
try {
|
|
23
|
+
let now: any = new Date()
|
|
24
|
+
let thirtyMinsAgo: any = new Date(now - EMAIL_SEARCH_INTERVAL * 60000)
|
|
21
25
|
for (let email of emails) {
|
|
22
26
|
// parse cron job format (i.e. * * * * *)
|
|
23
27
|
let interval: any = cronParser.parseExpression(email.schedule)
|
|
24
|
-
let now: any = new Date()
|
|
25
|
-
let thirtyMinsAgo: any = new Date(now - 30 * 60000)
|
|
26
28
|
let dag: any = new Date(interval.prev()) // get the most recent schedule
|
|
27
29
|
let startDate: any = new Date(interval.prev())
|
|
28
30
|
|
|
@@ -196,4 +198,6 @@ async function processEmailCronJob(email, fromDate, toDate) {
|
|
|
196
198
|
return er.emailAddress
|
|
197
199
|
}) || []
|
|
198
200
|
})
|
|
201
|
+
|
|
202
|
+
await getRepository(Email).update({ id: email.id }, { lastSent: new Date().toISOString() })
|
|
199
203
|
}
|