@acorex/connectivity 21.0.0-next.43 → 21.0.0-next.45

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.
Files changed (23) hide show
  1. package/fesm2022/acorex-connectivity-api.mjs +89 -3
  2. package/fesm2022/acorex-connectivity-api.mjs.map +1 -1
  3. package/fesm2022/{acorex-connectivity-mock-acorex-connectivity-mock-Dy--4by0.mjs → acorex-connectivity-mock-acorex-connectivity-mock-D8bzYltA.mjs} +2894 -1484
  4. package/fesm2022/acorex-connectivity-mock-acorex-connectivity-mock-D8bzYltA.mjs.map +1 -0
  5. package/fesm2022/{acorex-connectivity-mock-assign-to-manager.activity-C28tH9lJ.mjs → acorex-connectivity-mock-assign-to-manager.activity-Cr4KK7dn.mjs} +130 -54
  6. package/fesm2022/acorex-connectivity-mock-assign-to-manager.activity-Cr4KK7dn.mjs.map +1 -0
  7. package/fesm2022/{acorex-connectivity-mock-chat-generate-image.command-sx2CDa3S.mjs → acorex-connectivity-mock-chat-generate-image.command-BqnmiAgI.mjs} +2 -2
  8. package/fesm2022/{acorex-connectivity-mock-chat-generate-image.command-sx2CDa3S.mjs.map → acorex-connectivity-mock-chat-generate-image.command-BqnmiAgI.mjs.map} +1 -1
  9. package/fesm2022/{acorex-connectivity-mock-chat-synthesize-speech.command-DteMILSk.mjs → acorex-connectivity-mock-chat-synthesize-speech.command-D3NPqs6A.mjs} +2 -2
  10. package/fesm2022/{acorex-connectivity-mock-chat-synthesize-speech.command-DteMILSk.mjs.map → acorex-connectivity-mock-chat-synthesize-speech.command-D3NPqs6A.mjs.map} +1 -1
  11. package/fesm2022/{acorex-connectivity-mock-chat-transcribe-speech.command-ZqjqR8B5.mjs → acorex-connectivity-mock-chat-transcribe-speech.command-tQbAVOfm.mjs} +2 -2
  12. package/fesm2022/{acorex-connectivity-mock-chat-transcribe-speech.command-ZqjqR8B5.mjs.map → acorex-connectivity-mock-chat-transcribe-speech.command-tQbAVOfm.mjs.map} +1 -1
  13. package/fesm2022/{acorex-connectivity-mock-get-current-session-user.activity-C6S4ZJgp.mjs → acorex-connectivity-mock-get-current-session-user.activity-CsmxwXsM.mjs} +5 -1
  14. package/fesm2022/acorex-connectivity-mock-get-current-session-user.activity-CsmxwXsM.mjs.map +1 -0
  15. package/fesm2022/{acorex-connectivity-mock-user-roles-for-list-column.query-Bq_It_Wl.mjs → acorex-connectivity-mock-user-roles-for-list-column.query-BjwkpUBF.mjs} +2 -2
  16. package/fesm2022/{acorex-connectivity-mock-user-roles-for-list-column.query-Bq_It_Wl.mjs.map → acorex-connectivity-mock-user-roles-for-list-column.query-BjwkpUBF.mjs.map} +1 -1
  17. package/fesm2022/acorex-connectivity-mock.mjs +1 -1
  18. package/package.json +2 -2
  19. package/types/acorex-connectivity-api.d.ts +12 -1
  20. package/types/acorex-connectivity-mock.d.ts +66 -10
  21. package/fesm2022/acorex-connectivity-mock-acorex-connectivity-mock-Dy--4by0.mjs.map +0 -1
  22. package/fesm2022/acorex-connectivity-mock-assign-to-manager.activity-C28tH9lJ.mjs.map +0 -1
  23. package/fesm2022/acorex-connectivity-mock-get-current-session-user.activity-C6S4ZJgp.mjs.map +0 -1
@@ -1,4 +1,5 @@
1
1
  import { AXP_ROOT_CONFIG_TOKEN, AXPFilterOperatorMiddlewareService, AXPFileStorageService, AXPFileStorageStatus } from '@acorex/platform/common';
2
+ import { computeEntityAggregates, AXPEntityStorageService } from '@acorex/platform/layout/entity';
2
3
  import * as i1 from '@angular/common/http';
3
4
  import { HttpParams, HttpClient, HttpHeaders } from '@angular/common/http';
4
5
  import * as i0 from '@angular/core';
@@ -7,7 +8,6 @@ import { kebabCase } from 'lodash-es';
7
8
  import { firstValueFrom, catchError, of, BehaviorSubject, tap, filter, take, switchMap } from 'rxjs';
8
9
  import * as i2 from '@acorex/platform/auth';
9
10
  import { AXPAuthStrategy, AXPSessionService, JwtUtil, TimeUtil, PkceUtil, AXPAuthModule, AXP_TENANT_LOADER, AXP_APPLICATION_LOADER, AXP_PERMISSION_LOADER, AXP_FEATURE_LOADER } from '@acorex/platform/auth';
10
- import { AXPEntityStorageService } from '@acorex/platform/layout/entity';
11
11
  import { AXP_USER_AVATAR_PROVIDER } from '@acorex/platform/layout/components';
12
12
  import { STRATEGY_CONFIG_TOKEN } from '@acorex/platform/layout/widgets';
13
13
  import * as i1$1 from 'angular-oauth2-oidc';
@@ -29,6 +29,9 @@ class AXCApiEntityStorageService {
29
29
  // API routing constants
30
30
  this.API_VERSION = 'v1';
31
31
  this.DEFAULT_AREA = 'global';
32
+ this.defaultQueryAllPageSize = 500;
33
+ this.defaultQueryAllMaxRows = 100_000;
34
+ this.defaultAggregateMaxRows = 50_000;
32
35
  }
33
36
  get dbName() {
34
37
  return 'ACoreXPlatform';
@@ -79,7 +82,7 @@ class AXCApiEntityStorageService {
79
82
  async deleteOne(entityName, id) {
80
83
  const routeElement = await this.getConfigEntity(entityName);
81
84
  const url = `${this.mainUrl}/${routeElement.version}/${routeElement.area}/${routeElement.module}/${routeElement.entity}/${id}`;
82
- firstValueFrom(this.http.delete(url));
85
+ await firstValueFrom(this.http.delete(url));
83
86
  }
84
87
  async insertOne(entityName, entityItem) {
85
88
  const routeElement = await this.getConfigEntity(entityName);
@@ -91,7 +94,9 @@ class AXCApiEntityStorageService {
91
94
  }
92
95
  async query(entityName, request) {
93
96
  const routeElement = await this.getConfigEntity(entityName);
94
- let httpParams = new HttpParams().set('Skip', request.skip).set('Take', request.take);
97
+ let httpParams = new HttpParams()
98
+ .set('Skip', String(request.skip ?? 0))
99
+ .set('Take', String(request.take ?? 0));
95
100
  if (request?.sort && request?.sort.length > 0) {
96
101
  const sortParam = request?.sort.map((sort) => `${sort.field}:${sort.dir}`).join(',');
97
102
  httpParams = httpParams.set('$orderby', sortParam);
@@ -140,6 +145,87 @@ class AXCApiEntityStorageService {
140
145
  };
141
146
  });
142
147
  }
148
+ async count(entityName, request) {
149
+ const page = await this.query(entityName, { ...request, skip: 0, take: 1 });
150
+ return page.total;
151
+ }
152
+ async queryAll(entityName, request, options) {
153
+ const pageSize = options?.pageSize ?? this.defaultQueryAllPageSize;
154
+ const maxRows = options?.maxRows ?? this.defaultQueryAllMaxRows;
155
+ const items = [];
156
+ let skip = 0;
157
+ let total = 0;
158
+ while (items.length < maxRows) {
159
+ const take = Math.min(pageSize, maxRows - items.length);
160
+ const page = await this.query(entityName, {
161
+ filter: request.filter,
162
+ sort: request.sort,
163
+ skip,
164
+ take,
165
+ });
166
+ total = page.total;
167
+ if (!page.items?.length) {
168
+ break;
169
+ }
170
+ items.push(...page.items);
171
+ skip += page.items.length;
172
+ if (page.items.length < take || skip >= total) {
173
+ break;
174
+ }
175
+ }
176
+ return {
177
+ items,
178
+ total,
179
+ truncated: total > items.length,
180
+ };
181
+ }
182
+ async getMany(entityName, ids) {
183
+ return Promise.all(ids.map(async (id) => {
184
+ try {
185
+ const row = await this.getOne(entityName, id);
186
+ return row ?? null;
187
+ }
188
+ catch {
189
+ return null;
190
+ }
191
+ }));
192
+ }
193
+ async exists(entityName, id) {
194
+ try {
195
+ await this.getOne(entityName, id);
196
+ return true;
197
+ }
198
+ catch {
199
+ return false;
200
+ }
201
+ }
202
+ async upsertOne(entityName, entity, options) {
203
+ const id = entity?.id;
204
+ if (id) {
205
+ try {
206
+ const existing = await this.getOne(entityName, id);
207
+ if (existing != null) {
208
+ const merge = options?.merge !== false;
209
+ const next = merge
210
+ ? { ...existing, ...entity }
211
+ : { ...entity };
212
+ const { id: _omit, ...patch } = next;
213
+ await this.updateOne(entityName, id, patch);
214
+ return id;
215
+ }
216
+ }
217
+ catch {
218
+ /* create when GET fails (e.g. 404) */
219
+ }
220
+ }
221
+ return this.insertOne(entityName, entity);
222
+ }
223
+ async aggregate(entityName, request, options) {
224
+ const maxRows = options?.maxRows ?? this.defaultAggregateMaxRows;
225
+ const pageSize = options?.pageSize ?? this.defaultQueryAllPageSize;
226
+ const { items } = await this.queryAll(entityName, request, { maxRows, pageSize });
227
+ return { rows: computeEntityAggregates(items, request) };
228
+ }
143
229
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXCApiEntityStorageService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
144
230
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXCApiEntityStorageService }); }
145
231
  }