Layer-api-cuentas-aheeva-service

De Plataforma COA Crowd
Saltar a: navegación, buscar

El objetivo de este microservicio es almacenar y gestionar cuentas de Aheeva genéricas para que puedan ser consumidas por el widget de Aheeva. Para almacenar una cuenta se debe agregar su usuario y contraseña. es todo lo que se necesita para dar de alta una nueva cuenta

Para mayor informacion sobre aheeva puedes visitar su sitio oficial https://www.aheeva.com/

Bases de datos

El servicio cuenta con dos tablas para la administración de las cuentas

En tabla cuentas_aheeva se almacena las credenciales de las cuentas y la tabla cuenta con los siguientes datos:

  • usuario

Es el usuario correspondiente que se utilizará para realizar el inicio de sesión a través de la librería de aheeva o bien directamente en la plataforma

  • contrasenia

Es la contraseña correspondiente que se utilizará para realizar el inicio de sesión a través de la librería de aheeva o bien directamente en la plataforma

  • task_uuid

Cuando la cuenta es solicitada a mediante el widget, en este campo se coloca el uuid de la tarea donde la cuenta de aheeva fue solicitado, además existe un endpoint que libera la cuenta buscando la únicamente por el task_uuid

  • activo

Indica si la cuenta está activa o no, de no estarlo no podrá ser asignada a nadie cuando se solicite alguna cuenta

  • status

Indica el estatus de la cuenta, si está disponible, solicitada u ocupada/confirmada


En la tabla cuentas_aheeva_historial se guardan registro de todas las actividades que se realizan con el micro servicio referente a la gestión de las cuentas, como solicitar, confirmar o liberar una cuenta

  • id

Identificador único del registro

  • worker_id

Id del usuario correspondiente que realizó la operación

  • cuenta

Cuenta de aheeva que está involucrada en la operación

  • task_uuid

Id de la tarea que está involucrada en la operación

  • status

Estatus correspondiente de la operación (solicitada o confirmada)

  • created_at

Fecha en que se creó el registro de la operación

  • updated_at

Fecha en la que se finalizó la operación


En la tabla agenda se guardan contactos comunes que se muestran en la parte correspondiente a la agenda en el widget de Aheeva

  • uuid
  • nombre
  • descripcion
  • contacto
  • tipo
  • activo
  • created_at
  • updated_at


Flujo para solicitar, obtener y liberar una cuenta

Mediante este servicio a través de sus endpoints es posible solicitar una cuenta de aheeva, intentar hacer un login y confirmar la cuenta para notificar que se encuentra ocupada

Solicitar

El primer paso de este flujo es solicitar una cuenta mediante el siguiente endpoint: /solicitar?workerid=[worker_id]&taskuuid=[task_id con segmento]

El cual requiere dos parámetros. Donde worker_id es el id del usuario que esta solicitando la cuenta y task_id la tarea desde la cual se esta solicitando la cuenta de aheeva

{
  "payload": {
         "id": "cuenta01",
         "contrasenia": "password",
         "taskuuid": "",
         "activo": true,
         "status": "solicitado"
     },
   "status": "Mensajes.REST_OK",
   "log": "200 OK",
   "trace": "c6d4d4ba-787b-4a31-8ce0-91f99cf4f18b",
   "successful": true
}


Al llamar el endpoint se obtendrá una respuesta como la anterior, donde tendremos un usuario y una contraseña para intentar el inicio de sesión en el widget de aheeva.

Si al tratarnos de asignar una cuenta se detecta que ya tenemos una cuenta asignada, nos dará la misma y nos podrá dar una diferente hasta que se libere formalmente la cuenta que tenemos asignada,

Confirmar

La segunda parte del flujo consiste en confirmar que se logro iniciar sesión en aheeva con la cuenta previamente solicitada, para eso se hace uso del siguiente endpoint:

/confirmar?workerid=[worker_id]&cuenta=[usuario de la cuenta de aheeva]&taskuuid=[mismo task_id con segmento]

Hecho esto, esta cuenta estará bloqueada y si otro usuario solicita una cuenta no les proveerá las que ya se encuentran bloqueadas ya que esto generaría conflictos al tratar de iniciar sesión en aheeva. Además de que la cuenta pasara a estar en el estatus confirmada.

Liberar

Por último, una vez que finalizamos el uso del widget, se haría un cierre de sesión en aheeva y también se liberaría la cuenta en este servicio para que pueda ser utilizada nuevamente, esto utilizando el siguiente endpoint:

/liberarbytaskuuid?taskuuid=[mismo task_id con segmento]

Mediante el endpoint anterior se liberará la cuenta y volverá a estar en estatus disponible.

Referencias

Repositorio: https://source.cloud.google.com/coa-autonomation-mx/layer-api-cuentas-aheeva-service?authuser=1&hl=es

Despliegue: https://layer-api-cuentas-aheeva-service.autonomation.tijuana.mesh-servicios-fnd.mx/v1/