@platform-x/hep-notification-client 1.3.4 → 1.3.5
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/src/common/service/requestService.d.ts +26 -0
- package/dist/src/common/service/requestService.js +1 -79
- package/dist/src/common/service/secretKeyManager.services.d.ts +0 -0
- package/{src/common/service/secretKeyManager.services.ts → dist/src/common/service/secretKeyManager.services.js} +2 -1
- package/dist/src/common/service/twilioService.d.ts +19 -0
- package/dist/src/common/service/twilioService.js +11 -3
- package/dist/src/common/util/commonUtil.d.ts +22 -0
- package/dist/src/common/util/commonUtil.js +1 -119
- package/dist/src/common/util/errorHandler.d.ts +44 -0
- package/dist/src/common/util/errorHandler.js +6 -4
- package/dist/src/common/util/logger.d.ts +68 -0
- package/dist/src/common/util/logger.js +1 -1
- package/dist/src/common/util/requestTracer.d.ts +2 -0
- package/dist/src/common/util/requestTracer.js +1 -18
- package/dist/src/common/util/solrConnector.d.ts +47 -0
- package/dist/src/common/util/solrConnector.js +226 -85
- package/dist/src/config/index.d.ts +30 -0
- package/dist/src/config/index.js +4 -49
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.js +22 -0
- package/dist/src/platform-x/constants/index.d.ts +18 -0
- package/dist/src/platform-x/constants/index.js +14 -2
- package/dist/src/platform-x/constants/style.d.ts +1 -0
- package/dist/src/platform-x/dataSource/emailDataSource.d.ts +5 -0
- package/dist/src/platform-x/dataSource/emailDataSource.js +13 -4
- package/dist/src/platform-x/database/connection.d.ts +8 -0
- package/dist/src/platform-x/database/connection.js +6 -3
- package/dist/src/platform-x/database/dao/formBuilder.dao.d.ts +9 -0
- package/dist/src/platform-x/database/dao/formBuilder.dao.js +1 -1
- package/dist/src/platform-x/database/index.d.ts +7 -0
- package/dist/src/platform-x/database/models/formBuilder.model.d.ts +34 -0
- package/dist/src/platform-x/util/emailHandler.d.ts +62 -0
- package/dist/src/platform-x/util/emailHandler.js +148 -56
- package/dist/src/platform-x/util/emailTemplate.d.ts +4 -0
- package/dist/src/platform-x/util/emailTemplate.js +1 -4
- package/dist/src/platform-x/util/solr-data-source/SolrHttpDataSource.d.ts +29 -0
- package/dist/src/platform-x/util/solr-data-source/SolrHttpDataSource.js +45 -31
- package/package.json +1 -1
- package/dist/jest-setup.js +0 -28
- package/dist/jest-setup.js.map +0 -1
- package/dist/src/common/controllers/common_controller.js +0 -72
- package/dist/src/common/controllers/common_controller.js.map +0 -1
- package/dist/src/common/controllers/index.js +0 -29
- package/dist/src/common/controllers/index.js.map +0 -1
- package/dist/src/common/middleware/commonMiddleware.js +0 -141
- package/dist/src/common/middleware/commonMiddleware.js.map +0 -1
- package/dist/src/common/service/requestService.js.map +0 -1
- package/dist/src/common/service/twilioService.js.map +0 -1
- package/dist/src/common/util/commonUtil.js.map +0 -1
- package/dist/src/common/util/constants.js +0 -18
- package/dist/src/common/util/constants.js.map +0 -1
- package/dist/src/common/util/errorHandler.js.map +0 -1
- package/dist/src/common/util/httpCodes.js +0 -26
- package/dist/src/common/util/httpCodes.js.map +0 -1
- package/dist/src/common/util/logger.js.map +0 -1
- package/dist/src/common/util/requestTracer.js.map +0 -1
- package/dist/src/common/util/solrConnector.js.map +0 -1
- package/dist/src/config/index.js.map +0 -1
- package/dist/src/platform-x/app.js +0 -35
- package/dist/src/platform-x/app.js.map +0 -1
- package/dist/src/platform-x/constants/index.js.map +0 -1
- package/dist/src/platform-x/constants/style.js.map +0 -1
- package/dist/src/platform-x/controllers/cronController.js +0 -399
- package/dist/src/platform-x/controllers/cronController.js.map +0 -1
- package/dist/src/platform-x/controllers/fileUploadController.js +0 -76
- package/dist/src/platform-x/controllers/fileUploadController.js.map +0 -1
- package/dist/src/platform-x/controllers/graphRESTControllers.js +0 -183
- package/dist/src/platform-x/controllers/graphRESTControllers.js.map +0 -1
- package/dist/src/platform-x/controllers/index.js +0 -30
- package/dist/src/platform-x/controllers/index.js.map +0 -1
- package/dist/src/platform-x/controllers/siteDomainController.js +0 -74
- package/dist/src/platform-x/controllers/siteDomainController.js.map +0 -1
- package/dist/src/platform-x/dataSource/emailDataSource.js.map +0 -1
- package/dist/src/platform-x/database/connection.js.map +0 -1
- package/dist/src/platform-x/database/dao/formBuilder.dao.js.map +0 -1
- package/dist/src/platform-x/database/dao/siteDomain.dao.js +0 -73
- package/dist/src/platform-x/database/dao/siteDomain.dao.js.map +0 -1
- package/dist/src/platform-x/database/index.js.map +0 -1
- package/dist/src/platform-x/database/interfaces/site_domain.interface.js +0 -3
- package/dist/src/platform-x/database/interfaces/site_domain.interface.js.map +0 -1
- package/dist/src/platform-x/database/models/formBuilder.model.js.map +0 -1
- package/dist/src/platform-x/database/models/site_domains.model.js +0 -51
- package/dist/src/platform-x/database/models/site_domains.model.js.map +0 -1
- package/dist/src/platform-x/routes/index.js +0 -19
- package/dist/src/platform-x/routes/index.js.map +0 -1
- package/dist/src/platform-x/services/cron.services.js +0 -117
- package/dist/src/platform-x/services/cron.services.js.map +0 -1
- package/dist/src/platform-x/util/emailHandler.js.map +0 -1
- package/dist/src/platform-x/util/emailTemplate.js.map +0 -1
- package/dist/src/platform-x/util/solr-data-source/SolrHttpDataSource.js.map +0 -1
- package/dist/src/server.js +0 -38
- package/dist/src/server.js.map +0 -1
- package/dist/swagger.json +0 -247
- package/dist/test/controllers/common_controller.spec.js +0 -79
- package/dist/test/controllers/common_controller.spec.js.map +0 -1
- package/dist/test/middleware/commonMiddleware.spec.js +0 -88
- package/dist/test/middleware/commonMiddleware.spec.js.map +0 -1
- package/dist/test/platform-x/controllers/graphRESTControllers.spec.js +0 -195
- package/dist/test/platform-x/controllers/graphRESTControllers.spec.js.map +0 -1
- package/dist/test/platform-x/datasource/emailDataSource.spec.js +0 -81
- package/dist/test/platform-x/datasource/emailDataSource.spec.js.map +0 -1
- package/dist/test/platform-x/util/emailHandler.spec.js +0 -474
- package/dist/test/platform-x/util/emailHandler.spec.js.map +0 -1
- package/dist/test/platform-x/util/solr-data-source/SolrHttpDataSource.spec.js +0 -80
- package/dist/test/platform-x/util/solr-data-source/SolrHttpDataSource.spec.js.map +0 -1
- package/dist/test/services/requestService.spec.js +0 -108
- package/dist/test/services/requestService.spec.js.map +0 -1
- package/dist/test/services/requestServiceGet.spec.js +0 -43
- package/dist/test/services/requestServiceGet.spec.js.map +0 -1
- package/dist/test/src/common/service/twilioService.spec.js +0 -65
- package/dist/test/src/common/service/twilioService.spec.js.map +0 -1
- package/dist/test/util/commonUtil.spec.js +0 -110
- package/dist/test/util/commonUtil.spec.js.map +0 -1
- package/dist/test/util/logger.spec.js +0 -51
- package/dist/test/util/logger.spec.js.map +0 -1
- package/dist/test/util/requestTracer.spec.js +0 -64
- package/dist/test/util/requestTracer.spec.js.map +0 -1
- package/dist/test/util/solrconnector.spec.js +0 -145
- package/dist/test/util/solrconnector.spec.js.map +0 -1
- package/src/common/service/requestService.ts +0 -87
- package/src/common/service/twilioService.ts +0 -58
- package/src/common/util/commonUtil.ts +0 -39
- package/src/common/util/errorHandler.ts +0 -120
- package/src/common/util/logger.ts +0 -215
- package/src/common/util/requestTracer.ts +0 -10
- package/src/common/util/solrConnector.ts +0 -319
- package/src/config/index.ts +0 -35
- package/src/index.ts +0 -34
- package/src/platform-x/constants/index.ts +0 -20
- package/src/platform-x/constants/style.ts +0 -99
- package/src/platform-x/dataSource/emailDataSource.ts +0 -38
- package/src/platform-x/database/connection.ts +0 -47
- package/src/platform-x/database/dao/formBuilder.dao.ts +0 -33
- package/src/platform-x/database/index.ts +0 -7
- package/src/platform-x/database/models/formBuilder.model.ts +0 -23
- package/src/platform-x/util/emailHandler.ts +0 -585
- package/src/platform-x/util/emailTemplate.ts +0 -66
- package/src/platform-x/util/solr-data-source/SolrHttpDataSource.ts +0 -97
- package/src/templates/orderPlaced.ejs +0 -173
- package/src/templates/orderPlaced.html +0 -190
- package/tsconfig.json +0 -73
|
@@ -15,17 +15,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
const mongoose_1 = __importDefault(require("mongoose"));
|
|
16
16
|
const logger_1 = require("../../common/util/logger");
|
|
17
17
|
const index_1 = __importDefault(require("../../config/index"));
|
|
18
|
+
const constants_1 = require("../constants");
|
|
19
|
+
const __1 = require("../..");
|
|
18
20
|
let database = mongoose_1.default.connection;
|
|
19
21
|
// Exit on error
|
|
20
22
|
mongoose_1.default.connection.on('error', (err) => {
|
|
21
23
|
logger_1.Logger.info(`MongoDB connection error: ${err}`, 'mongoose');
|
|
22
24
|
process.exit(-1);
|
|
23
25
|
});
|
|
24
|
-
const connect = () => {
|
|
26
|
+
const connect = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
25
27
|
if (database.readyState) {
|
|
26
28
|
return;
|
|
27
29
|
}
|
|
28
|
-
|
|
30
|
+
const secrets = yield (0, __1.getIAMSecrets)();
|
|
31
|
+
mongoose_1.default.connect(`mongodb://${index_1.default.MONGO.USER}:${secrets === null || secrets === void 0 ? void 0 : secrets[constants_1.DynamicValues === null || constants_1.DynamicValues === void 0 ? void 0 : constants_1.DynamicValues.MONGO_PASS]}@${index_1.default.MONGO.HOST}:${index_1.default.MONGO.PORT}/${index_1.default.MONGO.DB_NAME}?directConnection=true&authMechanism=DEFAULT&authSource=${index_1.default.MONGO.DB_NAME}`);
|
|
29
32
|
database = mongoose_1.default.connection;
|
|
30
33
|
database.once('open', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
31
34
|
logger_1.Logger.info(`[Server] connected to MongoDB`, 'connect');
|
|
@@ -34,7 +37,7 @@ const connect = () => {
|
|
|
34
37
|
logger_1.Logger.error(`[Server] error connecting to MongoDB`, 'connect', err);
|
|
35
38
|
process.exit(-1);
|
|
36
39
|
});
|
|
37
|
-
};
|
|
40
|
+
});
|
|
38
41
|
const disconnect = () => {
|
|
39
42
|
if (!database) {
|
|
40
43
|
return;
|
|
@@ -12,8 +12,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const logger_1 = require("../../../common/util/logger");
|
|
16
15
|
const formBuilder_model_1 = __importDefault(require("../models/formBuilder.model"));
|
|
16
|
+
const logger_1 = require("../../../common/util/logger");
|
|
17
17
|
class FormBuilderDao {
|
|
18
18
|
/**
|
|
19
19
|
* Get data based on collectionName collection
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import mongoose from 'mongoose';
|
|
2
|
+
/**
|
|
3
|
+
* Function for create model with dynamic collection name
|
|
4
|
+
* @param collectionName
|
|
5
|
+
* @returns
|
|
6
|
+
*/
|
|
7
|
+
declare const dynamicModelName: (collectionName: string) => Promise<mongoose.Model<any, unknown, unknown, unknown, any, any> | mongoose.Model<{
|
|
8
|
+
createdAt: NativeDate;
|
|
9
|
+
updatedAt: NativeDate;
|
|
10
|
+
} & {}, {}, {}, {}, mongoose.Document<unknown, {}, {
|
|
11
|
+
createdAt: NativeDate;
|
|
12
|
+
updatedAt: NativeDate;
|
|
13
|
+
} & {}> & Omit<{
|
|
14
|
+
createdAt: NativeDate;
|
|
15
|
+
updatedAt: NativeDate;
|
|
16
|
+
} & {} & {
|
|
17
|
+
_id: mongoose.Types.ObjectId;
|
|
18
|
+
}, never>, mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, mongoose.ResolveSchemaOptions<{
|
|
19
|
+
timestamps: true;
|
|
20
|
+
minimize: false;
|
|
21
|
+
strict: false;
|
|
22
|
+
}>, {
|
|
23
|
+
createdAt: NativeDate;
|
|
24
|
+
updatedAt: NativeDate;
|
|
25
|
+
} & {}, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
|
|
26
|
+
createdAt: NativeDate;
|
|
27
|
+
updatedAt: NativeDate;
|
|
28
|
+
} & {}>> & Omit<mongoose.FlatRecord<{
|
|
29
|
+
createdAt: NativeDate;
|
|
30
|
+
updatedAt: NativeDate;
|
|
31
|
+
} & {}> & {
|
|
32
|
+
_id: mongoose.Types.ObjectId;
|
|
33
|
+
}, never>>>>;
|
|
34
|
+
export default dynamicModelName;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
interface EmailOptions {
|
|
2
|
+
email: string;
|
|
3
|
+
emailTemplate: string;
|
|
4
|
+
subject: string;
|
|
5
|
+
bcc?: string;
|
|
6
|
+
cc?: string | string[];
|
|
7
|
+
personalizations?: Personalize;
|
|
8
|
+
}
|
|
9
|
+
interface Personalize {
|
|
10
|
+
to: [ToWithSubstitutions];
|
|
11
|
+
cc?: [ToWithSubstitutions];
|
|
12
|
+
bcc?: [ToWithSubstitutions];
|
|
13
|
+
}
|
|
14
|
+
interface ToWithSubstitutions {
|
|
15
|
+
to: string;
|
|
16
|
+
substitutions?: [string];
|
|
17
|
+
}
|
|
18
|
+
export declare class EmailHandler {
|
|
19
|
+
constructor();
|
|
20
|
+
/**
|
|
21
|
+
* post - handler to do emails triggering
|
|
22
|
+
* @param emailConfig
|
|
23
|
+
* @returns
|
|
24
|
+
*/
|
|
25
|
+
sendEmail(emailConfig: EmailOptions): Promise<unknown>;
|
|
26
|
+
prepareEmailRequest(reqBody: any, emailType: any): Promise<any>;
|
|
27
|
+
/**
|
|
28
|
+
*
|
|
29
|
+
* @param reqBody
|
|
30
|
+
* @param emailType
|
|
31
|
+
* @returns
|
|
32
|
+
*/
|
|
33
|
+
prepareSendEmailRequest(reqBody: any, emailType: any): Promise<any>;
|
|
34
|
+
/**
|
|
35
|
+
*
|
|
36
|
+
* @param emailConfiguration
|
|
37
|
+
* @returns
|
|
38
|
+
*/
|
|
39
|
+
pushEmails(emailConfiguration: any): Promise<any>;
|
|
40
|
+
/**
|
|
41
|
+
* Function to send email with personalize data using sendgrid
|
|
42
|
+
* @param emailConfig
|
|
43
|
+
* @returns
|
|
44
|
+
*/
|
|
45
|
+
sendEmailWithPersonalizations(emailConfig: any, email_from?: any): Promise<unknown>;
|
|
46
|
+
/**
|
|
47
|
+
* Utility method to prepare CC emails in standardized format
|
|
48
|
+
* @param ccEmails - Can be string, array of strings, or Recipients array
|
|
49
|
+
* @returns Array of email strings
|
|
50
|
+
*/
|
|
51
|
+
private prepareCCEmails;
|
|
52
|
+
/**
|
|
53
|
+
* prepare personalize email request to send email through sendgrid
|
|
54
|
+
* @param reqBody
|
|
55
|
+
* @returns
|
|
56
|
+
*/
|
|
57
|
+
sendPersonalizeEmailRequest(reqBody: any): Promise<any>;
|
|
58
|
+
sendPlaceOrderEmail(reqBody: any): Promise<any>;
|
|
59
|
+
sendPlaceOrderEmailv1(reqBody: any): Promise<any>;
|
|
60
|
+
private fetchEmailTemplateData;
|
|
61
|
+
}
|
|
62
|
+
export {};
|
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
36
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
37
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -36,9 +46,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
36
46
|
};
|
|
37
47
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
48
|
exports.EmailHandler = void 0;
|
|
39
|
-
const logger_1 = require("../../common/util/logger");
|
|
40
49
|
const emailDataSource_1 = require("../dataSource/emailDataSource");
|
|
41
|
-
const
|
|
50
|
+
const HTMLParser = __importStar(require("node-html-parser"));
|
|
42
51
|
const style_1 = require("../constants/style");
|
|
43
52
|
const config_1 = __importDefault(require("../../config"));
|
|
44
53
|
const constants_1 = require("../constants");
|
|
@@ -48,8 +57,15 @@ const moment = require('moment-timezone');
|
|
|
48
57
|
const sgMail = require('@sendgrid/mail');
|
|
49
58
|
const sgHelpers = require('@sendgrid/helpers');
|
|
50
59
|
const ejs = __importStar(require("ejs"));
|
|
51
|
-
|
|
60
|
+
// import DOMPurify from 'dompurify'; // Include DOMPurify for sanitization
|
|
52
61
|
const formBuilder_dao_1 = __importDefault(require("../database/dao/formBuilder.dao"));
|
|
62
|
+
const dompurify_1 = __importDefault(require("dompurify"));
|
|
63
|
+
const jsdom_1 = require("jsdom");
|
|
64
|
+
const logger_1 = require("../../common/util/logger");
|
|
65
|
+
const path_1 = __importDefault(require("path"));
|
|
66
|
+
const __1 = require("../..");
|
|
67
|
+
const window = new jsdom_1.JSDOM('').window;
|
|
68
|
+
const DOMPurify = (0, dompurify_1.default)(window);
|
|
53
69
|
// NOSONAR-NEXT-LINE
|
|
54
70
|
class EmailHandler {
|
|
55
71
|
constructor() { } // NOSONAR
|
|
@@ -61,14 +77,24 @@ class EmailHandler {
|
|
|
61
77
|
sendEmail(emailConfig) {
|
|
62
78
|
return __awaiter(this, void 0, void 0, function* () {
|
|
63
79
|
logger_1.Logger.info('EmailHandler: Reached sendEmail method', 'sendEmail');
|
|
64
|
-
|
|
80
|
+
const secrets = yield (0, __1.getIAMSecrets)();
|
|
81
|
+
sgMail.setApiKey(secrets === null || secrets === void 0 ? void 0 : secrets[constants_1.DynamicValues === null || constants_1.DynamicValues === void 0 ? void 0 : constants_1.DynamicValues.SENDGRID_API_KEY]);
|
|
82
|
+
// Build personalization object
|
|
83
|
+
const personalization = {
|
|
84
|
+
to: [{ email: emailConfig.email }],
|
|
85
|
+
};
|
|
86
|
+
// Add CC emails if provided
|
|
87
|
+
if (emailConfig.cc) {
|
|
88
|
+
const ccEmails = Array.isArray(emailConfig.cc) ? emailConfig.cc : [emailConfig.cc];
|
|
89
|
+
personalization.cc = ccEmails.map((email) => ({ email }));
|
|
90
|
+
logger_1.Logger.info(`Adding CC emails to non-personalized email: ${ccEmails.join(', ')}`, 'sendEmail');
|
|
91
|
+
}
|
|
92
|
+
// Add BCC if provided
|
|
93
|
+
if (emailConfig.bcc) {
|
|
94
|
+
personalization.bcc = [{ email: emailConfig.bcc }];
|
|
95
|
+
}
|
|
65
96
|
const msg = {
|
|
66
|
-
personalizations: [
|
|
67
|
-
{
|
|
68
|
-
to: [{ email: emailConfig.email }],
|
|
69
|
-
// cc: emailCC,
|
|
70
|
-
},
|
|
71
|
-
],
|
|
97
|
+
personalizations: [personalization],
|
|
72
98
|
from: { email: config_1.default.EMAIL_FROM },
|
|
73
99
|
html: emailConfig.emailTemplate,
|
|
74
100
|
subject: emailConfig.subject,
|
|
@@ -90,8 +116,8 @@ class EmailHandler {
|
|
|
90
116
|
});
|
|
91
117
|
}
|
|
92
118
|
prepareEmailRequest(reqBody, emailType) {
|
|
93
|
-
var _a;
|
|
94
119
|
return __awaiter(this, void 0, void 0, function* () {
|
|
120
|
+
var _a, _b;
|
|
95
121
|
logger_1.Logger.info('Reached prepareEmailRequest', 'prepareEmailRequest');
|
|
96
122
|
try {
|
|
97
123
|
let dataSource = new emailDataSource_1.EmailDataSource();
|
|
@@ -102,13 +128,13 @@ class EmailHandler {
|
|
|
102
128
|
let curentTimeZone = start
|
|
103
129
|
.tz(reqBody.timezoneOffset)
|
|
104
130
|
.format('Do MMMM YYYY, h:mm a');
|
|
105
|
-
const root =
|
|
131
|
+
const root = HTMLParser.parse((_a = response[0]) === null || _a === void 0 ? void 0 : _a.hclplatformx_Body);
|
|
106
132
|
root.querySelector('#1_dynamic_text').textContent = ` ${reqBody.userName}`;
|
|
107
|
-
root.querySelector('#2_dynamic_text').textContent =
|
|
108
|
-
root.querySelector('#3_dynamic_text').textContent =
|
|
109
|
-
root.querySelector('#dynamic_contentType').textContent =
|
|
110
|
-
root.querySelector('#dynamic_event').textContent =
|
|
111
|
-
if (reqBody.event.toLowerCase() === 'published') {
|
|
133
|
+
root.querySelector('#2_dynamic_text').textContent = DOMPurify.sanitize(`<b> ${reqBody.pageTitle} </b>`);
|
|
134
|
+
root.querySelector('#3_dynamic_text').textContent = DOMPurify.sanitize(`<b>${curentTimeZone}</b>`);
|
|
135
|
+
root.querySelector('#dynamic_contentType').textContent = DOMPurify.sanitize(`<b>${reqBody.contentType}</b>`);
|
|
136
|
+
root.querySelector('#dynamic_event').textContent = DOMPurify.sanitize(`<b>${reqBody.event[0] + reqBody.event.slice(1)}</b>`);
|
|
137
|
+
if (((_b = reqBody === null || reqBody === void 0 ? void 0 : reqBody.event) === null || _b === void 0 ? void 0 : _b.toLowerCase()) === 'published') {
|
|
112
138
|
root
|
|
113
139
|
.querySelector('.dynamic_links_btn')
|
|
114
140
|
.setAttribute('href', reqBody.publishPageUrl);
|
|
@@ -117,11 +143,11 @@ class EmailHandler {
|
|
|
117
143
|
root.querySelector('#viewButton').setAttribute('style', 'display:none');
|
|
118
144
|
}
|
|
119
145
|
const append = root.querySelector('head');
|
|
120
|
-
append.insertAdjacentHTML('beforeend',
|
|
146
|
+
append.insertAdjacentHTML('beforeend', DOMPurify.sanitize(style_1.style));
|
|
121
147
|
let emailConfiguration = {
|
|
122
148
|
email: reqBody.emailTo,
|
|
123
149
|
emailTemplate: root.toString(),
|
|
124
|
-
subject:
|
|
150
|
+
subject: DOMPurify.sanitize(response[0].hclplatformx_Subject.replace('{{pageType}}', reqBody.contentType[0] + reqBody.contentType.slice(1))
|
|
125
151
|
.replace('{{publishOrUnpublish}}', reqBody.event[0] + reqBody.event.slice(1))),
|
|
126
152
|
};
|
|
127
153
|
logger_1.Logger.debug('Reached prepareEmailRequest - emailConfiguration', 'prepareEmailRequest', emailConfiguration);
|
|
@@ -142,8 +168,8 @@ class EmailHandler {
|
|
|
142
168
|
* @returns
|
|
143
169
|
*/
|
|
144
170
|
prepareSendEmailRequest(reqBody, emailType) {
|
|
145
|
-
var _a, _b, _c, _d;
|
|
146
171
|
return __awaiter(this, void 0, void 0, function* () {
|
|
172
|
+
var _a, _b, _c, _d;
|
|
147
173
|
logger_1.Logger.info('Reached prepareSendEmailRequest in emailHandler', 'prepareSendEmailRequest');
|
|
148
174
|
try {
|
|
149
175
|
let dataSource = new emailDataSource_1.EmailDataSource();
|
|
@@ -157,7 +183,7 @@ class EmailHandler {
|
|
|
157
183
|
}
|
|
158
184
|
}
|
|
159
185
|
}
|
|
160
|
-
const root =
|
|
186
|
+
const root = HTMLParser.parse((_c = templateData[0]) === null || _c === void 0 ? void 0 : _c.hclplatformx_Body);
|
|
161
187
|
let emailConfiguration = {
|
|
162
188
|
email: (_d = reqBody.replacement_variables) === null || _d === void 0 ? void 0 : _d.EMAIL,
|
|
163
189
|
emailTemplate: root ? root.toString() : '',
|
|
@@ -183,7 +209,7 @@ class EmailHandler {
|
|
|
183
209
|
return __awaiter(this, void 0, void 0, function* () {
|
|
184
210
|
logger_1.Logger.info('Reached pushEmails in emailHandler', 'pushEmails');
|
|
185
211
|
return yield this.sendEmail(emailConfiguration).then((response) => __awaiter(this, void 0, void 0, function* () {
|
|
186
|
-
if (response.statusCode === '202') {
|
|
212
|
+
if ((response === null || response === void 0 ? void 0 : response.statusCode) === '202' || response.statusCode === 202) {
|
|
187
213
|
response.msg =
|
|
188
214
|
'Thanks for getting in touch with us. We shall contact you soon.';
|
|
189
215
|
return response;
|
|
@@ -200,14 +226,16 @@ class EmailHandler {
|
|
|
200
226
|
* @param emailConfig
|
|
201
227
|
* @returns
|
|
202
228
|
*/
|
|
203
|
-
sendEmailWithPersonalizations(emailConfig,
|
|
229
|
+
sendEmailWithPersonalizations(emailConfig, email_from) {
|
|
204
230
|
return __awaiter(this, void 0, void 0, function* () {
|
|
205
231
|
logger_1.Logger.info(`EmailHandler: Reached sendEmailWithPersonalizations method with emailConfig: ${JSON.stringify(emailConfig)}`, 'sendEmailWithPersonalizations');
|
|
232
|
+
logger_1.Logger.info(`EMAIL_FROM-------> ${email_from}`, 'sendEmailWithPersonalizations');
|
|
206
233
|
const Mail = sgHelpers.classes.Mail;
|
|
207
|
-
let email_from = isCFF ?
|
|
234
|
+
// let email_from = isCFF ? config?.CFF_MAIL_FROM : config?.EMAIL_FROM;
|
|
208
235
|
logger_1.Logger.info('sendEmailWithPersonalizations : Email From:', JSON.stringify(email_from));
|
|
209
236
|
const Personalization = sgHelpers.classes.Personalization;
|
|
210
|
-
|
|
237
|
+
const secrets = yield (0, __1.getIAMSecrets)();
|
|
238
|
+
sgMail.setApiKey(secrets === null || secrets === void 0 ? void 0 : secrets[constants_1.DynamicValues === null || constants_1.DynamicValues === void 0 ? void 0 : constants_1.DynamicValues.SENDGRID_API_KEY]);
|
|
211
239
|
const mail = new Mail();
|
|
212
240
|
mail.setFrom(email_from);
|
|
213
241
|
mail.setSubject(emailConfig.subject);
|
|
@@ -216,10 +244,19 @@ class EmailHandler {
|
|
|
216
244
|
// Set personalizations as per the emailConfig
|
|
217
245
|
if ((emailConfig === null || emailConfig === void 0 ? void 0 : emailConfig.personalizations) &&
|
|
218
246
|
(emailConfig === null || emailConfig === void 0 ? void 0 : emailConfig.personalizations.to.length)) {
|
|
219
|
-
const { to } = emailConfig === null || emailConfig === void 0 ? void 0 : emailConfig.personalizations;
|
|
220
|
-
|
|
247
|
+
const { to, cc } = emailConfig === null || emailConfig === void 0 ? void 0 : emailConfig.personalizations;
|
|
248
|
+
// Create separate personalization for each TO recipient with their unique substitutions
|
|
249
|
+
to.forEach((toData, index) => {
|
|
221
250
|
const personalization = new Personalization();
|
|
222
251
|
personalization.addTo(toData.to);
|
|
252
|
+
// Add CC emails to EACH personalization (CC gets email for each TO recipient)
|
|
253
|
+
if (cc && cc.length > 0) {
|
|
254
|
+
cc.forEach((ccData) => {
|
|
255
|
+
personalization.addCc(ccData.to);
|
|
256
|
+
logger_1.Logger.info(`Adding CC email ${ccData.to} to personalization ${index + 1} for TO: ${toData.to}`, 'sendEmailWithPersonalizations');
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
// Add unique substitutions for each TO recipient
|
|
223
260
|
if (toData === null || toData === void 0 ? void 0 : toData.substitutions) {
|
|
224
261
|
for (const key in toData === null || toData === void 0 ? void 0 : toData.substitutions) {
|
|
225
262
|
if (key) {
|
|
@@ -228,11 +265,13 @@ class EmailHandler {
|
|
|
228
265
|
}
|
|
229
266
|
}
|
|
230
267
|
mail.addPersonalization(personalization);
|
|
268
|
+
logger_1.Logger.info(`Personalization ${index + 1} created for TO: ${toData.to} with ${(cc === null || cc === void 0 ? void 0 : cc.length) || 0} CC recipients`, 'sendEmailWithPersonalizations');
|
|
231
269
|
});
|
|
270
|
+
// Handle attachments
|
|
232
271
|
if ((emailConfig === null || emailConfig === void 0 ? void 0 : emailConfig.attachments) && Array.isArray(emailConfig.attachments)) {
|
|
233
272
|
emailConfig.attachments.forEach((attachment) => {
|
|
234
273
|
mail.addAttachment({
|
|
235
|
-
content: attachment.base64,
|
|
274
|
+
content: attachment.base64, // base64 string
|
|
236
275
|
filename: attachment.filename,
|
|
237
276
|
type: attachment.type || 'application/octet-stream',
|
|
238
277
|
disposition: 'attachment',
|
|
@@ -242,9 +281,17 @@ class EmailHandler {
|
|
|
242
281
|
}
|
|
243
282
|
}
|
|
244
283
|
else {
|
|
245
|
-
// set to email for non personalized email
|
|
284
|
+
// set to email for non personalized email with CC support
|
|
246
285
|
const personalization = new Personalization();
|
|
247
286
|
personalization.addTo(emailConfig.email);
|
|
287
|
+
// Add CC emails if provided in non-personalized mode
|
|
288
|
+
if (emailConfig.cc) {
|
|
289
|
+
const ccEmails = Array.isArray(emailConfig.cc) ? emailConfig.cc : [emailConfig.cc];
|
|
290
|
+
ccEmails.forEach((ccEmail) => {
|
|
291
|
+
personalization.addCc(ccEmail);
|
|
292
|
+
logger_1.Logger.info(`Adding CC email to non-personalized email: ${ccEmail}`, 'sendEmailWithPersonalizations');
|
|
293
|
+
});
|
|
294
|
+
}
|
|
248
295
|
logger_1.Logger.info('sendEmailWithPersonalizations : Email personalizations:', JSON.stringify(personalization));
|
|
249
296
|
mail.addPersonalization(personalization);
|
|
250
297
|
}
|
|
@@ -262,20 +309,46 @@ class EmailHandler {
|
|
|
262
309
|
});
|
|
263
310
|
});
|
|
264
311
|
}
|
|
312
|
+
/**
|
|
313
|
+
* Utility method to prepare CC emails in standardized format
|
|
314
|
+
* @param ccEmails - Can be string, array of strings, or Recipients array
|
|
315
|
+
* @returns Array of email strings
|
|
316
|
+
*/
|
|
317
|
+
prepareCCEmails(ccEmails) {
|
|
318
|
+
if (!ccEmails)
|
|
319
|
+
return [];
|
|
320
|
+
if (typeof ccEmails === 'string') {
|
|
321
|
+
return [ccEmails];
|
|
322
|
+
}
|
|
323
|
+
if (Array.isArray(ccEmails)) {
|
|
324
|
+
return ccEmails.map((cc) => {
|
|
325
|
+
if (typeof cc === 'string')
|
|
326
|
+
return cc;
|
|
327
|
+
if (cc.email)
|
|
328
|
+
return cc.email; // Recipients object
|
|
329
|
+
return cc.to || cc; // ToWithSubstitutions object
|
|
330
|
+
}).filter(email => email && typeof email === 'string');
|
|
331
|
+
}
|
|
332
|
+
return [];
|
|
333
|
+
}
|
|
265
334
|
/**
|
|
266
335
|
* prepare personalize email request to send email through sendgrid
|
|
267
336
|
* @param reqBody
|
|
268
337
|
* @returns
|
|
269
338
|
*/
|
|
270
339
|
sendPersonalizeEmailRequest(reqBody) {
|
|
271
|
-
var _a, _b;
|
|
272
340
|
return __awaiter(this, void 0, void 0, function* () {
|
|
341
|
+
var _a, _b;
|
|
273
342
|
try {
|
|
274
|
-
let { email_type, replacement_variables, recipients, isCFF =
|
|
275
|
-
logger_1.Logger.info(`EmailHandler: reached in sendPersonalizeEmailRequest with emailType: ${email_type}`, 'sendPersonalizeEmailRequest');
|
|
343
|
+
let { email_type, replacement_variables, recipients, cc_recipients, isCFF = config_1.default === null || config_1.default === void 0 ? void 0 : config_1.default.EMAIL_FROM, sender_info = {} } = reqBody;
|
|
344
|
+
logger_1.Logger.info(`EmailHandler: reached in sendPersonalizeEmailRequest with emailType: ${email_type} and ${isCFF}`, 'sendPersonalizeEmailRequest');
|
|
345
|
+
console.log('sender_info ***********', sender_info);
|
|
276
346
|
// disable SOLR because of connectivity issue
|
|
277
347
|
logger_1.Logger.debug('Reached sendPersonalizeEmailRequest in emailHandler', 'sendPersonalizeEmailRequest');
|
|
278
|
-
|
|
348
|
+
const { name, email, documentpath } = sender_info;
|
|
349
|
+
console.log('email and name document path ***********', email, name, documentpath);
|
|
350
|
+
let templateData = yield this.fetchEmailTemplateData(reqBody, documentpath);
|
|
351
|
+
console.log('templateData ***********', templateData);
|
|
279
352
|
logger_1.Logger.debug('Reached sendPersonalizeEmailRequest in emailHandler', 'sendPersonalizeEmailRequest', templateData);
|
|
280
353
|
let recipientsData = {};
|
|
281
354
|
if ((0, lodash_1.isArray)(recipients)) {
|
|
@@ -290,9 +363,20 @@ class EmailHandler {
|
|
|
290
363
|
recipientsData = {
|
|
291
364
|
to,
|
|
292
365
|
};
|
|
366
|
+
// Add CC recipients if they exist
|
|
367
|
+
if (cc_recipients && (0, lodash_1.isArray)(cc_recipients)) {
|
|
368
|
+
const cc = [];
|
|
369
|
+
cc_recipients.forEach((ccRecipient) => {
|
|
370
|
+
cc.push({
|
|
371
|
+
to: ccRecipient === null || ccRecipient === void 0 ? void 0 : ccRecipient.email,
|
|
372
|
+
});
|
|
373
|
+
});
|
|
374
|
+
recipientsData.cc = cc;
|
|
375
|
+
}
|
|
293
376
|
}
|
|
294
377
|
if (templateData && ((_a = Object.keys(templateData)) === null || _a === void 0 ? void 0 : _a.length) !== 0) {
|
|
295
|
-
const root =
|
|
378
|
+
const root = HTMLParser.parse(templateData === null || templateData === void 0 ? void 0 : templateData.body);
|
|
379
|
+
isCFF = (templateData === null || templateData === void 0 ? void 0 : templateData.email_from) && (templateData === null || templateData === void 0 ? void 0 : templateData.email_from) !== '' ? templateData === null || templateData === void 0 ? void 0 : templateData.email_from : isCFF;
|
|
296
380
|
const emailConfiguration = {
|
|
297
381
|
email: (_b = reqBody.replacement_variables) === null || _b === void 0 ? void 0 : _b.EMAIL,
|
|
298
382
|
emailTemplate: root ? root.toString() : '',
|
|
@@ -300,12 +384,17 @@ class EmailHandler {
|
|
|
300
384
|
personalizations: recipientsData,
|
|
301
385
|
attachments: reqBody === null || reqBody === void 0 ? void 0 : reqBody.attachments,
|
|
302
386
|
};
|
|
303
|
-
let is_cff = (isCFF && isCFF === true) ? true : false;
|
|
387
|
+
// let is_cff: boolean = (isCFF && isCFF === true) ? true : false;
|
|
304
388
|
logger_1.Logger.info(`sendPersonalizeEmailRequest -${JSON.stringify(emailConfiguration)}`, 'sendPersonalizeEmailRequest');
|
|
305
|
-
|
|
389
|
+
const senderFrom = email && name ? { email, name } : isCFF;
|
|
390
|
+
console.log('senderFrom ***********', senderFrom);
|
|
391
|
+
console.log('emailConfiguration ***********', emailConfiguration);
|
|
392
|
+
logger_1.Logger.info(`sendPersonalizeEmailRequest - senderFrom: ${JSON.stringify(senderFrom)}`, 'sendPersonalizeEmailRequest');
|
|
393
|
+
return yield this.sendEmailWithPersonalizations(emailConfiguration, senderFrom).then((response) => __awaiter(this, void 0, void 0, function* () {
|
|
306
394
|
if (response.statusCode === 202) {
|
|
307
395
|
response.msg =
|
|
308
396
|
'Thanks for getting in touch with us. We shall contact you soon.';
|
|
397
|
+
logger_1.Logger.info(`sendPersonalizeEmailRequest - response: ${JSON.stringify(response)}`, 'sendPersonalizeEmailRequest');
|
|
309
398
|
return response;
|
|
310
399
|
}
|
|
311
400
|
else {
|
|
@@ -330,15 +419,15 @@ class EmailHandler {
|
|
|
330
419
|
const start = moment.tz(reqBody.dateTime, 'UTC'); // original timezone
|
|
331
420
|
start.tz(reqBody.timezoneOffset).format('Do MMMM YYYY, h:mm a');
|
|
332
421
|
let str = yield emailTemplate_1.EmailTemplateHandler.prepareEmailTemplate(reqBody);
|
|
333
|
-
let root =
|
|
422
|
+
let root = HTMLParser.parse(str);
|
|
334
423
|
root.querySelector('#1_dynamic_text').textContent = `${reqBody.userName}`;
|
|
335
|
-
root.querySelector('#2_dynamic_text').textContent =
|
|
336
|
-
root.querySelector('#3_dynamic_text').textContent =
|
|
337
|
-
root.querySelector('#4_dynamic_text').textContent =
|
|
338
|
-
root.querySelector('#5_dynamic_text').textContent =
|
|
339
|
-
root.querySelector('#6_dynamic_text').textContent =
|
|
424
|
+
root.querySelector('#2_dynamic_text').textContent = DOMPurify.sanitize(`<b> ${reqBody.total_price} </b>`);
|
|
425
|
+
root.querySelector('#3_dynamic_text').textContent = DOMPurify.sanitize(`<b>${reqBody.currency_code}</b>`);
|
|
426
|
+
root.querySelector('#4_dynamic_text').textContent = DOMPurify.sanitize(`<b>${reqBody.shipping_address.streetName} ${reqBody.shipping_address.city} ${reqBody.shipping_address.state} ${reqBody.shipping_address.country}${reqBody.shipping_address.postalCode} </b>`);
|
|
427
|
+
root.querySelector('#5_dynamic_text').textContent = DOMPurify.sanitize(`<b>${reqBody.total_tax}</b>`);
|
|
428
|
+
root.querySelector('#6_dynamic_text').textContent = DOMPurify.sanitize(`<b>${reqBody.orderNumber}</b>`);
|
|
340
429
|
const apeend = root.querySelector('head');
|
|
341
|
-
apeend.insertAdjacentHTML('beforeend',
|
|
430
|
+
apeend.insertAdjacentHTML('beforeend', DOMPurify.sanitize(style_1.style));
|
|
342
431
|
let emailConfiguration = {
|
|
343
432
|
email: reqBody.emailTo,
|
|
344
433
|
emailTemplate: root.toString(),
|
|
@@ -362,7 +451,8 @@ class EmailHandler {
|
|
|
362
451
|
const start = moment.tz(reqBody.dateTime, 'UTC'); // original timezone
|
|
363
452
|
let curentTimeZone = start;
|
|
364
453
|
curentTimeZone.tz(reqBody.timezoneOffset).format('Do MMMM YYYY, h:mm a');
|
|
365
|
-
|
|
454
|
+
const emailTemplate = path_1.default.resolve(__dirname, '../../../templates/orderPlaced.ejs');
|
|
455
|
+
console.log('>>>>>>>>>>>>>>>>>>>>>>>>>>.', emailTemplate);
|
|
366
456
|
let billingStr = '';
|
|
367
457
|
billingStr +=
|
|
368
458
|
Object.keys(reqBody.billing_address).length !== 0
|
|
@@ -410,25 +500,27 @@ class EmailHandler {
|
|
|
410
500
|
}
|
|
411
501
|
});
|
|
412
502
|
}
|
|
413
|
-
fetchEmailTemplateData(reqBody) {
|
|
414
|
-
var _a, _b, _c, _d;
|
|
503
|
+
fetchEmailTemplateData(reqBody, documentpath) {
|
|
415
504
|
return __awaiter(this, void 0, void 0, function* () {
|
|
505
|
+
var _a, _b, _c, _d, _e, _f;
|
|
416
506
|
try {
|
|
417
507
|
logger_1.Logger.info('EmailHandler: Reached fetchEmailTemplateData', 'fetchEmailTemplateData');
|
|
418
508
|
let { email_type } = reqBody;
|
|
419
509
|
let dataSource = new emailDataSource_1.EmailDataSource();
|
|
420
510
|
let templateData = {};
|
|
421
511
|
if ((config_1.default === null || config_1.default === void 0 ? void 0 : config_1.default.MULTISITE_WITH_SOLR) === 'true') {
|
|
422
|
-
let templateSolrRes = yield dataSource.fetchPageModel(email_type);
|
|
512
|
+
let templateSolrRes = yield dataSource.fetchPageModel(email_type, documentpath);
|
|
423
513
|
if ((templateSolrRes === null || templateSolrRes === void 0 ? void 0 : templateSolrRes.length) > 0) {
|
|
424
514
|
templateData.body = ((_a = templateSolrRes === null || templateSolrRes === void 0 ? void 0 : templateSolrRes[0]) === null || _a === void 0 ? void 0 : _a.hclplatformx_Body) || '';
|
|
425
515
|
templateData.subject = ((_b = templateSolrRes === null || templateSolrRes === void 0 ? void 0 : templateSolrRes[0]) === null || _b === void 0 ? void 0 : _b.hclplatformx_Subject) || '';
|
|
516
|
+
templateData.email_from = ((_c = templateSolrRes === null || templateSolrRes === void 0 ? void 0 : templateSolrRes[0]) === null || _c === void 0 ? void 0 : _c.hclplatformx_To) || '';
|
|
426
517
|
}
|
|
427
518
|
}
|
|
428
519
|
else {
|
|
429
520
|
let templateRes = yield new formBuilder_dao_1.default().fetch('email_templates', { name: email_type });
|
|
430
|
-
templateData.body = (
|
|
431
|
-
templateData.subject = (
|
|
521
|
+
templateData.body = (_d = templateRes === null || templateRes === void 0 ? void 0 : templateRes[0]) === null || _d === void 0 ? void 0 : _d.body;
|
|
522
|
+
templateData.subject = (_e = templateRes === null || templateRes === void 0 ? void 0 : templateRes[0]) === null || _e === void 0 ? void 0 : _e.subject;
|
|
523
|
+
templateData.email_from = ((_f = templateRes === null || templateRes === void 0 ? void 0 : templateRes[0]) === null || _f === void 0 ? void 0 : _f.to) || '';
|
|
432
524
|
}
|
|
433
525
|
return templateData;
|
|
434
526
|
}
|
|
@@ -10,11 +10,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.EmailTemplateHandler = void 0;
|
|
13
|
-
// NOSONAR-NEXT-LINE
|
|
14
13
|
class EmailTemplateHandler {
|
|
15
|
-
|
|
16
|
-
// NOSONAR-NEXT-LINE
|
|
17
|
-
constructor() { } // NOSONAR
|
|
14
|
+
constructor() { }
|
|
18
15
|
static prepareEmailTemplate(reqBody) {
|
|
19
16
|
return __awaiter(this, void 0, void 0, function* () {
|
|
20
17
|
let str = `<!DOCTYPE html>\r\n
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { DataSource } from 'apollo-datasource';
|
|
2
|
+
export interface Pagination {
|
|
3
|
+
start: number;
|
|
4
|
+
rows: number;
|
|
5
|
+
}
|
|
6
|
+
export interface FilterQueryType {
|
|
7
|
+
field: string;
|
|
8
|
+
value: string;
|
|
9
|
+
}
|
|
10
|
+
export interface SolrQueryRequest {
|
|
11
|
+
query: string | object;
|
|
12
|
+
filterQuery?: FilterQueryType[] | null;
|
|
13
|
+
pagination?: Pagination;
|
|
14
|
+
filter?: object | string[];
|
|
15
|
+
sort?: object;
|
|
16
|
+
}
|
|
17
|
+
export declare class SolrHttpDataSource<TContext = any> extends DataSource {
|
|
18
|
+
context: TContext;
|
|
19
|
+
private solr;
|
|
20
|
+
private cache;
|
|
21
|
+
private memoizedResults;
|
|
22
|
+
constructor(core?: string);
|
|
23
|
+
initialize({ context, cache }?: any): void;
|
|
24
|
+
didEncounterError(error: any): void;
|
|
25
|
+
cacheKey(id: string): string;
|
|
26
|
+
memoizedCacheKey(): string;
|
|
27
|
+
createQuery(queryRequest: SolrQueryRequest): void;
|
|
28
|
+
executeSearch(): Promise<any>;
|
|
29
|
+
}
|