* Each response is relayed via Observable onNext(). The interface is
* the same for streaming and atomic requests.
*/
-import { Injectable } from '@angular/core';
-import { Observable, Observer, EventEmitter } from 'rxjs/Rx';
+import { Injectable, EventEmitter } from '@angular/core';
+import { Observable, Observer } from 'rxjs/Rx';
import { EgNetRequest } from './eg-net-request';
import { EgEvent } from './eg-event';
@Injectable()
export class EgNetService {
- public permFailed$: EventEmitter<EgNetRequest>;
- public authExpired$: EventEmitter<EgNetRequest>;
+ permFailed$: EventEmitter<EgNetRequest>;
+ authExpired$: EventEmitter<EgNetRequest>;
// If true, permission failures are emitted via permFailed$
// and the active request is marked as superseded.
- public permFailedHasHandler: Boolean = false;
+ permFailedHasHandler: Boolean = false;
constructor() {
this.permFailed$ = new EventEmitter<EgNetRequest>();
// Variadic params version
request(service: String, method: String, ...params: any[]): Observable<any> {
- return this.request(service, method, params);
+ return this.requestWithParamList(service, method, params);
}
// Array params version
- request(service: String, method: String, params: any[]): Observable<any> {
+ requestWithParamList(service: String,
+ method: String, params: any[]): Observable<any> {
+
var request = new EgNetRequest(service, method, params);
return Observable.create(
private sendRequest(request: EgNetRequest): void {
OpenSRF.Session.transport = OSRF_TRANSPORT_TYPE_WS;
+ var this_ = this;
new OpenSRF.ClientSession(request.service).request({
async : true,
request.observer.complete();
},
onresponse : function(r) {
- this.dispatchResponse(request, r.recv().content());
+ this_.dispatchResponse(request, r.recv().content());
},
- onerror : function(msg) {
- let msg = `${request.method} failed! See server logs.`;
+ onerror : function(errmsg) {
+ let msg = `${request.method} failed! See server logs. ${errmsg}`;
console.error(msg);
request.observer.error(msg);
},
return;
case 'PERM_FAILURE':
- if (permFailedHasHandler) {
+ if (this.permFailedHasHandler) {
console.debug(`EgNet emitting event: ${request.evt}`);
request.superseded = true;
this.permFailed$.emit(request);
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
+import { EgNetService } from '@eg/core/eg-net.service';
@Component({
templateUrl: 'bcsearch.component.html'
})
export class EgBcSearchComponent implements OnInit {
- constructor(private route: ActivatedRoute) {}
- barcode: String '';
+ barcode: String = '';
+ strList: String[] = [];
+
+ constructor(
+ private route: ActivatedRoute,
+ private egNet: EgNetService
+ ) {}
ngOnInit() {
}
this.route.data.subscribe((data: { startup : any }) => {
- console.debug('EgStaff ngOnInit complete');
+ console.debug('EgBcSearch ngOnInit complete');
});
+
+ this.egNet.request(
+ 'open-ils.actor',
+ 'opensrf.system.echo',
+ 'hello', 'goodbye', 'in the middle'
+ ).subscribe(res => this.strList.push(res));
+
+ this.egNet.request(
+ 'open-ils.actor',
+ 'opensrf.system.echo',
+ {textcode : 'NO_SESSION', code: 123, desc: 'test desc'}
+ ).subscribe(
+ x => console.log(x),
+ e => console.log('echo event: ' + e),
+ () => console.log('done');
+ )
+
}
findUser(): void {
-import { CommonModule } from '@angular/common';
-import { NgModule } from '@angular/core';
-import { FormsModule } from '@angular/forms';
+import { CommonModule } from '@angular/common';
+import { NgModule } from '@angular/core';
+import { FormsModule } from '@angular/forms';
+import { EgNetService } from '@eg/core/eg-net.service';
import { EgBcSearchComponent } from './bcsearch.component';
import { EgBcSearchRoutingModule } from './bcsearch-routing.module';
],
imports: [
EgBcSearchRoutingModule,
+ CommonModule,
FormsModule
],
- providers: []
+ providers: [EgNetService]
})
export class EgBcSearchModule {