import { Component, Input } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; import { EnvProperties} from '../../utils/properties/env-properties'; import {ConnectHelper} from '../connectHelper'; import {SearchCommunityDataprovidersService} from '../contentProviders/searchDataproviders.service'; @Component({ selector: 'approved-by-community', template: ` Community Approved ` }) export class ApprovedByCommunityComponent { @Input() contentProviderId: string; public communityId:string; public approved:boolean = false; private communityContentProviders = []; properties:EnvProperties; constructor (private route: ActivatedRoute, private _searchDataprovidersService: SearchCommunityDataprovidersService) {} public ngOnInit() { this.route.data .subscribe((data: { envSpecific: EnvProperties }) => { this.properties = data.envSpecific; this.route.queryParams.subscribe( communityId => { this.communityId = ConnectHelper.getCommunityFromDomain(this.properties.domain); if(!this.communityId) { this.communityId = communityId['communityId']; } if(this.communityId && this.communityId != "openaire") { this._searchDataprovidersService.searchDataproviders(this.properties, this.communityId).subscribe ( contentproviders => { this.communityContentProviders = contentproviders; this.approved = this.checkApproval(); }, error => { this.handleError("Error getting content providers for community with id: "+this.communityId, error); } ); } }); }); } private checkApproval(): boolean { let self = this; return this.communityContentProviders.map(contentprovider => contentprovider.openaireId).some(function(id) { return id == self.contentProviderId; }); } private handleError(message: string, error) { console.error("Approved by Community (component): "+message, error); } }