Project

General

Profile

1
import {EnvProperties} from '../../openaireLibrary/utils/properties/env-properties';
2
import {ZenodoCommunitiesService} from '../../openaireLibrary/connect/zenodoCommunities/zenodo-communities.service';
3
import {SearchZenodoCommunitiesService} from '../../openaireLibrary/connect/zenodoCommunities/searchZenodoCommunities.service';
4

    
5
import {ZenodoInformationClass} from '../../openaireLibrary/deposit/utils/zenodoInformation.class';
6
import {Subscriber} from "rxjs";
7
import {Injectable} from "@angular/core";
8

    
9
@Injectable({
10
  providedIn: 'root'
11
})
12
export class FetchZenodoInformation {
13
  private subscriptions = [];
14
  constructor ( private _zenodoCommunitieService: ZenodoCommunitiesService,
15
                private _searchZenodoCommunitiesService: SearchZenodoCommunitiesService  ) { }
16

    
17
  public ngOnDestroy() {
18
    this.clearSubscriptions();
19
  }
20

    
21
  clearSubscriptions(){
22
    this.subscriptions.forEach(subscription => {
23
      if (subscription instanceof Subscriber) {
24
        subscription.unsubscribe();
25
      }
26
    });
27
  }
28
  public getZenodoCommunityNameAndUrlById(masterZenodoCommunityId: string, properties:EnvProperties, zenodoInformation: ZenodoInformationClass){
29
    this.subscriptions.push(this._zenodoCommunitieService.getZenodoCommunityById(properties, properties.zenodoCommunities+masterZenodoCommunityId, null).subscribe(
30
      result  => {
31
        console.info("getZenodoCommunityNameAndUrlById", result);
32
        var masterZenodoCommunity = result;
33
        //zenodoInformation.name = masterZenodoCommunity.title;
34
        zenodoInformation.url = masterZenodoCommunity.link;
35
      },
36
      error => {
37
        console.error("Master Zenodo community'"+masterZenodoCommunityId+"' couldn't be loaded");
38
      }
39
    ));
40
  }
41

    
42
  public searchNumberOfZCommunities(communityId: string, properties: EnvProperties, zenodoInformation: ZenodoInformationClass) {
43
    this.subscriptions.push(this._searchZenodoCommunitiesService.searchZCommunities(properties,communityId).subscribe (
44
      result => {
45
        console.info("searchNumberOfZCommunities", result);
46

    
47
        var CommunityIds = result;
48
            var totalResults = CommunityIds.length;
49
            if(totalResults > 0) {
50
              zenodoInformation.shareInZenodoUrl = properties.shareInZenodoPage;
51
              console.info(zenodoInformation.shareInZenodoUrl);
52
            }
53
      },
54
      error => {
55
        console.error("list of zenodo communities couldn't be loaded");
56
      }
57
    ));
58
  }
59
}
    (1-1/1)