[Trunk|Library]: 1. Add Curator Class and Service for curated by functionality.2. User Component: change main component default value to true.(It exists also on Angular7 branch).
git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-services-library/trunk/ng-openaire-library/src/app@55728 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
parent
d358607977
commit
3f189ff1b6
|
@ -0,0 +1,48 @@
|
||||||
|
import {Injectable} from "@angular/core";
|
||||||
|
import {HttpClient, HttpHeaders} from "@angular/common/http";
|
||||||
|
import {BehaviorSubject, Observable} from "rxjs";
|
||||||
|
import {Curator} from "../../utils/entities/CuratorInfo";
|
||||||
|
import {EnvProperties} from "../../utils/properties/env-properties";
|
||||||
|
import {COOKIE} from "../../login/utils/helper.class";
|
||||||
|
|
||||||
|
@Injectable()
|
||||||
|
export class CuratorService {
|
||||||
|
|
||||||
|
private curatorsSubject: BehaviorSubject<Curator[]> = new BehaviorSubject([]);
|
||||||
|
|
||||||
|
constructor(private http: HttpClient) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public initCurators(properties: EnvProperties, url: string): void {
|
||||||
|
this.http.get<Curator[]>((properties.useCache) ? (properties.cacheUrl + encodeURIComponent(url)) : url).
|
||||||
|
subscribe((curators) => {
|
||||||
|
this.curatorsSubject.next(curators);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public get curators(): Observable<Curator[]> {
|
||||||
|
return this.curatorsSubject.asObservable();
|
||||||
|
}
|
||||||
|
|
||||||
|
public updateCurator(url: string, curator: Curator) {
|
||||||
|
this.http.post<Curator>(url, {curator: curator}, this.getAuthOptions()).subscribe((res) => {
|
||||||
|
let curators = this.curatorsSubject.value;
|
||||||
|
curator.id = null;
|
||||||
|
curators.push(curator);
|
||||||
|
this.curatorsSubject.next(curators);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public getCurator(properties: EnvProperties, url: string): Observable<Curator> {
|
||||||
|
return this.http.get<Curator>((properties.useCache) ? (properties.cacheUrl + encodeURIComponent(url)) : url);
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO remove and use CustomOptions.getAuthOptions()
|
||||||
|
private getAuthOptions(): any {
|
||||||
|
const httpOptions = {
|
||||||
|
headers: new HttpHeaders({
|
||||||
|
'X-XSRF-TOKEN': COOKIE.getCookie(COOKIE.cookieName_id),
|
||||||
|
}), withCredentials: true
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
|
@ -25,7 +25,7 @@ export class UserComponent {
|
||||||
public routerHelper:RouterHelper = new RouterHelper();
|
public routerHelper:RouterHelper = new RouterHelper();
|
||||||
public loginUrl;
|
public loginUrl;
|
||||||
properties:EnvProperties;
|
properties:EnvProperties;
|
||||||
@Input() mainComponent = false;
|
@Input() mainComponent = true;
|
||||||
|
|
||||||
constructor( private router: Router,
|
constructor( private router: Router,
|
||||||
private route: ActivatedRoute,
|
private route: ActivatedRoute,
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
export class Curator {
|
||||||
|
|
||||||
|
id: string = null;
|
||||||
|
email: string;
|
||||||
|
name: string;
|
||||||
|
surname: string;
|
||||||
|
affiliations: Affiliation[];
|
||||||
|
photo: string;
|
||||||
|
bio: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Affiliation {
|
||||||
|
|
||||||
|
name: string;
|
||||||
|
logoUrl: string;
|
||||||
|
websiteUrl: string;
|
||||||
|
}
|
Loading…
Reference in New Issue