tuain-form-manager 1.2.4 → 1.3.0
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/lib/form-manager.js +36 -47
- package/package.json +1 -1
package/lib/form-manager.js
CHANGED
|
@@ -8,9 +8,10 @@ const { customizeFormDefinition } = require('./form-utils');
|
|
|
8
8
|
const START_OPERATION = 'startOperation';
|
|
9
9
|
|
|
10
10
|
class FormManager {
|
|
11
|
-
constructor(rootPath, formsDefinitions, cacheManager, appLogger, errMgr) {
|
|
12
|
-
this.rootPath = rootPath;
|
|
11
|
+
constructor(rootPath, formsDefinitions, cacheManager, appLogger, errMgr, formClasses = null) {
|
|
12
|
+
this.rootPath = rootPath ?? '';
|
|
13
13
|
this.formsDefinitions = formsDefinitions;
|
|
14
|
+
this.formClasses = formClasses;
|
|
14
15
|
this._formsSignature = null;
|
|
15
16
|
this.logger = appLogger;
|
|
16
17
|
this.errMgr = errMgr;
|
|
@@ -112,65 +113,53 @@ class FormManager {
|
|
|
112
113
|
async executeFormAction(requestContext, formCode, requestData) {
|
|
113
114
|
let resultForm = null;
|
|
114
115
|
let errorObj = null;
|
|
116
|
+
let message;
|
|
115
117
|
const { actionCode } = requestData;
|
|
116
118
|
const formDefinition = this.getFormFlatDefinition(formCode);
|
|
117
119
|
if (!formDefinition) {
|
|
118
|
-
|
|
119
|
-
this.logger.log({
|
|
120
|
-
|
|
121
|
-
label: 'FormManager',
|
|
122
|
-
action: 'executeFormAction',
|
|
123
|
-
message: errorDetail,
|
|
124
|
-
});
|
|
125
|
-
errorObj = this.errMgr.get(modErrs.formActionExec.formNotFound, errorDetail);
|
|
126
|
-
return [errorObj, null];
|
|
127
|
-
}
|
|
128
|
-
const { formMapping, formClassDirectory } = this.formsDefinitions;
|
|
129
|
-
const classFileName = formMapping?.[formCode]?.class ?? this.formsDefinitions?.[formCode]?.classFile;
|
|
130
|
-
const moduleName = (classFileName) ? path.resolve(this.rootPath, formClassDirectory ?? '', classFileName) : '';
|
|
131
|
-
if (!moduleName) {
|
|
132
|
-
const errorDetail = `No existe nombre de archivo para el componente de gestión formulario ${formCode}`;
|
|
133
|
-
this.logger.log({
|
|
134
|
-
level: 'error',
|
|
135
|
-
label: 'FormManager',
|
|
136
|
-
action: 'executeFormAction',
|
|
137
|
-
message: errorDetail,
|
|
138
|
-
});
|
|
139
|
-
errorObj = this.errMgr.get(modErrs.formActionExec.formNotFound, errorDetail);
|
|
120
|
+
message = `Definición de formulario ${formCode} no encontrada`;
|
|
121
|
+
this.logger.log({ level: 'error', label: 'FormManager', action: 'executeFormAction', message });
|
|
122
|
+
errorObj = this.errMgr.get(modErrs.formActionExec.formNotFound, message);
|
|
140
123
|
return [errorObj, null];
|
|
141
124
|
}
|
|
142
125
|
try {
|
|
143
|
-
|
|
126
|
+
let FormClass;
|
|
127
|
+
if (this.formClasses) {
|
|
128
|
+
FormClass = this.formClasses[formCode];
|
|
129
|
+
} else {
|
|
130
|
+
const { formMapping, formClassDirectory } = this.formsDefinitions;
|
|
131
|
+
const classFileName = formMapping?.[formCode]?.class ?? this.formsDefinitions?.[formCode]?.classFile;
|
|
132
|
+
const moduleName = (classFileName) ? path.resolve(this.rootPath, formClassDirectory ?? '', classFileName) : '';
|
|
133
|
+
if (!moduleName) {
|
|
134
|
+
message = `No existe nombre de archivo para el componente de gestión formulario ${formCode}`;
|
|
135
|
+
this.logger.log({ level: 'error', label: 'FormManager', action: 'executeFormAction', message });
|
|
136
|
+
errorObj = this.errMgr.get(modErrs.formActionExec.formNotFound, message);
|
|
137
|
+
return [errorObj, null];
|
|
138
|
+
}
|
|
139
|
+
FormClass = require(moduleName);
|
|
140
|
+
}
|
|
141
|
+
if (!FormClass) {
|
|
142
|
+
message = `No se encontró componente para la atenciónn del formulario ${formCode}`;
|
|
143
|
+
this.logger.log({ level: 'error', label: 'FormManager', action: 'executeFormAction', message });
|
|
144
|
+
errorObj = this.errMgr.get(modErrs.formActionExec.formNotFound, message);
|
|
145
|
+
return [errorObj, null];
|
|
146
|
+
}
|
|
144
147
|
const formCustomObject = new FormClass(this.logger, this.errMgr, requestContext, formDefinition, requestData);
|
|
145
148
|
if (!formCustomObject) {
|
|
146
|
-
|
|
147
|
-
this.logger.log({
|
|
148
|
-
|
|
149
|
-
label: 'FormManager',
|
|
150
|
-
action: 'executeFormAction',
|
|
151
|
-
message: errorDetail,
|
|
152
|
-
});
|
|
153
|
-
errorObj = this.errMgr.get(modErrs.formActionExec.formNotFound, errorDetail);
|
|
149
|
+
message = `No fue posible instanciar la clase de gestión del formulario ${formCode}`;
|
|
150
|
+
this.logger.log({ level: 'error', label: 'FormManager', action: 'executeFormAction', message });
|
|
151
|
+
errorObj = this.errMgr.get(modErrs.formActionExec.formNotFound, message);
|
|
154
152
|
return [errorObj, null];
|
|
155
153
|
}
|
|
156
154
|
[errorObj, resultForm] = await formCustomObject.executeFormAction(actionCode);
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
label: 'FormManager',
|
|
160
|
-
action: 'executeFormAction',
|
|
161
|
-
message: `END FORM ACTION ${formCode} / ${actionCode} / ${errorObj?.errorCode ?? ''}`,
|
|
162
|
-
});
|
|
155
|
+
message = `END FORM ACTION ${formCode} / ${actionCode} / ${errorObj?.errorCode ?? ''}`;
|
|
156
|
+
this.logger.log({ level: 'info', label: 'FormManager', action: 'executeFormAction', message });
|
|
163
157
|
return [errorObj, resultForm];
|
|
164
158
|
} catch (err) {
|
|
165
|
-
|
|
159
|
+
message = `Excepción no controlada: ${err.message}\n${err.stack}`
|
|
166
160
|
+ `------ END BY EXCEPTION FORM ACTION ${formCode} / ${actionCode} ------`;
|
|
167
|
-
this.logger.log({
|
|
168
|
-
|
|
169
|
-
label: 'FormManager',
|
|
170
|
-
action: 'executeFormAction',
|
|
171
|
-
message: errorDetail,
|
|
172
|
-
});
|
|
173
|
-
errorObj = this.errMgr.get(modErrs.formActionExec.formNotFound, errorDetail);
|
|
161
|
+
this.logger.log({ level: 'error', label: 'FormManager', action: 'executeFormAction', message });
|
|
162
|
+
errorObj = this.errMgr.get(modErrs.formActionExec.formNotFound, message);
|
|
174
163
|
return [errorObj, null];
|
|
175
164
|
}
|
|
176
165
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tuain-form-manager",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Component library to perform operations on Tuain Development Framework forms to interchange information on web or mobile applications based on the data interchange of abstract forms making trnasformation on the data upon actions required on both sides (front and back)",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|