UNPKG

@alfresco/adf-content-services

Version:
84 lines 10.6 kB
/*! * @license * Copyright © 2005-2025 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 { FavoritesApi } from '@alfresco/js-api'; import { from, of } from 'rxjs'; import { AlfrescoApiService } from '../../services/alfresco-api.service'; import { UserPreferencesService } from '@alfresco/adf-core'; import { catchError } from 'rxjs/operators'; import * as i0 from "@angular/core"; import * as i1 from "../../services/alfresco-api.service"; import * as i2 from "@alfresco/adf-core"; export class FavoritesApiService { get favoritesApi() { this._favoritesApi = this._favoritesApi ?? new FavoritesApi(this.apiService.getInstance()); return this._favoritesApi; } static remapEntry({ entry }) { entry.properties = { 'cm:title': entry.title, 'cm:description': entry.description }; return { entry }; } constructor(apiService, preferences) { this.apiService = apiService; this.preferences = preferences; } remapFavoritesData(data = {}) { const pagination = data?.list?.pagination || {}; const entries = this.remapFavoriteEntries(data?.list?.entries || []); return { list: { entries, pagination } }; } remapFavoriteEntries(entries) { return entries .map(({ entry: { target } }) => ({ entry: target.file || target.folder })) .filter(({ entry }) => !!entry) .map(FavoritesApiService.remapEntry); } /** * Gets the favorites for a user. * * @param personId ID of the user * @param options Options supported by JS-API * @returns List of favorites */ getFavorites(personId, options) { const defaultOptions = { maxItems: this.preferences.paginationSize, skipCount: 0, where: '(EXISTS(target/file) OR EXISTS(target/folder))', include: ['properties', 'allowableOperations'] }; const queryOptions = Object.assign(defaultOptions, options); const promise = this.favoritesApi.listFavorites(personId, queryOptions).then(this.remapFavoritesData); return from(promise).pipe(catchError((err) => of(err))); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: FavoritesApiService, deps: [{ token: i1.AlfrescoApiService }, { token: i2.UserPreferencesService }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: FavoritesApiService, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: FavoritesApiService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [{ type: i1.AlfrescoApiService }, { type: i2.UserPreferencesService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmF2b3JpdGVzLWFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9jb21tb24vc2VydmljZXMvZmF2b3JpdGVzLWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBOEIsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RSxPQUFPLEVBQWMsSUFBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFLNUMsTUFBTSxPQUFPLG1CQUFtQjtJQUU1QixJQUFJLFlBQVk7UUFDWixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzNGLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM5QixDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssRUFBTztRQUM1QixLQUFLLENBQUMsVUFBVSxHQUFHO1lBQ2YsVUFBVSxFQUFFLEtBQUssQ0FBQyxLQUFLO1lBQ3ZCLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxXQUFXO1NBQ3RDLENBQUM7UUFFRixPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFlBQW9CLFVBQThCLEVBQVUsV0FBbUM7UUFBM0UsZUFBVSxHQUFWLFVBQVUsQ0FBb0I7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBd0I7SUFBRyxDQUFDO0lBRW5HLGtCQUFrQixDQUFDLE9BQXVCLEVBQUU7UUFDeEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLElBQUksRUFBRSxDQUFDO1FBQ2hELE1BQU0sT0FBTyxHQUFVLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQztRQUU1RSxPQUFPO1lBQ0gsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRTtTQUNoQyxDQUFDO0lBQ04sQ0FBQztJQUVELG9CQUFvQixDQUFDLE9BQWM7UUFDL0IsT0FBTyxPQUFPO2FBQ1QsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2xDLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxNQUFNO1NBQ3RDLENBQUMsQ0FBQzthQUNGLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7YUFDOUIsR0FBRyxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxZQUFZLENBQUMsUUFBZ0IsRUFBRSxPQUFhO1FBQ3hDLE1BQU0sY0FBYyxHQUFHO1lBQ25CLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWM7WUFDekMsU0FBUyxFQUFFLENBQUM7WUFDWixLQUFLLEVBQUUsZ0RBQWdEO1lBQ3ZELE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxxQkFBcUIsQ0FBQztTQUNqRCxDQUFDO1FBQ0YsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDNUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUV0RyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7OEdBdERRLG1CQUFtQjtrSEFBbkIsbUJBQW1CLGNBRmhCLE1BQU07OzJGQUVULG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZhdm9yaXRlc0FwaSwgTm9kZVBhZ2luZywgRmF2b3JpdGVQYWdpbmcgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGZyb20sIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBbGZyZXNjb0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hbGZyZXNjby1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRmF2b3JpdGVzQXBpU2VydmljZSB7XG4gICAgcHJpdmF0ZSBfZmF2b3JpdGVzQXBpOiBGYXZvcml0ZXNBcGk7XG4gICAgZ2V0IGZhdm9yaXRlc0FwaSgpOiBGYXZvcml0ZXNBcGkge1xuICAgICAgICB0aGlzLl9mYXZvcml0ZXNBcGkgPSB0aGlzLl9mYXZvcml0ZXNBcGkgPz8gbmV3IEZhdm9yaXRlc0FwaSh0aGlzLmFwaVNlcnZpY2UuZ2V0SW5zdGFuY2UoKSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9mYXZvcml0ZXNBcGk7XG4gICAgfVxuXG4gICAgc3RhdGljIHJlbWFwRW50cnkoeyBlbnRyeSB9OiBhbnkpOiBhbnkge1xuICAgICAgICBlbnRyeS5wcm9wZXJ0aWVzID0ge1xuICAgICAgICAgICAgJ2NtOnRpdGxlJzogZW50cnkudGl0bGUsXG4gICAgICAgICAgICAnY206ZGVzY3JpcHRpb24nOiBlbnRyeS5kZXNjcmlwdGlvblxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB7IGVudHJ5IH07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhcGlTZXJ2aWNlOiBBbGZyZXNjb0FwaVNlcnZpY2UsIHByaXZhdGUgcHJlZmVyZW5jZXM6IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UpIHt9XG5cbiAgICByZW1hcEZhdm9yaXRlc0RhdGEoZGF0YTogRmF2b3JpdGVQYWdpbmcgPSB7fSk6IE5vZGVQYWdpbmcge1xuICAgICAgICBjb25zdCBwYWdpbmF0aW9uID0gZGF0YT8ubGlzdD8ucGFnaW5hdGlvbiB8fCB7fTtcbiAgICAgICAgY29uc3QgZW50cmllczogYW55W10gPSB0aGlzLnJlbWFwRmF2b3JpdGVFbnRyaWVzKGRhdGE/Lmxpc3Q/LmVudHJpZXMgfHwgW10pO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsaXN0OiB7IGVudHJpZXMsIHBhZ2luYXRpb24gfVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHJlbWFwRmF2b3JpdGVFbnRyaWVzKGVudHJpZXM6IGFueVtdKSB7XG4gICAgICAgIHJldHVybiBlbnRyaWVzXG4gICAgICAgICAgICAubWFwKCh7IGVudHJ5OiB7IHRhcmdldCB9IH06IGFueSkgPT4gKHtcbiAgICAgICAgICAgICAgICBlbnRyeTogdGFyZ2V0LmZpbGUgfHwgdGFyZ2V0LmZvbGRlclxuICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAuZmlsdGVyKCh7IGVudHJ5IH0pID0+ICEhZW50cnkpXG4gICAgICAgICAgICAubWFwKEZhdm9yaXRlc0FwaVNlcnZpY2UucmVtYXBFbnRyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgZmF2b3JpdGVzIGZvciBhIHVzZXIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGVyc29uSWQgSUQgb2YgdGhlIHVzZXJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zIHN1cHBvcnRlZCBieSBKUy1BUElcbiAgICAgKiBAcmV0dXJucyBMaXN0IG9mIGZhdm9yaXRlc1xuICAgICAqL1xuICAgIGdldEZhdm9yaXRlcyhwZXJzb25JZDogc3RyaW5nLCBvcHRpb25zPzogYW55KTogT2JzZXJ2YWJsZTxOb2RlUGFnaW5nPiB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRPcHRpb25zID0ge1xuICAgICAgICAgICAgbWF4SXRlbXM6IHRoaXMucHJlZmVyZW5jZXMucGFnaW5hdGlvblNpemUsXG4gICAgICAgICAgICBza2lwQ291bnQ6IDAsXG4gICAgICAgICAgICB3aGVyZTogJyhFWElTVFModGFyZ2V0L2ZpbGUpIE9SIEVYSVNUUyh0YXJnZXQvZm9sZGVyKSknLFxuICAgICAgICAgICAgaW5jbHVkZTogWydwcm9wZXJ0aWVzJywgJ2FsbG93YWJsZU9wZXJhdGlvbnMnXVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBxdWVyeU9wdGlvbnMgPSBPYmplY3QuYXNzaWduKGRlZmF1bHRPcHRpb25zLCBvcHRpb25zKTtcbiAgICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuZmF2b3JpdGVzQXBpLmxpc3RGYXZvcml0ZXMocGVyc29uSWQsIHF1ZXJ5T3B0aW9ucykudGhlbih0aGlzLnJlbWFwRmF2b3JpdGVzRGF0YSk7XG5cbiAgICAgICAgcmV0dXJuIGZyb20ocHJvbWlzZSkucGlwZShjYXRjaEVycm9yKChlcnIpID0+IG9mKGVycikpKTtcbiAgICB9XG59XG4iXX0=