File

src/app/com/mycompany/normalize/shared/service/global.service.ts

Example

Index

Methods

Constructor

constructor(httpService: HttpService, injector: Injector)

Parameters :
Name Type Optional
httpService HttpService No
injector Injector No

Methods

callMock
callMock(p1: any, p2: any)
Parameters :
Name Type Optional
p1 any No
p2 any No
Returns : Observable<any>
getProgression
getProgression(idAjax: string)

Parameters :
Name Type Optional
idAjax string No
Returns : Subject<any>
ngOnDestroy
ngOnDestroy()

Returns : void
import { Injectable, OnDestroy,Injector } from "@angular/core";
import {ErrorBean,  ErrorCode } from "src/app/com/mycompany/normalize/core/bean/error-bean";
import {HttpService } from 'src/app/com/mycompany/normalize/core/service/http.service';
import { CONTENT_TYPE, PlHttpRequest, PLUnsubscribe, RESPONSE_TYPE  } from 'pl-core-utils-library';
import { environment } from 'src/environments/environment';
import { Observable, Subject } from 'rxjs';
import { CORE_TYPE_EVENT } from 'src/app/com/mycompany/normalize/core/type/type.event';
import { PlCoreUtils ,TYPE_EVENT_NETWORK} from 'pl-core-utils-library';
import { AuthService } from 'src/app/com/mycompany/normalize/core/service/auth.service';
 /**
 * @author l.piciollo
 * classe di servizio per tutta l'applicazione, in questa classe ci saranno variabili comuni a tutti i componenti o chiamate
 * al BE di tipo generico, non vincolante ad un modulo.. come ad esempio chiamate al BE per risalire a delle tipologiche
 * che verranno poi distribuite in tutto il contesto applicavo.
 * vengono registrati gli eventi lanciati dalla parte core, per evitare di manipolare direttamente il core.
 */
@Injectable({
  providedIn: "root"
})
/**
 * @author l.piciollo
 * annotazione custom, indica di distrugere tutti gli osservatori eventualmente attivi, alla distruzione della classe
 * in ingresso è possibile passare la lista degli osservatoti che devono rimanere attivi
 */
@PLUnsubscribe()  
export class GlobalService implements OnDestroy {

/***************************************************************************************************************************** */
  constructor(private httpService: HttpService, private injector: Injector ) {
     
    /**
     * @author l.piciollo
     * registrazione all'intercettore di interruzione di chiamata ajax.
     */
      PlCoreUtils.Broadcast().listenEvent(TYPE_EVENT_NETWORK.PL_BREACK_NET, (breack) => {
        console.log(breack.detail);
      })
    /**
     * @author l.piciollo
     * registrazione all'intercettore di errore per servire la richiesta di apertura modale di errore.
     */
      PlCoreUtils.Broadcast().listenEvent(CORE_TYPE_EVENT.CORE_ERROR_SERVICE_DIALOG, (error)=>{
        console.log(error.detail);
      });
     /**
      * @author l.piciollo
      * registrazione all'intercettore di errore per servire la richiesta di redirect
      */
      PlCoreUtils.Broadcast().listenEvent(CORE_TYPE_EVENT.CORE_ERROR_SERVICE_REDIRECT, (error)=>{
        console.log(error.detail);
      }); 
      /**
       * @author l.piciollo
       * registrazione all'evento di intercettazione della cache, da parte delle chiamate ajax.. in caso viene rilevato del contenuto in cache,
       * viene catturato in questa funzione.. qui è possibile gestirne in autonomia la casistica
       */
      PlCoreUtils.Broadcast().listenEvent(CORE_TYPE_EVENT.CORE_HTTP_AJAX_CACHE, (url) => {
        console.log("PlCoreUtils cache found for : {0}".format(url.detail));
      })  
        
       
      /**
       * @author l.piciollo
       * registrazione all'evento di errore da parte delle chiamate ajax.. in caso viene rilevato qualsiasi errore,
       * viene catturato in questa funzione.. qui è possibile gestirne in autonomia la casistica
       */
        PlCoreUtils.Broadcast().listenEvent(CORE_TYPE_EVENT.CORE_HTTP_AJAX_ERROR, (error) => {
          
              console.log(error.detail);
               
          })
          /**
           * @author l.piciollo
           * ascoltatore di evento di errore generico, qui è possibile gestire in autonomia il suo flusso
           */
          PlCoreUtils.Broadcast().listenEvent(CORE_TYPE_EVENT.CORE_ERROR_SERVICE, (errorBean) => {
            console.error("PlCoreUtils error found >> ", errorBean);
          });  
  }
/***************************************************************************************************************************** */
  
  ngOnDestroy(): void {
    try {
       console.log("GlobalService destroyed ... ")
    } catch (err) {
      throw new  ErrorBean(err.message,  ErrorCode.SYSTEMERRORCODE);
    }
  }
/***************************************************************************************************************************** */

  /**
   * @author l.piciollo
   * passando in ingresso l'ajaxToken, è possibile ricevere il 
   * subject per sottoscriversi e ricevere in tuntime i valori di stato della chiamata
   * @param idAjax 
   */
  getProgression(idAjax:string):Subject<any> { 
      try {
        return this.httpService.TAILAJXCALL(idAjax);
      }
      catch (e) { 
        throw new ErrorBean(e.message)
      }
   }
  

   /**
   * @author l.piciollo
   * esempio di chiamata http
   */
  callMock(p1: any, p2: any): Observable<any> {
    return new Observable<any>(obs => {
 
      let plHttpRequest: PlHttpRequest = new PlHttpRequest(
                            environment.http.api.mock , 
                            Object({ api: "api", files: "files" }),
                            Object({ api: p1, files: p2 }), 
                            null);
                            
      this.httpService.GETFILE(plHttpRequest, RESPONSE_TYPE.ARRAYBUFFER, null, null).subscribe(sb => {
        obs.next(sb);
        obs.complete()
      }, error => {
        obs.error(error);
      }, () => { })
    }) 
  }
}

result-matching ""

    No results matching ""