import { map } from 'rxjs/operators'; import { MaerskApiClient } from 'app/common/clients/maerskApi.client'; import { DocumentDto, Document, DocumentCategoryDto, DocumentCategory, DocumentFileDto, } from '../store/documents.types'; export class DocumentsService { apiClient: MaerskApiClient; constructor(apiClient) { this.apiClient = apiClient; } createDocument = (data: DocumentDto[]): Document[] => { return data.map((item) => ({ id: item.id, name: item.title, description: item.description, path: '', fileType: item.fileType, date: item.publishDate, categoryId: item.categoryId, })); } createDocumentUrl = (data: DocumentFileDto): string => { return data.url; } createDocumentCategory = (data: DocumentCategoryDto[]): DocumentCategory[] => { return data.map((item) => ({ id: item.id, label: item.name, })); } getDocuments = (poolId: number | null, categoryId: number | null = null) => { return this.apiClient.getDocuments(poolId, categoryId).pipe( map(this.createDocument), ); } getDocumentsCategories = () => { return this.apiClient.getDocumentsCategories().pipe( map(this.createDocumentCategory), ); } getDocumentUrl = (documentId: number) => { return this.apiClient.getDocumentUrl(documentId).pipe( map(this.createDocumentUrl), ); } getBookmarks = () => { return this.apiClient.getDocumentBookmarks(); } addBookmark = (id: number) => { return this.apiClient.addDocumentBookmark(id); } removeBookmark = (id: number) => { return this.apiClient.removeDocumentBookmark(id); } }