From b76bb750dc84c02644a78e054b288aa976d2ebcc Mon Sep 17 00:00:00 2001 From: Eugenio Romano Date: Wed, 13 May 2020 14:08:31 +0100 Subject: [PATCH] [ACA-1606] use new api siteservice (#5693) * use new apu siteservice * refactor import * added getSiteMembershipRequests Co-authored-by: Cilibiu Bogdan --- lib/core/services/sites.service.spec.ts | 48 +++++++++++++++++++++++++ lib/core/services/sites.service.ts | 26 ++++++++++---- 2 files changed, 68 insertions(+), 6 deletions(-) diff --git a/lib/core/services/sites.service.spec.ts b/lib/core/services/sites.service.spec.ts index bf6c686053..990951b9e8 100644 --- a/lib/core/services/sites.service.spec.ts +++ b/lib/core/services/sites.service.spec.ts @@ -105,4 +105,52 @@ describe('Sites service', () => { } }); }); + + it('should get a list of membership requests', (done) => { + service.getSiteMembershipRequests().subscribe((data) => { + expect(data.list.entries[0].entry.site.id).toBe('site-id'); + expect(data.list.entries[0].entry.person.id).toBe('user-id'); + done(); + }); + + jasmine.Ajax.requests.mostRecent().respondWith({ + status: 200, + contentType: 'json', + responseText: { + 'list': { + 'pagination': { + 'count': 1, + 'hasMoreItems': false, + 'totalItems': 1, + 'skipCount': 0, + 'maxItems': 100 + }, + 'entries': [ + { + 'entry': { + 'id': 'site-id', + 'createdAt': '2020-05-13T07:46:36.180Z', + 'site': { + 'id': 'site-id', + 'guid': 'b4cff62a-664d-4d45-9302-98723eac1319', + 'title': 'Sample Site', + 'description': '', + 'visibility': 'MODERATED', + 'preset': 'preset', + 'role': 'Manager' + }, + 'person': { + 'id': 'user-id', + 'firstName': 'string', + 'lastName': 'string', + 'displayName': 'string' + }, + 'message': 'message' + } + } + ] + } + } + }); + }); }); diff --git a/lib/core/services/sites.service.ts b/lib/core/services/sites.service.ts index cf380ec9f4..a444ce0218 100644 --- a/lib/core/services/sites.service.ts +++ b/lib/core/services/sites.service.ts @@ -18,7 +18,7 @@ import { Injectable } from '@angular/core'; import { Observable, from, throwError } from 'rxjs'; import { AlfrescoApiService } from './alfresco-api.service'; -import { SitePaging, SiteEntry } from '@alfresco/js-api'; +import { SitePaging, SiteEntry, SitesApi, SiteMembershipRequestWithPersonPaging } from '@alfresco/js-api'; import { catchError } from 'rxjs/operators'; @Injectable({ @@ -26,8 +26,10 @@ import { catchError } from 'rxjs/operators'; }) export class SitesService { - constructor( - private apiService: AlfrescoApiService) { + sitesApi: SitesApi; + + constructor(private apiService: AlfrescoApiService) { + this.sitesApi = new SitesApi(apiService.getInstance()); } /** @@ -41,7 +43,7 @@ export class SitesService { include: ['properties'] }; const queryOptions = Object.assign({}, defaultOptions, opts); - return from(this.apiService.getInstance().core.sitesApi.getSites(queryOptions)) + return from(this.sitesApi.listSites(queryOptions)) .pipe( catchError((err: any) => this.handleError(err)) ); @@ -54,7 +56,7 @@ export class SitesService { * @returns Information about the site */ getSite(siteId: string, opts?: any): Observable { - return from(this.apiService.getInstance().core.sitesApi.getSite(siteId, opts)) + return from(this.sitesApi.getSite(siteId, opts)) .pipe( catchError((err: any) => this.handleError(err)) ); @@ -69,7 +71,7 @@ export class SitesService { deleteSite(siteId: string, permanentFlag: boolean = true): Observable { const options: any = {}; options.permanent = permanentFlag; - return from(this.apiService.getInstance().core.sitesApi.deleteSite(siteId, options)) + return from(this.sitesApi.deleteSite(siteId, options)) .pipe( catchError((err: any) => this.handleError(err)) ); @@ -101,6 +103,18 @@ export class SitesService { return this.apiService.getInstance().getEcmUsername(); } + /** + * Gets a list of site membership requests. + * @param opts Options supported by JS-API + * @returns Site membership requests + */ + getSiteMembershipRequests(opts?: any): Observable { + return from(this.sitesApi.getSiteMembershipRequests(opts)) + .pipe( + catchError((err: any) => this.handleError(err)) + ); + } + private handleError(error: any): any { console.error(error); return throwError(error || 'Server error');