Segunda Iteración - danaluz/DDS-TP GitHub Wiki

Entrega 2

Fecha de entrega: 22/06
En esta iteración, la búsqueda por puntos de interés se vuelve más compleja:

  • Por un lado, necesitamos agregar lo necesario al modelo de dominio para que un administrador pueda agregar, modificar y quitar puntos del mapa.
  • Por otro lado, se incorporan nuevos orígenes de datos de puntos de interés, que se detallan a continuación:

###Caso 1 Búsqueda de puntos de interés de nuestro sistema Muchos de los puntos de interés están almacenados en nuestro sistema. Esto no debe cambiar y seguir funcionando tal como hasta ahora.

###Caso 2: CGPs
Para consultar los CGP se dispone de un componente desarrollado en forma externa. El servicio acepta como parámetro un string que puede corresponder a la calle o zona, y devuelve la lista de CGPs disponibles según el siguiente formato:
Lista de CGPs, un objeto de la clase CentroDTO

  • int: número de la comuna (ej: 3)
  • string: zonas que incluye (ej. “Balvanera, San Cristóbal” para la comuna 3)
  • string: nombre del director
  • string: domicilio completo del CGP (ej: Junín 521)
  • string: teléfono del CGP (4375-0644/45)
  • lista de “serviciosDTO”: array de servicios que contiene ○ string nombre del servicio (ej: Atención ciudadana) ○ lista de “rangos servicio DTO”: Array con días de servicio que contiene
    ■ int: número de día de la semana (ej: 1 = Lunes, 2 = Martes, etc.) ■ int: horario desde (9) ■ int: minutos desde (0) ■ int: horario hasta (18) ■ int: minutos hasta (0)

###Caso 3: Bancos Para consultar las entidades bancarias se cuenta con un servicio desarrollado en forma externa. El servicio acepta como parámetro un string que representa el nombre del banco y otro con un nombre de servicio, y devuelve los bancos que cumplen ambos criterios (AND). La respuesta es en el siguiente formato JSON:
[ { "banco": "Banco de la Plaza", "x": -35.9338322, "y": 72.348353, "sucursal": "Avellaneda", "gerente": "Javier Loeschbor", "servicios": [ "cobro cheques", "depósitos", "extracciones", "transferencias", "créditos", "", "", "" ] }, { "banco": "Banco de la Plaza", "x": -35.9345681, "y": 72.344546, "sucursal": "Caballito", "gerente": "Fabián Fantaguzzi", "servicios": [ "depósitos", "extracciones", "transferencias", "seguros", "", "", "", "" ] }, ... ]

Se debe adaptar el resultado de la búsqueda creando o actualizando la lista de puntos de interés en el repositorio de la aplicación a diseñar (el caso 1).
Requerimientos detallados

  1. ABMC (Alta, Baja, Modificación, Consulta) de puntos del sistema.

  2. Consulta (Búsqueda) de puntos extendida: se debe lograr que cuando se realice una consulta, se busquen puntos en todos los orígenes de datos. Se debe diseñar teniendo en cuenta que nuevos orígenes de datos pueden incorporarse en el futuro.

  3. Desarrollar casos de prueba para los puntos anteriores. Considerar: a. El componente externo del caso 2 es lento (ejecutarlo es al menos 10 veces más lento que realizar la consulta contra nuestros datos) b. El servicio externo del caso 3 es rápido, pero tiene un costo de servicio, que se imputa por cada pedido realizado al mismo