]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/eg2/src/app/resolver.service.ts
LP2042879 Shelving Location Groups Admin accessibility
[Evergreen.git] / Open-ILS / src / eg2 / src / app / resolver.service.ts
1 import {Injectable} from '@angular/core';
2 import {Router, Resolve, RouterStateSnapshot,
3     ActivatedRouteSnapshot} from '@angular/router';
4 import {IdlService} from '@eg/core/idl.service';
5 import {OrgService} from '@eg/core/org.service';
6 import {LocaleService} from '@eg/core/locale.service';
7 import {PcrudService} from '@eg/core/pcrud.service';
8
9 // For locale application
10 declare let OpenSRF;
11
12 @Injectable()
13 export class BaseResolver implements Resolve<Promise<void>> {
14
15     constructor(
16         private router: Router,
17         private idl: IdlService,
18         private org: OrgService,
19         private pcrud: PcrudService,
20         private locale: LocaleService
21     ) {}
22
23     /**
24      * Loads pre-auth data common to all applications.
25      * No auth token is available at this level.  When needed, auth is
26      * enforced by application/group-specific resolvers at lower levels.
27      */
28     resolve(
29         route: ActivatedRouteSnapshot,
30         state: RouterStateSnapshot): Promise<void> {
31
32         OpenSRF.locale = this.locale.currentLocaleCode();
33
34         this.idl.parseIdl();
35         this.pcrud.setAuthoritative();
36
37         return this.org.fetchOrgs();
38     }
39 }