@alfresco/adf-content-services
Version:
Alfresco ADF content services
85 lines • 10.5 kB
JavaScript
/*!
* @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 { CommentModel, User } from '@alfresco/adf-core';
import { CommentsApi } from '@alfresco/js-api';
import { Injectable } from '@angular/core';
import { from } from 'rxjs';
import { map } from 'rxjs/operators';
import { ContentService } from '../../common/services/content.service';
import { AlfrescoApiService } from '../../services/alfresco-api.service';
import * as i0 from "@angular/core";
import * as i1 from "../../services/alfresco-api.service";
import * as i2 from "../../common/services/content.service";
export class NodeCommentsService {
get commentsApi() {
this._commentsApi = this._commentsApi ?? new CommentsApi(this.apiService.getInstance());
return this._commentsApi;
}
constructor(apiService, contentService) {
this.apiService = apiService;
this.contentService = contentService;
}
/**
* Gets all comments that have been added to a task.
*
* @param id ID of the target task
* @returns Details for each comment
*/
get(id) {
return from(this.commentsApi.listComments(id)).pipe(map((response) => {
const comments = [];
response.list.entries.forEach((comment) => {
this.addToComments(comments, comment);
});
return comments;
}));
}
/**
* Adds a comment to a task.
*
* @param id ID of the target task
* @param message Text for the comment
* @returns Details about the comment
*/
add(id, message) {
return from(this.commentsApi.createComment(id, { content: message })).pipe(map((response) => this.newCommentModel(response.entry)));
}
addToComments(comments, comment) {
const newComment = comment.entry;
comments.push(this.newCommentModel(newComment));
}
newCommentModel(comment) {
return new CommentModel({
id: comment.id,
message: comment.content,
created: comment.createdAt,
createdBy: new User(comment.createdBy)
});
}
getUserImage(avatarId) {
return this.contentService.getContentUrl(avatarId);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: NodeCommentsService, deps: [{ token: i1.AlfrescoApiService }, { token: i2.ContentService }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: NodeCommentsService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: NodeCommentsService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: () => [{ type: i1.AlfrescoApiService }, { type: i2.ContentService }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1jb21tZW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9ub2RlLWNvbW1lbnRzL3NlcnZpY2VzL25vZGUtY29tbWVudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsWUFBWSxFQUFtQixJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RSxPQUFPLEVBQWdCLFdBQVcsRUFBVyxNQUFNLGtCQUFrQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7O0FBS3pFLE1BQU0sT0FBTyxtQkFBbUI7SUFFNUIsSUFBSSxXQUFXO1FBQ1gsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN4RixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVELFlBQW9CLFVBQThCLEVBQVUsY0FBOEI7UUFBdEUsZUFBVSxHQUFWLFVBQVUsQ0FBb0I7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFBRyxDQUFDO0lBRTlGOzs7OztPQUtHO0lBQ0gsR0FBRyxDQUFDLEVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDL0MsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDYixNQUFNLFFBQVEsR0FBbUIsRUFBRSxDQUFDO1lBRXBDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQXFCLEVBQUUsRUFBRTtnQkFDcEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDMUMsQ0FBQyxDQUFDLENBQUM7WUFFSCxPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILEdBQUcsQ0FBQyxFQUFVLEVBQUUsT0FBZTtRQUMzQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4SSxDQUFDO0lBRU8sYUFBYSxDQUFDLFFBQXdCLEVBQUUsT0FBcUI7UUFDakUsTUFBTSxVQUFVLEdBQVksT0FBTyxDQUFDLEtBQUssQ0FBQztRQUUxQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU8sZUFBZSxDQUFDLE9BQWdCO1FBQ3BDLE9BQU8sSUFBSSxZQUFZLENBQUM7WUFDcEIsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFO1lBQ2QsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1lBQ3hCLE9BQU8sRUFBRSxPQUFPLENBQUMsU0FBUztZQUMxQixTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztTQUN6QyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsWUFBWSxDQUFDLFFBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkQsQ0FBQzs4R0F6RFEsbUJBQW1CO2tIQUFuQixtQkFBbUIsY0FGaEIsTUFBTTs7MkZBRVQsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQ29tbWVudE1vZGVsLCBDb21tZW50c1NlcnZpY2UsIFVzZXIgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgQ29tbWVudEVudHJ5LCBDb21tZW50c0FwaSwgQ29tbWVudCB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29udGVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21tb24vc2VydmljZXMvY29udGVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEFsZnJlc2NvQXBpU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FsZnJlc2NvLWFwaS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBOb2RlQ29tbWVudHNTZXJ2aWNlIGltcGxlbWVudHMgQ29tbWVudHNTZXJ2aWNlIHtcbiAgICBwcml2YXRlIF9jb21tZW50c0FwaTogQ29tbWVudHNBcGk7XG4gICAgZ2V0IGNvbW1lbnRzQXBpKCk6IENvbW1lbnRzQXBpIHtcbiAgICAgICAgdGhpcy5fY29tbWVudHNBcGkgPSB0aGlzLl9jb21tZW50c0FwaSA/PyBuZXcgQ29tbWVudHNBcGkodGhpcy5hcGlTZXJ2aWNlLmdldEluc3RhbmNlKCkpO1xuICAgICAgICByZXR1cm4gdGhpcy5fY29tbWVudHNBcGk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhcGlTZXJ2aWNlOiBBbGZyZXNjb0FwaVNlcnZpY2UsIHByaXZhdGUgY29udGVudFNlcnZpY2U6IENvbnRlbnRTZXJ2aWNlKSB7fVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhbGwgY29tbWVudHMgdGhhdCBoYXZlIGJlZW4gYWRkZWQgdG8gYSB0YXNrLlxuICAgICAqXG4gICAgICogQHBhcmFtIGlkIElEIG9mIHRoZSB0YXJnZXQgdGFza1xuICAgICAqIEByZXR1cm5zIERldGFpbHMgZm9yIGVhY2ggY29tbWVudFxuICAgICAqL1xuICAgIGdldChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxDb21tZW50TW9kZWxbXT4ge1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLmNvbW1lbnRzQXBpLmxpc3RDb21tZW50cyhpZCkpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29tbWVudHM6IENvbW1lbnRNb2RlbFtdID0gW107XG5cbiAgICAgICAgICAgICAgICByZXNwb25zZS5saXN0LmVudHJpZXMuZm9yRWFjaCgoY29tbWVudDogQ29tbWVudEVudHJ5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkVG9Db21tZW50cyhjb21tZW50cywgY29tbWVudCk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gY29tbWVudHM7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZHMgYSBjb21tZW50IHRvIGEgdGFzay5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpZCBJRCBvZiB0aGUgdGFyZ2V0IHRhc2tcbiAgICAgKiBAcGFyYW0gbWVzc2FnZSBUZXh0IGZvciB0aGUgY29tbWVudFxuICAgICAqIEByZXR1cm5zIERldGFpbHMgYWJvdXQgdGhlIGNvbW1lbnRcbiAgICAgKi9cbiAgICBhZGQoaWQ6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxDb21tZW50TW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5jb21tZW50c0FwaS5jcmVhdGVDb21tZW50KGlkLCB7IGNvbnRlbnQ6IG1lc3NhZ2UgfSkpLnBpcGUobWFwKChyZXNwb25zZSkgPT4gdGhpcy5uZXdDb21tZW50TW9kZWwocmVzcG9uc2UuZW50cnkpKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRUb0NvbW1lbnRzKGNvbW1lbnRzOiBDb21tZW50TW9kZWxbXSwgY29tbWVudDogQ29tbWVudEVudHJ5KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5ld0NvbW1lbnQ6IENvbW1lbnQgPSBjb21tZW50LmVudHJ5O1xuXG4gICAgICAgIGNvbW1lbnRzLnB1c2godGhpcy5uZXdDb21tZW50TW9kZWwobmV3Q29tbWVudCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbmV3Q29tbWVudE1vZGVsKGNvbW1lbnQ6IENvbW1lbnQpOiBDb21tZW50TW9kZWwge1xuICAgICAgICByZXR1cm4gbmV3IENvbW1lbnRNb2RlbCh7XG4gICAgICAgICAgICBpZDogY29tbWVudC5pZCxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGNvbW1lbnQuY29udGVudCxcbiAgICAgICAgICAgIGNyZWF0ZWQ6IGNvbW1lbnQuY3JlYXRlZEF0LFxuICAgICAgICAgICAgY3JlYXRlZEJ5OiBuZXcgVXNlcihjb21tZW50LmNyZWF0ZWRCeSlcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0VXNlckltYWdlKGF2YXRhcklkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZW50U2VydmljZS5nZXRDb250ZW50VXJsKGF2YXRhcklkKTtcbiAgICB9XG59XG4iXX0=