npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

banca-movil-schemas

v1.2.61

Published

JSON Schemas compartidos para la banca móvil (CoDi WebApp y Servicios)

Downloads

3

Readme

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 [email protected]
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;
}