Revision 57673
Added by Konstantinos Triantafyllou over 4 years ago
stakeholder.service.ts | ||
---|---|---|
1 | 1 |
import {Injectable} from "@angular/core"; |
2 | 2 |
import {HttpClient} from "@angular/common/http"; |
3 | 3 |
import {BehaviorSubject, Observable} from "rxjs"; |
4 |
import {Indicator, Stakeholder} from "../utils/entities/stakeholder"; |
|
4 |
import {Indicator, IndicatorPath, Stakeholder} from "../utils/entities/stakeholder";
|
|
5 | 5 |
import {HelperFunctions} from "../openaireLibrary/utils/HelperFunctions.class"; |
6 | 6 |
import {map} from "rxjs/operators"; |
7 | 7 |
|
8 |
let maps: string[] = ['parameters', 'filters']; |
|
9 |
|
|
8 | 10 |
@Injectable({ |
9 | 11 |
providedIn: "root" |
10 | 12 |
}) |
... | ... | |
17 | 19 |
} |
18 | 20 |
|
19 | 21 |
getStakeholder(url: string, alias:string): Observable<Stakeholder> { |
20 |
return new BehaviorSubject<Stakeholder>(Stakeholder.createECStakeholder()).asObservable(); |
|
21 |
// return this.http.get<Stakeholder>(url + '/stakeholder/' + encodeURIComponent(alias)).pipe(map(stakeholder => { |
|
22 |
// return this.formalizeStakeholder([stakeholder])[0]; |
|
23 |
// })); |
|
22 |
/*return new BehaviorSubject<Stakeholder>( |
|
23 |
StakeholderCreator.createFunderFromDefaultProfile("ec","funder","ec__________::EC", |
|
24 |
"European Commission","EC", |
|
25 |
false,"ec",true,true)).asObservable();*/ |
|
26 |
return this.http.get<Stakeholder>(url + '/stakeholder/' + encodeURIComponent(alias)).pipe(map(stakeholder => { |
|
27 |
return this.formalize(stakeholder); |
|
28 |
})); |
|
24 | 29 |
} |
25 | 30 |
|
26 | 31 |
getAllStakeholders(url: string, type: string = null): Observable<Stakeholder[]> { |
27 | 32 |
return this.http.get<Stakeholder[]>(url + '/stakeholder/all' + (type)?('?type=' + type):'').pipe(map(stakeholders => { |
28 |
return this.formalizeStakeholder(stakeholders);
|
|
33 |
return this.formalize(stakeholders); |
|
29 | 34 |
})); |
30 | 35 |
} |
31 | 36 |
|
32 | 37 |
getStakeholders(url: string, type: string = null): Observable<Stakeholder[]> { |
33 | 38 |
return this.http.get<Stakeholder[]>(url + '/stakeholder' + (type)?('?type=' + type):'').pipe(map(stakeholders => { |
34 |
return this.formalizeStakeholder(stakeholders);
|
|
39 |
return this.formalize(stakeholders); |
|
35 | 40 |
})); |
36 | 41 |
} |
37 | 42 |
|
38 | 43 |
getDefaultStakeholders(url: string, type: string = null): Observable<Stakeholder[]> { |
39 | 44 |
return this.http.get<Stakeholder[]>(url + '/stakeholder/default' + (type)?('?type=' + type):'').pipe(map(stakeholders => { |
40 |
return this.formalizeStakeholder(stakeholders);
|
|
45 |
return this.formalize(stakeholders); |
|
41 | 46 |
})); |
42 | 47 |
} |
43 | 48 |
|
49 |
buildStakeholder(url: string, stakeholder: Stakeholder): Observable<Stakeholder> { |
|
50 |
return this.http.post<Stakeholder>(url + '/build-stakeholder', stakeholder).pipe(map(stakeholder => { |
|
51 |
return this.formalize(stakeholder); |
|
52 |
})); |
|
53 |
} |
|
54 |
|
|
44 | 55 |
saveStakeholder(url: string, stakeholder: Stakeholder): Observable<Stakeholder> { |
45 | 56 |
return this.http.post<Stakeholder>(url + '/stakeholder/save', stakeholder).pipe(map(stakeholder => { |
46 |
return this.formalizeStakeholder([stakeholder])[0];
|
|
57 |
return this.formalize(stakeholder);
|
|
47 | 58 |
})); |
48 | 59 |
} |
49 | 60 |
|
50 |
saveIndicator(url: string, path: string[], indicator: Indicator): Observable<Indicator> {
|
|
61 |
saveElement(url: string, element: any, path: string[] = []): Observable<any> {
|
|
51 | 62 |
path = HelperFunctions.encodeArray(path); |
52 |
return this.http.post<Indicator>(url + '/' + path.join('/') + |
|
53 |
'/indicator/save', indicator); |
|
63 |
return this.http.post<any>(url + ((path.length > 0)?'/':'') + path.join('/') + |
|
64 |
'/save', element).pipe(map(element => { |
|
65 |
return this.formalize(element); |
|
66 |
})); |
|
54 | 67 |
} |
55 | 68 |
|
56 | 69 |
deleteElement(url: string, path: string[]): Observable<any> { |
57 | 70 |
path = HelperFunctions.encodeArray(path); |
58 |
return this.http.delete<any>(url + '/' + path.join('/'))
|
|
71 |
return this.http.delete<any>(url + '/' + path.join('/') + '/delete');
|
|
59 | 72 |
} |
60 | 73 |
|
74 |
reorderIndicators(url: string, path: string[], indicators: Indicator[], type: string = 'chart'): Observable<boolean> { |
|
75 |
path = HelperFunctions.encodeArray(path); |
|
76 |
return this.http.post<boolean>(url + '/' + path.join('/') + '/' + type + '/reorder', indicators); |
|
77 |
} |
|
78 |
|
|
61 | 79 |
getStakeholderAsObservable(): Observable<Stakeholder> { |
62 | 80 |
return this.stakeholderSubject.asObservable(); |
63 | 81 |
} |
... | ... | |
70 | 88 |
this.stakeholderSubject.next(stakeholder); |
71 | 89 |
} |
72 | 90 |
|
73 |
private formalizeStakeholder(stakeholders: Stakeholder[]): Stakeholder[] { |
|
74 |
stakeholders.forEach( stakeholder => { |
|
75 |
stakeholder.topics.forEach( topic => { |
|
76 |
topic.categories.forEach( category => { |
|
77 |
category.subCategories.forEach(subcategory => { |
|
78 |
subcategory.charts.forEach(indicator => { |
|
79 |
indicator.indicatorPaths.forEach(indicatorPath => { |
|
80 |
if(indicatorPath.parameters) { |
|
81 |
indicatorPath.parameters = new Map<string, string>(Object.entries(indicatorPath.parameters)); |
|
82 |
} |
|
83 |
if(indicatorPath.filters) { |
|
84 |
// let filters = new Map<string, Map<string, string>>(); |
|
85 |
// Object.entries(indicatorPath.filters).forEach(([key, value]) => { |
|
86 |
// filters.set(key, new Map<string, string>(Object.entries(value))); |
|
87 |
// }); |
|
88 |
indicatorPath.filters = new Map<string, string>(Object.entries(indicatorPath.filters)); |
|
89 |
} |
|
90 |
}); |
|
91 |
}); |
|
92 |
}); |
|
93 |
}); |
|
94 |
}); |
|
95 |
}); |
|
96 |
return stakeholders; |
|
91 |
private formalize(element: any) { |
|
92 |
return HelperFunctions.copy(element); |
|
97 | 93 |
} |
98 | 94 |
} |
Also available in: Unified diff
[Monitor Dashboard]: Complete indicator save and reorder.