@golemio/municipal-libraries 1.0.5-dev.568966813 → 1.0.5-dev.656915294
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/db/example/.config.json +3 -0
- package/db/example/00_truncate_tables.sql +7 -0
- package/db/example/01_libraries.sql +50 -0
- package/db/migrations/postgresql/.config.json +3 -0
- package/db/migrations/postgresql/20220916133717-init.js +53 -0
- package/db/migrations/postgresql/package.json +3 -0
- package/db/migrations/postgresql/sqls/20220916133717-init-down.sql +6 -0
- package/db/migrations/postgresql/sqls/20220916133717-init-up.sql +102 -0
- package/db/migrations/postgresql/sqls/package.json +3 -0
- package/dist/integration-engine/datasources/MunicipalLibrariesDataSource.d.ts +4 -0
- package/dist/integration-engine/datasources/MunicipalLibrariesDataSource.js +21 -0
- package/dist/integration-engine/datasources/MunicipalLibrariesDataSource.js.map +1 -0
- package/dist/integration-engine/datasources/index.d.ts +1 -0
- package/dist/integration-engine/datasources/index.js +19 -0
- package/dist/integration-engine/datasources/index.js.map +1 -0
- package/dist/integration-engine/index.d.ts +2 -3
- package/dist/integration-engine/index.js +5 -3
- package/dist/integration-engine/index.js.map +1 -1
- package/dist/integration-engine/repositories/DepartmentsRepository.d.ts +4 -0
- package/dist/integration-engine/repositories/DepartmentsRepository.js +19 -0
- package/dist/integration-engine/repositories/DepartmentsRepository.js.map +1 -0
- package/dist/integration-engine/repositories/LibraryDepartmentsRepository.d.ts +4 -0
- package/dist/integration-engine/repositories/LibraryDepartmentsRepository.js +19 -0
- package/dist/integration-engine/repositories/LibraryDepartmentsRepository.js.map +1 -0
- package/dist/integration-engine/repositories/LibraryServicesRepository.d.ts +4 -0
- package/dist/integration-engine/repositories/LibraryServicesRepository.js +19 -0
- package/dist/integration-engine/repositories/LibraryServicesRepository.js.map +1 -0
- package/dist/integration-engine/repositories/MunicipalLibrariesRepository.d.ts +16 -0
- package/dist/integration-engine/repositories/MunicipalLibrariesRepository.js +140 -0
- package/dist/integration-engine/repositories/MunicipalLibrariesRepository.js.map +1 -0
- package/dist/integration-engine/repositories/OpeningHoursRepository.d.ts +4 -0
- package/dist/integration-engine/repositories/OpeningHoursRepository.js +19 -0
- package/dist/integration-engine/repositories/OpeningHoursRepository.js.map +1 -0
- package/dist/integration-engine/repositories/ServicesRepository.d.ts +4 -0
- package/dist/integration-engine/repositories/ServicesRepository.js +19 -0
- package/dist/integration-engine/repositories/ServicesRepository.js.map +1 -0
- package/dist/integration-engine/repositories/index.d.ts +6 -0
- package/dist/integration-engine/repositories/index.js +24 -0
- package/dist/integration-engine/repositories/index.js.map +1 -0
- package/dist/integration-engine/transformations/MunicipalLibrariesTransformation.d.ts +32 -0
- package/dist/integration-engine/transformations/MunicipalLibrariesTransformation.js +72 -0
- package/dist/integration-engine/transformations/MunicipalLibrariesTransformation.js.map +1 -0
- package/dist/integration-engine/transformations/helpers/TransformationHelper.d.ts +19 -0
- package/dist/integration-engine/transformations/helpers/TransformationHelper.js +95 -0
- package/dist/integration-engine/transformations/helpers/TransformationHelper.js.map +1 -0
- package/dist/integration-engine/workers/MunicipalLibrariesWorker.d.ts +5 -0
- package/dist/integration-engine/workers/MunicipalLibrariesWorker.js +16 -0
- package/dist/integration-engine/workers/MunicipalLibrariesWorker.js.map +1 -0
- package/dist/integration-engine/workers/index.d.ts +2 -0
- package/dist/integration-engine/workers/index.js +6 -0
- package/dist/integration-engine/workers/index.js.map +1 -0
- package/dist/integration-engine/workers/schemas/UpdateDistrictSchema.d.ts +6 -0
- package/dist/integration-engine/workers/schemas/UpdateDistrictSchema.js +21 -0
- package/dist/integration-engine/workers/schemas/UpdateDistrictSchema.js.map +1 -0
- package/dist/integration-engine/workers/tasks/RefreshDataInDBTask.d.ts +10 -0
- package/dist/integration-engine/workers/tasks/RefreshDataInDBTask.js +41 -0
- package/dist/integration-engine/workers/tasks/RefreshDataInDBTask.js.map +1 -0
- package/dist/integration-engine/workers/tasks/UpdateDistrictsTask.d.ts +12 -0
- package/dist/integration-engine/workers/tasks/UpdateDistrictsTask.js +47 -0
- package/dist/integration-engine/workers/tasks/UpdateDistrictsTask.js.map +1 -0
- package/dist/integration-engine/workers/tasks/index.d.ts +2 -0
- package/dist/integration-engine/workers/tasks/index.js +20 -0
- package/dist/integration-engine/workers/tasks/index.js.map +1 -0
- package/dist/output-gateway/MunicipalLibrariesRouter.d.ts +8 -0
- package/dist/output-gateway/MunicipalLibrariesRouter.js +15 -0
- package/dist/output-gateway/MunicipalLibrariesRouter.js.map +1 -0
- package/dist/output-gateway/index.d.ts +2 -0
- package/dist/output-gateway/index.js +19 -0
- package/dist/output-gateway/index.js.map +1 -0
- package/dist/output-gateway/repositories/DepartmentsRepository.d.ts +6 -0
- package/dist/output-gateway/repositories/DepartmentsRepository.js +28 -0
- package/dist/output-gateway/repositories/DepartmentsRepository.js.map +1 -0
- package/dist/output-gateway/repositories/LibraryDepartmentsRepository.d.ts +6 -0
- package/dist/output-gateway/repositories/LibraryDepartmentsRepository.js +28 -0
- package/dist/output-gateway/repositories/LibraryDepartmentsRepository.js.map +1 -0
- package/dist/output-gateway/repositories/LibraryServicesRepository.d.ts +6 -0
- package/dist/output-gateway/repositories/LibraryServicesRepository.js +28 -0
- package/dist/output-gateway/repositories/LibraryServicesRepository.js.map +1 -0
- package/dist/output-gateway/repositories/MunicipalLibrariesRepository.d.ts +17 -0
- package/dist/output-gateway/repositories/MunicipalLibrariesRepository.js +164 -0
- package/dist/output-gateway/repositories/MunicipalLibrariesRepository.js.map +1 -0
- package/dist/output-gateway/repositories/OpeningHoursRepository.d.ts +6 -0
- package/dist/output-gateway/repositories/OpeningHoursRepository.js +28 -0
- package/dist/output-gateway/repositories/OpeningHoursRepository.js.map +1 -0
- package/dist/output-gateway/repositories/ServicesRepository.d.ts +6 -0
- package/dist/output-gateway/repositories/ServicesRepository.js +28 -0
- package/dist/output-gateway/repositories/ServicesRepository.js.map +1 -0
- package/dist/output-gateway/repositories/index.d.ts +6 -0
- package/dist/output-gateway/repositories/index.js +23 -0
- package/dist/output-gateway/repositories/index.js.map +1 -0
- package/dist/schema-definitions/Departments.d.ts +10 -0
- package/dist/schema-definitions/Departments.js +8 -0
- package/dist/schema-definitions/Departments.js.map +1 -0
- package/dist/schema-definitions/Libraries.d.ts +16 -0
- package/dist/schema-definitions/Libraries.js +8 -0
- package/dist/schema-definitions/Libraries.js.map +1 -0
- package/dist/schema-definitions/LibraryDepartments.d.ts +8 -0
- package/dist/schema-definitions/LibraryDepartments.js +8 -0
- package/dist/schema-definitions/LibraryDepartments.js.map +1 -0
- package/dist/schema-definitions/LibraryServices.d.ts +8 -0
- package/dist/schema-definitions/LibraryServices.js +8 -0
- package/dist/schema-definitions/LibraryServices.js.map +1 -0
- package/dist/schema-definitions/OpeningHours.d.ts +15 -0
- package/dist/schema-definitions/OpeningHours.js +8 -0
- package/dist/schema-definitions/OpeningHours.js.map +1 -0
- package/dist/schema-definitions/Services.d.ts +9 -0
- package/dist/schema-definitions/Services.js +8 -0
- package/dist/schema-definitions/Services.js.map +1 -0
- package/dist/schema-definitions/datasources/MunicipalLibrariesJsonSchema.d.ts +78 -0
- package/dist/schema-definitions/datasources/MunicipalLibrariesJsonSchema.js +209 -0
- package/dist/schema-definitions/datasources/MunicipalLibrariesJsonSchema.js.map +1 -0
- package/dist/schema-definitions/index.d.ts +1 -314
- package/dist/schema-definitions/index.js +19 -265
- package/dist/schema-definitions/index.js.map +1 -1
- package/dist/schema-definitions/models/DepartmentsModel.d.ts +12 -0
- package/dist/schema-definitions/models/DepartmentsModel.js +33 -0
- package/dist/schema-definitions/models/DepartmentsModel.js.map +1 -0
- package/dist/schema-definitions/models/LibrariesModel.d.ts +18 -0
- package/dist/schema-definitions/models/LibrariesModel.js +46 -0
- package/dist/schema-definitions/models/LibrariesModel.js.map +1 -0
- package/dist/schema-definitions/models/LibraryDepartmentsModel.d.ts +10 -0
- package/dist/schema-definitions/models/LibraryDepartmentsModel.js +30 -0
- package/dist/schema-definitions/models/LibraryDepartmentsModel.js.map +1 -0
- package/dist/schema-definitions/models/LibraryServicesModel.d.ts +10 -0
- package/dist/schema-definitions/models/LibraryServicesModel.js +30 -0
- package/dist/schema-definitions/models/LibraryServicesModel.js.map +1 -0
- package/dist/schema-definitions/models/OpeningHoursModel.d.ts +17 -0
- package/dist/schema-definitions/models/OpeningHoursModel.js +44 -0
- package/dist/schema-definitions/models/OpeningHoursModel.js.map +1 -0
- package/dist/schema-definitions/models/ServicesModel.d.ts +11 -0
- package/dist/schema-definitions/models/ServicesModel.js +31 -0
- package/dist/schema-definitions/models/ServicesModel.js.map +1 -0
- package/dist/schema-definitions/models/index.d.ts +6 -0
- package/dist/schema-definitions/models/index.js +24 -0
- package/dist/schema-definitions/models/index.js.map +1 -0
- package/package.json +64 -58
- package/db/example/mongo_data/dataplatform/municipallibraries.bson +0 -0
- package/db/example/mongo_data/dataplatform/municipallibraries.metadata.json +0 -1
- package/dist/integration-engine/MunicipalLibrariesTransformation.d.ts +0 -9
- package/dist/integration-engine/MunicipalLibrariesTransformation.js +0 -150
- package/dist/integration-engine/MunicipalLibrariesTransformation.js.map +0 -1
- package/dist/integration-engine/MunicipalLibrariesWorker.d.ts +0 -11
- package/dist/integration-engine/MunicipalLibrariesWorker.js +0 -105
- package/dist/integration-engine/MunicipalLibrariesWorker.js.map +0 -1
- package/dist/integration-engine/queueDefinitions.d.ts +0 -3
- package/dist/integration-engine/queueDefinitions.js +0 -36
- package/dist/integration-engine/queueDefinitions.js.map +0 -1
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
INSERT INTO libraries (id, name, geometry, address, district, web, email, telephone, create_batch_id, created_at, created_by, update_batch_id, updated_at, updated_by) VALUES
|
|
2
|
+
(1, 'Ústřední knihovna', '0101000020E61000004B02D4D4B2D52C40892991442F0B4940', '{"address_country":"Česko","address_formatted":"Mariánské náměstí 98/1, 115 72 Praha 1, Česko","address_locality":"Praha 1","postal_code":"115 72","street_address":"Mariánské náměstí 98/1"}', 'praha-1', 'https://www.mlp.cz/cz/pobocky/ustredni-knihovna/', 'knihovna@mlp.cz', '+420 222 113 555', NULL, '2022-09-22 21:51:55.3+00', NULL, NULL, '2022-09-22 22:37:59.792+00', NULL),
|
|
3
|
+
(2, 'Barrandov', '0101000020E610000078280AF489BC2C400C923EADA2034940', '{"address_country":"Česko","address_formatted":"Wassermannova 926/16, 152 00 Praha 5, Česko","address_locality":"Praha 5","postal_code":"152 00","street_address":"Wassermannova 926/16"}', 'praha-6', 'https://www.mlp.cz/cz/pobocky/barrandov/', 'knihovna@mlp.cz', '+420 770 130 262', NULL, '2022-09-21 21:51:55.298+00', NULL, NULL, '2022-09-21 22:37:59.79+00', NULL);
|
|
4
|
+
|
|
5
|
+
INSERT INTO services (id, name, description, create_batch_id, created_at, created_by, update_batch_id, updated_at, updated_by) VALUES
|
|
6
|
+
(1, 'Kopírování', 'Kopírujeme černobíle formáty A3, A4 z fondu knihovny', NULL, '2022-09-21 21:51:56.252+00', NULL, NULL, '2022-09-21 22:37:59.879+00', NULL),
|
|
7
|
+
(2, 'Kamerová lupa', 'V knihovně je k dispozici kamerová televizní lupa, která umožňuje několikanásobné zvětšení předlohy a tím snadnější práci s textem. Knihovníci Vám rádi poradí.', NULL, '2022-09-21 21:51:56.254+00', NULL, NULL, '2022-09-21 22:37:59.879+00', NULL),
|
|
8
|
+
(3, 'Bezbariérový přístup', 'Bezbariérový přístup pro vozíčkáře i rodiče s kočárky', NULL, '2022-09-21 21:51:56.247+00', NULL, NULL, '2022-09-21 22:37:59.88+00', NULL),
|
|
9
|
+
(4, 'Počítače s přístupem na internet a WiFi', 'Zdarma', NULL, '2022-09-21 21:51:56.247+00', NULL, NULL, '2022-09-21 22:37:59.88+00', NULL),
|
|
10
|
+
(5, 'Zoom Text', 'V knihovně je k dispozici ZoomText, pomůcka pro zrakově postižené uživatele, která zvětšuje a odečítá text, který je zobrazen na monitoru.Uživatel má tedy úplný přístup k aplikacím, dokumentům, elektronické poště a internetu.', NULL, '2022-09-21 21:51:56.254+00', NULL, NULL, '2022-09-21 22:37:59.879+00', NULL),
|
|
11
|
+
(6, 'Digitální piano', 'Můžete si zahrát na digitální piano značky Yamaha.', NULL, '2022-09-21 21:51:56.247+00', NULL, NULL, '2022-09-21 22:37:59.879+00', NULL);
|
|
12
|
+
|
|
13
|
+
INSERT INTO departments (id, name, type, url, create_batch_id, created_at, created_by, update_batch_id, updated_at, updated_by) VALUES
|
|
14
|
+
('code-2', 'Čítárna', 'tag', NULL, NULL, '2022-09-21 21:52:01.402+00', NULL, NULL, '2022-09-21 22:38:00.332+00', NULL),
|
|
15
|
+
('code-7', 'Fonotéka', 'tag', NULL, NULL, '2022-09-21 21:52:01.402+00', NULL, NULL, '2022-09-21 22:38:00.332+00', NULL),
|
|
16
|
+
('code-8', 'Oddělení pro děti a mládež', 'tag', NULL, NULL, '2022-09-21 21:52:01.402+00', NULL, NULL, '2022-09-21 22:38:00.332+00', NULL),
|
|
17
|
+
('code-10', 'Poslechová místa', 'tag', NULL, NULL, '2022-09-21 21:52:01.403+00', NULL, NULL, '2022-09-21 22:38:00.332+00', NULL),
|
|
18
|
+
('code-11', 'Studovna', 'tag', NULL, NULL, '2022-09-21 21:52:01.402+00', NULL, NULL, '2022-09-21 22:38:00.332+00', NULL),
|
|
19
|
+
('child-57', 'Oddělení pro děti a mládež', 'link', 'https://www.mlp.cz/cz/pobocky/ustredni-knihovna-oddeleni-pro-deti-a-mladez/', NULL, '2022-09-21 21:52:01.403+00', NULL, NULL, '2022-09-21 22:38:00.332+00', NULL);
|
|
20
|
+
|
|
21
|
+
INSERT INTO library_services (library_id, service_id, updated_at, created_at) VALUES
|
|
22
|
+
(1, 1, '2022-09-21 06:09:07.644+00', '2022-09-21 06:09:07.644+00'),
|
|
23
|
+
(1, 2, '2022-09-21 06:09:07.644+00', '2022-09-21 06:09:07.644+00'),
|
|
24
|
+
(1, 3, '2022-09-21 06:09:07.644+00', '2022-09-21 06:09:07.644+00'),
|
|
25
|
+
(1, 4, '2022-09-21 06:09:07.644+00', '2022-09-21 06:09:07.644+00'),
|
|
26
|
+
(1, 5, '2022-09-21 06:09:07.644+00', '2022-09-21 06:09:07.644+00'),
|
|
27
|
+
(1, 6, '2022-09-21 06:09:07.644+00', '2022-09-21 06:09:07.644+00'),
|
|
28
|
+
(2, 3, '2022-09-21 06:09:07.641+00', '2022-09-21 06:09:07.641+00'),
|
|
29
|
+
(2, 4, '2022-09-21 06:09:07.641+00', '2022-09-21 06:09:07.641+00');
|
|
30
|
+
|
|
31
|
+
INSERT INTO library_departments (library_id, department_id, updated_at, created_at) VALUES
|
|
32
|
+
(1, 'code-7', '2022-09-21 06:21:02.167+00', '2022-09-21 06:20:52.959+00'),
|
|
33
|
+
(1, 'child-57', '2022-09-21 06:21:02.167+00', '2022-09-21 06:20:52.959+00'),
|
|
34
|
+
(1, 'code-10', '2022-09-21 06:21:02.167+00', '2022-09-21 06:20:52.959+00'),
|
|
35
|
+
(1, 'code-11', '2022-09-21 06:21:02.167+00', '2022-09-21 06:20:52.959+00'),
|
|
36
|
+
(2, 'code-8', '2022-09-21 06:21:02.167+00', '2022-09-21 06:20:52.959+00'),
|
|
37
|
+
(2, 'code-2', '2022-09-21 06:21:02.167+00', '2022-09-21 06:20:52.959+00');
|
|
38
|
+
|
|
39
|
+
INSERT INTO opening_hours (id, library_id, day_of_week, opens, closes, description, is_default, valid_from, valid_through, create_batch_id, created_at, created_by, update_batch_id, updated_at, updated_by) VALUES
|
|
40
|
+
(1, 2, 'Monday', '13:00', '19:00', 'Základní provozní doba', true, NULL, NULL, NULL, '2022-09-21 06:21:02.193+00', NULL, NULL, '2022-09-21 06:21:02.193+00', NULL),
|
|
41
|
+
(2, 2, 'Tuesday', '09:00', '16:00', 'Základní provozní doba', true, NULL, NULL, NULL, '2022-09-21 06:21:02.193+00', NULL, NULL, '2022-09-21 06:21:02.193+00', NULL),
|
|
42
|
+
(3, 2, 'Wednesday', '12:00', '19:00', 'Základní provozní doba', true, NULL, NULL, NULL, '2022-09-21 06:21:02.193+00', NULL, NULL, '2022-09-21 06:21:02.193+00', NULL),
|
|
43
|
+
(4, 2, 'Thursday', '12:00', '19:00', 'Základní provozní doba', true, NULL, NULL, NULL, '2022-09-21 06:21:02.193+00', NULL, NULL, '2022-09-21 06:21:02.193+00', NULL),
|
|
44
|
+
(5, 2, 'Friday', '09:00', '16:00', 'Základní provozní doba', true, NULL, NULL, NULL, '2022-09-21 06:21:02.193+00', NULL, NULL, '2022-09-21 06:21:02.193+00', NULL),
|
|
45
|
+
(200, 1, 'Monday', '13:00', '20:00', 'Základní provozní doba', true, NULL, NULL, NULL, '2022-09-21 06:21:02.193+00', NULL, NULL, '2022-09-21 06:21:02.193+00', NULL),
|
|
46
|
+
(201, 1, 'Tuesday', '09:00', '20:00', 'Základní provozní doba', true, NULL, NULL, NULL, '2022-09-21 06:21:02.193+00', NULL, NULL, '2022-09-21 06:21:02.193+00', NULL),
|
|
47
|
+
(202, 1, 'Wednesday', '09:00', '20:00', 'Základní provozní doba', true, NULL, NULL, NULL, '2022-09-21 06:21:02.193+00', NULL, NULL, '2022-09-21 06:21:02.193+00', NULL),
|
|
48
|
+
(203, 1, 'Thursday', '09:00', '20:00', 'Základní provozní doba', true, NULL, NULL, NULL, '2022-09-21 06:21:02.193+00', NULL, NULL, '2022-09-21 06:21:02.193+00', NULL),
|
|
49
|
+
(204, 1, 'Friday', '09:00', '20:00', 'Základní provozní doba', true, NULL, NULL, NULL, '2022-09-21 06:21:02.193+00', NULL, NULL, '2022-09-21 06:21:02.193+00', NULL),
|
|
50
|
+
(205, 1, 'Saturday', '13:00', '18:00', 'Základní provozní doba', true, NULL, NULL, NULL, '2022-09-21 06:21:02.193+00', NULL, NULL, '2022-09-21 06:21:02.193+00', NULL);
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var dbm;
|
|
4
|
+
var type;
|
|
5
|
+
var seed;
|
|
6
|
+
var fs = require('fs');
|
|
7
|
+
var path = require('path');
|
|
8
|
+
var Promise;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* We receive the dbmigrate dependency from dbmigrate initially.
|
|
12
|
+
* This enables us to not have to rely on NODE_PATH.
|
|
13
|
+
*/
|
|
14
|
+
exports.setup = function(options, seedLink) {
|
|
15
|
+
dbm = options.dbmigrate;
|
|
16
|
+
type = dbm.dataType;
|
|
17
|
+
seed = seedLink;
|
|
18
|
+
Promise = options.Promise;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
exports.up = function(db) {
|
|
22
|
+
var filePath = path.join(__dirname, 'sqls', '20220916133717-init-up.sql');
|
|
23
|
+
return new Promise( function( resolve, reject ) {
|
|
24
|
+
fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
|
|
25
|
+
if (err) return reject(err);
|
|
26
|
+
console.log('received data: ' + data);
|
|
27
|
+
|
|
28
|
+
resolve(data);
|
|
29
|
+
});
|
|
30
|
+
})
|
|
31
|
+
.then(function(data) {
|
|
32
|
+
return db.runSql(data);
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
exports.down = function(db) {
|
|
37
|
+
var filePath = path.join(__dirname, 'sqls', '20220916133717-init-down.sql');
|
|
38
|
+
return new Promise( function( resolve, reject ) {
|
|
39
|
+
fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
|
|
40
|
+
if (err) return reject(err);
|
|
41
|
+
console.log('received data: ' + data);
|
|
42
|
+
|
|
43
|
+
resolve(data);
|
|
44
|
+
});
|
|
45
|
+
})
|
|
46
|
+
.then(function(data) {
|
|
47
|
+
return db.runSql(data);
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
exports._meta = {
|
|
52
|
+
"version": 1
|
|
53
|
+
};
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS libraries (
|
|
2
|
+
"id" serial4 NOT NULL,
|
|
3
|
+
"name" varchar(255) NOT NULL,
|
|
4
|
+
"geometry" geometry,
|
|
5
|
+
"address" json NOT NULL,
|
|
6
|
+
"district" varchar(255),
|
|
7
|
+
"web" varchar(255) NOT NULL,
|
|
8
|
+
"email" varchar(255),
|
|
9
|
+
"telephone" varchar(255),
|
|
10
|
+
|
|
11
|
+
-- audit fields,
|
|
12
|
+
create_batch_id int8 NULL,
|
|
13
|
+
created_at timestamptz NULL,
|
|
14
|
+
created_by varchar(150) NULL,
|
|
15
|
+
update_batch_id int8 NULL,
|
|
16
|
+
updated_at timestamptz NULL,
|
|
17
|
+
updated_by varchar(150) NULL,
|
|
18
|
+
|
|
19
|
+
CONSTRAINT libraries_pk PRIMARY KEY (id)
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
CREATE INDEX libraries_geometry_idx ON libraries USING gist("geometry");
|
|
23
|
+
CREATE INDEX libraries_district_idx ON libraries USING btree("district");
|
|
24
|
+
CREATE INDEX libraries_updated_at_idx ON libraries USING btree("updated_at");
|
|
25
|
+
|
|
26
|
+
CREATE TABLE IF NOT EXISTS services (
|
|
27
|
+
"id" serial4 NOT NULL,
|
|
28
|
+
"name" varchar(255) NOT NULL,
|
|
29
|
+
"description" text,
|
|
30
|
+
|
|
31
|
+
-- audit fields,
|
|
32
|
+
create_batch_id int8 NULL,
|
|
33
|
+
created_at timestamptz NULL,
|
|
34
|
+
created_by varchar(150) NULL,
|
|
35
|
+
update_batch_id int8 NULL,
|
|
36
|
+
updated_at timestamptz NULL,
|
|
37
|
+
updated_by varchar(150) NULL,
|
|
38
|
+
|
|
39
|
+
CONSTRAINT services_pk PRIMARY KEY (id)
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
CREATE TABLE IF NOT EXISTS departments (
|
|
43
|
+
"id" varchar(50) NOT NULL,
|
|
44
|
+
"name" varchar(255) NOT NULL,
|
|
45
|
+
"type" varchar(255),
|
|
46
|
+
"url" varchar(255),
|
|
47
|
+
|
|
48
|
+
-- audit fields,
|
|
49
|
+
create_batch_id int8 NULL,
|
|
50
|
+
created_at timestamptz NULL,
|
|
51
|
+
created_by varchar(150) NULL,
|
|
52
|
+
update_batch_id int8 NULL,
|
|
53
|
+
updated_at timestamptz NULL,
|
|
54
|
+
updated_by varchar(150) NULL,
|
|
55
|
+
|
|
56
|
+
CONSTRAINT departments_pk PRIMARY KEY (id)
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
CREATE TABLE library_services (
|
|
60
|
+
"library_id" serial4 NOT NULL,
|
|
61
|
+
"service_id" serial4 NOT NULL,
|
|
62
|
+
"updated_at" timestamptz NOT NULL,
|
|
63
|
+
"created_at" timestamptz NOT NULL,
|
|
64
|
+
|
|
65
|
+
CONSTRAINT libraries_fk FOREIGN KEY ("library_id") REFERENCES libraries("id") ON DELETE CASCADE,
|
|
66
|
+
CONSTRAINT services_fk FOREIGN KEY ("service_id") REFERENCES services("id") ON DELETE CASCADE,
|
|
67
|
+
CONSTRAINT library_services_pk PRIMARY KEY ("library_id", "service_id")
|
|
68
|
+
);
|
|
69
|
+
|
|
70
|
+
CREATE TABLE library_departments (
|
|
71
|
+
"library_id" serial4 NOT NULL,
|
|
72
|
+
"department_id" varchar(50) NOT NULL,
|
|
73
|
+
"updated_at" timestamptz NOT NULL,
|
|
74
|
+
"created_at" timestamptz NOT NULL,
|
|
75
|
+
|
|
76
|
+
CONSTRAINT libraries_fk FOREIGN KEY ("library_id") REFERENCES libraries("id") ON DELETE CASCADE,
|
|
77
|
+
CONSTRAINT departments_fk FOREIGN KEY ("department_id") REFERENCES departments("id") ON DELETE CASCADE,
|
|
78
|
+
CONSTRAINT library_departments_pk PRIMARY KEY ("library_id", "department_id")
|
|
79
|
+
);
|
|
80
|
+
|
|
81
|
+
CREATE TABLE IF NOT EXISTS opening_hours (
|
|
82
|
+
"id" serial4 NOT NULL,
|
|
83
|
+
"library_id" serial4 NOT NULL,
|
|
84
|
+
"day_of_week" varchar(255) NOT NULL,
|
|
85
|
+
"opens" varchar(255) NOT NULL,
|
|
86
|
+
"closes" varchar(255) NOT NULL,
|
|
87
|
+
"description" varchar(255) NOT NULL,
|
|
88
|
+
"is_default" boolean NOT NULL,
|
|
89
|
+
"valid_from" timestamptz,
|
|
90
|
+
"valid_through" timestamptz,
|
|
91
|
+
|
|
92
|
+
-- audit fields,
|
|
93
|
+
create_batch_id int8 NULL,
|
|
94
|
+
created_at timestamptz NULL,
|
|
95
|
+
created_by varchar(150) NULL,
|
|
96
|
+
update_batch_id int8 NULL,
|
|
97
|
+
updated_at timestamptz NULL,
|
|
98
|
+
updated_by varchar(150) NULL,
|
|
99
|
+
|
|
100
|
+
CONSTRAINT opening_hours_pk PRIMARY KEY (id),
|
|
101
|
+
CONSTRAINT opening_hours_fk FOREIGN KEY ("library_id") REFERENCES libraries("id") ON DELETE CASCADE
|
|
102
|
+
);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MunicipalLibrariesDataSourceFactory = void 0;
|
|
4
|
+
const datasources_1 = require("@golemio/core/dist/integration-engine/datasources");
|
|
5
|
+
const config_1 = require("@golemio/core/dist/integration-engine/config");
|
|
6
|
+
const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
|
|
7
|
+
const _sch_1 = require("../../schema-definitions");
|
|
8
|
+
class MunicipalLibrariesDataSourceFactory {
|
|
9
|
+
static getDataSource() {
|
|
10
|
+
return new datasources_1.DataSource(_sch_1.MunicipalLibraries.datasources.municipalLibrariesDatasource.name, new datasources_1.HTTPProtocolStrategy({
|
|
11
|
+
headers: {},
|
|
12
|
+
method: "GET",
|
|
13
|
+
url: config_1.config.datasources.MunicipalLibraries,
|
|
14
|
+
}), new datasources_1.XMLDataTypeStrategy({
|
|
15
|
+
resultsPath: "pobocky.pobocka",
|
|
16
|
+
xml2jsParams: { explicitArray: false, ignoreAttrs: true, trim: true, normalize: true, emptyTag: null },
|
|
17
|
+
}), new golemio_validator_1.JSONSchemaValidator(_sch_1.MunicipalLibraries.datasources.municipalLibrariesDatasource.name + "Validator", _sch_1.MunicipalLibraries.datasources.municipalLibrariesDatasource.jsonSchema));
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.MunicipalLibrariesDataSourceFactory = MunicipalLibrariesDataSourceFactory;
|
|
21
|
+
//# sourceMappingURL=MunicipalLibrariesDataSource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MunicipalLibrariesDataSource.js","sourceRoot":"","sources":["../../../src/integration-engine/datasources/MunicipalLibrariesDataSource.ts"],"names":[],"mappings":";;;AAAA,mFAA0H;AAC1H,yEAAsE;AACtE,mFAAkF;AAClF,mDAA0C;AAE1C,MAAa,mCAAmC;IACrC,MAAM,CAAC,aAAa;QACvB,OAAO,IAAI,wBAAU,CACjB,yBAAkB,CAAC,WAAW,CAAC,4BAA4B,CAAC,IAAI,EAChE,IAAI,kCAAoB,CAAC;YACrB,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,eAAM,CAAC,WAAW,CAAC,kBAAkB;SAC7C,CAAC,EACF,IAAI,iCAAmB,CAAC;YACpB,WAAW,EAAE,iBAAiB;YAC9B,YAAY,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;SACzG,CAAC,EACF,IAAI,uCAAmB,CACnB,yBAAkB,CAAC,WAAW,CAAC,4BAA4B,CAAC,IAAI,GAAG,WAAW,EAC9E,yBAAkB,CAAC,WAAW,CAAC,4BAA4B,CAAC,UAAU,CACzE,CACJ,CAAC;IACN,CAAC;CACJ;AAnBD,kFAmBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./MunicipalLibrariesDataSource";
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
/* ie/datasources/index.ts */
|
|
18
|
+
__exportStar(require("./MunicipalLibrariesDataSource"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integration-engine/datasources/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6BAA6B;AAC7B,iEAA+C"}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
export * from "./MunicipalLibrariesTransformation";
|
|
2
|
-
export
|
|
3
|
-
export * from "./queueDefinitions";
|
|
1
|
+
export * from "./transformations/MunicipalLibrariesTransformation";
|
|
2
|
+
export { workers } from "./workers";
|
|
@@ -14,7 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
__exportStar(require("./
|
|
17
|
+
exports.workers = void 0;
|
|
18
|
+
/* ie/index.ts */
|
|
19
|
+
__exportStar(require("./transformations/MunicipalLibrariesTransformation"), exports);
|
|
20
|
+
var workers_1 = require("./workers");
|
|
21
|
+
Object.defineProperty(exports, "workers", { enumerable: true, get: function () { return workers_1.workers; } });
|
|
20
22
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integration-engine/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integration-engine/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iBAAiB;AACjB,qFAAmE;AACnE,qCAAoC;AAA3B,kGAAA,OAAO,OAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DepartmentsRepository = void 0;
|
|
4
|
+
const models_1 = require("@golemio/core/dist/integration-engine/models");
|
|
5
|
+
const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
|
|
6
|
+
const _sch_1 = require("../../schema-definitions");
|
|
7
|
+
const models_2 = require("../../schema-definitions/models");
|
|
8
|
+
class DepartmentsRepository extends models_1.PostgresModel {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(_sch_1.MunicipalLibraries.definitions.municipalLibraryDepartments.name + "Repository", {
|
|
11
|
+
outputSequelizeAttributes: models_2.DepartmentsModel.attributeModel,
|
|
12
|
+
pgTableName: _sch_1.MunicipalLibraries.definitions.municipalLibraryDepartments.pgTableName,
|
|
13
|
+
pgSchema: _sch_1.MunicipalLibraries.pgSchema,
|
|
14
|
+
savingType: "insertOrUpdate",
|
|
15
|
+
}, new golemio_validator_1.JSONSchemaValidator(_sch_1.MunicipalLibraries.definitions.municipalLibraryDepartments.name + "Validator", models_2.DepartmentsModel.jsonSchema));
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.DepartmentsRepository = DepartmentsRepository;
|
|
19
|
+
//# sourceMappingURL=DepartmentsRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DepartmentsRepository.js","sourceRoot":"","sources":["../../../src/integration-engine/repositories/DepartmentsRepository.ts"],"names":[],"mappings":";;;AAAA,yEAAqF;AACrF,mFAAkF;AAClF,mDAA0C;AAC1C,4DAA+C;AAE/C,MAAa,qBAAsB,SAAQ,sBAAa;IACpD;QACI,KAAK,CACD,yBAAkB,CAAC,WAAW,CAAC,2BAA2B,CAAC,IAAI,GAAG,YAAY,EAC9E;YACI,yBAAyB,EAAE,yBAAgB,CAAC,cAAc;YAC1D,WAAW,EAAE,yBAAkB,CAAC,WAAW,CAAC,2BAA2B,CAAC,WAAW;YACnF,QAAQ,EAAE,yBAAkB,CAAC,QAAQ;YACrC,UAAU,EAAE,gBAAgB;SAC/B,EACD,IAAI,uCAAmB,CACnB,yBAAkB,CAAC,WAAW,CAAC,2BAA2B,CAAC,IAAI,GAAG,WAAW,EAC7E,yBAAgB,CAAC,UAAU,CAC9B,CACJ,CAAC;IACN,CAAC;CACJ;AAhBD,sDAgBC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LibraryDepartmentsRepository = void 0;
|
|
4
|
+
const models_1 = require("@golemio/core/dist/integration-engine/models");
|
|
5
|
+
const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
|
|
6
|
+
const _sch_1 = require("../../schema-definitions");
|
|
7
|
+
const models_2 = require("../../schema-definitions/models");
|
|
8
|
+
class LibraryDepartmentsRepository extends models_1.PostgresModel {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(_sch_1.MunicipalLibraries.definitions.municipalLibrariesLibraryDepartments.name + "Repository", {
|
|
11
|
+
outputSequelizeAttributes: models_2.LibraryDepartmentsModel.attributeModel,
|
|
12
|
+
pgTableName: _sch_1.MunicipalLibraries.definitions.municipalLibrariesLibraryDepartments.pgTableName,
|
|
13
|
+
pgSchema: _sch_1.MunicipalLibraries.pgSchema,
|
|
14
|
+
savingType: "insertOrUpdate",
|
|
15
|
+
}, new golemio_validator_1.JSONSchemaValidator(_sch_1.MunicipalLibraries.definitions.municipalLibrariesLibraryDepartments.name + "Validator", models_2.LibraryDepartmentsModel.jsonSchema));
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.LibraryDepartmentsRepository = LibraryDepartmentsRepository;
|
|
19
|
+
//# sourceMappingURL=LibraryDepartmentsRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LibraryDepartmentsRepository.js","sourceRoot":"","sources":["../../../src/integration-engine/repositories/LibraryDepartmentsRepository.ts"],"names":[],"mappings":";;;AAAA,yEAAqF;AACrF,mFAAkF;AAClF,mDAA0C;AAC1C,4DAAsD;AAEtD,MAAa,4BAA6B,SAAQ,sBAAa;IAC3D;QACI,KAAK,CACD,yBAAkB,CAAC,WAAW,CAAC,oCAAoC,CAAC,IAAI,GAAG,YAAY,EACvF;YACI,yBAAyB,EAAE,gCAAuB,CAAC,cAAc;YACjE,WAAW,EAAE,yBAAkB,CAAC,WAAW,CAAC,oCAAoC,CAAC,WAAW;YAC5F,QAAQ,EAAE,yBAAkB,CAAC,QAAQ;YACrC,UAAU,EAAE,gBAAgB;SAC/B,EACD,IAAI,uCAAmB,CACnB,yBAAkB,CAAC,WAAW,CAAC,oCAAoC,CAAC,IAAI,GAAG,WAAW,EACtF,gCAAuB,CAAC,UAAU,CACrC,CACJ,CAAC;IACN,CAAC;CACJ;AAhBD,oEAgBC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LibraryServicesRepository = void 0;
|
|
4
|
+
const models_1 = require("@golemio/core/dist/integration-engine/models");
|
|
5
|
+
const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
|
|
6
|
+
const _sch_1 = require("../../schema-definitions");
|
|
7
|
+
const models_2 = require("../../schema-definitions/models");
|
|
8
|
+
class LibraryServicesRepository extends models_1.PostgresModel {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(_sch_1.MunicipalLibraries.definitions.municipalLibrariesLibraryServices.name + "Repository", {
|
|
11
|
+
outputSequelizeAttributes: models_2.LibraryServicesModel.attributeModel,
|
|
12
|
+
pgTableName: _sch_1.MunicipalLibraries.definitions.municipalLibrariesLibraryServices.pgTableName,
|
|
13
|
+
pgSchema: _sch_1.MunicipalLibraries.pgSchema,
|
|
14
|
+
savingType: "insertOrUpdate",
|
|
15
|
+
}, new golemio_validator_1.JSONSchemaValidator(_sch_1.MunicipalLibraries.definitions.municipalLibrariesLibraryServices.name + "Validator", models_2.LibraryServicesModel.jsonSchema));
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.LibraryServicesRepository = LibraryServicesRepository;
|
|
19
|
+
//# sourceMappingURL=LibraryServicesRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LibraryServicesRepository.js","sourceRoot":"","sources":["../../../src/integration-engine/repositories/LibraryServicesRepository.ts"],"names":[],"mappings":";;;AAAA,yEAAqF;AACrF,mFAAkF;AAClF,mDAA0C;AAC1C,4DAAmD;AAEnD,MAAa,yBAA0B,SAAQ,sBAAa;IACxD;QACI,KAAK,CACD,yBAAkB,CAAC,WAAW,CAAC,iCAAiC,CAAC,IAAI,GAAG,YAAY,EACpF;YACI,yBAAyB,EAAE,6BAAoB,CAAC,cAAc;YAC9D,WAAW,EAAE,yBAAkB,CAAC,WAAW,CAAC,iCAAiC,CAAC,WAAW;YACzF,QAAQ,EAAE,yBAAkB,CAAC,QAAQ;YACrC,UAAU,EAAE,gBAAgB;SAC/B,EACD,IAAI,uCAAmB,CACnB,yBAAkB,CAAC,WAAW,CAAC,iCAAiC,CAAC,IAAI,GAAG,WAAW,EACnF,6BAAoB,CAAC,UAAU,CAClC,CACJ,CAAC;IACN,CAAC;CACJ;AAhBD,8DAgBC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { IModel, PostgresModel } from "@golemio/core/dist/integration-engine/models";
|
|
2
|
+
import { ILibrariesTransformation } from "./..";
|
|
3
|
+
export declare class MunicipalLibrariesRepository extends PostgresModel implements IModel {
|
|
4
|
+
private readonly servicesRepository;
|
|
5
|
+
private readonly libraryServicesRepository;
|
|
6
|
+
private readonly departmentsRepository;
|
|
7
|
+
private readonly libraryDepartmentsRepository;
|
|
8
|
+
private readonly openingHoursRepository;
|
|
9
|
+
constructor();
|
|
10
|
+
saveLibraries(transformedData: ILibrariesTransformation): Promise<void>;
|
|
11
|
+
private saveLibrariesData;
|
|
12
|
+
private saveServicesData;
|
|
13
|
+
private saveDepartmentsData;
|
|
14
|
+
private saveOpeningHoursData;
|
|
15
|
+
private removeDuplicates;
|
|
16
|
+
}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.MunicipalLibrariesRepository = void 0;
|
|
13
|
+
const models_1 = require("@golemio/core/dist/integration-engine/models");
|
|
14
|
+
const integration_engine_1 = require("@golemio/core/dist/integration-engine");
|
|
15
|
+
const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
|
|
16
|
+
const sequelize_1 = require("@golemio/core/dist/shared/sequelize");
|
|
17
|
+
const repositories_1 = require("./");
|
|
18
|
+
const _sch_1 = require("../../schema-definitions");
|
|
19
|
+
const models_2 = require("../../schema-definitions/models");
|
|
20
|
+
class MunicipalLibrariesRepository extends models_1.PostgresModel {
|
|
21
|
+
constructor() {
|
|
22
|
+
super(_sch_1.MunicipalLibraries.definitions.municipalLibraries.name + "Repository", {
|
|
23
|
+
outputSequelizeAttributes: models_2.LibrariesModel.attributeModel,
|
|
24
|
+
pgTableName: _sch_1.MunicipalLibraries.definitions.municipalLibraries.pgTableName,
|
|
25
|
+
pgSchema: _sch_1.MunicipalLibraries.pgSchema,
|
|
26
|
+
savingType: "insertOrUpdate",
|
|
27
|
+
}, new golemio_validator_1.JSONSchemaValidator(_sch_1.MunicipalLibraries.definitions.municipalLibraries.name + "Validator", models_2.LibrariesModel.jsonSchema));
|
|
28
|
+
this.removeDuplicates = (items) => {
|
|
29
|
+
const unique = new Map();
|
|
30
|
+
for (const item of items) {
|
|
31
|
+
if (!unique.has(item.id)) {
|
|
32
|
+
unique.set(item.id, item);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return [...unique.values()];
|
|
36
|
+
};
|
|
37
|
+
this.servicesRepository = new repositories_1.ServicesRepository();
|
|
38
|
+
this.departmentsRepository = new repositories_1.DepartmentsRepository();
|
|
39
|
+
this.openingHoursRepository = new repositories_1.OpeningHoursRepository();
|
|
40
|
+
this.libraryServicesRepository = new repositories_1.LibraryServicesRepository();
|
|
41
|
+
this.libraryDepartmentsRepository = new repositories_1.LibraryDepartmentsRepository();
|
|
42
|
+
this.sequelizeModel.belongsToMany(this.servicesRepository["sequelizeModel"], {
|
|
43
|
+
through: this.libraryServicesRepository["sequelizeModel"],
|
|
44
|
+
foreignKey: "library_id",
|
|
45
|
+
otherKey: "service_id",
|
|
46
|
+
as: "services",
|
|
47
|
+
});
|
|
48
|
+
this.sequelizeModel.belongsToMany(this.departmentsRepository["sequelizeModel"], {
|
|
49
|
+
through: this.libraryDepartmentsRepository["sequelizeModel"],
|
|
50
|
+
foreignKey: "library_id",
|
|
51
|
+
otherKey: "department_id",
|
|
52
|
+
as: "departments",
|
|
53
|
+
});
|
|
54
|
+
this.sequelizeModel.hasMany(this.openingHoursRepository["sequelizeModel"], {
|
|
55
|
+
sourceKey: "id",
|
|
56
|
+
foreignKey: "library_id",
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
saveLibraries(transformedData) {
|
|
60
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
61
|
+
const updatedAt = new Date().toISOString();
|
|
62
|
+
const connection = integration_engine_1.PostgresConnector.getConnection();
|
|
63
|
+
const t = yield connection.transaction();
|
|
64
|
+
try {
|
|
65
|
+
const ids = yield this.saveLibrariesData(transformedData.libraries, t);
|
|
66
|
+
yield this.saveServicesData(transformedData.services, ids, updatedAt, t);
|
|
67
|
+
yield this.saveDepartmentsData(transformedData.departments, ids, updatedAt, t);
|
|
68
|
+
yield this.saveOpeningHoursData(transformedData.opening_hours, ids, updatedAt, t);
|
|
69
|
+
yield t.commit();
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
yield t.rollback();
|
|
73
|
+
throw err;
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
saveLibrariesData(libraries, t) {
|
|
78
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
79
|
+
yield this.validate(libraries);
|
|
80
|
+
yield this.sequelizeModel.bulkCreate(libraries, {
|
|
81
|
+
updateOnDuplicate: models_2.LibrariesModel.updateAttributes,
|
|
82
|
+
transaction: t,
|
|
83
|
+
});
|
|
84
|
+
return libraries.map((lib) => lib.id);
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
saveServicesData(services, ids, updatedAt, t) {
|
|
88
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
89
|
+
yield this.servicesRepository.validate(services);
|
|
90
|
+
const relationData = services.map((s) => ({ service_id: s.id, library_id: s.library_id }));
|
|
91
|
+
yield this.libraryServicesRepository.validate(relationData);
|
|
92
|
+
yield this.servicesRepository["sequelizeModel"].bulkCreate(this.removeDuplicates(services), {
|
|
93
|
+
updateOnDuplicate: models_2.ServicesModel.updateAttributes,
|
|
94
|
+
transaction: t,
|
|
95
|
+
});
|
|
96
|
+
yield this.libraryServicesRepository["sequelizeModel"].bulkCreate(relationData, {
|
|
97
|
+
updateOnDuplicate: models_2.LibraryServicesModel.updateAttributes,
|
|
98
|
+
transaction: t,
|
|
99
|
+
});
|
|
100
|
+
yield this.libraryServicesRepository["sequelizeModel"].destroy({
|
|
101
|
+
where: { library_id: { [sequelize_1.Op.in]: ids }, updated_at: { [sequelize_1.Op.lt]: updatedAt } },
|
|
102
|
+
transaction: t,
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
saveDepartmentsData(departments, ids, updatedAt, t) {
|
|
107
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
108
|
+
yield this.departmentsRepository.validate(departments);
|
|
109
|
+
const relationData = departments.map((d) => ({ department_id: d.id, library_id: d.library_id }));
|
|
110
|
+
yield this.libraryDepartmentsRepository.validate(relationData);
|
|
111
|
+
yield this.departmentsRepository["sequelizeModel"].bulkCreate(this.removeDuplicates(departments), {
|
|
112
|
+
updateOnDuplicate: models_2.DepartmentsModel.updateAttributes,
|
|
113
|
+
transaction: t,
|
|
114
|
+
});
|
|
115
|
+
yield this.libraryDepartmentsRepository["sequelizeModel"].bulkCreate(relationData, {
|
|
116
|
+
updateOnDuplicate: models_2.LibraryDepartmentsModel.updateAttributes,
|
|
117
|
+
transaction: t,
|
|
118
|
+
});
|
|
119
|
+
yield this.libraryDepartmentsRepository["sequelizeModel"].destroy({
|
|
120
|
+
where: { library_id: { [sequelize_1.Op.in]: ids }, updated_at: { [sequelize_1.Op.lt]: updatedAt } },
|
|
121
|
+
transaction: t,
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
saveOpeningHoursData(hours, ids, updatedAt, t) {
|
|
126
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
127
|
+
yield this.openingHoursRepository.validate(hours);
|
|
128
|
+
yield this.openingHoursRepository["sequelizeModel"].bulkCreate(hours, {
|
|
129
|
+
updateOnDuplicate: models_2.OpeningHoursModel.updateAttributes,
|
|
130
|
+
transaction: t,
|
|
131
|
+
});
|
|
132
|
+
yield this.openingHoursRepository["sequelizeModel"].destroy({
|
|
133
|
+
where: { library_id: { [sequelize_1.Op.in]: ids }, updated_at: { [sequelize_1.Op.lt]: updatedAt } },
|
|
134
|
+
transaction: t,
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
exports.MunicipalLibrariesRepository = MunicipalLibrariesRepository;
|
|
140
|
+
//# sourceMappingURL=MunicipalLibrariesRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MunicipalLibrariesRepository.js","sourceRoot":"","sources":["../../../src/integration-engine/repositories/MunicipalLibrariesRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yEAAqF;AACrF,8EAA0E;AAC1E,mFAAkF;AAClF,mEAAsE;AACtE,qCAM0B;AAE1B,mDAA0C;AAC1C,4DAOqB;AAMrB,MAAa,4BAA6B,SAAQ,sBAAa;IAO3D;QACI,KAAK,CACD,yBAAkB,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,GAAG,YAAY,EACrE;YACI,yBAAyB,EAAE,uBAAc,CAAC,cAAc;YACxD,WAAW,EAAE,yBAAkB,CAAC,WAAW,CAAC,kBAAkB,CAAC,WAAW;YAC1E,QAAQ,EAAE,yBAAkB,CAAC,QAAQ;YACrC,UAAU,EAAE,gBAAgB;SAC/B,EACD,IAAI,uCAAmB,CACnB,yBAAkB,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,GAAG,WAAW,EACpE,uBAAc,CAAC,UAAU,CAC5B,CACJ,CAAC;QA2HE,qBAAgB,GAAG,CAAoC,KAAU,EAAO,EAAE;YAC9E,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAC;YAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;oBACtB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;iBAC7B;aACJ;YAED,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAChC,CAAC,CAAC;QAlIE,IAAI,CAAC,kBAAkB,GAAG,IAAI,iCAAkB,EAAE,CAAC;QACnD,IAAI,CAAC,qBAAqB,GAAG,IAAI,oCAAqB,EAAE,CAAC;QACzD,IAAI,CAAC,sBAAsB,GAAG,IAAI,qCAAsB,EAAE,CAAC;QAC3D,IAAI,CAAC,yBAAyB,GAAG,IAAI,wCAAyB,EAAE,CAAC;QACjE,IAAI,CAAC,4BAA4B,GAAG,IAAI,2CAA4B,EAAE,CAAC;QAEvE,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,EAAE;YACzE,OAAO,EAAE,IAAI,CAAC,yBAAyB,CAAC,gBAAgB,CAAC;YACzD,UAAU,EAAE,YAAY;YACxB,QAAQ,EAAE,YAAY;YACtB,EAAE,EAAE,UAAU;SACjB,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,EAAE;YAC5E,OAAO,EAAE,IAAI,CAAC,4BAA4B,CAAC,gBAAgB,CAAC;YAC5D,UAAU,EAAE,YAAY;YACxB,QAAQ,EAAE,eAAe;YACzB,EAAE,EAAE,aAAa;SACpB,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,EAAE;YACvE,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,YAAY;SAC3B,CAAC,CAAC;IACP,CAAC;IAEY,aAAa,CAAC,eAAyC;;YAChE,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAE3C,MAAM,UAAU,GAAG,sCAAiB,CAAC,aAAa,EAAE,CAAC;YACrD,MAAM,CAAC,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC;YACzC,IAAI;gBACA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBACvE,MAAM,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;gBACzE,MAAM,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;gBAC/E,MAAM,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,aAAa,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;gBAElF,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;aACpB;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACnB,MAAM,GAAG,CAAC;aACb;QACL,CAAC;KAAA;IAEa,iBAAiB,CAAC,SAAuB,EAAE,CAAc;;YACnE,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC/B,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAiB,SAAS,EAAE;gBAC5D,iBAAiB,EAAE,uBAAc,CAAC,gBAAgB;gBAClD,WAAW,EAAE,CAAC;aACjB,CAAC,CAAC;YACH,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,CAAC;KAAA;IAEa,gBAAgB,CAC1B,QAAmD,EACnD,GAAa,EACb,SAAiB,EACjB,CAAc;;YAEd,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACjD,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YAC3F,MAAM,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAE5D,MAAM,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAgB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE;gBACvG,iBAAiB,EAAE,sBAAa,CAAC,gBAAgB;gBACjD,WAAW,EAAE,CAAC;aACjB,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,yBAAyB,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAuB,YAAY,EAAE;gBAClG,iBAAiB,EAAE,6BAAoB,CAAC,gBAAgB;gBACxD,WAAW,EAAE,CAAC;aACjB,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,yBAAyB,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC;gBAC3D,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,cAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,cAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE;gBAC3E,WAAW,EAAE,CAAC;aACjB,CAAC,CAAC;QACP,CAAC;KAAA;IAEa,mBAAmB,CAC7B,WAAyD,EACzD,GAAa,EACb,SAAiB,EACjB,CAAc;;YAEd,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACvD,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACjG,MAAM,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAE/D,MAAM,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAmB,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE;gBAChH,iBAAiB,EAAE,yBAAgB,CAAC,gBAAgB;gBACpD,WAAW,EAAE,CAAC;aACjB,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,4BAA4B,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAA0B,YAAY,EAAE;gBACxG,iBAAiB,EAAE,gCAAuB,CAAC,gBAAgB;gBAC3D,WAAW,EAAE,CAAC;aACjB,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,4BAA4B,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC;gBAC9D,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,cAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,cAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE;gBAC3E,WAAW,EAAE,CAAC;aACjB,CAAC,CAAC;QACP,CAAC;KAAA;IAEa,oBAAoB,CAC9B,KAAuC,EACvC,GAAa,EACb,SAAiB,EACjB,CAAc;;YAEd,MAAM,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClD,MAAM,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE;gBAClE,iBAAiB,EAAE,0BAAiB,CAAC,gBAAgB;gBACrD,WAAW,EAAE,CAAC;aACjB,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC;gBACxD,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,cAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,cAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE;gBAC3E,WAAW,EAAE,CAAC;aACjB,CAAC,CAAC;QACP,CAAC;KAAA;CAWJ;AAzJD,oEAyJC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OpeningHoursRepository = void 0;
|
|
4
|
+
const models_1 = require("@golemio/core/dist/integration-engine/models");
|
|
5
|
+
const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
|
|
6
|
+
const _sch_1 = require("../../schema-definitions");
|
|
7
|
+
const models_2 = require("../../schema-definitions/models");
|
|
8
|
+
class OpeningHoursRepository extends models_1.PostgresModel {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(_sch_1.MunicipalLibraries.definitions.municipalLibraryOpeningHours.name + "Repository", {
|
|
11
|
+
outputSequelizeAttributes: models_2.OpeningHoursModel.attributeModel,
|
|
12
|
+
pgTableName: _sch_1.MunicipalLibraries.definitions.municipalLibraryOpeningHours.pgTableName,
|
|
13
|
+
pgSchema: _sch_1.MunicipalLibraries.pgSchema,
|
|
14
|
+
savingType: "insertOrUpdate",
|
|
15
|
+
}, new golemio_validator_1.JSONSchemaValidator(_sch_1.MunicipalLibraries.definitions.municipalLibraryOpeningHours.name + "Validator", models_2.OpeningHoursModel.jsonSchema));
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.OpeningHoursRepository = OpeningHoursRepository;
|
|
19
|
+
//# sourceMappingURL=OpeningHoursRepository.js.map
|