import { Component } from '@angular/core'; import {ActivatedRoute, Router} from "@angular/router"; import {Subscriber, Subscription} from "rxjs"; import {properties} from "../../../../environments/environment"; import {Meta, Title} from "@angular/platform-browser"; import {RouterHelper} from "../../utils/routerHelper.class"; import {UserManagementService} from "../../services/user-management.service"; import {HttpClient} from "@angular/common/http"; @Component({ selector: 'deposit', template: `
{{depositMessage}}
` }) export class DepositComponent { public subscriptions: Subscription[] = []; public showLoading: boolean = false; public message: string = ""; public depositMessage: string = ""; public source: string = ""; public code: string = ""; public gotToken: boolean = false; public routerHelper:RouterHelper = new RouterHelper(); depositService = "http://localhost:8182/"; constructor(private route: ActivatedRoute, private _router: Router, private userManagementService: UserManagementService, private _meta: Meta, private _title: Title, private _http: HttpClient) {} ngOnInit() { var description = "Openaire, Deposit, Zenodo"; this.updateTitle("Connect with Zenodo"); this.updateDescription(description); this.updateUrl( properties.domain + properties.baseLink + this.route.url); this.subscriptions.push(this.route.queryParams.subscribe(params => { this.gotToken = false; this.code = params['code']; if (this.code) { this.getToken(); } else { this.message = "No code provided to authorize OpenAIRE to deposit in your Zenodo account. Please try again!" } })); } ngOnDestroy() { this.subscriptions.forEach(subscription => { if (subscription instanceof Subscriber) { subscription.unsubscribe(); } }); } public getToken() { this.showLoading = true; console.log(this.code) // this._http.get(properties.utilsService + "/deposit/getToken?code=" + this.code).subscribe(res => { this._http.get(this.depositService + "deposit/zenodo/getTokenByCode?code=" + this.code).subscribe(res => { console.log(res) res["code"] = this.code this.message = "
Thank you for authorizing OpenAIRE to use your Zenodo account for deposit!
" + "
This window will automatically close and you will be ready to deposit.
"; if(window && window.opener) { window.opener.postMessage(res,"*"); window.close(); } setTimeout(() => { this.message += "
If this window does not close automatically, please close it and continue!
"; }, 3000); }) } private updateTitle(title: string) { this._title.setTitle(title); this._meta.updateTag({content: title}, "property='og:title'"); } private updateDescription(description: string) { this._meta.updateTag({content: description}, "name='description'"); this._meta.updateTag({content: description}, "property='og:description'"); } private updateUrl(url: string) { this._meta.updateTag({content: url}, "property='og:url'"); } }