[MNT-22865] fix get all task variables (#7508)

* fix get all task variables

* Update lib/process-services-cloud/src/lib/form/services/form-cloud.service.ts

Co-authored-by: Andrea Ligios <11974750+andrea-ligios@users.noreply.github.com>

* Update lib/process-services-cloud/src/lib/form/services/form-cloud.service.ts

Co-authored-by: Andrea Ligios <11974750+andrea-ligios@users.noreply.github.com>

* Update form-cloud.service.ts

Co-authored-by: Andrea Ligios <11974750+andrea-ligios@users.noreply.github.com>
This commit is contained in:
Eugenio Romano
2022-02-18 10:12:11 +00:00
committed by GitHub
parent 9f72e30fbc
commit 7c171eaf87

View File

@@ -24,8 +24,8 @@ import {
FormModel, FormModel,
FormFieldOption FormFieldOption
} from '@alfresco/adf-core'; } from '@alfresco/adf-core';
import { Observable, from } from 'rxjs'; import { Observable, from, EMPTY } from 'rxjs';
import { map, switchMap } from 'rxjs/operators'; import { expand, map, reduce, switchMap } from 'rxjs/operators';
import { TaskDetailsCloudModel } from '../../task/start-task/models/task-details-cloud.model'; import { TaskDetailsCloudModel } from '../../task/start-task/models/task-details-cloud.model';
import { CompleteFormRepresentation, UploadApi } from '@alfresco/js-api'; import { CompleteFormRepresentation, UploadApi } from '@alfresco/js-api';
import { TaskVariableCloud } from '../models/task-variable-cloud.model'; import { TaskVariableCloud } from '../models/task-variable-cloud.model';
@@ -171,9 +171,21 @@ export class FormCloudService extends BaseCloudService implements FormCloudServi
*/ */
getTaskVariables(appName: string, taskId: string): Observable<TaskVariableCloud[]> { getTaskVariables(appName: string, taskId: string): Observable<TaskVariableCloud[]> {
const apiUrl = `${this.getBasePath(appName)}/query/v1/tasks/${taskId}/variables`; const apiUrl = `${this.getBasePath(appName)}/query/v1/tasks/${taskId}/variables`;
let skipCount = 0;
const maxItems = 1000;
return this.get(apiUrl).pipe( return this.get(apiUrl, { maxItems, skipCount }).pipe(
map((res: any) => res.list.entries.map((variable) => new TaskVariableCloud(variable.entry))) expand((res: any) => {
skipCount += maxItems;
return res.list.pagination.hasMoreItems ? this.get(apiUrl, {
maxItems,
skipCount
}) : EMPTY;
}),
map((res: any) => {
return res.list.entries.map((variable) => new TaskVariableCloud(variable.entry));
}),
reduce((acc, res) => acc.concat(res), [])
); );
} }