2026-08-12 17:23:54 -03:00
ok
2026-08-12 17:12:51 -03:00
ok
2026-08-12 17:23:54 -03:00
ok
2026-08-12 17:12:51 -03:00
ok
2026-08-12 15:52:18 -03:00
ok
2026-08-12 15:52:18 -03:00
ok
2026-08-12 17:12:51 -03:00
ok
2026-08-12 17:23:54 -03:00

time-server-test-adapter

Test harness mínimo para probar el adapter kumare-adapter-spring-visma-time vía REST, sin base de datos.

Qué hace

Expone 7 endpoints que son passthroughs directos al API de VismaTime (GeoVictoria), usados para ejercitar el adapter durante desarrollo:

Método Path Acción
GET /time/api/clientele/clients/employee Lista empleados
POST /time/api/clientele/clients/punch/list Lista marcaciones
POST /time/api/clientele/clients/punch/page Lista marcaciones (paginado)
POST /time/api/clientele/clients/punch/add Agrega una marcación
POST /time/api/clientele/clients/punch/delete Borra una marcación
POST /time/api/clientele/clients/punch/multiple Agrega varias marcaciones
POST /time/api/clientele/clients/attendance/book Libro de asistencia (rango de fechas + usuarios)

La colección Postman está en postman/visma-time.postman_collection.json. Una traza de ejemplo (credenciales/tokens redactados) está en traces/visma-endpoints-trace.log.

Correr

mvn spring-boot:run

Clase main: io.kumare.iqr.TimeApplication.

No requiere Postgres ni ninguna otra base de datos — el autoconfig de JPA/DataSource está excluido explícitamente en TimeApplication porque kumare-base-server-spring trae spring-boot-starter-data-jpa transitivamente aunque no haya entidades locales.

Credenciales de Visma (visma.server, visma.user, visma.password) en src/main/resources/application.properties, sobreescribibles con las variables de entorno VISMA_SERVER, VISMA_USER, VISMA_PASSWORD.

Trazas

Con logging.level.io.kumare=DEBUG (ya configurado) se ven en el log:

  • Cada request entrante y su respuesta (RequestTraceInterceptor): método, path, status, duración.
  • Cada llamada saliente al API de Visma (LoggingInterceptor de kumare-base-server-spring): URL, headers (sanitizados), body, status, duración.

Estructura

Este proyecto se clonó de otra app IQR y se recortó a lo mínimo: solo queda el módulo visma (io.kumare.iqr.mod.visma, antes clientele) con las acciones y endpoints de VismaTime, más el framework base (io.kumare.iqr.app.*). Los módulos de negocio originales (authentication, biz, loyalty, pocket, taxonomy) y el CRUD local de Client/ClientRelation se eliminaron por no tener relación con probar el adapter.

io.kumare.iqr.mod.visma/
  VismaConstants.java, VismaModule.java, VismaController.java
  action/       — GvTime, PunchType, y las 7 acciones Visma*Action/Argument
  endpoint/rest/ — AbstractVismaRest, VismaRest

Nota: los paths REST (/clientele/clients/...) se dejaron igual — solo se renombraron las clases y el paquete Java — para no romper la colección Postman ni la traza ya compartidas.

S
Description
No description provided
Readme
424 KiB
Languages
Java 100%