LP#626157 Ang2 experiments / service
authorBill Erickson <berickxx@gmail.com>
Sun, 19 Nov 2017 20:19:20 +0000 (15:19 -0500)
committerBill Erickson <berickxx@gmail.com>
Mon, 11 Dec 2017 17:39:51 +0000 (12:39 -0500)
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Open-ILS/webby-src/src/app/core/eg-net-request.ts
Open-ILS/webby-src/src/app/core/eg-net.service.ts
Open-ILS/webby-src/src/app/staff/circ/patron/bcsearch/bcsearch.component.html
Open-ILS/webby-src/src/app/staff/circ/patron/bcsearch/bcsearch.component.ts
Open-ILS/webby-src/src/app/staff/circ/patron/bcsearch/bcsearch.module.ts
Open-ILS/webby-src/src/index.html

index 428d59a..e2c9179 100644 (file)
@@ -1,6 +1,7 @@
 import { EgEvent } from './eg-event';
+import { Observer } from 'rxjs/Rx';
 
-public class EgNetRequest {
+export class EgNetRequest {
     service    : String;
     method     : String;
     params     : any[];
index c272c67..8cc6b17 100644 (file)
@@ -15,8 +15,8 @@
  * 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';
 
@@ -27,12 +27,12 @@ declare var OpenSRF, OSRF_TRANSPORT_TYPE_WS;
 @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>();
@@ -41,11 +41,13 @@ export class EgNetService {
 
     // 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(
@@ -58,6 +60,7 @@ export class EgNetService {
 
     private sendRequest(request: EgNetRequest): void {
         OpenSRF.Session.transport = OSRF_TRANSPORT_TYPE_WS;
+        var this_ = this;
 
         new OpenSRF.ClientSession(request.service).request({
             async  : true,
@@ -70,10 +73,10 @@ export class EgNetService {
                     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);
             },
@@ -102,7 +105,7 @@ export class EgNetService {
                     return;
 
                 case 'PERM_FAILURE':
-                    if (permFailedHasHandler) {
+                    if (this.permFailedHasHandler) {
                         console.debug(`EgNet emitting event: ${request.evt}`);
                         request.superseded = true;
                         this.permFailed$.emit(request);
index a4409eb..1f55cb1 100644 (file)
@@ -1,3 +1,8 @@
 <h2 i18n="Barcode Search Header">Search for Patron by Barcode</h2>
 
 <span i18n>Barcode:</span><input type='text' [ngModel]='barcode'/>
+
+<br/>
+<ul>
+    <li *ngFor="let str of strList">{{str}}</li>
+</ul>
index 6a99ced..958f522 100644 (file)
@@ -1,14 +1,20 @@
 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() {
 
@@ -19,8 +25,25 @@ export class EgBcSearchComponent implements OnInit {
         }
 
         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 {
index a7c92b5..af67ff1 100644 (file)
@@ -1,6 +1,7 @@
-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';
 
@@ -10,9 +11,10 @@ import { EgBcSearchRoutingModule } from './bcsearch-routing.module';
   ],
   imports: [
     EgBcSearchRoutingModule,
+    CommonModule,
     FormsModule
   ],
-  providers: []
+  providers: [EgNetService]
 })
 
 export class EgBcSearchModule { 
index fb35cca..3bb7d5f 100644 (file)
@@ -10,5 +10,8 @@
 </head>
 <body>
   <eg-root></eg-root>
+  <script src="/js/dojo/opensrf/JSON_v1.js"></script>
+  <script src="/js/dojo/opensrf/opensrf.js"></script>
+  <script src="/js/dojo/opensrf/opensrf_ws.js"></script>
 </body>
 </html>