@po-ui/ng-sync 5.22.3 → 6.2.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/README.md +22 -22
- package/{esm2015/lib/index.js → esm2020/lib/index.mjs} +15 -15
- package/{esm2015/lib/models/index.js → esm2020/lib/models/index.mjs} +6 -6
- package/{esm2015/lib/models/po-data-message.model.js → esm2020/lib/models/po-data-message.model.mjs} +57 -57
- package/esm2020/lib/models/po-data-transform.model.mjs +22 -0
- package/esm2020/lib/models/po-entity/po-entity.model.mjs +214 -0
- package/{esm2015/lib/models/po-event-sourcing-error-response.model.js → esm2020/lib/models/po-event-sourcing-error-response.model.mjs} +17 -17
- package/{esm2015/lib/models/po-network-status.model.js → esm2020/lib/models/po-network-status.model.mjs} +44 -44
- package/{esm2015/lib/models/po-network-type.enum.js → esm2020/lib/models/po-network-type.enum.mjs} +30 -30
- package/esm2020/lib/models/po-query-builder/po-query-builder.model.mjs +238 -0
- package/{esm2015/lib/models/po-request-type.enum.js → esm2020/lib/models/po-request-type.enum.mjs} +16 -16
- package/esm2020/lib/po-sync.module.mjs +45 -0
- package/{esm2015/lib/services/po-event-sourcing/enums/po-event-sourcing-operation.enum.js → esm2020/lib/services/po-event-sourcing/enums/po-event-sourcing-operation.enum.mjs} +17 -17
- package/{esm2015/lib/services/po-event-sourcing/index.js → esm2020/lib/services/po-event-sourcing/index.mjs} +4 -4
- package/esm2020/lib/services/po-event-sourcing/interfaces/po-event-sourcing-item.interface.mjs +2 -0
- package/esm2020/lib/services/po-event-sourcing/interfaces/po-event-sourcing-summary-item.interface.mjs +2 -0
- package/esm2020/lib/services/po-event-sourcing/po-event-sourcing.service.mjs +372 -0
- package/{esm2015/lib/services/po-http-client/interfaces/po-http-header-option.interface.js → esm2020/lib/services/po-http-client/interfaces/po-http-header-option.interface.mjs} +11 -11
- package/esm2020/lib/services/po-http-client/interfaces/po-http-request-data.interface.mjs +2 -0
- package/esm2020/lib/services/po-http-client/interfaces/po-response-api.interface.mjs +2 -0
- package/esm2020/lib/services/po-http-client/po-http-client.service.mjs +148 -0
- package/{esm2015/lib/services/po-http-client/po-http-request-type.enum.js → esm2020/lib/services/po-http-client/po-http-request-type.enum.mjs} +25 -25
- package/esm2020/lib/services/po-network/po-network.service.mjs +58 -0
- package/{esm2015/lib/services/po-schema/index.js → esm2020/lib/services/po-schema/index.mjs} +4 -4
- package/esm2020/lib/services/po-schema/po-schema-definition/po-schema-definition.service.mjs +77 -0
- package/{esm2015/lib/services/po-schema/po-schema-util/po-schema-util.model.js → esm2020/lib/services/po-schema/po-schema-util/po-schema-util.model.mjs} +124 -124
- package/esm2020/lib/services/po-schema/po-schema.service.mjs +174 -0
- package/esm2020/lib/services/po-sync/interfaces/po-sync-config.interface.mjs +2 -0
- package/esm2020/lib/services/po-sync/interfaces/po-sync-field-options.interface.mjs +2 -0
- package/esm2020/lib/services/po-sync/interfaces/po-sync-response.interface.mjs +2 -0
- package/esm2020/lib/services/po-sync/interfaces/po-sync-schema.interface.mjs +2 -0
- package/esm2020/lib/services/po-sync/po-sync.service.mjs +325 -0
- package/{esm2015/lib/utils/utils.js → esm2020/lib/utils/utils.mjs} +63 -63
- package/esm2020/po-ui-ng-sync.mjs +5 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +2 -2
- package/fesm2015/{po-ui-ng-sync.js → po-ui-ng-sync.mjs} +2074 -2058
- package/fesm2015/po-ui-ng-sync.mjs.map +1 -0
- package/fesm2020/po-ui-ng-sync.mjs +2018 -0
- package/fesm2020/po-ui-ng-sync.mjs.map +1 -0
- package/lib/index.d.ts +14 -14
- package/lib/models/index.d.ts +5 -5
- package/lib/models/po-data-message.model.d.ts +46 -46
- package/lib/models/po-data-transform.model.d.ts +52 -52
- package/lib/models/po-entity/po-entity.model.d.ts +122 -122
- package/lib/models/po-event-sourcing-error-response.model.d.ts +20 -20
- package/lib/models/po-network-status.model.d.ts +25 -25
- package/lib/models/po-network-type.enum.d.ts +28 -28
- package/lib/models/po-query-builder/po-query-builder.model.d.ts +126 -126
- package/lib/models/po-request-type.enum.d.ts +14 -14
- package/lib/po-sync.module.d.ts +12 -7
- package/lib/services/po-event-sourcing/enums/po-event-sourcing-operation.enum.d.ts +11 -11
- package/lib/services/po-event-sourcing/index.d.ts +3 -3
- package/lib/services/po-event-sourcing/interfaces/po-event-sourcing-item.interface.d.ts +26 -26
- package/lib/services/po-event-sourcing/interfaces/po-event-sourcing-summary-item.interface.d.ts +16 -16
- package/lib/services/po-event-sourcing/po-event-sourcing.service.d.ts +74 -71
- package/lib/services/po-http-client/interfaces/po-http-header-option.interface.d.ts +15 -15
- package/lib/services/po-http-client/interfaces/po-http-request-data.interface.d.ts +24 -24
- package/lib/services/po-http-client/interfaces/po-response-api.interface.d.ts +14 -14
- package/lib/services/po-http-client/po-http-client.service.d.ts +78 -75
- package/lib/services/po-http-client/po-http-request-type.enum.d.ts +23 -23
- package/lib/services/po-network/po-network.service.d.ts +36 -33
- package/lib/services/po-schema/index.d.ts +3 -3
- package/lib/services/po-schema/po-schema-definition/po-schema-definition.service.d.ts +51 -48
- package/lib/services/po-schema/po-schema-util/po-schema-util.model.d.ts +79 -79
- package/lib/services/po-schema/po-schema.service.d.ts +98 -95
- package/lib/services/po-sync/interfaces/po-sync-config.interface.d.ts +24 -24
- package/lib/services/po-sync/interfaces/po-sync-field-options.interface.d.ts +15 -15
- package/lib/services/po-sync/interfaces/po-sync-response.interface.d.ts +20 -20
- package/lib/services/po-sync/interfaces/po-sync-schema.interface.d.ts +37 -37
- package/lib/services/po-sync/po-sync.service.d.ts +162 -159
- package/lib/utils/utils.d.ts +36 -36
- package/package.json +30 -15
- package/po-ui-ng-sync-6.2.0.tgz +0 -0
- package/po-ui-ng-sync.d.ts +5 -8
- package/public-api.d.ts +1 -1
- package/schematics/README.md +169 -169
- package/schematics/collection.json +15 -15
- package/schematics/migrations.json +30 -25
- package/schematics/ng-add/index.d.ts +7 -7
- package/schematics/ng-add/index.js +33 -33
- package/schematics/ng-add/index.js.map +1 -1
- package/schematics/ng-add/index.spec.d.ts +1 -1
- package/schematics/ng-add/index.spec.js +62 -62
- package/schematics/ng-add/index.spec.js.map +1 -1
- package/schematics/ng-add/schema.json +7 -7
- package/schematics/ng-generate/schema/files/__path__/__name@dasherize__/__name@dasherize__.constants.ts.template +13 -13
- package/schematics/ng-generate/schema/index.d.ts +4 -4
- package/schematics/ng-generate/schema/index.js +12 -12
- package/schematics/ng-generate/schema/index.js.map +1 -1
- package/schematics/ng-generate/schema/index.spec.d.ts +1 -1
- package/schematics/ng-generate/schema/index.spec.js +44 -44
- package/schematics/ng-generate/schema/index.spec.js.map +1 -1
- package/schematics/ng-generate/schema/schema.d.ts +3 -3
- package/schematics/ng-generate/schema/schema.js +2 -2
- package/schematics/ng-generate/schema/schema.json +31 -31
- package/schematics/ng-update/v2/changes.d.ts +8 -8
- package/schematics/ng-update/v2/changes.js +20 -20
- package/schematics/ng-update/v2/index.d.ts +5 -5
- package/schematics/ng-update/v2/index.js +101 -101
- package/schematics/ng-update/v2/index.js.map +1 -1
- package/schematics/ng-update/v3/changes.d.ts +2 -2
- package/schematics/ng-update/v3/changes.js +14 -14
- package/schematics/ng-update/v3/index.d.ts +1 -1
- package/schematics/ng-update/v3/index.js +16 -16
- package/schematics/ng-update/v3/index.js.map +1 -1
- package/schematics/ng-update/v4/changes.d.ts +2 -2
- package/schematics/ng-update/v4/changes.js +14 -14
- package/schematics/ng-update/v4/index.d.ts +1 -1
- package/schematics/ng-update/v4/index.js +15 -15
- package/schematics/ng-update/v4/index.js.map +1 -1
- package/schematics/ng-update/v5/changes.d.ts +2 -2
- package/schematics/ng-update/v5/changes.js +13 -13
- package/schematics/ng-update/v5/index.d.ts +1 -1
- package/schematics/ng-update/v5/index.js +15 -15
- package/schematics/ng-update/v5/index.js.map +1 -1
- package/schematics/ng-update/v6/changes.d.ts +2 -0
- package/schematics/ng-update/v6/changes.js +14 -0
- package/schematics/ng-update/v6/changes.js.map +1 -0
- package/schematics/ng-update/v6/index.d.ts +1 -0
- package/schematics/ng-update/v6/index.js +16 -0
- package/schematics/ng-update/v6/index.js.map +1 -0
- package/bundles/po-ui-ng-sync.umd.js +0 -3002
- package/bundles/po-ui-ng-sync.umd.js.map +0 -1
- package/esm2015/lib/models/po-data-transform.model.js +0 -22
- package/esm2015/lib/models/po-entity/po-entity.model.js +0 -229
- package/esm2015/lib/models/po-query-builder/po-query-builder.model.js +0 -241
- package/esm2015/lib/po-sync.module.js +0 -31
- package/esm2015/lib/services/po-event-sourcing/interfaces/po-event-sourcing-item.interface.js +0 -2
- package/esm2015/lib/services/po-event-sourcing/interfaces/po-event-sourcing-summary-item.interface.js +0 -2
- package/esm2015/lib/services/po-event-sourcing/po-event-sourcing.service.js +0 -411
- package/esm2015/lib/services/po-http-client/interfaces/po-http-request-data.interface.js +0 -2
- package/esm2015/lib/services/po-http-client/interfaces/po-response-api.interface.js +0 -2
- package/esm2015/lib/services/po-http-client/po-http-client.service.js +0 -147
- package/esm2015/lib/services/po-network/po-network.service.js +0 -58
- package/esm2015/lib/services/po-schema/po-schema-definition/po-schema-definition.service.js +0 -80
- package/esm2015/lib/services/po-schema/po-schema.service.js +0 -198
- package/esm2015/lib/services/po-sync/interfaces/po-sync-config.interface.js +0 -2
- package/esm2015/lib/services/po-sync/interfaces/po-sync-field-options.interface.js +0 -2
- package/esm2015/lib/services/po-sync/interfaces/po-sync-response.interface.js +0 -2
- package/esm2015/lib/services/po-sync/interfaces/po-sync-schema.interface.js +0 -2
- package/esm2015/lib/services/po-sync/po-sync.service.js +0 -336
- package/esm2015/po-ui-ng-sync.js +0 -9
- package/fesm2015/po-ui-ng-sync.js.map +0 -1
- package/po-ui-ng-sync-5.22.3.tgz +0 -0
- package/po-ui-ng-sync.metadata.json +0 -1
package/README.md
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
# PO Sync
|
|
2
|
-
|
|
3
|
-
O **PO Sync** é uma biblioteca para aplicações Angular que possibilita armazenar dados na aplicação local mantendo a sincronização entre os dados locais e o servidor.
|
|
4
|
-
|
|
5
|
-
#### Instalação
|
|
6
|
-
|
|
7
|
-
Instalando com schematic(recomendado):
|
|
8
|
-
```
|
|
9
|
-
ng add @po-ui/ng-sync
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
Instalando com npm:
|
|
13
|
-
```
|
|
14
|
-
npm install @po-ui/ng-sync
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
Caso prefira instalar com o yarn:
|
|
18
|
-
```
|
|
19
|
-
yarn add @po-ui/ng-sync
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
Para informações complementares sobre instalação, acesse **[começando com o PO Sync](https://po-ui.io/guides/sync-get-started)** e **[fundamentos do PO Sync](https://po-ui.io/guides/sync-fundamentals)**.
|
|
1
|
+
# PO Sync
|
|
2
|
+
|
|
3
|
+
O **PO Sync** é uma biblioteca para aplicações Angular que possibilita armazenar dados na aplicação local mantendo a sincronização entre os dados locais e o servidor.
|
|
4
|
+
|
|
5
|
+
#### Instalação
|
|
6
|
+
|
|
7
|
+
Instalando com schematic(recomendado):
|
|
8
|
+
```
|
|
9
|
+
ng add @po-ui/ng-sync
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Instalando com npm:
|
|
13
|
+
```
|
|
14
|
+
npm install @po-ui/ng-sync
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Caso prefira instalar com o yarn:
|
|
18
|
+
```
|
|
19
|
+
yarn add @po-ui/ng-sync
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Para informações complementares sobre instalação, acesse **[começando com o PO Sync](https://po-ui.io/guides/sync-get-started)** e **[fundamentos do PO Sync](https://po-ui.io/guides/sync-fundamentals)**.
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
export * from './models/po-data-transform.model';
|
|
2
|
-
export * from './models/po-entity/po-entity.model';
|
|
3
|
-
export * from './models/po-event-sourcing-error-response.model';
|
|
4
|
-
export * from './models/po-network-type.enum';
|
|
5
|
-
export * from './services/po-event-sourcing/po-event-sourcing.service';
|
|
6
|
-
export * from './services/po-http-client/interfaces/po-http-request-data.interface';
|
|
7
|
-
export * from './services/po-http-client/interfaces/po-response-api.interface';
|
|
8
|
-
export * from './services/po-http-client/po-http-client.service';
|
|
9
|
-
export * from './services/po-http-client/po-http-request-type.enum';
|
|
10
|
-
export * from './services/po-network/po-network.service';
|
|
11
|
-
export * from './services/po-sync/interfaces/po-sync-config.interface';
|
|
12
|
-
export * from './services/po-sync/interfaces/po-sync-schema.interface';
|
|
13
|
-
export * from './services/po-sync/po-sync.service';
|
|
14
|
-
export * from './po-sync.module';
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export * from './models/po-data-transform.model';
|
|
2
|
+
export * from './models/po-entity/po-entity.model';
|
|
3
|
+
export * from './models/po-event-sourcing-error-response.model';
|
|
4
|
+
export * from './models/po-network-type.enum';
|
|
5
|
+
export * from './services/po-event-sourcing/po-event-sourcing.service';
|
|
6
|
+
export * from './services/po-http-client/interfaces/po-http-request-data.interface';
|
|
7
|
+
export * from './services/po-http-client/interfaces/po-response-api.interface';
|
|
8
|
+
export * from './services/po-http-client/po-http-client.service';
|
|
9
|
+
export * from './services/po-http-client/po-http-request-type.enum';
|
|
10
|
+
export * from './services/po-network/po-network.service';
|
|
11
|
+
export * from './services/po-sync/interfaces/po-sync-config.interface';
|
|
12
|
+
export * from './services/po-sync/interfaces/po-sync-schema.interface';
|
|
13
|
+
export * from './services/po-sync/po-sync.service';
|
|
14
|
+
export * from './po-sync.module';
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zeW5jL3NyYy9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYyxnRUFBZ0UsQ0FBQztBQUMvRSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvcG8tZGF0YS10cmFuc2Zvcm0ubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvcG8tZW50aXR5L3BvLWVudGl0eS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9wby1ldmVudC1zb3VyY2luZy1lcnJvci1yZXNwb25zZS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9wby1uZXR3b3JrLXR5cGUuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3BvLWV2ZW50LXNvdXJjaW5nL3BvLWV2ZW50LXNvdXJjaW5nLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9wby1odHRwLWNsaWVudC9pbnRlcmZhY2VzL3BvLWh0dHAtcmVxdWVzdC1kYXRhLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3BvLWh0dHAtY2xpZW50L2ludGVyZmFjZXMvcG8tcmVzcG9uc2UtYXBpLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3BvLWh0dHAtY2xpZW50L3BvLWh0dHAtY2xpZW50LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9wby1odHRwLWNsaWVudC9wby1odHRwLXJlcXVlc3QtdHlwZS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvcG8tbmV0d29yay9wby1uZXR3b3JrLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9wby1zeW5jL2ludGVyZmFjZXMvcG8tc3luYy1jb25maWcuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvcG8tc3luYy9pbnRlcmZhY2VzL3BvLXN5bmMtc2NoZW1hLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3BvLXN5bmMvcG8tc3luYy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vcG8tc3luYy5tb2R1bGUnO1xuIl19
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { PoDataMessage } from './po-data-message.model';
|
|
2
|
-
export { PoDataTransform } from './po-data-transform.model';
|
|
3
|
-
export { PoEntity } from './po-entity/po-entity.model';
|
|
4
|
-
export { PoNetworkStatus } from './po-network-status.model';
|
|
5
|
-
export { PoQueryBuilder } from './po-query-builder/po-query-builder.model';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export { PoDataMessage } from './po-data-message.model';
|
|
2
|
+
export { PoDataTransform } from './po-data-transform.model';
|
|
3
|
+
export { PoEntity } from './po-entity/po-entity.model';
|
|
4
|
+
export { PoNetworkStatus } from './po-network-status.model';
|
|
5
|
+
export { PoQueryBuilder } from './po-query-builder/po-query-builder.model';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zeW5jL3NyYy9saWIvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkNBQTJDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBQb0RhdGFNZXNzYWdlIH0gZnJvbSAnLi9wby1kYXRhLW1lc3NhZ2UubW9kZWwnO1xuZXhwb3J0IHsgUG9EYXRhVHJhbnNmb3JtIH0gZnJvbSAnLi9wby1kYXRhLXRyYW5zZm9ybS5tb2RlbCc7XG5leHBvcnQgeyBQb0VudGl0eSB9IGZyb20gJy4vcG8tZW50aXR5L3BvLWVudGl0eS5tb2RlbCc7XG5leHBvcnQgeyBQb05ldHdvcmtTdGF0dXMgfSBmcm9tICcuL3BvLW5ldHdvcmstc3RhdHVzLm1vZGVsJztcbmV4cG9ydCB7IFBvUXVlcnlCdWlsZGVyIH0gZnJvbSAnLi9wby1xdWVyeS1idWlsZGVyL3BvLXF1ZXJ5LWJ1aWxkZXIubW9kZWwnO1xuIl19
|
package/{esm2015/lib/models/po-data-message.model.js → esm2020/lib/models/po-data-message.model.mjs}
RENAMED
|
@@ -1,57 +1,57 @@
|
|
|
1
|
-
import { PoDataTransform } from './po-data-transform.model';
|
|
2
|
-
/**
|
|
3
|
-
* @docsPrivate
|
|
4
|
-
*
|
|
5
|
-
* @description
|
|
6
|
-
*
|
|
7
|
-
* Classe responsável por implementar a classe `PoDataTransform` com os campos referentes ao padrão de
|
|
8
|
-
* [API do PO UI](https://po-ui.io/guides/api).
|
|
9
|
-
*/
|
|
10
|
-
export class PoDataMessage extends PoDataTransform {
|
|
11
|
-
/**
|
|
12
|
-
* Retorna a propriedade `po_sync_date`, responsável por informar a data da última sincronização no guia de
|
|
13
|
-
* [API do PO UI](https://po-ui.io/guides/api).
|
|
14
|
-
*
|
|
15
|
-
* @returns {string} Nome do campo que contém a data da última sincronização.
|
|
16
|
-
*/
|
|
17
|
-
getDateFieldName() {
|
|
18
|
-
return 'po_sync_date';
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Retorna a propriedade `items`, responsável por informar a lista de registros vindos da API no guia de
|
|
22
|
-
* [API do PO UI](https://po-ui.io/guides/api).
|
|
23
|
-
*
|
|
24
|
-
* @returns {string} Nome da propriedade que contém a lista de registros.
|
|
25
|
-
*/
|
|
26
|
-
getItemsFieldName() {
|
|
27
|
-
return 'items';
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Retorna a propriedade `page`, responsável por informar o número da página de registros que a API retorna no guia de
|
|
31
|
-
* [API do PO UI](https://po-ui.io/guides/api).
|
|
32
|
-
*
|
|
33
|
-
* @returns {string} Nome da propriedade responsável por informar o número da página de registros.
|
|
34
|
-
*/
|
|
35
|
-
getPageParamName() {
|
|
36
|
-
return 'page';
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Retorna a propriedade `pageSize`, responsável pela quantidade de registros que serão exibidos por página no guia de
|
|
40
|
-
* [API do PO UI](https://po-ui.io/guides/api).
|
|
41
|
-
*
|
|
42
|
-
* @returns {string} Nome do parâmetro responsável pela quantidade de registros por página.
|
|
43
|
-
*/
|
|
44
|
-
getPageSizeParamName() {
|
|
45
|
-
return 'pageSize';
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Retorna um valor `boolean`, de acordo com a propriedade `hasNext` que é responsável por informar se há uma nova
|
|
49
|
-
* página de registros disponível no guia de [API do PO UI](https://po-ui.io/guides/api).
|
|
50
|
-
*
|
|
51
|
-
* @returns {boolean} Informa se tem próxima página de registros.
|
|
52
|
-
*/
|
|
53
|
-
hasNext() {
|
|
54
|
-
return this.data.hasNext;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { PoDataTransform } from './po-data-transform.model';
|
|
2
|
+
/**
|
|
3
|
+
* @docsPrivate
|
|
4
|
+
*
|
|
5
|
+
* @description
|
|
6
|
+
*
|
|
7
|
+
* Classe responsável por implementar a classe `PoDataTransform` com os campos referentes ao padrão de
|
|
8
|
+
* [API do PO UI](https://po-ui.io/guides/api).
|
|
9
|
+
*/
|
|
10
|
+
export class PoDataMessage extends PoDataTransform {
|
|
11
|
+
/**
|
|
12
|
+
* Retorna a propriedade `po_sync_date`, responsável por informar a data da última sincronização no guia de
|
|
13
|
+
* [API do PO UI](https://po-ui.io/guides/api).
|
|
14
|
+
*
|
|
15
|
+
* @returns {string} Nome do campo que contém a data da última sincronização.
|
|
16
|
+
*/
|
|
17
|
+
getDateFieldName() {
|
|
18
|
+
return 'po_sync_date';
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Retorna a propriedade `items`, responsável por informar a lista de registros vindos da API no guia de
|
|
22
|
+
* [API do PO UI](https://po-ui.io/guides/api).
|
|
23
|
+
*
|
|
24
|
+
* @returns {string} Nome da propriedade que contém a lista de registros.
|
|
25
|
+
*/
|
|
26
|
+
getItemsFieldName() {
|
|
27
|
+
return 'items';
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Retorna a propriedade `page`, responsável por informar o número da página de registros que a API retorna no guia de
|
|
31
|
+
* [API do PO UI](https://po-ui.io/guides/api).
|
|
32
|
+
*
|
|
33
|
+
* @returns {string} Nome da propriedade responsável por informar o número da página de registros.
|
|
34
|
+
*/
|
|
35
|
+
getPageParamName() {
|
|
36
|
+
return 'page';
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Retorna a propriedade `pageSize`, responsável pela quantidade de registros que serão exibidos por página no guia de
|
|
40
|
+
* [API do PO UI](https://po-ui.io/guides/api).
|
|
41
|
+
*
|
|
42
|
+
* @returns {string} Nome do parâmetro responsável pela quantidade de registros por página.
|
|
43
|
+
*/
|
|
44
|
+
getPageSizeParamName() {
|
|
45
|
+
return 'pageSize';
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Retorna um valor `boolean`, de acordo com a propriedade `hasNext` que é responsável por informar se há uma nova
|
|
49
|
+
* página de registros disponível no guia de [API do PO UI](https://po-ui.io/guides/api).
|
|
50
|
+
*
|
|
51
|
+
* @returns {boolean} Informa se tem próxima página de registros.
|
|
52
|
+
*/
|
|
53
|
+
hasNext() {
|
|
54
|
+
return this.data.hasNext;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tZGF0YS1tZXNzYWdlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3luYy9zcmMvbGliL21vZGVscy9wby1kYXRhLW1lc3NhZ2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLE9BQU8sYUFBYyxTQUFRLGVBQWU7SUFDaEQ7Ozs7O09BS0c7SUFDSCxnQkFBZ0I7UUFDZCxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxpQkFBaUI7UUFDZixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxnQkFBZ0I7UUFDZCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxvQkFBb0I7UUFDbEIsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDM0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9EYXRhVHJhbnNmb3JtIH0gZnJvbSAnLi9wby1kYXRhLXRyYW5zZm9ybS5tb2RlbCc7XG5cbi8qKlxuICogQGRvY3NQcml2YXRlXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogQ2xhc3NlIHJlc3BvbnPDoXZlbCBwb3IgaW1wbGVtZW50YXIgYSBjbGFzc2UgYFBvRGF0YVRyYW5zZm9ybWAgY29tIG9zIGNhbXBvcyByZWZlcmVudGVzIGFvIHBhZHLDo28gZGVcbiAqIFtBUEkgZG8gUE8gVUldKGh0dHBzOi8vcG8tdWkuaW8vZ3VpZGVzL2FwaSkuXG4gKi9cbmV4cG9ydCBjbGFzcyBQb0RhdGFNZXNzYWdlIGV4dGVuZHMgUG9EYXRhVHJhbnNmb3JtIHtcbiAgLyoqXG4gICAqIFJldG9ybmEgYSBwcm9wcmllZGFkZSBgcG9fc3luY19kYXRlYCwgcmVzcG9uc8OhdmVsIHBvciBpbmZvcm1hciBhIGRhdGEgZGEgw7psdGltYSBzaW5jcm9uaXphw6fDo28gbm8gZ3VpYSBkZVxuICAgKiBbQVBJIGRvIFBPIFVJXShodHRwczovL3BvLXVpLmlvL2d1aWRlcy9hcGkpLlxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBOb21lIGRvIGNhbXBvIHF1ZSBjb250w6ltIGEgZGF0YSBkYSDDumx0aW1hIHNpbmNyb25pemHDp8Ojby5cbiAgICovXG4gIGdldERhdGVGaWVsZE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ3BvX3N5bmNfZGF0ZSc7XG4gIH1cblxuICAvKipcbiAgICogUmV0b3JuYSBhIHByb3ByaWVkYWRlIGBpdGVtc2AsIHJlc3BvbnPDoXZlbCBwb3IgaW5mb3JtYXIgYSBsaXN0YSBkZSByZWdpc3Ryb3MgdmluZG9zIGRhIEFQSSBubyBndWlhIGRlXG4gICAqIFtBUEkgZG8gUE8gVUldKGh0dHBzOi8vcG8tdWkuaW8vZ3VpZGVzL2FwaSkuXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IE5vbWUgZGEgcHJvcHJpZWRhZGUgcXVlIGNvbnTDqW0gYSBsaXN0YSBkZSByZWdpc3Ryb3MuXG4gICAqL1xuICBnZXRJdGVtc0ZpZWxkTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnaXRlbXMnO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldG9ybmEgYSBwcm9wcmllZGFkZSBgcGFnZWAsIHJlc3BvbnPDoXZlbCBwb3IgaW5mb3JtYXIgbyBuw7ptZXJvIGRhIHDDoWdpbmEgZGUgcmVnaXN0cm9zIHF1ZSBhIEFQSSByZXRvcm5hIG5vIGd1aWEgZGVcbiAgICogW0FQSSBkbyBQTyBVSV0oaHR0cHM6Ly9wby11aS5pby9ndWlkZXMvYXBpKS5cbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZ30gTm9tZSBkYSBwcm9wcmllZGFkZSByZXNwb25zw6F2ZWwgcG9yIGluZm9ybWFyIG8gbsO6bWVybyBkYSBww6FnaW5hIGRlIHJlZ2lzdHJvcy5cbiAgICovXG4gIGdldFBhZ2VQYXJhbU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ3BhZ2UnO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldG9ybmEgYSBwcm9wcmllZGFkZSBgcGFnZVNpemVgLCByZXNwb25zw6F2ZWwgcGVsYSBxdWFudGlkYWRlIGRlIHJlZ2lzdHJvcyBxdWUgc2Vyw6NvIGV4aWJpZG9zIHBvciBww6FnaW5hIG5vIGd1aWEgZGVcbiAgICogW0FQSSBkbyBQTyBVSV0oaHR0cHM6Ly9wby11aS5pby9ndWlkZXMvYXBpKS5cbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZ30gTm9tZSBkbyBwYXLDom1ldHJvIHJlc3BvbnPDoXZlbCBwZWxhIHF1YW50aWRhZGUgZGUgcmVnaXN0cm9zIHBvciBww6FnaW5hLlxuICAgKi9cbiAgZ2V0UGFnZVNpemVQYXJhbU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ3BhZ2VTaXplJztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRvcm5hIHVtIHZhbG9yIGBib29sZWFuYCwgZGUgYWNvcmRvIGNvbSBhIHByb3ByaWVkYWRlIGBoYXNOZXh0YCBxdWUgw6kgcmVzcG9uc8OhdmVsIHBvciBpbmZvcm1hciBzZSBow6EgdW1hIG5vdmFcbiAgICogcMOhZ2luYSBkZSByZWdpc3Ryb3MgZGlzcG9uw612ZWwgbm8gZ3VpYSBkZSBbQVBJIGRvIFBPIFVJXShodHRwczovL3BvLXVpLmlvL2d1aWRlcy9hcGkpLlxuICAgKlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gSW5mb3JtYSBzZSB0ZW0gcHLDs3hpbWEgcMOhZ2luYSBkZSByZWdpc3Ryb3MuXG4gICAqL1xuICBoYXNOZXh0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRhdGEuaGFzTmV4dDtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description
|
|
3
|
+
*
|
|
4
|
+
* Classe responsável por adaptar dados de APIs que não seguem
|
|
5
|
+
* o padrão de [API do PO UI](https://po-ui.io/guides/api).
|
|
6
|
+
*
|
|
7
|
+
* Essa classe deve ser estendida por uma classe que implemente cada um de seus métodos, adaptando os parâmetros de
|
|
8
|
+
* acordo com a API do *backend* existente que se deseja comunicar.
|
|
9
|
+
*/
|
|
10
|
+
export class PoDataTransform {
|
|
11
|
+
/**
|
|
12
|
+
* @docsPrivate
|
|
13
|
+
*
|
|
14
|
+
* Método responsável por receber e armazenar os dados retornados pela API para manipulação na classe `PoDataTransform`.
|
|
15
|
+
*
|
|
16
|
+
* @param {any} data Dados retornados pela API.
|
|
17
|
+
*/
|
|
18
|
+
transform(data) {
|
|
19
|
+
this.data = data;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tZGF0YS10cmFuc2Zvcm0ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zeW5jL3NyYy9saWIvbW9kZWxzL3BvLWRhdGEtdHJhbnNmb3JtLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsTUFBTSxPQUFnQixlQUFlO0lBR25DOzs7Ozs7T0FNRztJQUNILFNBQVMsQ0FBQyxJQUFTO1FBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7Q0FzQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIENsYXNzZSByZXNwb25zw6F2ZWwgcG9yIGFkYXB0YXIgZGFkb3MgZGUgQVBJcyBxdWUgbsOjbyBzZWd1ZW1cbiAqIG8gcGFkcsOjbyBkZSBbQVBJIGRvIFBPIFVJXShodHRwczovL3BvLXVpLmlvL2d1aWRlcy9hcGkpLlxuICpcbiAqIEVzc2EgY2xhc3NlIGRldmUgc2VyIGVzdGVuZGlkYSBwb3IgdW1hIGNsYXNzZSBxdWUgaW1wbGVtZW50ZSBjYWRhIHVtIGRlIHNldXMgbcOpdG9kb3MsIGFkYXB0YW5kbyBvcyBwYXLDom1ldHJvcyBkZVxuICogYWNvcmRvIGNvbSBhIEFQSSBkbyAqYmFja2VuZCogZXhpc3RlbnRlIHF1ZSBzZSBkZXNlamEgY29tdW5pY2FyLlxuICovXG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQb0RhdGFUcmFuc2Zvcm0ge1xuICBwcm90ZWN0ZWQgZGF0YTogYW55O1xuXG4gIC8qKlxuICAgKiBAZG9jc1ByaXZhdGVcbiAgICpcbiAgICogTcOpdG9kbyByZXNwb25zw6F2ZWwgcG9yIHJlY2ViZXIgZSBhcm1hemVuYXIgb3MgZGFkb3MgcmV0b3JuYWRvcyBwZWxhIEFQSSBwYXJhIG1hbmlwdWxhw6fDo28gbmEgY2xhc3NlIGBQb0RhdGFUcmFuc2Zvcm1gLlxuICAgKlxuICAgKiBAcGFyYW0ge2FueX0gZGF0YSBEYWRvcyByZXRvcm5hZG9zIHBlbGEgQVBJLlxuICAgKi9cbiAgdHJhbnNmb3JtKGRhdGE6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuZGF0YSA9IGRhdGE7XG4gIH1cblxuICAvKipcbiAgICogUmV0b3JuYSBvIG5vbWUgZGEgcHJvcHJpZWRhZGUgcmVzcG9uc8OhdmVsIHBvciBpbmZvcm1hciBhIGRhdGEgZGEgw7psdGltYSBzaW5jcm9uaXphw6fDo28uXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IE5vbWUgZG8gY2FtcG8gcXVlIGNvbnTDqW0gYSBkYXRhIGRhIMO6bHRpbWEgc2luY3Jvbml6YcOnw6NvLlxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0RGF0ZUZpZWxkTmFtZSgpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJldG9ybmEgbyBub21lIGRhIHByb3ByaWVkYWRlIHJlc3BvbnPDoXZlbCBwb3IgaW5mb3JtYXIgYSBsaXN0YSBkZSByZWdpc3Ryb3MgdmluZG9zIGRhIEFQSS5cbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZ30gTm9tZSBkYSBwcm9wcmllZGFkZSBxdWUgY29udMOpbSBhIGxpc3RhIGRlIHJlZ2lzdHJvcy5cbiAgICovXG4gIGFic3RyYWN0IGdldEl0ZW1zRmllbGROYW1lKCk6IHN0cmluZztcblxuICAvKipcbiAgICogUmV0b3JuYSBvIG5vbWUgZGEgcHJvcHJpZWRhZGUgcmVzcG9uc8OhdmVsIHBvciBpbmZvcm1hciBvIG7Dum1lcm8gZGEgcMOhZ2luYSBkZSByZWdpc3Ryb3MgcXVlIGEgQVBJXG4gICAqIHJlY2ViZSBjb21vIHBhcsOibWV0cm8uXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IE5vbWUgZGEgcHJvcHJpZWRhZGUgcmVzcG9uc8OhdmVsIHBvciBpbmZvcm1hciBvIG7Dum1lcm8gZGEgcMOhZ2luYSBkZSByZWdpc3Ryb3MuXG4gICAqL1xuICBhYnN0cmFjdCBnZXRQYWdlUGFyYW1OYW1lKCk6IHN0cmluZztcblxuICAvKipcbiAgICogUmV0b3JuYSBvIG5vbWUgZGEgcHJvcHJpZWRhZGUgcmVzcG9uc8OhdmVsIHBlbGEgcXVhbnRpZGFkZSBkZSByZWdpc3Ryb3MgcXVlIHNlcsOjbyBleGliaWRvcyBwb3IgcMOhZ2luYVxuICAgKiBxdWUgYSBBUEkgcmVjZWJlIGNvbW8gcGFyw6JtZXRyby5cbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZ30gTm9tZSBkYSBwcm9wcmllZGFkZSByZXNwb25zw6F2ZWwgcGVsYSBxdWFudGlkYWRlIGRlIHJlZ2lzdHJvcyBwb3IgcMOhZ2luYS5cbiAgICovXG4gIGFic3RyYWN0IGdldFBhZ2VTaXplUGFyYW1OYW1lKCk6IHN0cmluZztcblxuICAvKipcbiAgICogUmV0b3JuYSB1bSB2YWxvciBgYm9vbGVhbmAsIHJlc3BvbnPDoXZlbCBwb3IgaW5mb3JtYXIgc2UgaMOhIHVtYSBub3ZhIHDDoWdpbmEgZGUgcmVnaXN0cm9zIGRpc3BvbsOtdmVsLlxuICAgKlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gSW5mb3JtYSBzZSBleGlzdGUgcHLDs3hpbWEgcMOhZ2luYSBkZSByZWdpc3Ryb3MuXG4gICAqL1xuICBhYnN0cmFjdCBoYXNOZXh0KCk6IGJvb2xlYW47XG59XG4iXX0=
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
import { validateParameter } from '../../utils/utils';
|
|
2
|
+
import { PoEventSourcingOperation } from '../../services/po-event-sourcing';
|
|
3
|
+
import { PoQueryBuilder } from './../po-query-builder/po-query-builder.model';
|
|
4
|
+
import { PoSchemaUtil } from '../../services/po-schema';
|
|
5
|
+
/**
|
|
6
|
+
* @description
|
|
7
|
+
*
|
|
8
|
+
* Uma instância `PoEntity` representa um *schema* e ela contém métodos que possibilitam manipular seus registros,
|
|
9
|
+
* como por exemplo: buscar, criar e remover.
|
|
10
|
+
*
|
|
11
|
+
* Esta instância pode ser obtida a partir do retorno do método `PoSyncService.getModel('schema name')`.
|
|
12
|
+
*/
|
|
13
|
+
export class PoEntity {
|
|
14
|
+
constructor(eventSourcing, schema, poSchemaService) {
|
|
15
|
+
this.eventSourcing = eventSourcing;
|
|
16
|
+
this.schema = schema;
|
|
17
|
+
this.poSchemaService = poSchemaService;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Busca os registros do *schema*, podendo filtrar o resultado a partir do filtro passado e retornando apenas
|
|
21
|
+
* os campos definidos.
|
|
22
|
+
*
|
|
23
|
+
* Para que esta busca seja concluída é necessário utilizar o método `PoQueryBuilder.exec()`.
|
|
24
|
+
* Veja mais em: [PoQueryBuilder](/documentation/po-query-builder).
|
|
25
|
+
*
|
|
26
|
+
* @param {object} filter Objeto que contém os campos e valores a serem filtrados no *schema*.
|
|
27
|
+
* @param {string} fields Campos que serão retornados nos registros. Este campos devem estar dentro de
|
|
28
|
+
* uma *string* separados por espaço podendo usar o caractere `-` para excluir campos.
|
|
29
|
+
* Por exemplo, a definição abaixo:
|
|
30
|
+
*
|
|
31
|
+
* ```
|
|
32
|
+
* PoQueryBuilder.select('name age address');
|
|
33
|
+
* ```
|
|
34
|
+
* Irá retornar apenas os campos `name`, `age` e `address`. E para não mostrar um campo ou mais basta fazer:
|
|
35
|
+
*
|
|
36
|
+
* ```
|
|
37
|
+
* PoQueryBuilder.select('-name -age');
|
|
38
|
+
* ```
|
|
39
|
+
* @returns {PoQueryBuilder} Objeto que possibilita encadear um método do `PoQueryBuilder`.
|
|
40
|
+
*/
|
|
41
|
+
find(filter, fields) {
|
|
42
|
+
const query = new PoQueryBuilder(this.poSchemaService, this.schema);
|
|
43
|
+
if (filter) {
|
|
44
|
+
query.filter(filter);
|
|
45
|
+
}
|
|
46
|
+
if (fields) {
|
|
47
|
+
query.select(fields);
|
|
48
|
+
}
|
|
49
|
+
return query;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Busca um registro pelo seu *id*.
|
|
53
|
+
*
|
|
54
|
+
* Para que esta busca seja concluída é necessário utilizar o método `PoQueryBuilder.exec()`.
|
|
55
|
+
* Veja mais em: [PoQueryBuilder](/documentation/po-query-builder).
|
|
56
|
+
*
|
|
57
|
+
* @param {any} id Identificador do registro.
|
|
58
|
+
* @param {string} fields Campos que serão retornados nos registros. Este campos devem estar dentro de
|
|
59
|
+
* uma *string* separados por espaço podendo usar o caractere `-` para excluir campos.
|
|
60
|
+
* Por exemplo, a definição abaixo:
|
|
61
|
+
*
|
|
62
|
+
* ```
|
|
63
|
+
* PoQueryBuilder.select('name age address');
|
|
64
|
+
* ```
|
|
65
|
+
* Irá retornar apenas os campos `name`, `age` e `address`. E para não mostrar um campo ou mais basta fazer:
|
|
66
|
+
*
|
|
67
|
+
* ```
|
|
68
|
+
* PoQueryBuilder.select('-name -age');
|
|
69
|
+
* ```
|
|
70
|
+
* @returns {PoQueryBuilder} Objeto que possibilita encadear um método do `PoQueryBuilder`.
|
|
71
|
+
*/
|
|
72
|
+
findById(id, fields) {
|
|
73
|
+
return this.findOne({ [this.schema.idField]: id }, fields);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Semelhante ao método `PoEntity.find()`, porém retorna apenas o primeiro registro encontrado na busca.
|
|
77
|
+
*
|
|
78
|
+
* Para que esta busca seja concluída é necessário utilizar o método `PoQueryBuilder.exec()`.
|
|
79
|
+
* Veja mais em: [PoQueryBuilder](/documentation/po-query-builder).
|
|
80
|
+
*
|
|
81
|
+
* @param {any} filter Objeto que contém os campos e valores a serem filtrados no *schema*.
|
|
82
|
+
* @param {string} fields Campos que serão retornados nos registros. Este campos devem estar dentro de
|
|
83
|
+
* uma *string* separados por espaço podendo usar o caractere `-` para excluir campos.
|
|
84
|
+
* Por exemplo, a definição abaixo:
|
|
85
|
+
*
|
|
86
|
+
* ```
|
|
87
|
+
* PoQueryBuilder.select('name age address');
|
|
88
|
+
* ```
|
|
89
|
+
* Irá retornar apenas os campos `name`, `age` e `address`. E para não mostrar um campo ou mais basta fazer:
|
|
90
|
+
*
|
|
91
|
+
* ```
|
|
92
|
+
* PoQueryBuilder.select('-name -age');
|
|
93
|
+
* ```
|
|
94
|
+
* @returns {PoQueryBuilder} Objeto que possibilita encadear um método do `PoQueryBuilder`.
|
|
95
|
+
*/
|
|
96
|
+
findOne(filter, fields) {
|
|
97
|
+
const query = this.find(filter, fields);
|
|
98
|
+
query.limit(1);
|
|
99
|
+
return query;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Remove um registro.
|
|
103
|
+
*
|
|
104
|
+
* @param {object} record Registro que será removido.
|
|
105
|
+
* @param {string} customRequestId Identificador customizado do comando.
|
|
106
|
+
* @returns {Promise} Promessa que é concluída após o registro ser removido.
|
|
107
|
+
*/
|
|
108
|
+
async remove(record, customRequestId) {
|
|
109
|
+
validateParameter({ record });
|
|
110
|
+
const remove = async () => {
|
|
111
|
+
const idField = record[this.schema.idField] ? this.schema.idField : PoSchemaUtil.syncInternalIdFieldName;
|
|
112
|
+
const serverRecord = PoSchemaUtil.separateSchemaFields(this.schema, record)['serverRecord'];
|
|
113
|
+
await this.poSchemaService.remove(this.schema.name, record[idField]);
|
|
114
|
+
await this.eventSourcing.remove(this.schema.name, serverRecord, customRequestId);
|
|
115
|
+
};
|
|
116
|
+
return this.poSchemaService.limitedCallWrap(remove);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Altera ou inclui um registro.
|
|
120
|
+
*
|
|
121
|
+
* > O registro será alterado se ele possuir um *id*, caso contrário um novo registro será criado.
|
|
122
|
+
*
|
|
123
|
+
* @param {object} record Registro que será persistido.
|
|
124
|
+
* @param {string} customRequestId Identificador customizado do comando.
|
|
125
|
+
* @returns {Promise} Promessa que é concluída após o registro ser alterado ou incluído.
|
|
126
|
+
*/
|
|
127
|
+
async save(record, customRequestId) {
|
|
128
|
+
validateParameter({ record });
|
|
129
|
+
return this.poSchemaService.limitedCallWrap(this.selectSaveType.bind(this, record, true, customRequestId));
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Salva uma lista de registros em lote.
|
|
133
|
+
*
|
|
134
|
+
* > Para cada registro da lista, será inserido um novo registro se o mesmo não tiver *id*, caso contrário
|
|
135
|
+
* será contado como uma atualização de um registro existente.
|
|
136
|
+
*
|
|
137
|
+
* @param {Array<object>} records Lista de registros que serão persistidos.
|
|
138
|
+
* @param {Array<string> | string} customRequestIds Identificador customizado do comando.
|
|
139
|
+
*
|
|
140
|
+
* Ao passar uma lista de identificadores, cada índice da lista de identificadores deverá
|
|
141
|
+
* corresponder ao índice do registro na lista de registros.
|
|
142
|
+
* @returns {Promise<any>} Promessa que é concluída após os registros serem alterados ou incluídos.
|
|
143
|
+
*/
|
|
144
|
+
async saveAll(records, customRequestIds) {
|
|
145
|
+
validateParameter({ records });
|
|
146
|
+
const saveAll = async () => {
|
|
147
|
+
const batchEvents = [];
|
|
148
|
+
for (let index = 0; index < records.length; index++) {
|
|
149
|
+
const record = records[index];
|
|
150
|
+
const sendToEventSourcing = false;
|
|
151
|
+
const isNonLocalRecordChanged = await this.isNonLocalRecordChanged(record);
|
|
152
|
+
const updatedRecord = await this.selectSaveType(record, sendToEventSourcing);
|
|
153
|
+
if (isNonLocalRecordChanged) {
|
|
154
|
+
const customRequestId = customRequestIds instanceof Array ? customRequestIds[index] : customRequestIds;
|
|
155
|
+
const eventOperation = this.createEventOperation(record, updatedRecord, customRequestId);
|
|
156
|
+
batchEvents.push(eventOperation);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
await this.eventSourcing.createBatchEvents(this.schema.name, batchEvents);
|
|
160
|
+
};
|
|
161
|
+
return this.poSchemaService.limitedCallWrap(saveAll);
|
|
162
|
+
}
|
|
163
|
+
async create(newRecord, sendToEventSourcing, customRequestId) {
|
|
164
|
+
const time = new Date().getTime();
|
|
165
|
+
const syncProperties = {
|
|
166
|
+
[PoSchemaUtil.syncInternalIdFieldName]: time,
|
|
167
|
+
SyncInsertedDateTime: time,
|
|
168
|
+
SyncUpdatedDateTime: null,
|
|
169
|
+
SyncExclusionDateTime: null,
|
|
170
|
+
SyncDeleted: false,
|
|
171
|
+
SyncStatus: 0
|
|
172
|
+
};
|
|
173
|
+
const recordWithSyncProperties = { ...newRecord, ...syncProperties };
|
|
174
|
+
const recordedData = await this.poSchemaService.create(this.schema, recordWithSyncProperties);
|
|
175
|
+
if (sendToEventSourcing) {
|
|
176
|
+
await this.eventSourcing.create(this.schema.name, recordWithSyncProperties, customRequestId);
|
|
177
|
+
}
|
|
178
|
+
return recordedData;
|
|
179
|
+
}
|
|
180
|
+
createEventOperation(record, updatedRecord, customRequestId) {
|
|
181
|
+
const operation = PoSchemaUtil.getRecordId(record, this.schema)
|
|
182
|
+
? PoEventSourcingOperation.Update
|
|
183
|
+
: PoEventSourcingOperation.Insert;
|
|
184
|
+
const serverRecord = PoSchemaUtil.separateSchemaFields(this.schema, updatedRecord)['serverRecord'];
|
|
185
|
+
return {
|
|
186
|
+
record: serverRecord,
|
|
187
|
+
customRequestId: customRequestId,
|
|
188
|
+
operation: operation
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
async isNonLocalRecordChanged(updatedRecord) {
|
|
192
|
+
const nonLocalFieldNames = PoSchemaUtil.getNonLocalFieldNames(this.schema);
|
|
193
|
+
const record = await this.poSchemaService.get(this.schema.name, updatedRecord[this.schema.idField]);
|
|
194
|
+
return !PoSchemaUtil.isModelsEqual(nonLocalFieldNames, record, updatedRecord);
|
|
195
|
+
}
|
|
196
|
+
async selectSaveType(record, sendToEventSourcing, customRequestId) {
|
|
197
|
+
const hasId = PoSchemaUtil.getRecordId(record, this.schema);
|
|
198
|
+
return hasId
|
|
199
|
+
? await this.update(record, sendToEventSourcing, customRequestId)
|
|
200
|
+
: await this.create(record, sendToEventSourcing, customRequestId);
|
|
201
|
+
}
|
|
202
|
+
async update(updatedRecord, sendToEventSourcing, customRequestId) {
|
|
203
|
+
updatedRecord.SyncUpdatedDateTime = new Date().getTime();
|
|
204
|
+
updatedRecord.SyncStatus = 0;
|
|
205
|
+
const isNonLocalRecordChanged = await this.isNonLocalRecordChanged(updatedRecord);
|
|
206
|
+
const recordedData = await this.poSchemaService.update(this.schema, updatedRecord);
|
|
207
|
+
if (isNonLocalRecordChanged && sendToEventSourcing) {
|
|
208
|
+
const serverRecord = PoSchemaUtil.separateSchemaFields(this.schema, updatedRecord)['serverRecord'];
|
|
209
|
+
await this.eventSourcing.update(this.schema.name, serverRecord, customRequestId);
|
|
210
|
+
}
|
|
211
|
+
return recordedData;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tZW50aXR5Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3luYy9zcmMvbGliL21vZGVscy9wby1lbnRpdHkvcG8tZW50aXR5Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXRELE9BQU8sRUFDTCx3QkFBd0IsRUFHekIsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDOUUsT0FBTyxFQUFtQixZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUd6RTs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxPQUFPLFFBQVE7SUFDbkIsWUFDVSxhQUFxQyxFQUNyQyxNQUFvQixFQUNwQixlQUFnQztRQUZoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBd0I7UUFDckMsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUNwQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7SUFDdkMsQ0FBQztJQUVKOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FxQkc7SUFDSCxJQUFJLENBQUMsTUFBZSxFQUFFLE1BQWU7UUFDbkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFcEUsSUFBSSxNQUFNLEVBQUU7WUFDVixLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3RCO1FBRUQsSUFBSSxNQUFNLEVBQUU7WUFDVixLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3RCO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bb0JHO0lBQ0gsUUFBUSxDQUFDLEVBQU8sRUFBRSxNQUFlO1FBQy9CLE9BQU8sSUFBSSxD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QUFDO1lBQ2pFLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLG1CQUFtQixFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFTyxLQUFLLENBQUMsTUFBTSxDQUFDLGFBQWtCLEVBQUUsbUJBQTRCLEVBQUUsZUFBd0I7UUFDN0YsYUFBYSxDQUFDLG1CQUFtQixHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDekQsYUFBYSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFFN0IsTUFBTSx1QkFBdUIsR0FBRyxNQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNsRixNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFbkYsSUFBSSx1QkFBdUIsSUFBSSxtQkFBbUIsRUFBRTtZQUNsRCxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNuRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxlQUFlLENBQUMsQ0FBQztTQUNsRjtRQUVELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHZhbGlkYXRlUGFyYW1ldGVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbHMnO1xuXG5pbXBvcnQge1xuICBQb0V2ZW50U291cmNpbmdPcGVyYXRpb24sXG4gIFBvRXZlbnRTb3VyY2luZ1NlcnZpY2UsXG4gIFBvRXZlbnRTb3VyY2luZ1N1bW1hcnlJdGVtXG59IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BvLWV2ZW50LXNvdXJjaW5nJztcbmltcG9ydCB7IFBvUXVlcnlCdWlsZGVyIH0gZnJvbSAnLi8uLi9wby1xdWVyeS1idWlsZGVyL3BvLXF1ZXJ5LWJ1aWxkZXIubW9kZWwnO1xuaW1wb3J0IHsgUG9TY2hlbWFTZXJ2aWNlLCBQb1NjaGVtYVV0aWwgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wby1zY2hlbWEnO1xuaW1wb3J0IHsgUG9TeW5jU2NoZW1hIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcG8tc3luYy9pbnRlcmZhY2VzL3BvLXN5bmMtc2NoZW1hLmludGVyZmFjZSc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogVW1hIGluc3TDom5jaWEgYFBvRW50aXR5YCByZXByZXNlbnRhIHVtICpzY2hlbWEqIGUgZWxhIGNvbnTDqW0gbcOpdG9kb3MgcXVlIHBvc3NpYmlsaXRhbSBtYW5pcHVsYXIgc2V1cyByZWdpc3Ryb3MsXG4gKiBjb21vIHBvciBleGVtcGxvOiBidXNjYXIsIGNyaWFyIGUgcmVtb3Zlci5cbiAqXG4gKiBFc3RhIGluc3TDom5jaWEgcG9kZSBzZXIgb2J0aWRhIGEgcGFydGlyIGRvIHJldG9ybm8gZG8gbcOpdG9kbyBgUG9TeW5jU2VydmljZS5nZXRNb2RlbCgnc2NoZW1hIG5hbWUnKWAuXG4gKi9cbmV4cG9ydCBjbGFzcyBQb0VudGl0eSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZXZlbnRTb3VyY2luZzogUG9FdmVudFNvdXJjaW5nU2VydmljZSxcbiAgICBwcml2YXRlIHNjaGVtYTogUG9TeW5jU2NoZW1hLFxuICAgIHByaXZhdGUgcG9TY2hlbWFTZXJ2aWNlOiBQb1NjaGVtYVNlcnZpY2VcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBCdXNjYSBvcyByZWdpc3Ryb3MgZG8gKnNjaGVtYSosIHBvZGVuZG8gZmlsdHJhciBvIHJlc3VsdGFkbyBhIHBhcnRpciBkbyBmaWx0cm8gcGFzc2FkbyBlIHJldG9ybmFuZG8gYXBlbmFzXG4gICAqIG9zIGNhbXBvcyBkZWZpbmlkb3MuXG4gICAqXG4gICAqIFBhcmEgcXVlIGVzdGEgYnVzY2Egc2VqYSBjb25jbHXDrWRhIMOpIG5lY2Vzc8OhcmlvIHV0aWxpemFyIG8gbcOpdG9kbyBgUG9RdWVyeUJ1aWxkZXIuZXhlYygpYC5cbiAgICogVmVqYSBtYWlzIGVtOiBbUG9RdWVyeUJ1aWxkZXJdKC9kb2N1bWVudGF0aW9uL3BvLXF1ZXJ5LWJ1aWxkZXIpLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gZmlsdGVyIE9iamV0byBxdWUgY29udMOpbSBvcyBjYW1wb3MgZSB2YWxvcmVzIGEgc2VyZW0gZmlsdHJhZG9zIG5vICpzY2hlbWEqLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmllbGRzIENhbXBvcyBxdWUgc2Vyw6NvIHJldG9ybmFkb3Mgbm9zIHJlZ2lzdHJvcy4gRXN0ZSBjYW1wb3MgZGV2ZW0gZXN0YXIgZGVudHJvIGRlXG4gICAqIHVtYSAqc3RyaW5nKiBzZXBhcmFkb3MgcG9yIGVzcGHDp28gcG9kZW5kbyB1c2FyIG8gY2FyYWN0ZXJlIGAtYCBwYXJhIGV4Y2x1aXIgY2FtcG9zLlxuICAgKiBQb3IgZXhlbXBsbywgYSBkZWZpbmnDp8OjbyBhYmFpeG86XG4gICAqXG4gICAqIGBgYFxuICAgKiBQb1F1ZXJ5QnVpbGRlci5zZWxlY3QoJ25hbWUgYWdlIGFkZHJlc3MnKTtcbiAgICogYGBgXG4gICAqIElyw6EgcmV0b3JuYXIgYXBlbmFzIG9zIGNhbXBvcyBgbmFtZWAsIGBhZ2VgIGUgYGFkZHJlc3NgLiBFIHBhcmEgbsOjbyBtb3N0cmFyIHVtIGNhbXBvIG91IG1haXMgYmFzdGEgZmF6ZXI6XG4gICAqXG4gICAqIGBgYFxuICAgKiBQb1F1ZXJ5QnVpbGRlci5zZWxlY3QoJy1uYW1lIC1hZ2UnKTtcbiAgICogYGBgXG4gICAqIEByZXR1cm5zIHtQb1F1ZXJ5QnVpbGRlcn0gT2JqZXRvIHF1ZSBwb3NzaWJpbGl0YSBlbmNhZGVhciB1bSBtw6l0b2RvIGRvIGBQb1F1ZXJ5QnVpbGRlcmAuXG4gICAqL1xuICBmaW5kKGZpbHRlcj86IG9iamVjdCwgZmllbGRzPzogc3RyaW5nKTogUG9RdWVyeUJ1aWxkZXIge1xuICAgIGNvbnN0IHF1ZXJ5ID0gbmV3IFBvUXVlcnlCdWlsZGVyKHRoaXMucG9TY2hlbWFTZXJ2aWNlLCB0aGlzLnNjaGVtYSk7XG5cbiAgICBpZiAoZmlsdGVyKSB7XG4gICAgICBxdWVyeS5maWx0ZXIoZmlsdGVyKTtcbiAgICB9XG5cbiAgICBpZiAoZmllbGRzKSB7XG4gICAgICBxdWVyeS5zZWxlY3QoZmllbGRzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcXVlcnk7XG4gIH1cblxuICAvKipcbiAgICogQnVzY2EgdW0gcmVnaXN0cm8gcGVsbyBzZXUgKmlkKi5cbiAgICpcbiAgICogUGFyYSBxdWUgZXN0YSBidXNjYSBzZWphIGNvbmNsdcOtZGEgw6kgbmVjZXNzw6FyaW8gdXRpbGl6YXIgbyBtw6l0b2RvIGBQb1F1ZXJ5QnVpbGRlci5leGVjKClgLlxuICAgKiBWZWphIG1haXMgZW06IFtQb1F1ZXJ5QnVpbGRlcl0oL2RvY3VtZW50YXRpb24vcG8tcXVlcnktYnVpbGRlcikuXG4gICAqXG4gICAqIEBwYXJhbSB7YW55fSBpZCBJZGVudGlmaWNhZG9yIGRvIHJlZ2lzdHJvLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmllbGRzIENhbXBvcyBxdWUgc2Vyw6NvIHJldG9ybmFkb3Mgbm9zIHJlZ2lzdHJvcy4gRXN0ZSBjYW1wb3MgZGV2ZW0gZXN0YXIgZGVudHJvIGRlXG4gICAqIHVtYSAqc3RyaW5nKiBzZXBhcmFkb3MgcG9yIGVzcGHDp28gcG9kZW5kbyB1c2FyIG8gY2FyYWN0ZXJlIGAtYCBwYXJhIGV4Y2x1aXIgY2FtcG9zLlxuICAgKiBQb3IgZXhlbXBsbywgYSBkZWZpbmnDp8OjbyBhYmFpeG86XG4gICAqXG4gICAqIGBgYFxuICAgKiBQb1F1ZXJ5QnVpbGRlci5zZWxlY3QoJ25hbWUgYWdlIGFkZHJlc3MnKTtcbiAgICogYGBgXG4gICAqIElyw6EgcmV0b3JuYXIgYXBlbmFzIG9zIGNhbXBvcyBgbmFtZWAsIGBhZ2VgIGUgYGFkZHJlc3NgLiBFIHBhcmEgbsOjbyBtb3N0cmFyIHVtIGNhbXBvIG91IG1haXMgYmFzdGEgZmF6ZXI6XG4gICAqXG4gICAqIGBgYFxuICAgKiBQb1F1ZXJ5QnVpbGRlci5zZWxlY3QoJy1uYW1lIC1hZ2UnKTtcbiAgICogYGBgXG4gICAqIEByZXR1cm5zIHtQb1F1ZXJ5QnVpbGRlcn0gT2JqZXRvIHF1ZSBwb3NzaWJpbGl0YSBlbmNhZGVhciB1bSBtw6l0b2RvIGRvIGBQb1F1ZXJ5QnVpbGRlcmAuXG4gICAqL1xuICBmaW5kQnlJZChpZDogYW55LCBmaWVsZHM/OiBzdHJpbmcpOiBQb1F1ZXJ5QnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuZmluZE9uZSh7IFt0aGlzLnNjaGVtYS5pZEZpZWxkXTogaWQgfSwgZmllbGRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW1lbGhhbnRlIGFvIG3DqXRvZG8gYFBvRW50aXR5LmZpbmQoKWAsIHBvcsOpbSByZXRvcm5hIGFwZW5hcyBvIHByaW1laXJvIHJlZ2lzdHJvIGVuY29udHJhZG8gbmEgYnVzY2EuXG4gICAqXG4gICAqIFBhcmEgcXVlIGVzdGEgYnVzY2Egc2VqYSBjb25jbHXDrWRhIMOpIG5lY2Vzc8OhcmlvIHV0aWxpemFyIG8gbcOpdG9kbyBgUG9RdWVyeUJ1aWxkZXIuZXhlYygpYC5cbiAgICogVmVqYSBtYWlzIGVtOiBbUG9RdWVyeUJ1aWxkZXJdKC9kb2N1bWVudGF0aW9uL3BvLXF1ZXJ5LWJ1aWxkZXIpLlxuICAgKlxuICAgKiBAcGFyYW0ge2FueX0gZmlsdGVyIE9iamV0byBxdWUgY29udMOpbSBvcyBjYW1wb3MgZSB2YWxvcmVzIGEgc2VyZW0gZmlsdHJhZG9zIG5vICpzY2hlbWEqLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmllbGRzIENhbXBvcyBxdWUgc2Vyw6NvIHJldG9ybmFkb3Mgbm9zIHJlZ2lzdHJvcy4gRXN0ZSBjYW1wb3MgZGV2ZW0gZXN0YXIgZGVudHJvIGRlXG4gICAqIHVtYSAqc3RyaW5nKiBzZXBhcmFkb3MgcG9yIGVzcGHDp28gcG9kZW5kbyB1c2FyIG8gY2FyYWN0ZXJlIGAtYCBwYXJhIGV4Y2x1aXIgY2FtcG9zLlxuICAgKiBQb3IgZXhlbXBsbywgYSBkZWZpbmnDp8OjbyBhYmFpeG86XG4gICAqXG4gICAqIGBgYFxuICAgKiBQb1F1ZXJ5QnVpbGRlci5zZWxlY3QoJ25hbWUgYWdlIGFkZHJlc3MnKTtcbiAgICogYGBgXG4gICAqIElyw6EgcmV0b3JuYXIgYXBlbmFzIG9zIGNhbXBvcyBgbmFtZWAsIGBhZ2VgIGUgYGFkZHJlc3NgLiBFIHBhcmEgbsOjbyBtb3N0cmFyIHVtIGNhbXBvIG91IG1haXMgYmFzdGEgZmF6ZXI6XG4gICAqXG4gICAqIGBgYFxuICAgKiBQb1F1ZXJ5QnVpbGRlci5zZWxlY3QoJy1uYW1lIC1hZ2UnKTtcbiAgICogYGBgXG4gICAqIEByZXR1cm5zIHtQb1F1ZXJ5QnVpbGRlcn0gT2JqZXRvIHF1ZSBwb3NzaWJpbGl0YSBlbmNhZGVhciB1bSBtw6l0b2RvIGRvIGBQb1F1ZXJ5QnVpbGRlcmAuXG4gICAqL1xuICBmaW5kT25lKGZpbHRlcj86IGFueSwgZmllbGRzPzogc3RyaW5nKTogUG9RdWVyeUJ1aWxkZXIge1xuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5maW5kKGZpbHRlciwgZmllbGRzKTtcbiAgICBxdWVyeS5saW1pdCgxKTtcbiAgICByZXR1cm4gcXVlcnk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHVtIHJlZ2lzdHJvLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gcmVjb3JkIFJlZ2lzdHJvIHF1ZSBzZXLDoSByZW1vdmlkby5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGN1c3RvbVJlcXVlc3RJZCBJZGVudGlmaWNhZG9yIGN1c3RvbWl6YWRvIGRvIGNvbWFuZG8uXG4gICAqIEByZXR1cm5zIHtQcm9taXNlfSBQcm9tZXNzYSBxdWUgw6kgY29uY2x1w61kYSBhcMOzcyBvIHJlZ2lzdHJvIHNlciByZW1vdmlkby5cbiAgICovXG4gIGFzeW5jIHJlbW92ZShyZWNvcmQ6IG9iamVjdCwgY3VzdG9tUmVxdWVzdElkPzogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICB2YWxpZGF0ZVBhcmFtZXRlcih7IHJlY29yZCB9KTtcblxuICAgIGNvbnN0IHJlbW92ZSA9IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlkRmllbGQgPSByZWNvcmRbdGhpcy5zY2hlbWEuaWRGaWVsZF0gPyB0aGlzLnNjaGVtYS5pZEZpZWxkIDogUG9TY2hlbWFVdGlsLnN5bmNJbnRlcm5hbElkRmllbGROYW1lO1xuICAgICAgY29uc3Qgc2VydmVyUmVjb3JkID0gUG9TY2hlbWFVdGlsLnNlcGFyYXRlU2NoZW1hRmllbGRzKHRoaXMuc2NoZW1hLCByZWNvcmQpWydzZXJ2ZXJSZWNvcmQnXTtcblxuICAgICAgYXdhaXQgdGhpcy5wb1NjaGVtYVNlcnZpY2UucmVtb3ZlKHRoaXMuc2NoZW1hLm5hbWUsIHJlY29yZFtpZEZpZWxkXSk7XG4gICAgICBhd2FpdCB0aGlzLmV2ZW50U291cmNpbmcucmVtb3ZlKHRoaXMuc2NoZW1hLm5hbWUsIHNlcnZlclJlY29yZCwgY3VzdG9tUmVxdWVzdElkKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMucG9TY2hlbWFTZXJ2aWNlLmxpbWl0ZWRDYWxsV3JhcChyZW1vdmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsdGVyYSBvdSBpbmNsdWkgdW0gcmVnaXN0cm8uXG4gICAqXG4gICAqID4gTyByZWdpc3RybyBzZXLDoSBhbHRlcmFkbyBzZSBlbGUgcG9zc3VpciB1bSAqaWQqLCBjYXNvIGNvbnRyw6FyaW8gdW0gbm92byByZWdpc3RybyBzZXLDoSBjcmlhZG8uXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSByZWNvcmQgUmVnaXN0cm8gcXVlIHNlcsOhIHBlcnNpc3RpZG8uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjdXN0b21SZXF1ZXN0SWQgSWRlbnRpZmljYWRvciBjdXN0b21pemFkbyBkbyBjb21hbmRvLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZX0gUHJvbWVzc2EgcXVlIMOpIGNvbmNsdcOtZGEgYXDDs3MgbyByZWdpc3RybyBzZXIgYWx0ZXJhZG8gb3UgaW5jbHXDrWRvLlxuICAgKi9cbiAgYXN5bmMgc2F2ZShyZWNvcmQ6IG9iamVjdCwgY3VzdG9tUmVxdWVzdElkPzogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICB2YWxpZGF0ZVBhcmFtZXRlcih7IHJlY29yZCB9KTtcblxuICAgIHJldHVybiB0aGlzLnBvU2NoZW1hU2VydmljZS5saW1pdGVkQ2FsbFdyYXAodGhpcy5zZWxlY3RTYXZlVHlwZS5iaW5kKHRoaXMsIHJlY29yZCwgdHJ1ZSwgY3VzdG9tUmVxdWVzdElkKSk7XG4gIH1cblxuICAvKipcbiAgICogU2FsdmEgdW1hIGxpc3RhIGRlIHJlZ2lzdHJvcyBlbSBsb3RlLlxuICAgKlxuICAgKiA+IFBhcmEgY2FkYSByZWdpc3RybyBkYSBsaXN0YSwgc2Vyw6EgaW5zZXJpZG8gdW0gbm92byByZWdpc3RybyBzZSBvIG1lc21vIG7Do28gdGl2ZXIgKmlkKiwgY2FzbyBjb250csOhcmlvXG4gICAqIHNlcsOhIGNvbnRhZG8gY29tbyB1bWEgYXR1YWxpemHDp8OjbyBkZSB1bSByZWdpc3RybyBleGlzdGVudGUuXG4gICAqXG4gICAqIEBwYXJhbSB7QXJyYXk8b2JqZWN0Pn0gcmVjb3JkcyBMaXN0YSBkZSByZWdpc3Ryb3MgcXVlIHNlcsOjbyBwZXJzaXN0aWRvcy5cbiAgICogQHBhcmFtIHtBcnJheTxzdHJpbmc+IHwgc3RyaW5nfSBjdXN0b21SZXF1ZXN0SWRzIElkZW50aWZpY2Fkb3IgY3VzdG9taXphZG8gZG8gY29tYW5kby5cbiAgICpcbiAgICogQW8gcGFzc2FyIHVtYSBsaXN0YSBkZSBpZGVudGlmaWNhZG9yZXMsIGNhZGEgw61uZGljZSBkYSBsaXN0YSBkZSBpZGVudGlmaWNhZG9yZXMgZGV2ZXLDoVxuICAgKiBjb3JyZXNwb25kZXIgYW8gw61uZGljZSBkbyByZWdpc3RybyBuYSBsaXN0YSBkZSByZWdpc3Ryb3MuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGFueT59IFByb21lc3NhIHF1ZSDDqSBjb25jbHXDrWRhIGFww7NzIG9zIHJlZ2lzdHJvcyBzZXJlbSBhbHRlcmFkb3Mgb3UgaW5jbHXDrWRvcy5cbiAgICovXG4gIGFzeW5jIHNhdmVBbGwocmVjb3JkczogQXJyYXk8b2JqZWN0PiwgY3VzdG9tUmVxdWVzdElkcz86IEFycmF5PHN0cmluZz4gfCBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIHZhbGlkYXRlUGFyYW1ldGVyKHsgcmVjb3JkcyB9KTtcblxuICAgIGNvbnN0IHNhdmVBbGwgPSBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBiYXRjaEV2ZW50cyA9IFtdO1xuXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgcmVjb3Jkcy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgY29uc3QgcmVjb3JkID0gcmVjb3Jkc1tpbmRleF07XG4gICAgICAgIGNvbnN0IHNlbmRUb0V2ZW50U291cmNpbmcgPSBmYWxzZTtcblxuICAgICAgICBjb25zdCBpc05vbkxvY2FsUmVjb3JkQ2hhbmdlZCA9IGF3YWl0IHRoaXMuaXNOb25Mb2NhbFJlY29yZENoYW5nZWQocmVjb3JkKTtcbiAgICAgICAgY29uc3QgdXBkYXRlZFJlY29yZCA9IGF3YWl0IHRoaXMuc2VsZWN0U2F2ZVR5cGUocmVjb3JkLCBzZW5kVG9FdmVudFNvdXJjaW5nKTtcblxuICAgICAgICBpZiAoaXNOb25Mb2NhbFJlY29yZENoYW5nZWQpIHtcbiAgICAgICAgICBjb25zdCBjdXN0b21SZXF1ZXN0SWQgPSBjdXN0b21SZXF1ZXN0SWRzIGluc3RhbmNlb2YgQXJyYXkgPyBjdXN0b21SZXF1ZXN0SWRzW2luZGV4XSA6IGN1c3RvbVJlcXVlc3RJZHM7XG4gICAgICAgICAgY29uc3QgZXZlbnRPcGVyYXRpb24gPSB0aGlzLmNyZWF0ZUV2ZW50T3BlcmF0aW9uKHJlY29yZCwgdXBkYXRlZFJlY29yZCwgY3VzdG9tUmVxdWVzdElkKTtcbiAgICAgICAgICBiYXRjaEV2ZW50cy5wdXNoKGV2ZW50T3BlcmF0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBhd2FpdCB0aGlzLmV2ZW50U291cmNpbmcuY3JlYXRlQmF0Y2hFdmVudHModGhpcy5zY2hlbWEubmFtZSwgYmF0Y2hFdmVudHMpO1xuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5wb1NjaGVtYVNlcnZpY2UubGltaXRlZENhbGxXcmFwKHNhdmVBbGwpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjcmVhdGUobmV3UmVjb3JkOiBhbnksIHNlbmRUb0V2ZW50U291cmNpbmc6IGJvb2xlYW4sIGN1c3RvbVJlcXVlc3RJZD86IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgdGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuXG4gICAgY29uc3Qgc3luY1Byb3BlcnRpZXMgPSB7XG4gICAgICBbUG9TY2hlbWFVdGlsLnN5bmNJbnRlcm5hbElkRmllbGROYW1lXTogdGltZSxcbiAgICAgIFN5bmNJbnNlcnRlZERhdGVUaW1lOiB0aW1lLFxuICAgICAgU3luY1VwZGF0ZWREYXRlVGltZTogbnVsbCxcbiAgICAgIFN5bmNFeGNsdXNpb25EYXRlVGltZTogbnVsbCxcbiAgICAgIFN5bmNEZWxldGVkOiBmYWxzZSxcbiAgICAgIFN5bmNTdGF0dXM6IDBcbiAgICB9O1xuICAgIGNvbnN0IHJlY29yZFdpdGhTeW5jUHJvcGVydGllcyA9IHsgLi4ubmV3UmVjb3JkLCAuLi5zeW5jUHJvcGVydGllcyB9O1xuXG4gICAgY29uc3QgcmVjb3JkZWREYXRhID0gYXdhaXQgdGhpcy5wb1NjaGVtYVNlcnZpY2UuY3JlYXRlKHRoaXMuc2NoZW1hLCByZWNvcmRXaXRoU3luY1Byb3BlcnRpZXMpO1xuXG4gICAgaWYgKHNlbmRUb0V2ZW50U291cmNpbmcpIHtcbiAgICAgIGF3YWl0IHRoaXMuZXZlbnRTb3VyY2luZy5jcmVhdGUodGhpcy5zY2hlbWEubmFtZSwgcmVjb3JkV2l0aFN5bmNQcm9wZXJ0aWVzLCBjdXN0b21SZXF1ZXN0SWQpO1xuICAgIH1cblxuICAgIHJldHVybiByZWNvcmRlZERhdGE7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUV2ZW50T3BlcmF0aW9uKFxuICAgIHJlY29yZDogb2JqZWN0LFxuICAgIHVwZGF0ZWRSZWNvcmQ6IG9iamVjdCxcbiAgICBjdXN0b21SZXF1ZXN0SWQ/OiBzdHJpbmdcbiAgKTogUG9FdmVudFNvdXJjaW5nU3VtbWFyeUl0ZW0ge1xuICAgIGNvbnN0IG9wZXJhdGlvbiA9IFBvU2NoZW1hVXRpbC5nZXRSZWNvcmRJZChyZWNvcmQsIHRoaXMuc2NoZW1hKVxuICAgICAgPyBQb0V2ZW50U291cmNpbmdPcGVyYXRpb24uVXBkYXRlXG4gICAgICA6IFBvRXZlbnRTb3VyY2luZ09wZXJhdGlvbi5JbnNlcnQ7XG5cbiAgICBjb25zdCBzZXJ2ZXJSZWNvcmQgPSBQb1NjaGVtYVV0aWwuc2VwYXJhdGVTY2hlbWFGaWVsZHModGhpcy5zY2hlbWEsIHVwZGF0ZWRSZWNvcmQpWydzZXJ2ZXJSZWNvcmQnXTtcblxuICAgIHJldHVybiB7XG4gICAgICByZWNvcmQ6IHNlcnZlclJlY29yZCxcbiAgICAgIGN1c3RvbVJlcXVlc3RJZDogY3VzdG9tUmVxdWVzdElkLFxuICAgICAgb3BlcmF0aW9uOiBvcGVyYXRpb25cbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBpc05vbkxvY2FsUmVjb3JkQ2hhbmdlZCh1cGRhdGVkUmVjb3JkOiBvYmplY3QpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBub25Mb2NhbEZpZWxkTmFtZXMgPSBQb1NjaGVtYVV0aWwuZ2V0Tm9uTG9jYWxGaWVsZE5hbWVzKHRoaXMuc2NoZW1hKTtcbiAgICBjb25zdCByZWNvcmQgPSBhd2FpdCB0aGlzLnBvU2NoZW1hU2VydmljZS5nZXQodGhpcy5zY2hlbWEubmFtZSwgdXBkYXRlZFJlY29yZFt0aGlzLnNjaGVtYS5pZEZpZWxkXSk7XG5cbiAgICByZXR1cm4gIVBvU2NoZW1hVXRpbC5pc01vZGVsc0VxdWFsKG5vbkxvY2FsRmllbGROYW1lcywgcmVjb3JkLCB1cGRhdGVkUmVjb3JkKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2VsZWN0U2F2ZVR5cGUoXG4gICAgcmVjb3JkOiBvYmplY3QsXG4gICAgc2VuZFRvRXZlbnRTb3VyY2luZzogYm9vbGVhbixcbiAgICBjdXN0b21SZXF1ZXN0SWQ/OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxvYmplY3Q+IHtcbiAgICBjb25zdCBoYXNJZCA9IFBvU2NoZW1hVXRpbC5nZXRSZWNvcmRJZChyZWNvcmQsIHRoaXMuc2NoZW1hKTtcblxuICAgIHJldHVybiBoYXNJZFxuICAgICAgPyBhd2FpdCB0aGlzLnVwZGF0ZShyZWNvcmQsIHNlbmRUb0V2ZW50U291cmNpbmcsIGN1c3RvbVJlcXVlc3RJZClcbiAgICAgIDogYXdhaXQgdGhpcy5jcmVhdGUocmVjb3JkLCBzZW5kVG9FdmVudFNvdXJjaW5nLCBjdXN0b21SZXF1ZXN0SWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1cGRhdGUodXBkYXRlZFJlY29yZDogYW55LCBzZW5kVG9FdmVudFNvdXJjaW5nOiBib29sZWFuLCBjdXN0b21SZXF1ZXN0SWQ/OiBzdHJpbmcpOiBQcm9taXNlPG9iamVjdD4ge1xuICAgIHVwZGF0ZWRSZWNvcmQuU3luY1VwZGF0ZWREYXRlVGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgIHVwZGF0ZWRSZWNvcmQuU3luY1N0YXR1cyA9IDA7XG5cbiAgICBjb25zdCBpc05vbkxvY2FsUmVjb3JkQ2hhbmdlZCA9IGF3YWl0IHRoaXMuaXNOb25Mb2NhbFJlY29yZENoYW5nZWQodXBkYXRlZFJlY29yZCk7XG4gICAgY29uc3QgcmVjb3JkZWREYXRhID0gYXdhaXQgdGhpcy5wb1NjaGVtYVNlcnZpY2UudXBkYXRlKHRoaXMuc2NoZW1hLCB1cGRhdGVkUmVjb3JkKTtcblxuICAgIGlmIChpc05vbkxvY2FsUmVjb3JkQ2hhbmdlZCAmJiBzZW5kVG9FdmVudFNvdXJjaW5nKSB7XG4gICAgICBjb25zdCBzZXJ2ZXJSZWNvcmQgPSBQb1NjaGVtYVV0aWwuc2VwYXJhdGVTY2hlbWFGaWVsZHModGhpcy5zY2hlbWEsIHVwZGF0ZWRSZWNvcmQpWydzZXJ2ZXJSZWNvcmQnXTtcbiAgICAgIGF3YWl0IHRoaXMuZXZlbnRTb3VyY2luZy51cGRhdGUodGhpcy5zY2hlbWEubmFtZSwgc2VydmVyUmVjb3JkLCBjdXN0b21SZXF1ZXN0SWQpO1xuICAgIH1cblxuICAgIHJldHVybiByZWNvcmRlZERhdGE7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @description
|
|
3
|
-
*
|
|
4
|
-
* Classe que define a resposta de erro para um item da fila de eventos que não foi enviado ao servidor por
|
|
5
|
-
* alguma inconsistência.
|
|
6
|
-
*
|
|
7
|
-
* > Pode ser utilizada em casos onde um item da fila é enviado ao servidor com inconsistência nos dados, por exemplo
|
|
8
|
-
* uma operação de *delete* ou *update* sem o `id` do objeto.
|
|
9
|
-
*/
|
|
10
|
-
export class PoEventSourcingErrorResponse {
|
|
11
|
-
/* istanbul ignore next */
|
|
12
|
-
constructor({ message, operation }) {
|
|
13
|
-
this.message = message;
|
|
14
|
-
this.operation = operation;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
/**
|
|
2
|
+
* @description
|
|
3
|
+
*
|
|
4
|
+
* Classe que define a resposta de erro para um item da fila de eventos que não foi enviado ao servidor por
|
|
5
|
+
* alguma inconsistência.
|
|
6
|
+
*
|
|
7
|
+
* > Pode ser utilizada em casos onde um item da fila é enviado ao servidor com inconsistência nos dados, por exemplo
|
|
8
|
+
* uma operação de *delete* ou *update* sem o `id` do objeto.
|
|
9
|
+
*/
|
|
10
|
+
export class PoEventSourcingErrorResponse {
|
|
11
|
+
/* istanbul ignore next */
|
|
12
|
+
constructor({ message, operation }) {
|
|
13
|
+
this.message = message;
|
|
14
|
+
this.operation = operation;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tZXZlbnQtc291cmNpbmctZXJyb3ItcmVzcG9uc2UubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zeW5jL3NyYy9saWIvbW9kZWxzL3BvLWV2ZW50LXNvdXJjaW5nLWVycm9yLXJlc3BvbnNlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxPQUFPLDRCQUE0QjtJQU92QywwQkFBMEI7SUFDMUIsWUFBWSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUU7UUFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9FdmVudFNvdXJjaW5nT3BlcmF0aW9uIH0gZnJvbSAnLi8uLi9zZXJ2aWNlcy9wby1ldmVudC1zb3VyY2luZy9lbnVtcy9wby1ldmVudC1zb3VyY2luZy1vcGVyYXRpb24uZW51bSc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogQ2xhc3NlIHF1ZSBkZWZpbmUgYSByZXNwb3N0YSBkZSBlcnJvIHBhcmEgdW0gaXRlbSBkYSBmaWxhIGRlIGV2ZW50b3MgcXVlIG7Do28gZm9pIGVudmlhZG8gYW8gc2Vydmlkb3IgcG9yXG4gKiBhbGd1bWEgaW5jb25zaXN0w6puY2lhLlxuICpcbiAqID4gUG9kZSBzZXIgdXRpbGl6YWRhIGVtIGNhc29zIG9uZGUgdW0gaXRlbSBkYSBmaWxhIMOpIGVudmlhZG8gYW8gc2Vydmlkb3IgY29tIGluY29uc2lzdMOqbmNpYSBub3MgZGFkb3MsIHBvciBleGVtcGxvXG4gKiB1bWEgb3BlcmHDp8OjbyBkZSAqZGVsZXRlKiBvdSAqdXBkYXRlKiBzZW0gbyBgaWRgIGRvIG9iamV0by5cbiAqL1xuZXhwb3J0IGNsYXNzIFBvRXZlbnRTb3VyY2luZ0Vycm9yUmVzcG9uc2Uge1xuICAvKiogTWVuc2FnZW0gZGUgZXJyby4gKi9cbiAgbWVzc2FnZTogc3RyaW5nO1xuXG4gIC8qKiBPcGVyYcOnw6NvIHF1ZSBoYXZpYSBzaWRvIHJlcXVpc2l0YWRhLiAqL1xuICBvcGVyYXRpb246IFBvRXZlbnRTb3VyY2luZ09wZXJhdGlvbjtcblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBjb25zdHJ1Y3Rvcih7IG1lc3NhZ2UsIG9wZXJhdGlvbiB9KSB7XG4gICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICB0aGlzLm9wZXJhdGlvbiA9IG9wZXJhdGlvbjtcbiAgfVxufVxuIl19
|