@b2y/ecommerce-common 1.2.2 → 1.2.3
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/controller/SubscriptionAbstractController.js +0 -1
- package/controller/TenantAbstractController.js +16 -17
- package/controller/TenantSettingsAbstractController.js +49 -44
- package/dbconnection/Connect.js +0 -4
- package/index.js +3 -2
- package/model/Order.js +0 -10
- package/package.json +2 -1
- package/controller/PermissionAbstractController.js +0 -35
|
@@ -418,24 +418,23 @@ const getTenantById = (
|
|
|
418
418
|
res,
|
|
419
419
|
);
|
|
420
420
|
}
|
|
421
|
-
let logo =
|
|
421
|
+
let logo = null;;
|
|
422
422
|
if(tenant.TenantSettings) {
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
}
|
|
437
|
-
|
|
438
|
-
}
|
|
423
|
+
const document = await Document.findOne({
|
|
424
|
+
where: {
|
|
425
|
+
EntityType: EntityTypeEnum.TENANT_SETTINGS,
|
|
426
|
+
EntityID: tenant.TenantSettings.TenantSettingID,
|
|
427
|
+
},
|
|
428
|
+
order: [["SortOrder", "ASC"]],
|
|
429
|
+
});
|
|
430
|
+
if (document) {
|
|
431
|
+
logo = {
|
|
432
|
+
documentId: document.DocumentID,
|
|
433
|
+
sortOrder: document.SortOrder,
|
|
434
|
+
documentUrl: await getPublicUrl(document, logger),
|
|
435
|
+
};
|
|
436
|
+
}
|
|
437
|
+
}
|
|
439
438
|
const { countryName, stateName } =
|
|
440
439
|
await LocationUtility.resolveCountryAndState(
|
|
441
440
|
tenant.CountryCode,
|
|
@@ -3,6 +3,34 @@ const StatusMessage = require('../constants/StatusMessageConstants');
|
|
|
3
3
|
const AppUtil = require('../utility/AppUtil');
|
|
4
4
|
const AppConstants = require('../constants/AppConstants')
|
|
5
5
|
|
|
6
|
+
const tenantSettingsDocumentValidation = async (
|
|
7
|
+
file,
|
|
8
|
+
documentMetadata,
|
|
9
|
+
FileUploadUtil,
|
|
10
|
+
FILE_PATHS,
|
|
11
|
+
logger
|
|
12
|
+
) => {
|
|
13
|
+
if (documentMetadata !== undefined) {
|
|
14
|
+
if (
|
|
15
|
+
typeof documentMetadata !== AppConstants.OBJECT ||
|
|
16
|
+
Array.isArray(documentMetadata)
|
|
17
|
+
) {
|
|
18
|
+
logger.warn(
|
|
19
|
+
"Validation Failed: documentMetadata must be a single object for this operation.",
|
|
20
|
+
);
|
|
21
|
+
throw new Error(StatusMessage.TENANT_SETTINGS_SINGLE_LOGO_ALLOWED);
|
|
22
|
+
}
|
|
23
|
+
logger.info("Uploading new files to storage before transaction");
|
|
24
|
+
const uploadResult = await FileUploadUtil.uploadFilesToStorage(
|
|
25
|
+
documentMetadata,
|
|
26
|
+
file,
|
|
27
|
+
FILE_PATHS.IMAGE_DIR,
|
|
28
|
+
);
|
|
29
|
+
return uploadResult
|
|
30
|
+
}
|
|
31
|
+
return [];
|
|
32
|
+
};
|
|
33
|
+
|
|
6
34
|
const getTenantSettingsById = (TenantSettings, Document, getPublicUrl, logger) => {
|
|
7
35
|
return async (req, res) => {
|
|
8
36
|
try {
|
|
@@ -24,22 +52,21 @@ return async (req, res) => {
|
|
|
24
52
|
res
|
|
25
53
|
);
|
|
26
54
|
}
|
|
27
|
-
|
|
28
|
-
const
|
|
55
|
+
let logo = null;
|
|
56
|
+
const document = await Document.findOne({
|
|
29
57
|
where: {
|
|
30
58
|
EntityType: EntityTypeEnum.TENANT_SETTINGS,
|
|
31
59
|
EntityID: settings.TenantSettingID
|
|
32
60
|
},
|
|
33
61
|
order: [["SortOrder", "ASC"]]
|
|
34
62
|
});
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
);
|
|
63
|
+
if(document) {
|
|
64
|
+
logo = {
|
|
65
|
+
documentId: document.DocumentID,
|
|
66
|
+
sortOrder: document.SortOrder,
|
|
67
|
+
documentUrl: await getPublicUrl(document, logger)
|
|
68
|
+
}
|
|
69
|
+
}
|
|
43
70
|
const formattedSettings = {
|
|
44
71
|
TenantSettingID: settings.TenantSettingID,
|
|
45
72
|
TenantID: settings.TenantID,
|
|
@@ -133,30 +160,9 @@ return async (req, res) => {
|
|
|
133
160
|
}
|
|
134
161
|
|
|
135
162
|
// Upload new file to storage before starting transaction
|
|
136
|
-
|
|
137
|
-
if
|
|
138
|
-
|
|
139
|
-
typeof documentMetadata !== AppConstants.OBJECT ||
|
|
140
|
-
Array.isArray(documentMetadata)
|
|
141
|
-
) {
|
|
142
|
-
logger.warn(
|
|
143
|
-
"Validation Failed: documentMetadata must be a single object for this operation.",
|
|
144
|
-
);
|
|
145
|
-
return AppUtil.generateResponse(
|
|
146
|
-
400,
|
|
147
|
-
StatusMessage.FAILURE,
|
|
148
|
-
StatusMessage.TENANT_SETTINGS_SINGLE_LOGO_ALLOWED,
|
|
149
|
-
null,
|
|
150
|
-
res,
|
|
151
|
-
);
|
|
152
|
-
}
|
|
153
|
-
logger.info('Uploading new files to storage before transaction');
|
|
154
|
-
uploadResult = await FileUploadUtil.uploadFilesToStorage(
|
|
155
|
-
documentMetadata,
|
|
156
|
-
req.files,
|
|
157
|
-
FILE_PATHS.IMAGE_DIR
|
|
158
|
-
);
|
|
159
|
-
uploadedFilePath = uploadResult.map(r => r.path);
|
|
163
|
+
const uploadResult = await tenantSettingsDocumentValidation(req.files, documentMetadata, FileUploadUtil, FILE_PATHS, logger)
|
|
164
|
+
if(uploadResult.length > 0) {
|
|
165
|
+
uploadedFilePath = uploadResult.map(result => result.path)
|
|
160
166
|
}
|
|
161
167
|
|
|
162
168
|
// Start database transaction
|
|
@@ -203,16 +209,15 @@ return async (req, res) => {
|
|
|
203
209
|
logger.info('Cleaning up uploaded files due to error');
|
|
204
210
|
await FileUploadUtil.cleanupFiles(uploadedFilePath);
|
|
205
211
|
}
|
|
206
|
-
|
|
212
|
+
const errorMessages = [
|
|
213
|
+
StatusMessage.INVALID_SORT_ORDER,
|
|
214
|
+
StatusMessage.FILE_NOT_FOUND,
|
|
215
|
+
StatusMessage.INVALID_FILE_UPLOAD_INPUT,
|
|
216
|
+
StatusMessage.TENANT_SETTINGS_SINGLE_LOGO_ALLOWED,
|
|
217
|
+
];
|
|
207
218
|
// Error handling
|
|
208
|
-
if (error.message
|
|
209
|
-
return AppUtil.generateResponse(400, StatusMessage.FAILURE,
|
|
210
|
-
}
|
|
211
|
-
if (error.message === StatusMessage.FILE_NOT_FOUND) {
|
|
212
|
-
return AppUtil.generateResponse(400, StatusMessage.FAILURE, StatusMessage.FILE_NOT_FOUND, null, res);
|
|
213
|
-
}
|
|
214
|
-
if(error.message === StatusMessage.INVALID_FILE_UPLOAD_INPUT) {
|
|
215
|
-
return AppUtil.generateResponse(400, StatusMessage.FAILURE, StatusMessage.INVALID_FILE_UPLOAD_INPUT, null, res);
|
|
219
|
+
if (errorMessages.includes(error.message)) {
|
|
220
|
+
return AppUtil.generateResponse(400, StatusMessage.FAILURE, error.message, null, res);
|
|
216
221
|
}
|
|
217
222
|
if (error.name === 'SequelizeUniqueConstraintError') {
|
|
218
223
|
return AppUtil.generateResponse(400, StatusMessage.FAILURE, StatusMessage.TENANT_SETTINGS_ALREADY_EXISTS, null, res);
|
|
@@ -228,5 +233,5 @@ return async (req, res) => {
|
|
|
228
233
|
});
|
|
229
234
|
};
|
|
230
235
|
}
|
|
231
|
-
module.exports = {getTenantSettingsById, updateTenantSettings};
|
|
236
|
+
module.exports = {getTenantSettingsById, updateTenantSettings, tenantSettingsDocumentValidation};
|
|
232
237
|
|
package/dbconnection/Connect.js
CHANGED
package/index.js
CHANGED
|
@@ -5,7 +5,8 @@ const SubscriptionAbstractController = require('./controller/SubscriptionAbstrac
|
|
|
5
5
|
const TenantAbstractController = require('./controller/TenantAbstractController');
|
|
6
6
|
const TenantSettingsAbstractController = require('./controller/TenantSettingsAbstractController');
|
|
7
7
|
const LocationController = require('./controller/LocationController');
|
|
8
|
-
const
|
|
8
|
+
const CommonAppConstants = require('./constants/AppConstants');
|
|
9
|
+
const CommonStatusMessage = require('./constants/StatusMessageConstants');
|
|
9
10
|
const enums = {};
|
|
10
11
|
const enumDir = path.join(__dirname, 'enum');
|
|
11
12
|
fs.readdirSync(enumDir).forEach((file) => {
|
|
@@ -23,4 +24,4 @@ fs.readdirSync(utilDir).forEach((file) => {
|
|
|
23
24
|
}
|
|
24
25
|
})
|
|
25
26
|
|
|
26
|
-
module.exports = {initializeModels, enums, utils, SubscriptionAbstractController, TenantAbstractController, TenantSettingsAbstractController, LocationController
|
|
27
|
+
module.exports = {initializeModels, enums, utils, CommonAppConstants, CommonStatusMessage, SubscriptionAbstractController, TenantAbstractController, TenantSettingsAbstractController, LocationController};
|
package/model/Order.js
CHANGED
|
@@ -37,16 +37,6 @@ module.exports = (sequelize) => {
|
|
|
37
37
|
type: DataTypes.DATE,
|
|
38
38
|
allowNull: false
|
|
39
39
|
},
|
|
40
|
-
AddressID: {
|
|
41
|
-
type: DataTypes.UUID,
|
|
42
|
-
allowNull: false,
|
|
43
|
-
references: {
|
|
44
|
-
model: 'Address',
|
|
45
|
-
key: 'AddressID'
|
|
46
|
-
},
|
|
47
|
-
onDelete: 'RESTRICT',
|
|
48
|
-
onUpdate: 'CASCADE'
|
|
49
|
-
},
|
|
50
40
|
TotalAmount: {
|
|
51
41
|
type: DataTypes.DECIMAL(10, 2),
|
|
52
42
|
allowNull: false
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@b2y/ecommerce-common",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.3",
|
|
4
4
|
"description": "E-commerce common library",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
"homepage": "https://github.com/yuvakrishna29/ecommerce-common#readme",
|
|
22
22
|
"peerDependencies": {
|
|
23
23
|
"@countrystatecity/countries": "^1.0.4",
|
|
24
|
+
"@b2y/document-module": "^1.0.4",
|
|
24
25
|
"exceljs": "^4.4.0",
|
|
25
26
|
"luxon": "^3.7.2",
|
|
26
27
|
"puppeteer": "^24.35.0",
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
const AppUtil = require('../utility/AppUtil');
|
|
2
|
-
const StatusMessage = require('../constants/StatusMessageConstants');
|
|
3
|
-
|
|
4
|
-
getAllPermissions = (Permission, logger) => {
|
|
5
|
-
return async (req, res) => {
|
|
6
|
-
const { pageNumber, pageSize } = req.query;
|
|
7
|
-
try {
|
|
8
|
-
const { limit, offset } = AppUtil.getPagination(pageNumber, pageSize);
|
|
9
|
-
|
|
10
|
-
const { rows, count } = await Permission.findAndCountAll({
|
|
11
|
-
attributes: ["PermissionID", "Module", "Name", "IsChecked"],
|
|
12
|
-
limit,
|
|
13
|
-
offset,
|
|
14
|
-
});
|
|
15
|
-
return AppUtil.generateResponse(
|
|
16
|
-
200,
|
|
17
|
-
StatusMessage.SUCCESS,
|
|
18
|
-
null,
|
|
19
|
-
{ rows, count, pageNumber, limit },
|
|
20
|
-
res,
|
|
21
|
-
);
|
|
22
|
-
} catch (error) {
|
|
23
|
-
logger.error("Error fetching permissions:", error);
|
|
24
|
-
return AppUtil.generateResponse(
|
|
25
|
-
500,
|
|
26
|
-
StatusMessage.FAILURE,
|
|
27
|
-
StatusMessage.SERVER_ERROR,
|
|
28
|
-
null,
|
|
29
|
-
res,
|
|
30
|
-
);
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
module.exports = {getAllPermissions}
|