banca-movil-schemas
TypeScript icon, indicating that this package has built-in type declarations

1.2.61 • Public • Published

Banca Móvil y CoDi SPEI

Este repositorio contiene las definiciones para los servicios de Banca Móvil y CoDi SPEI, estos estan escritos en OpenAPI 3 y a su vez se provee de la definición de interfaces para ser usadas en TypeScript, tanto para el Front como el Middleware.


Documentación

La documentación OpenAPI se encuentra disponible en los siguientes links:

https://multiva-codi.gitlab.io/banca-movil-schemas/

Esta se actualizará cada que se haga un cambio en este repositorio.


Ejecución de Mocks

Los mocks de servicios pueden ser usados para hacer la integración con el front end sin tener que pegarle al servicio real, para ejecutarlos hay que correr:

npm run start

Esto ejecutará los mocks en el puerto 3051

Las rutas expuestas son:

Ruta descripción
/docs Redoc OpenAPI
/swagger Swagger
/ Panel mocks
* El resto de los paths son los de los servicios, con su método correspondiente

Desde el panel de mocks se puede configurar la respuesta que va a retornar cada servicio cuando sea invocado, no es necesario ejecutar el proyecto nuevamente cuando se cambia cada respuesta (switch):

Ejemplo configuración: Panel Mocks

Ejemplo petición: Petición


Subir a dependencia a Nexus:

Para esto hay que registrar estas 2 variables de entorno:

export NPM_NEXUS_PUBLISHER_EMAIL=admin@example.org
export NPM_NEXUS_PUBLISHER_AUTH=YWRtaW46YWRtaW4xMjM=

cambiando el correo y la autenticación de ser necesario, la autenticación esta dada por: base64(user:pass)

una vez hecho esto solo ejecutar:

Para subir al nexus de multiva:

npm run publish:nexus-mtv

para subirlo al nexus local:

npm run publish:nexus-local

Validando Schema con ajv

Para usar los JSON Schema dentro de los servicios, solo hay que instalar este repositorio desde NPM y ya una vez instalado podemos importarlo en Typescript mediante la instrucción:

import * as schemas from 'banca-movil-schemas';

Una vez ya importados todos, podemos hacer la validación de un request con ajv, aquí un ejemplo:

const ajv = new Ajv({allErrors: true});
const validate = ajv.compile(schemas.requests.RegistroInicialRequest);
const valid = validate(req.body);
 
if(valid){
  // OK
} else {
    // NOT OK
    // Errors are on validate.errors
}
 

TypeScript Interfaces:

Estos se ubican en el archivo /types/all.d.ts de este repositorio, estos se deben de regenerar cada que se hace un cambio a algún servicio o a algún modelo de datos.

Para generar de nuevo estos tipos solo hay que ejecutar:

npm run gentypes

Esto creará el directorio ./types si no existe y ahí generará/actualizará el archivo all.d.ts

Ejemplo de interfaz creada a partir de un JSONSchema:

JSONSchema

{
    "type": "object",
    "title": "Deviceinfo",
    "description": "Información del dispositivo Android/iOS en el que se está ejecutando la APP",
    "required": [
        "osName",
        "osVersion",
        "manufacturer",
        "model"
    ],
    "properties": {
        "osName": {
            "type": "string",
            "description": "Sistema Operativo del dispositivo del usuario. Solo existen dos posibles valores para este campo: “android” o “ios”.",
            "maxLength": 50,
            "pattern": "^(.*)$"
        },
        "osVersion": {
            "type": "string",
            "description": "Versión del sistema operativo del dispositivo.",
            "pattern": "^(.*)$"
        },
        "manufacturer": {
            "type": "string",
            "description": "Fabricante del dispositivo del usuario.",
            "pattern": "^(.*)$"
        },
        "model": {
            "type": "string",
            "description": "Modelo del dispositivo del usuario.",
            "pattern": "^(.*)$"
        }
    }
}

TypeScript Interface:

/**
 * Información del dispositivo Android/iOS en el que se está ejecutando la APP
 */
export interface Deviceinfo {
  /**
   * Sistema Operativo del dispositivo del usuario. Solo existen dos posibles valores para este campo: “android” o “ios”.
   */
  osName: string;
  /**
   * Versión del sistema operativo del dispositivo.
   */
  osVersion: string;
  /**
   * Fabricante del dispositivo del usuario.
   */
  manufacturer: string;
  /**
   * Modelo del dispositivo del usuario.
   */
  model: string;
  [k: string]: any;
}

Readme

Keywords

none

Package Sidebar

Install

npm i banca-movil-schemas

Weekly Downloads

2

Version

1.2.61

License

ISC

Unpacked Size

2.53 MB

Total Files

281

Last publish

Collaborators

  • luisegr