import { EgBaseComponent } from './base.component';
import { EgBaseRoutingModule } from './base-routing.module';
import { WelcomeComponent } from './welcome.component';
-import { EgIdlService } from '@eg/core/eg-idl.service';
-import { EgNetService } from '@eg/core/eg-net.service';
-import { EgAuthService } from '@eg/core/eg-auth.service';
+
+// Import and 'provide' globally required services.
+import { EgEventService } from '@eg/core/eg-event.service';
+import { EgIdlService } from '@eg/core/eg-idl.service';
+import { EgNetService } from '@eg/core/eg-net.service';
+import { EgAuthService } from '@eg/core/eg-auth.service';
@NgModule({
declarations: [
NgbModule.forRoot()
],
providers: [
+ EgEventService,
EgIdlService,
EgNetService,
EgAuthService
export class EgBaseModule {
constructor(router: Router) {
+ /*
console.debug('Routes: ',
JSON.stringify(router.config, undefined, 2));
+ */
}
}
import { Injectable, EventEmitter } from '@angular/core';
import { Observable } from 'rxjs/Rx';
import { EgNetService } from './eg-net.service';
-import { EgEvent } from './eg-event';
+import { EgEventService, EgEvent } from './eg-event.service';
import { EgIdlService, EgIdlObject } from './eg-idl.service';
class EgAuthUser {
return this.activeUser.authtime
};
- constructor(private egNet: EgNetService) {
- }
+ constructor(
+ private egEvt: EgEventService,
+ private egNet: EgNetService
+ ) {}
login(args: EgAuthArgs, ops?: Object): Promise<any> {
return new Promise<any>((resolve, reject) => {
this.egNet.request('open-ils.auth', 'open-ils.auth.login', args)
.subscribe(res => {
- let evt = EgEvent.parse(res);
+ let evt = this.egEvt.parse(res);
if (evt) {
if (evt.textcode == 'SUCCESS') {
this.handleLoginOk(args, evt);
--- /dev/null
+import { Injectable } from '@angular/core';
+
+export class EgEvent {
+ code : Number;
+ textcode : String;
+ payload : any;
+ desc : String;
+ debug : String;
+ note : String;
+ servertime : String;
+ ilsperm : String;
+ ilspermloc : Number;
+ success : Boolean = false;
+
+ toString(): String {
+ let s = `Event: ${this.code}:${this.textcode} -> ${this.desc}`;
+ if (this.ilsperm)
+ s += ` ${this.ilsperm}@${this.ilspermloc}`;
+ if (this.note)
+ s += `\n${this.note}`;
+ return s;
+ }
+}
+
+@Injectable()
+export class EgEventService {
+
+ /**
+ * Returns an EgEvent if 'thing' is an event, null otherwise.
+ */
+ parse(thing: any): EgEvent {
+
+ // All events have a textcode
+ if (thing && typeof thing == 'object' && 'textcode' in thing) {
+
+ let evt = new EgEvent();
+
+ ['textcode','payload','desc','note','servertime','ilsperm']
+ .forEach(field => { evt[field] = thing[field]; });
+
+ evt.debug = thing.stacktrace;
+ evt.code = new Number(thing.code);
+ evt.ilspermloc = new Number(thing.ilspermloc);
+ evt.success = thing.textcode == 'SUCCESS';
+
+ return evt;
+ }
+
+ return null;
+ }
+}
+
+
+++ /dev/null
-
-export class EgEvent {
- code : Number;
- textcode : String;
- payload : any;
- desc : String;
- debug : String;
- note : String;
- servertime : String;
- ilsperm : String;
- ilspermloc : Number;
- success : Boolean = false;
-
- toString(): String {
- let s = `Event: ${this.code}:${this.textcode} -> ${this.desc}`;
- if (this.ilsperm)
- s += ` ${this.ilsperm}@${this.ilspermloc}`;
- if (this.note)
- s += `\n${this.note}`;
- return s;
- }
-
- /**
- * Returns an EgEvent if 'thing' is an event, null otherwise.
- */
- public static parse(thing: any): EgEvent {
-
- // All events have a textcode
- if (thing && typeof thing == 'object' && 'textcode' in thing) {
-
- let evt = new EgEvent();
-
- ['textcode','payload','desc','note','servertime','ilsperm']
- .forEach(field => { evt[field] = thing[field]; });
-
- evt.debug = thing.stacktrace;
- evt.code = new Number(thing.code);
- evt.ilspermloc = new Number(thing.ilspermloc);
- evt.success = thing.textcode == 'SUCCESS';
-
- return evt;
- }
-
- return null;
- }
-}
-
*/
import { Injectable, EventEmitter } from '@angular/core';
import { Observable, Observer } from 'rxjs/Rx';
-import { EgEvent } from './eg-event';
+import { EgEventService, EgEvent } from './eg-event.service';
// Global vars from opensrf.js
// These are availavble at runtime, but are not exported.
// and the active request is marked as superseded.
permFailedHasHandler: Boolean = false;
- constructor() {
+ constructor(
+ private egEvt: EgEventService
+ ) {
this.permFailed$ = new EventEmitter<EgNetRequest>();
this.authExpired$ = new EventEmitter<EgNetRequest>();
}
// Relay response object to the caller for typical/successful responses.
// Applies special handling to response events that require global attention.
private dispatchResponse = function(request, response) {
- request.evt = EgEvent.parse(response);
+ request.evt = this.egEvt.parse(response);
if (request.evt) {
switch(request.evt.textcode) {