mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
Revert mistakenly deleted file (#10367)
This commit is contained in:
@@ -23,5 +23,6 @@ export * from './models/process-list-sorting.model';
|
||||
export * from './models/process-cloud-preferences';
|
||||
|
||||
export * from './services/process-list-cloud.service';
|
||||
export * from './services/process-task-list-cloud.service';
|
||||
|
||||
export * from './process-list-cloud.module';
|
||||
|
@@ -0,0 +1,93 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Observable, throwError } from 'rxjs';
|
||||
import { BaseCloudService } from '../../../services/base-cloud.service';
|
||||
import { map } from 'rxjs/operators';
|
||||
import { TaskQueryCloudRequestModel } from '../../../models/filter-cloud-model';
|
||||
import { TaskCloudNodePaging } from '../../../models/task-cloud.model';
|
||||
import { TaskListCloudSortingModel } from '../../../models/task-list-sorting.model';
|
||||
|
||||
@Injectable({ providedIn: 'root' })
|
||||
export class ProcessTaskListCloudService extends BaseCloudService {
|
||||
/**
|
||||
* Finds a task using an object with optional query properties.
|
||||
*
|
||||
* @param requestNode Query object
|
||||
* @param queryUrl Query url
|
||||
* @returns Task information
|
||||
*/
|
||||
getTaskByRequest(requestNode: TaskQueryCloudRequestModel, queryUrl?: string): Observable<any> {
|
||||
if (requestNode.appName || requestNode.appName === '') {
|
||||
queryUrl = queryUrl || `${this.getBasePath(requestNode.appName)}/query/v1/process-instances/${requestNode.processInstanceId}/tasks`;
|
||||
const queryParams = this.buildQueryParams(requestNode);
|
||||
const sortingParams = this.buildSortingParam(requestNode.sorting);
|
||||
if (sortingParams) {
|
||||
queryParams['sort'] = sortingParams;
|
||||
}
|
||||
return this.get<TaskCloudNodePaging>(queryUrl, queryParams).pipe(
|
||||
map((response) => {
|
||||
const entries = response.list?.entries;
|
||||
if (entries) {
|
||||
// TODO: this is a hack of the model and should be revisited
|
||||
response.list.entries = entries.map((entryData: any) => entryData.entry);
|
||||
}
|
||||
return response;
|
||||
})
|
||||
);
|
||||
} else {
|
||||
return throwError('Appname not configured');
|
||||
}
|
||||
}
|
||||
|
||||
protected buildQueryParams(requestNode: TaskQueryCloudRequestModel): any {
|
||||
const queryParam: any = {};
|
||||
for (const property in requestNode) {
|
||||
if (
|
||||
Object.prototype.hasOwnProperty.call(requestNode, property) &&
|
||||
!this.isExcludedField(property) &&
|
||||
this.isPropertyValueValid(requestNode, property)
|
||||
) {
|
||||
queryParam[property] = requestNode[property];
|
||||
}
|
||||
}
|
||||
return queryParam;
|
||||
}
|
||||
|
||||
protected isExcludedField(property: string): boolean {
|
||||
return property === 'appName' || property === 'sorting';
|
||||
}
|
||||
|
||||
protected isPropertyValueValid(requestNode: TaskQueryCloudRequestModel, property: string): boolean {
|
||||
return requestNode[property] !== '' && requestNode[property] !== null && requestNode[property] !== undefined;
|
||||
}
|
||||
|
||||
protected buildSortingParam(models: TaskListCloudSortingModel[]): string {
|
||||
let finalSorting: string = '';
|
||||
if (models) {
|
||||
for (const sort of models) {
|
||||
if (!finalSorting) {
|
||||
finalSorting = `${sort.orderBy},${sort.direction}`;
|
||||
} else {
|
||||
finalSorting = `${finalSorting}&${sort.orderBy},${sort.direction}`;
|
||||
}
|
||||
}
|
||||
}
|
||||
return encodeURI(finalSorting);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user