Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(yape): technical challenge - transaction #413

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

jeanpier05
Copy link

Contexto

Se esta resolviendo el Yape Code Challenge
Problem

Guía de Instalación

  1. Contenedor
  • Comienza clonando este proyecto en tu estación de trabajo.
    git clone https://github.com/jeanpier05/app-nodejs-codechallenge.git

  • Iniciar contenedores
    docker-compose up

  • Asegurarse todo esté activo

App Screenshot

  1. Iniciar microservicio anti-fraude
  • Acceder a la carpeta anti-fraud-ms

  • Instalación
    $ npm install

  • Renombrar .env.template a .env

  • Ejecutar aplicación

# watch mode
$ npm run start:dev
  1. Iniciar microservicio transaction
  • Acceder a la carpeta transaction-ms

  • Instalación
    $ npm install

  • Renombrar .env.template a .env

  • Ejecutar aplicación

# watch mode
$ npm run start:dev
  1. Iniciar api/graphql
  • Acceder a la carpeta "api"

  • Instalación
    $ npm install

  • Renombrar .env.template a .env

  • Ejecutar aplicación

# watch mode
$ npm run start:dev
mutation {
    createTransaction(createTransactionData: 
      { 
        accountExternalIdDebit: "b1178d22-70d3-4d29-b19c-7a5f06523a19", 
        accountExternalIdCredit: "29ba16ca-9ffd-49f0-aa44-823a2a4ddbfd", 
        tranferTypeId: 2, 
        value: 900
      }) {
      transactionExternalId,
      transactionType {
        transactionTypeName
      },
      transactionStatus {
        transactionStatusName
      },
      value,
      createdAt
    }
}
  • Ejemplo de query para consulta de transacción
query {
  transaction(transactionExternalId: "e3a06f7b-d086-4ad5-b547-6799d5bd9aab") {
    transactionExternalId
    transactionType {
      transactionTypeName
    }
    transactionStatus {
      transactionStatusName
    }
    value
    createdAt
  }
}

Prueba - Flujo de Transacción

  • Crear transacción. Registra con estado 'pending'

App Screenshot

  • Mensaje recibido por ms anti-fraude: transacción pendiente. Solo evalúa regla de monto

App Screenshot

  • Mensaje recibido por ms transacción: transacción 'approved' o 'rejected'. Actualiza estado final de transacción

App Screenshot

  • Consulta a consola postgres database

App Screenshot

  • Consulta en graphql

App Screenshot

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant