1.0.11 • Published 2 years ago

@nclabs/g5-senior-client v1.0.11

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

g5-senior-client

Biblioteca auxiliar para requisições aos webservices da Senior Sistemas (G5).

  • Facilita a indicação das cedenciais.
  • Efetua o tratamento do retorno, lançando como exceção o parâmetro de retorno 'ErroExecucao'
  • Permite efetuar a padronização do retorno de parâmetros do tipo tabela

Instalação

  
npm i @nclabs/g5-senior-client
  

Métodos

AssinaturaParâmetros (types)Descrição
registry(credential: G5Credential)G5CredentialAtribui as credenciais que serão usadas nas requisições ao G5
config(config: G5Config)G5ConfigConfigura o acesso ao G5
request(request: G5Request, credential?: G5Credential)G5Request, G5CredentialRetorna um Observable da requisição ao webservice e executa quando subscrito. Quando informadas as credenciais no método, desconsidera o registro para a requisição e utiliza as credenciais informadas.
asyncRequest(request: G5Request, credential?: G5Credential)G5Request, G5CredentialRetorna uma Promise da requisição ao webservice. Quando informadas as credenciais no método, desconsidera o registro para a requisição e utiliza as credenciais informadas.
fixTableIndex(response: JSONObject)Normaliza os atributos de retorno do tipo tabela para sempre possuírem índice.

Types

G5Credential

/**
 * Credenciais para acesso dos webservices da G5
 * 
 */
G5Credential = {
  /**
   * Usuário do G5. Não informar quando a encriptação for = 3
   */
  user?: string;
  /**
   * Senha do usuário na G5 ou token quando a encriptação for = 3
   */
  password: string;
  /**
   * Encriptação. Quando não informada assume 0.
   */
  encryption?: string
}

G5Config

G5Config = {
  /**
   * 
   * URL base para as requisições (sem o nome do serviço).
   * 
   * Ex.: http://servidor:1234/g5-senior-services/modulo_Sync
   * 
   * Opcionalmente o wsdl completo pode ser enviado em cada requisição.
   * 
   */
   baseUrl: string;
}

G5Request

/**
 * Requisição para os webservices da G5
 * 
 */
 G5Request = {
   /**
    * Endereço completo do wsdl do serviço, exatamente como 
    * definido na documentação do G5 Senior.
    * Quando informado, sobrepoe a url base da configuração e 
    * o atributo serviço, 
    * utilizando obrigatóriamente o wsdl informado
    */
  wsdl?: string;
  /**
   * Nome do webservice G5. Não utilizado quando informado o wsdl.
   * 
   * Pode receber o nome do serviço com "." ou "_". 
   * Ex.: `com.senior.cad...`  e `com_senior_cad...` são equivalentes.
   */
  service?: string;
  /**
   * Nome da porta do webservice no G5
   */
  port: string;  
  /**
   * Parâmetros de execuçaõ do webservice.
   */
  parameters: object
}

Detalhes

Registrar Credenciais

Registra as credenciais que serão utilizadas nas requisições.

Opcionalmente, as credenciais podem ser enviadas diretamente na requisição.

import { G5Credential, G5SeniorClient } from "g5-senior-client";

/**
 *  Credential
 */
const credential: G5Credential = {
  user: "userName",
  password: "my-pass",
  encryption: "0"
}

G5SeniorClient.registry(credential);

Config

Permite definir a URL base para as requisições (sem o nome do serviço).

Ex.: http://servidor:1234/g5-senior-services/modulo_Sync

Opcionalmente o wsdl completo pode ser enviado em cada requisição no atributo wsdl, omitindo o service.

import { G5Config, G5SeniorClient } from "g5-senior-client";

/**
 * Base URL
 */
const config: G5Config = {
  baseUrl: "http://servidor:1234/g5-senior-services/modulo_Sync"
}
G5SeniorClient.config(config);

Parâmetros da Requisição

O atributo service pode receber o nome do serviço com "." ou "_". Ex.: com.senior.cad... e com_senior_cad... são equivalentes.

Opcionalmente pode-se enviar o wsdl completo (exatamente como indicado na documentação Senior), nesse caso o atributo service é desconsiderado. Exemplo no item Requisição sem registro prévio

import { G5Request } from "g5-senior-client";

/**
 * Request Params
 */
const request: G5Request = {
  service: "com.senior...",
  port: "Gravar...",
  parameters: {
    codEmp: "1",
    codFil: "1",
    others: "...."
  },
};

Requisição (Rxjs)

import { G5SeniorClient } from "g5-senior-client";

/**
 * Request
 */
G5SeniorClient.request(request).subscribe({
  // Handle Response
  next: (res: any) => console.log(res),
  // Handle Error
  error: (err: any) => console.log(err),
});

Requisição (Promise)

import { G5SeniorClient } from "g5-senior-client";

/**
 * Async Request
 */
G5SeniorClient.asyncRequest(request).then((res: any) => {
  // Handle Response
  console.log(res);
}).catch((err: any) => 
  // Handle Error
  console.log(err)
)

Passando credenciais e wsdl diretamente na requisição

import { G5Request, G5SeniorClient } from "g5-senior-client";


/**
 * Request
 */
const request: G5Request = {
  wsdl: "http://servidor:1234/g5-senior-services/modulo_Synccom.senior...",
  port: "Gravar...",
  parameters: {
    codEmp: "1", 
    codFil: "1",
    others: "...."
  },
};
/**
 *  Credential
 */
const credential: G5Credential = {
  user: "userName",
  password: "my-pass",
  encryption: "0"
}
/**
 * Request
 */
G5SeniorClient.request(request, credential).subscribe({
  // Handle Response
  next: (res: any) => console.log(res),
  // Handle Error
  error: (err: any) => console.log(err),
});

Padronização do retorno de parâmetros do tipo tabela

Os parâmetros de retorno do tipo tabela apresentam um objeto quando contem apenas 1 registro e um array de objetos quando possuem mais de um registro.

Este método ajusta o retorno para que os parâmetros do tipo tabela sejam sempre um array com índice.

  
// res
//
// {
//   codEmp: "1",
//   usuarios: {             <<<<<   Sem índice quado possui apenas 1 elemento
//     codUsu: "2",
//     nomUsu: "John Doe"
//   } 
// }

/**
 * Fix table
 */
const fixedRes = G5SeniorClient.fixTableIndex(res);
  
// fixedRes
//
// {
//   codEmp: "1",
//   usuarios: [             <<<<<   Normalizado para sempre ter indice
//     {
//       codUsu: "2",
//       nomUsu: "John Doe"
//     }
//   ] 
// } 
  

1.0.9

2 years ago

1.0.8

2 years ago

1.0.11

2 years ago

1.0.10

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago

0.0.4-alpha

2 years ago

0.0.3-alpha

2 years ago

0.0.2-alpha

2 years ago

0.0.1-alpha

2 years ago

0.0.1

2 years ago