intermediate-component-sa 1.1.0 → 1.1.2
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/app.server.js +7 -0
- package/client/css/main.css +1 -0
- package/{src/client → client}/index.html +6 -40
- package/client/js/app.js +1 -0
- package/client/js/shims.js +17 -0
- package/package.json +75 -340
- package/{src/server/config/app.config.ts → server/config/app.config.js} +47 -57
- package/server/config/jwt.config.js +4 -0
- package/{src/server/config/logger.config.ts → server/config/logger.config.js} +142 -161
- package/server/config/mssql.config.js +32 -0
- package/server/config/redis.config.js +8 -0
- package/server/config/server.config.js +12 -0
- package/server/config/templates.config.js +23 -0
- package/server/crypt.js +29 -0
- package/server/customRequest.js +373 -0
- package/server/index.js +125 -0
- package/server/interfaces/cleaner.interface.js +2 -0
- package/server/interfaces/supervisor.interface.js +2 -0
- package/{src/server/routes-centralized.ts → server/routes-centralized.js} +39 -36
- package/server/routes.js +7 -0
- package/server/services/index.js +8 -0
- package/server/services/routes.service.js +18 -0
- package/server/shared/file-manager.js +616 -0
- package/server/shared/http.shared.js +39 -0
- package/server/shared/promises.shared.js +14 -0
- package/server/shared/security.shared.js +52 -0
- package/CHANGELOG.md +0 -11
- package/README.md +0 -1
- package/build-dev.bat +0 -2
- package/build-prod-aot.bat +0 -2
- package/build-prod-rollup-aot.bat +0 -2
- package/build-prod.bat +0 -2
- package/config.ts +0 -4
- package/gulpfile.ts +0 -172
- package/index.js +0 -12
- package/karma.conf.js +0 -124
- package/postgrator-test.json +0 -9
- package/postgrator.json +0 -9
- package/src/app.server.ts +0 -4
- package/src/client/app/app.component.ts +0 -37
- package/src/client/app/app.html +0 -6
- package/src/client/app/app.module.ts +0 -36
- package/src/client/app/app.routing.ts +0 -7
- package/src/client/app/hot_loader_main.ts +0 -14
- package/src/client/app/main-aot.ts +0 -8
- package/src/client/app/main.ts +0 -8
- package/src/client/app/rxjs-operators.ts +0 -15
- package/src/server/config/jwt.config.ts +0 -4
- package/src/server/config/mssql.config.ts +0 -30
- package/src/server/config/redis.config.ts +0 -10
- package/src/server/config/server.config.ts +0 -20
- package/src/server/config/templates.config.ts +0 -41
- package/src/server/crypt.ts +0 -37
- package/src/server/customRequest.ts +0 -609
- package/src/server/index.ts +0 -231
- package/src/server/interfaces/cleaner.interface.ts +0 -3
- package/src/server/interfaces/supervisor.interface.ts +0 -3
- package/src/server/routes.ts +0 -6
- package/src/server/services/index.ts +0 -10
- package/src/server/services/routes.service.ts +0 -11
- package/src/server/shared/file-manager.ts +0 -1007
- package/src/server/shared/http.shared.ts +0 -49
- package/src/server/shared/promises.shared.ts +0 -13
- package/src/server/shared/security.shared.ts +0 -90
- package/src/server/tsconfig.json +0 -38
- package/tools/build.js.prod.ts +0 -40
- package/tools/config/project.config.ts +0 -718
- package/tools/config.ts +0 -4
- package/tools/database/SchemaZen.exe +0 -0
- package/tools/database/generate-all-data-scripts.bat +0 -32
- package/tools/database/generate-database-scripts.bat +0 -36
- package/tools/debug.ts +0 -17
- package/tools/env/base.ts +0 -8
- package/tools/env/dev.ts +0 -9
- package/tools/env/env-config.interface.ts +0 -1
- package/tools/env/prod.ts +0 -10
- package/tools/manual_typings/project/sample.package.d.ts +0 -3
- package/tools/manual_typings/seed/angular2-hot-loader.d.ts +0 -9
- package/tools/manual_typings/seed/autoprefixer.d.ts +0 -13
- package/tools/manual_typings/seed/colorguard.d.ts +0 -15
- package/tools/manual_typings/seed/connect-livereload.d.ts +0 -5
- package/tools/manual_typings/seed/cssnano.d.ts +0 -18
- package/tools/manual_typings/seed/doiuse.d.ts +0 -16
- package/tools/manual_typings/seed/express-history-api-fallback.d.ts +0 -18
- package/tools/manual_typings/seed/istream.d.ts +0 -10
- package/tools/manual_typings/seed/karma.d.ts +0 -12
- package/tools/manual_typings/seed/merge-stream.d.ts +0 -8
- package/tools/manual_typings/seed/open.d.ts +0 -8
- package/tools/manual_typings/seed/postcss-reporter.d.ts +0 -20
- package/tools/manual_typings/seed/slash.d.ts +0 -5
- package/tools/manual_typings/seed/stylelint.d.ts +0 -16
- package/tools/manual_typings/seed/systemjs-builder.d.ts +0 -10
- package/tools/manual_typings/seed/tildify.d.ts +0 -5
- package/tools/manual_typings/seed/tiny-lr.d.ts +0 -10
- package/tools/manual_typings/seed/walk.d.ts +0 -10
- package/tools/scripts/install.speech-analytic.sh +0 -35
- package/tools/tasks/build.app.server.ts +0 -57
- package/tools/tasks/build.assets.dev.ts +0 -19
- package/tools/tasks/build.assets.prod.ts +0 -31
- package/tools/tasks/build.bundles.app.aot.ts +0 -31
- package/tools/tasks/build.bundles.app.rollup.aot.ts +0 -101
- package/tools/tasks/build.bundles.app.ts +0 -31
- package/tools/tasks/build.bundles.ts +0 -45
- package/tools/tasks/build.database.scripts.runner.ts +0 -137
- package/tools/tasks/build.database.scripts.ts +0 -27
- package/tools/tasks/build.flags.ts +0 -9
- package/tools/tasks/build.fonts.ts +0 -9
- package/tools/tasks/build.html_css.ts +0 -126
- package/tools/tasks/build.index.dev.ts +0 -68
- package/tools/tasks/build.index.prod.ts +0 -64
- package/tools/tasks/build.js.dev.ts +0 -66
- package/tools/tasks/build.js.prod.aot.ts +0 -44
- package/tools/tasks/build.js.prod.rollup.aot.ts +0 -50
- package/tools/tasks/build.js.prod.ts +0 -40
- package/tools/tasks/build.packages.prod.ts +0 -19
- package/tools/tasks/build.server.dev.ts +0 -59
- package/tools/tasks/build.server.prod.ts +0 -31
- package/tools/tasks/build.server.statics.ts +0 -24
- package/tools/tasks/build.skins.ts +0 -51
- package/tools/tasks/build.sme.prod.aot.ts +0 -6
- package/tools/tasks/build.sme.prod.rollup.aot.ts +0 -6
- package/tools/tasks/build.sme.prod.ts +0 -6
- package/tools/tasks/build.tar.prod.ts +0 -17
- package/tools/tasks/build.test.database.scripts.ts +0 -52
- package/tools/tasks/clean.dev.ts +0 -7
- package/tools/tasks/clean.prod.ts +0 -7
- package/tools/tasks/compile.ahead.prod.ts +0 -65
- package/tools/tasks/copy.client.js.prod.rollup.aot.ts +0 -33
- package/tools/tasks/copy.client.js.prod.ts +0 -18
- package/tools/tasks/copy.server.assets.ts +0 -38
- package/tools/tasks/copy.server.js.prod.ts +0 -16
- package/tools/tasks/css-lint.ts +0 -58
- package/tools/tasks/e2e.ts +0 -32
- package/tools/tasks/karma.run.ts +0 -18
- package/tools/tasks/karma.watch.ts +0 -9
- package/tools/tasks/minify.server.statics.ts +0 -52
- package/tools/tasks/server.prod.ts +0 -6
- package/tools/tasks/server.start.ts +0 -6
- package/tools/tasks/test.database.ts +0 -6
- package/tools/tasks/transpile.bundles.rollup.aot.ts +0 -43
- package/tools/tasks/tslint.ts +0 -64
- package/tools/tasks/watch.file.changes.dev.ts +0 -37
- package/tools/tasks/watch.key.press.dev.ts +0 -116
- package/tools/tasks/webdriver.ts +0 -6
- package/tools/utils/project/sample_util.ts +0 -18
- package/tools/utils/project.utils.ts +0 -4
- package/tools/utils/seed/build_optimizer.ts +0 -26
- package/tools/utils/seed/clean.ts +0 -35
- package/tools/utils/seed/code_change_tools.ts +0 -38
- package/tools/utils/seed/karma.start.ts +0 -10
- package/tools/utils/seed/server.ts +0 -43
- package/tools/utils/seed/sme.ts +0 -51
- package/tools/utils/seed/tasks_tools.ts +0 -70
- package/tools/utils/seed/template_locals.ts +0 -64
- package/tools/utils/seed/tsproject.ts +0 -25
- package/tools/utils/seed.utils.ts +0 -11
- package/tools/utils.ts +0 -5
- package/tsconfig.json +0 -33
- package/tslint.json +0 -120
- package/utils.ts +0 -5
- /package/{src/client → client}/tsconfig.json +0 -0
- /package/{src/server → server}/ssl/star_inconcertcc_com.key +0 -0
- /package/{src/server → server}/ssl/star_inconcertcc_com.pem +0 -0
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var sy = require("systeminformation");
|
|
4
|
+
var md5 = require("md5");
|
|
5
|
+
var request = require("request-promise-native");
|
|
6
|
+
var routes_centralized_1 = require("./routes-centralized");
|
|
7
|
+
var crypt_1 = require("./crypt");
|
|
8
|
+
var moment = require("moment");
|
|
9
|
+
var file_manager_1 = require("./shared/file-manager");
|
|
10
|
+
var fs = require('fs');
|
|
11
|
+
var CENTRALIZED_API_BASE_URL = 'http://localhost:9002/';
|
|
12
|
+
function InconcertRequest(installationId, path, data) {
|
|
13
|
+
var systemInformationData = null;
|
|
14
|
+
var route = routes_centralized_1.RoutesCentralized[path];
|
|
15
|
+
return DummyPromise()
|
|
16
|
+
.then(function (result) {
|
|
17
|
+
if (installationId && route && data)
|
|
18
|
+
return GetSystemInformation(installationId);
|
|
19
|
+
else
|
|
20
|
+
throw 'SERVER_ERROR_MISSING_REQUIRED_PARAMETERS';
|
|
21
|
+
})
|
|
22
|
+
.then(function (result) {
|
|
23
|
+
systemInformationData = result;
|
|
24
|
+
var plaformHash = '';
|
|
25
|
+
if (systemInformationData) {
|
|
26
|
+
plaformHash = GenerateMD5Content(systemInformationData);
|
|
27
|
+
}
|
|
28
|
+
var options = {
|
|
29
|
+
method: 'POST',
|
|
30
|
+
uri: CENTRALIZED_API_BASE_URL + route,
|
|
31
|
+
body: data,
|
|
32
|
+
headers: {
|
|
33
|
+
'Content-Type': 'application/json',
|
|
34
|
+
'Platform-Hash': plaformHash
|
|
35
|
+
},
|
|
36
|
+
json: true,
|
|
37
|
+
resolveWithFullResponse: false
|
|
38
|
+
};
|
|
39
|
+
return request(options);
|
|
40
|
+
})
|
|
41
|
+
.then(function (result) {
|
|
42
|
+
if (result === null)
|
|
43
|
+
throw 'SERVER_ERROR_EXTERNAL_REQUEST_FAILED';
|
|
44
|
+
return Promise.resolve(result);
|
|
45
|
+
})
|
|
46
|
+
.catch(function (err) {
|
|
47
|
+
var clientMsg = (typeof err === 'string' ? err : 'Cannot process request');
|
|
48
|
+
var errorMsg = (typeof err === 'string' ? err : err.message || err.description || 'SERVER_ERROR_REQUESTING_ERROR');
|
|
49
|
+
return Promise.reject(err);
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
exports.InconcertRequest = InconcertRequest;
|
|
53
|
+
function GetSystemInformation(instalationId) {
|
|
54
|
+
var systemInformationData = {
|
|
55
|
+
installationId: instalationId,
|
|
56
|
+
macAddress: '',
|
|
57
|
+
publicIp: ''
|
|
58
|
+
};
|
|
59
|
+
return DummyPromise()
|
|
60
|
+
.then(function (result) {
|
|
61
|
+
var sys = sy.networkInterfaces();
|
|
62
|
+
return sys;
|
|
63
|
+
})
|
|
64
|
+
.then(function (result) {
|
|
65
|
+
if (result === null)
|
|
66
|
+
throw 'SERVER_ERROR_NOT_FOUND_NETWORK_INTERFACE_INFORMATION';
|
|
67
|
+
if (result && result.length) {
|
|
68
|
+
var myNetworkInterface = null;
|
|
69
|
+
myNetworkInterface = result.filter(function (r) { return r.operstate === 'up'; })[0];
|
|
70
|
+
systemInformationData.macAddress = myNetworkInterface.mac;
|
|
71
|
+
systemInformationData.ip = myNetworkInterface.ip4;
|
|
72
|
+
}
|
|
73
|
+
return Promise.resolve(systemInformationData);
|
|
74
|
+
})
|
|
75
|
+
.catch(function (err) {
|
|
76
|
+
var errorMsg = (err && err.procName ? 'Error al ejecutar \'' + err.procName + '\': ' : 'Error al ejecutar consulta: ') + (err ? typeof err === 'string' ? err : err.message || err.description || '' : '');
|
|
77
|
+
return Promise.reject(err);
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
exports.GetSystemInformation = GetSystemInformation;
|
|
81
|
+
function GenerateMD5Content(data) {
|
|
82
|
+
var result = '';
|
|
83
|
+
if (data) {
|
|
84
|
+
result += data.installationId;
|
|
85
|
+
result += data.macAddress;
|
|
86
|
+
result = md5(result);
|
|
87
|
+
}
|
|
88
|
+
return result;
|
|
89
|
+
}
|
|
90
|
+
exports.GenerateMD5Content = GenerateMD5Content;
|
|
91
|
+
function DummyPromise() {
|
|
92
|
+
return new Promise(function (resolve, reject) {
|
|
93
|
+
resolve(true);
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
exports.DummyPromise = DummyPromise;
|
|
97
|
+
function SleepPromise(secondTime) {
|
|
98
|
+
return new Promise(function (resolve, reject) {
|
|
99
|
+
setTimeout(resolve, (1000 * secondTime));
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
exports.SleepPromise = SleepPromise;
|
|
103
|
+
var rootPath = '/sq/';
|
|
104
|
+
var storagePath = rootPath + 'storage/';
|
|
105
|
+
var generalFilePath = rootPath + 'storage/file.txt';
|
|
106
|
+
var segmentedFileFolderPath = rootPath + 'storage/out/';
|
|
107
|
+
var completedFileFolderPath = rootPath + 'storage/completed/';
|
|
108
|
+
function InconcertCheckSystemFolder() {
|
|
109
|
+
return DummyPromise()
|
|
110
|
+
.then(function (result) {
|
|
111
|
+
return file_manager_1.CreateFolder(rootPath);
|
|
112
|
+
})
|
|
113
|
+
.then(function (result) {
|
|
114
|
+
return file_manager_1.CreateFolder(storagePath);
|
|
115
|
+
})
|
|
116
|
+
.then(function (result) {
|
|
117
|
+
return file_manager_1.CreateFolder(segmentedFileFolderPath);
|
|
118
|
+
})
|
|
119
|
+
.then(function (result) {
|
|
120
|
+
return file_manager_1.CreateFolder(completedFileFolderPath);
|
|
121
|
+
})
|
|
122
|
+
.then(function (result) {
|
|
123
|
+
return Promise.resolve(result);
|
|
124
|
+
})
|
|
125
|
+
.catch(function (err) {
|
|
126
|
+
return Promise.resolve(false);
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
exports.InconcertCheckSystemFolder = InconcertCheckSystemFolder;
|
|
130
|
+
function InconcertExistsGeneralFile() {
|
|
131
|
+
try {
|
|
132
|
+
if (fs.existsSync(generalFilePath)) {
|
|
133
|
+
return true;
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
fs.writeFile(generalFilePath, '', function (err) {
|
|
137
|
+
if (err) {
|
|
138
|
+
console.error(err);
|
|
139
|
+
return false;
|
|
140
|
+
}
|
|
141
|
+
return true;
|
|
142
|
+
});
|
|
143
|
+
return true;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
catch (err) {
|
|
147
|
+
console.error(err);
|
|
148
|
+
return false;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
exports.InconcertExistsGeneralFile = InconcertExistsGeneralFile;
|
|
152
|
+
function InconcertAddDataToGeneralFile(myText, myTextStatus) {
|
|
153
|
+
if (InconcertExistsGeneralFile()) {
|
|
154
|
+
if (myTextStatus !== undefined)
|
|
155
|
+
return InconcertAddEncryptTextToFile(generalFilePath, myText, myTextStatus);
|
|
156
|
+
else
|
|
157
|
+
return InconcertAddEncryptTextToFile(generalFilePath, myText);
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
if (myTextStatus)
|
|
161
|
+
return InconcertAddDataToGeneralFile(myText, myTextStatus);
|
|
162
|
+
else
|
|
163
|
+
return InconcertAddDataToGeneralFile(myText);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
exports.InconcertAddDataToGeneralFile = InconcertAddDataToGeneralFile;
|
|
167
|
+
function InconcertAddDataToSegmentedFile(myText) {
|
|
168
|
+
var blockFileNewNamePath = segmentedFileFolderPath + moment().format('x') + '1-NEW.txt';
|
|
169
|
+
var blockFileUpdateNamePath = segmentedFileFolderPath + moment().format('x') + '2-UPDATE.txt';
|
|
170
|
+
var blockFileCompletedNamePath = segmentedFileFolderPath + moment().format('x') + '3-COMPLETED.txt';
|
|
171
|
+
var newInsertCounter = 0;
|
|
172
|
+
var updateInsertCounter = 0;
|
|
173
|
+
var completedInsertCounter = 0;
|
|
174
|
+
myText.map(function (s) {
|
|
175
|
+
if (s && s.length) {
|
|
176
|
+
var operation = s.split('::');
|
|
177
|
+
if (operation.length === 1) {
|
|
178
|
+
newInsertCounter++;
|
|
179
|
+
InconcertAddTextToFile(blockFileNewNamePath, s);
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
switch (operation[1]) {
|
|
183
|
+
case 'new':
|
|
184
|
+
newInsertCounter++;
|
|
185
|
+
InconcertAddTextToFile(blockFileNewNamePath, s);
|
|
186
|
+
break;
|
|
187
|
+
case 'update':
|
|
188
|
+
updateInsertCounter++;
|
|
189
|
+
InconcertAddTextToFile(blockFileUpdateNamePath, s);
|
|
190
|
+
break;
|
|
191
|
+
case 'success':
|
|
192
|
+
completedInsertCounter++;
|
|
193
|
+
InconcertAddTextToFile(blockFileCompletedNamePath, s);
|
|
194
|
+
break;
|
|
195
|
+
case 'failed':
|
|
196
|
+
completedInsertCounter++;
|
|
197
|
+
InconcertAddTextToFile(blockFileCompletedNamePath, s);
|
|
198
|
+
break;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
return true;
|
|
204
|
+
}
|
|
205
|
+
exports.InconcertAddDataToSegmentedFile = InconcertAddDataToSegmentedFile;
|
|
206
|
+
function InconcertAddEncryptTextToFile(myFile, myText, myTextResult) {
|
|
207
|
+
var insertText = '';
|
|
208
|
+
if (myTextResult !== undefined) {
|
|
209
|
+
insertText += crypt_1.InconcertEncrypt(myText) + '::' + myTextResult;
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
insertText += crypt_1.InconcertEncrypt(myText);
|
|
213
|
+
}
|
|
214
|
+
try {
|
|
215
|
+
fs.appendFileSync(myFile, insertText + '\n');
|
|
216
|
+
}
|
|
217
|
+
catch (err) {
|
|
218
|
+
console.log('Save failed!');
|
|
219
|
+
}
|
|
220
|
+
return true;
|
|
221
|
+
}
|
|
222
|
+
exports.InconcertAddEncryptTextToFile = InconcertAddEncryptTextToFile;
|
|
223
|
+
function InconcertAddTextToFile(myFile, myText) {
|
|
224
|
+
try {
|
|
225
|
+
fs.appendFileSync(myFile, myText + '\n');
|
|
226
|
+
}
|
|
227
|
+
catch (err) {
|
|
228
|
+
fs.writeFile(myFile, '', function (err) {
|
|
229
|
+
if (err) {
|
|
230
|
+
console.error(err);
|
|
231
|
+
return false;
|
|
232
|
+
}
|
|
233
|
+
return true;
|
|
234
|
+
});
|
|
235
|
+
InconcertAddTextToFile(myFile, myText);
|
|
236
|
+
console.log('Save failed!');
|
|
237
|
+
}
|
|
238
|
+
return true;
|
|
239
|
+
}
|
|
240
|
+
exports.InconcertAddTextToFile = InconcertAddTextToFile;
|
|
241
|
+
function InconcertSplitGeneralFileData() {
|
|
242
|
+
var data = fs.readFileSync(generalFilePath, 'utf-8');
|
|
243
|
+
var blockSize = 50;
|
|
244
|
+
var content = data.toString().split('\n');
|
|
245
|
+
var totalRows = content.filter(function (r) { return r.length > 0; }).length;
|
|
246
|
+
var blocks = Math.ceil(totalRows / blockSize);
|
|
247
|
+
for (var i = 0; i < blocks; i++) {
|
|
248
|
+
var blockContent = content.splice(0, blockSize);
|
|
249
|
+
InconcertAddDataToSegmentedFile(blockContent);
|
|
250
|
+
}
|
|
251
|
+
fs.writeFileSync(generalFilePath, content.join('\n'), 'utf-8');
|
|
252
|
+
}
|
|
253
|
+
exports.InconcertSplitGeneralFileData = InconcertSplitGeneralFileData;
|
|
254
|
+
function InconcertSegmentedFileUpload(installationId) {
|
|
255
|
+
var segmentedFiles = [];
|
|
256
|
+
var segmentedNewFiles = [];
|
|
257
|
+
var segmentedUpdateFiles = [];
|
|
258
|
+
var segmentedCloseFiles = [];
|
|
259
|
+
var segmentedFilesResult = [];
|
|
260
|
+
return DummyPromise()
|
|
261
|
+
.then(function (result) {
|
|
262
|
+
return InconcertCheckSystemFolder();
|
|
263
|
+
})
|
|
264
|
+
.then(function (result) {
|
|
265
|
+
return file_manager_1.GetFolderTree(segmentedFileFolderPath);
|
|
266
|
+
})
|
|
267
|
+
.then(function (result) {
|
|
268
|
+
if (result && result.length > 0 && result[0].children && result[0].children.length > 0) {
|
|
269
|
+
segmentedFiles = result[0].children;
|
|
270
|
+
var fileContentPromises = [];
|
|
271
|
+
for (var i = 0; i < 25; i++) {
|
|
272
|
+
if (segmentedFiles[i])
|
|
273
|
+
fileContentPromises.push(file_manager_1.ReadFileContent(segmentedFiles[i].fullPath, 'utf8'));
|
|
274
|
+
}
|
|
275
|
+
return Promise.all(fileContentPromises);
|
|
276
|
+
}
|
|
277
|
+
else {
|
|
278
|
+
throw 'SERVER_ERROR_NOT_FOUND_FILE';
|
|
279
|
+
}
|
|
280
|
+
})
|
|
281
|
+
.then(function (result) {
|
|
282
|
+
var arrSummary = [];
|
|
283
|
+
if (result && result.length) {
|
|
284
|
+
for (var i = 0; i < 25; i++) {
|
|
285
|
+
if (result[i]) {
|
|
286
|
+
var body = {
|
|
287
|
+
'installationId': installationId,
|
|
288
|
+
'file': segmentedFiles[i].name,
|
|
289
|
+
'data': result[i]
|
|
290
|
+
};
|
|
291
|
+
arrSummary.push(body);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
else {
|
|
296
|
+
throw 'SERVER_ERROR_NOT_FOUND_FILE_CONTENT';
|
|
297
|
+
}
|
|
298
|
+
return InconcertSegmenteFileRecursiveSend(arrSummary);
|
|
299
|
+
})
|
|
300
|
+
.then(function (result) {
|
|
301
|
+
if (result && result.status) {
|
|
302
|
+
return Promise.resolve({ 'res': true, 'data': result });
|
|
303
|
+
}
|
|
304
|
+
else
|
|
305
|
+
throw 'SERVER_ERROR_MASSIVE_UPLOAD_FAILED';
|
|
306
|
+
})
|
|
307
|
+
.catch(function (err) {
|
|
308
|
+
return Promise.resolve({ 'res': false, 'err': err });
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
exports.InconcertSegmentedFileUpload = InconcertSegmentedFileUpload;
|
|
312
|
+
function InconcertSegmenteFileRecursiveSend(arrSummary) {
|
|
313
|
+
var myBody = arrSummary.shift();
|
|
314
|
+
return SleepPromise(1)
|
|
315
|
+
.then(function (result) {
|
|
316
|
+
return InconcertRequest(myBody.installationId, 'IC_PARAM_URL_BATCH_DETAIL_SAVE', myBody);
|
|
317
|
+
})
|
|
318
|
+
.then(function (result) {
|
|
319
|
+
if (result === null)
|
|
320
|
+
throw 'SERVER_ERROR_NOT_RECEIVED_RESULT';
|
|
321
|
+
if (result.status !== true) {
|
|
322
|
+
throw 'SERVER_ERROR_FILE_UPLOAD_FAILED';
|
|
323
|
+
}
|
|
324
|
+
else {
|
|
325
|
+
return InconcertSegmentedFileToCompletedFolder(result.data);
|
|
326
|
+
}
|
|
327
|
+
})
|
|
328
|
+
.then(function (result) {
|
|
329
|
+
if (result) {
|
|
330
|
+
if (arrSummary.length > 0) {
|
|
331
|
+
return InconcertSegmenteFileRecursiveSend(arrSummary);
|
|
332
|
+
}
|
|
333
|
+
else
|
|
334
|
+
return Promise.resolve({ 'res': true, 'data': result });
|
|
335
|
+
}
|
|
336
|
+
else {
|
|
337
|
+
throw 'SERVER_ERROR_FILE_MOVE_FAILED';
|
|
338
|
+
}
|
|
339
|
+
})
|
|
340
|
+
.catch(function (err) {
|
|
341
|
+
return Promise.resolve({ 'res': false, 'err': err });
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
function InconcertSegmentedFileToCompletedFolder(segmentedFileName) {
|
|
345
|
+
var sourcePath = segmentedFileFolderPath + segmentedFileName;
|
|
346
|
+
var targetPath = completedFileFolderPath + segmentedFileName;
|
|
347
|
+
return DummyPromise()
|
|
348
|
+
.then(function (result) {
|
|
349
|
+
return file_manager_1.CreateFolder(completedFileFolderPath);
|
|
350
|
+
})
|
|
351
|
+
.then(function (result) {
|
|
352
|
+
return file_manager_1.CopyFile(sourcePath, targetPath);
|
|
353
|
+
})
|
|
354
|
+
.then(function (result) {
|
|
355
|
+
if (result) {
|
|
356
|
+
return file_manager_1.DeleteFile(sourcePath);
|
|
357
|
+
}
|
|
358
|
+
else {
|
|
359
|
+
throw 'SERVER_ERROR_COPY_FILE_FAILED';
|
|
360
|
+
}
|
|
361
|
+
})
|
|
362
|
+
.then(function (result) {
|
|
363
|
+
if (result) {
|
|
364
|
+
return Promise.resolve(true);
|
|
365
|
+
}
|
|
366
|
+
else {
|
|
367
|
+
throw 'SERVER_ERROR_DELETE_FILE_FAILED';
|
|
368
|
+
}
|
|
369
|
+
})
|
|
370
|
+
.catch(function (err) {
|
|
371
|
+
return Promise.resolve(false);
|
|
372
|
+
});
|
|
373
|
+
}
|
package/server/index.js
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var http = require("http");
|
|
4
|
+
var https = require("https");
|
|
5
|
+
var express = require("express");
|
|
6
|
+
var bodyParser = require("body-parser");
|
|
7
|
+
var cookieParser = require("cookie-parser");
|
|
8
|
+
var compression = require("compression");
|
|
9
|
+
var path = require("path");
|
|
10
|
+
var fs = require("fs");
|
|
11
|
+
var log4js = require("log4js");
|
|
12
|
+
var services = require("./services");
|
|
13
|
+
var securityShared = require("./shared/security.shared");
|
|
14
|
+
var logger_config_1 = require("./config/logger.config");
|
|
15
|
+
var promises_shared_1 = require("./shared/promises.shared");
|
|
16
|
+
var server_config_1 = require("./config/server.config");
|
|
17
|
+
var app_config_1 = require("./config/app.config");
|
|
18
|
+
var app = express();
|
|
19
|
+
var httpServer;
|
|
20
|
+
var httpsServer;
|
|
21
|
+
function init() {
|
|
22
|
+
var clientPath = '../client';
|
|
23
|
+
var logsPath = path.resolve(__dirname, 'logs');
|
|
24
|
+
if (!fs.existsSync(logsPath))
|
|
25
|
+
fs.mkdirSync(logsPath);
|
|
26
|
+
log4js.configure(logger_config_1.LOGGER_CONFIG);
|
|
27
|
+
var logger = log4js.getLogger('ServerScripts');
|
|
28
|
+
logger.info('********************************************************');
|
|
29
|
+
logger.info('* Inicializando servicio *');
|
|
30
|
+
logger.info('********************************************************');
|
|
31
|
+
app.use(log4js.connectLogger(log4js.getLogger('AccessLog'), { level: 'auto' }));
|
|
32
|
+
app.use(bodyParser.urlencoded({ extended: false }));
|
|
33
|
+
app.use(bodyParser.json({ limit: '5mb' }));
|
|
34
|
+
app.use(bodyParser.text({ limit: '5mb' }));
|
|
35
|
+
app.use(bodyParser.raw({ limit: '5mb' }));
|
|
36
|
+
app.use(cookieParser());
|
|
37
|
+
app.use(compression());
|
|
38
|
+
app.use(function (err, req, res, next) {
|
|
39
|
+
if (err && err instanceof SyntaxError && err.status >= 400 && err.status < 500 && err.message.indexOf('JSON')) {
|
|
40
|
+
logger.warn('No se pudo parsear contenido JSON de request ' + req.method + ' para \'' + req.path + '\'');
|
|
41
|
+
res.status(400).json({ status: false, description: 'Invalid JSON', error: 'Invalid JSON' });
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
securityShared.InitHeaders(app);
|
|
45
|
+
logger.info('Servicio ejecutando en modo \'' + server_config_1.SERVER_MODE + '\'');
|
|
46
|
+
app.enable('trust proxy');
|
|
47
|
+
app.set('trust proxy', true);
|
|
48
|
+
app.use(function (req, res, next) {
|
|
49
|
+
if (req.headers.host.slice(0, 4) !== 'www.' && req.secure) {
|
|
50
|
+
next();
|
|
51
|
+
}
|
|
52
|
+
else if (server_config_1.SERVER_MODE === 'prod') {
|
|
53
|
+
var newHost = req.headers.host.slice(0, 4) === 'www.' ? req.headers.host.slice(4) : req.headers.host;
|
|
54
|
+
return res.redirect(301, 'https://' + newHost + req.originalUrl);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
next();
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
if (server_config_1.SERVER_MODE === 'prod') {
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
}
|
|
64
|
+
app.use('/static', express.static(path.resolve(__dirname, 'static')));
|
|
65
|
+
if (!app_config_1.IS_DISTRIBUTED_SERVICE) {
|
|
66
|
+
app.use(securityShared.HstsGuard);
|
|
67
|
+
app.disable('etag');
|
|
68
|
+
services.init(app);
|
|
69
|
+
app.get('/*', function (req, res, next) {
|
|
70
|
+
if (req.url.match('^\/(api|auth|public|internal|popup|builder|payments|distributed|static|template|client|assets|favicon)(.*)$')) {
|
|
71
|
+
res.status(404).type('txt').send('Page not found');
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
res.sendFile(path.resolve(__dirname, clientPath + '/index.html'));
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
app.get('/*', function (req, res, next) {
|
|
80
|
+
res.status(404).type('txt').send('Page not found');
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
return promises_shared_1.DummyPromise().then().then(function (result) {
|
|
84
|
+
return new Promise(function (resolve, reject) {
|
|
85
|
+
if (!server_config_1.HTTP_ENABLED)
|
|
86
|
+
return resolve(true);
|
|
87
|
+
logger.info('Iniciando servicio HTTP');
|
|
88
|
+
console.log('Iniciando servicio HTTP');
|
|
89
|
+
httpServer = http.createServer(app);
|
|
90
|
+
httpServer.listen(server_config_1.HTTP_BINDING_PORT, server_config_1.HTTP_BINDING_HOST)
|
|
91
|
+
.on('listening', function () {
|
|
92
|
+
logger.info('Servicio HTTP escuchando en: ' + httpServer.address().address + ':' + server_config_1.HTTP_BINDING_PORT.toString());
|
|
93
|
+
console.log('Servicio HTTP escuchando en: ' + httpServer.address().address + ':' + server_config_1.HTTP_BINDING_PORT.toString());
|
|
94
|
+
resolve(true);
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
}).then(function (result) {
|
|
98
|
+
return new Promise(function (resolve, reject) {
|
|
99
|
+
if (!server_config_1.HTTPS_ENABLED)
|
|
100
|
+
return resolve(true);
|
|
101
|
+
logger.info('Iniciando servicio HTTPS');
|
|
102
|
+
console.log('Iniciando servicio HTTPS');
|
|
103
|
+
httpsServer = https.createServer({
|
|
104
|
+
key: fs.readFileSync(server_config_1.HTTPS_KEY),
|
|
105
|
+
cert: fs.readFileSync(server_config_1.HTTPS_CERT)
|
|
106
|
+
}, app);
|
|
107
|
+
httpsServer.listen(server_config_1.HTTPS_BINDING_PORT, server_config_1.HTTP_BINDING_HOST)
|
|
108
|
+
.on('listening', function () {
|
|
109
|
+
logger.info('Servicio HTTPS escuchando en: ' + httpsServer.address().address + ':' + server_config_1.HTTPS_BINDING_PORT.toString());
|
|
110
|
+
console.log('Servicio HTTPS escuchando en: ' + httpsServer.address().address + ':' + server_config_1.HTTPS_BINDING_PORT.toString());
|
|
111
|
+
resolve(true);
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
}).then(function (result) {
|
|
115
|
+
if (!result)
|
|
116
|
+
logger.error('No se pudo establecer conexión con el servicio de mail.');
|
|
117
|
+
logger.info('Servicio inicializado correctamente');
|
|
118
|
+
console.log('Servicio inicializado correctamente');
|
|
119
|
+
}).catch(function (err) {
|
|
120
|
+
var errorMsg = (typeof err === 'string' ? err : err.message || err.description || '');
|
|
121
|
+
logger.info('Error al inicializar el servicio: ' + errorMsg);
|
|
122
|
+
console.error('Error al inicializar el servicio: ' + errorMsg);
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
exports.init = init;
|
|
@@ -1,36 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RoutesCentralized = {
|
|
4
|
+
IC_PARAM_URL_API_USER_AUTH: 'api/api_user/auth',
|
|
5
|
+
IC_PARAM_URL_API_USER_CREATE: 'api/api_user/create_api_user',
|
|
6
|
+
IC_PARAM_URL_API_USER_DELETE: 'api/api_user/delete_api_user',
|
|
7
|
+
IC_PARAM_URL_API_USER_SAVE: 'api/api_user/save_api_user',
|
|
8
|
+
IC_PARAM_URL_API_USERS_DELETE: 'api/api_user/delete_api_users',
|
|
9
|
+
IC_PARAM_URL_API_USERS_GET: 'api/api_user/get_api_users/',
|
|
10
|
+
IC_PARAM_URL_BATCH_BALANCE_DETAIL: 'api/batch/get_batch_balance_detail',
|
|
11
|
+
IC_PARAM_URL_BATCH_DETAIL_SAVE: 'api/batch/save_batch_detail',
|
|
12
|
+
IC_PARAM_URL_BATCH_SUMMARY_CLOSE: 'api/batch/close_batch_summary',
|
|
13
|
+
IC_PARAM_URL_BATCH_SUMMARY_CREATE: 'api/batch/save_batch_summary',
|
|
14
|
+
IC_PARAM_URL_PLATFORM_ACTIVATE: 'api/activation/activate_platform',
|
|
15
|
+
IC_PARAM_URL_PLATFORM_AVAILABLE_LICENSE: 'api/activation/get_platform_available_licenses',
|
|
16
|
+
IC_PARAM_URL_PLATFORM_GET_STATUS: 'api/activation/get_platform_status',
|
|
17
|
+
IC_PARAM_URL_PLATFORM_VERSION_UPDATE: 'api/platform/save_version',
|
|
18
|
+
IC_PARAM_URL_VCC_BALANCE_ALLOCATION: 'api/vcc/balance_allocation',
|
|
19
|
+
IC_PARAM_URL_VCC_CREATE: 'api/vcc/create_vcc',
|
|
20
|
+
IC_PARAM_URL_VCC_UPDATE: 'api/vcc/update_vcc',
|
|
21
|
+
IC_PARAM_URL_VCC_GET_STATUS: 'api/vcc/get_vcc_status',
|
|
22
|
+
IC_PARAM_URL_VCC_GET_RATES: 'api/vcc/get_vcc_rates',
|
|
23
|
+
IC_PARAM_URL_VCC_GET_BALANCE: 'api/vcc/get_vcc_balance',
|
|
24
|
+
IC_PARAM_URL_ACCOUNT_GET_ACCOUNT_STATUS_BY_VCC: 'api/account/get_account_status_by_vcc',
|
|
25
|
+
IC_PARAM_URL_ACCOUNT_GET_BALANCE: 'api/account/get_account_balance',
|
|
26
|
+
IC_PARAM_URL_ACCOUNT_GET_COSTS: 'api/account/get_costs',
|
|
27
|
+
IC_PARAM_URL_ACCOUNT_GET_MOVEMENT_CURRENCIES: 'api/account/get_movement_currencies',
|
|
28
|
+
IC_PARAM_URL_ACCOUNT_GET_MOVEMENTS: 'api/account/get_movements',
|
|
29
|
+
IC_PARAM_URL_ACCOUNT_GET_VCC: 'api/account/get_vccs_by_account',
|
|
30
|
+
IC_PARAM_URL_PLATFORM_INSTALLATION_DATA: 'api/platform/get_installation_ids/',
|
|
31
|
+
IC_PARAM_URL_REPORT_GET_PARAMETERS: 'api/report/get_report_procedure_parameters',
|
|
32
|
+
IC_PARAM_URL_REPORT_EXECUTE: 'api/report/execute_report',
|
|
33
|
+
IC_PARAM_URL_BATCH_ID_SEARCH: 'api/batch/search_batch_id',
|
|
34
|
+
IC_PARAM_URL_BATCH_SUMMARY_CANCEL: 'api/batch/cancel_batch_summary',
|
|
35
|
+
IC_PARAM_URL_BATCH_SUMMARY_RESUME: 'api/batch/resume_batch_summary',
|
|
36
|
+
IC_PARAM_URL_CURRENT_BATCHES_GET: 'api/batch/get_current_batches',
|
|
37
|
+
IC_PARAM_URL_TRANSCRIPTION_ENGINE_STATUS_GET: 'api/batch/get_transcription_engine_availability',
|
|
38
|
+
IC_PARAM_URL_TRANSCRIPTION_ENGINE_STATUS_SAVE: 'api/batch/save_transcription_engine_availability'
|
|
39
|
+
};
|
package/server/routes.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
var core_1 = require("@angular/core");
|
|
10
|
+
var LanguageService = (function () {
|
|
11
|
+
function LanguageService() {
|
|
12
|
+
}
|
|
13
|
+
LanguageService = __decorate([
|
|
14
|
+
core_1.Injectable()
|
|
15
|
+
], LanguageService);
|
|
16
|
+
return LanguageService;
|
|
17
|
+
}());
|
|
18
|
+
exports.LanguageService = LanguageService;
|