Skip to content

Commit 9ea7184

Browse files
committed
Update configuration.component.ts
1 parent 621bbf2 commit 9ea7184

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

cloudapp/src/app/configuration/configuration.component.ts

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import { Component, OnInit, Injectable } from '@angular/core';
22
import { AppService } from '../app.service';
33
import { FormBuilder, FormGroup } from '@angular/forms';
4-
import { CloudAppConfigService, CloudAppEventsService, CloudAppRestService } from '@exlibris/exl-cloudapp-angular-lib';
4+
import { CloudAppConfigService, CloudAppEventsService, CloudAppRestService, InitData } from '@exlibris/exl-cloudapp-angular-lib';
55
import { ToastrService } from 'ngx-toastr';
66
import { CanActivate, Router } from '@angular/router';
7-
import { Observable } from 'rxjs';
8-
import { map, flatMap } from 'rxjs/operators';
7+
import { Observable, iif, of } from 'rxjs';
8+
import { map, switchMap } from 'rxjs/operators';
99
import { ErrorMessages } from '../static/error.component';
1010

1111
@Component({
@@ -67,11 +67,14 @@ export class ConfigurationGuard implements CanActivate {
6767
canActivate(): Observable<boolean> {
6868
return this.eventsService.getInitData().pipe(
6969
/* Until primaryId is available: */
70-
map( data => `first_name~${encodeURIComponent(data.user.firstName.replace(' ', '+'))}+AND+last_name~${encodeURIComponent(data.user.lastName.replace(' ','+'))}`),
71-
flatMap( query => this.restService.call(`/users?q=${query}`)),
72-
map( resp => resp.user[0].primary_id ),
73-
// map( data => data.user.primaryId ),
74-
flatMap( primaryId => this.restService.call(`/users/${primaryId}`)),
70+
switchMap(data => iif(() =>
71+
data.user.primaryId==null,
72+
this.restService.call(`/users?q=${query(data)}`).pipe(
73+
map( resp => resp.user[0].primary_id )
74+
),
75+
of(data.user.primaryId)
76+
)),
77+
switchMap( primaryId => this.restService.call(`/users/${primaryId}`)),
7578
map( user => {
7679
if (!user.user_role.some(role=>role.role_type.value=='221')) {
7780
this.router.navigate(['/error'],
@@ -83,3 +86,6 @@ export class ConfigurationGuard implements CanActivate {
8386
);
8487
}
8588
}
89+
90+
const query = (data: InitData) => `first_name~${q(data.user.firstName)}+AND+last_name~${q(data.user.lastName)}`;
91+
const q = val => encodeURIComponent(val.replace(' ', '+'));

0 commit comments

Comments
 (0)