diff --git a/README.md b/README.md index c78b0fa..f7344a4 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Test harness mínimo para probar el adapter `kumare-adapter-spring-visma-time` v ## Qué hace -Expone 6 endpoints que son passthroughs directos al API de VismaTime (GeoVictoria), usados +Expone 7 endpoints que son passthroughs directos al API de VismaTime (GeoVictoria), usados para ejercitar el adapter durante desarrollo: | Método | Path | Acción | @@ -18,6 +18,7 @@ para ejercitar el adapter durante desarrollo: | 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`](postman/visma-time.postman_collection.json). +Una traza de ejemplo (credenciales/tokens redactados) está en [`traces/visma-endpoints-trace.log`](traces/visma-endpoints-trace.log). ## Correr @@ -25,8 +26,10 @@ La colección Postman está en [`postman/visma-time.postman_collection.json`](po 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 `IqrApplication` porque `kumare-base-server-spring` trae +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 @@ -42,7 +45,18 @@ Con `logging.level.io.kumare=DEBUG` (ya configurado) se ven en el log: ## Estructura -Este proyecto se clonó de otra app IQR y se recortó: solo queda `io.kumare.iqr.mod.clientele.action.client` -(las acciones Visma) 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. +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. diff --git a/src/main/java/io/kumare/iqr/TimeApplication.java b/src/main/java/io/kumare/iqr/TimeApplication.java index cd9aaee..ac62f76 100644 --- a/src/main/java/io/kumare/iqr/TimeApplication.java +++ b/src/main/java/io/kumare/iqr/TimeApplication.java @@ -28,13 +28,13 @@ import io.kumare.iqr.app.App; HibernateJpaAutoConfiguration.class }) @EnableSpringDataWebSupport(pageSerializationMode = EnableSpringDataWebSupport.PageSerializationMode.VIA_DTO) -public class IqrApplication { +public class TimeApplication { // ::: cons // public static void main(String[] args) { - var innerContext = SpringApplication.run(IqrApplication.class, args); + var innerContext = SpringApplication.run(TimeApplication.class, args); // app App.getEngine().getBase().setInnerContext(innerContext); diff --git a/src/main/java/io/kumare/iqr/app/AppConstants.java b/src/main/java/io/kumare/iqr/app/AppConstants.java index 173d14e..e4966e4 100644 --- a/src/main/java/io/kumare/iqr/app/AppConstants.java +++ b/src/main/java/io/kumare/iqr/app/AppConstants.java @@ -11,6 +11,6 @@ public class AppConstants { // ::: modules // - public static final int CLIENTELE_CODE = 5; + public static final int VISMA_CODE = 5; } diff --git a/src/main/java/io/kumare/iqr/app/module/AppModules.java b/src/main/java/io/kumare/iqr/app/module/AppModules.java index db7fd5b..c66b167 100644 --- a/src/main/java/io/kumare/iqr/app/module/AppModules.java +++ b/src/main/java/io/kumare/iqr/app/module/AppModules.java @@ -6,7 +6,7 @@ package io.kumare.iqr.app.module; // base import io.kumare.lib.base.server.spring.module.BaseModules; // app -import io.kumare.iqr.mod.clientele.ClienteleModule; +import io.kumare.iqr.mod.visma.VismaModule; /** * @@ -16,17 +16,17 @@ public class AppModules extends BaseModules { // ::: constants // - public static final ClienteleModule clientele = new ClienteleModule(); + public static final VismaModule visma = new VismaModule(); // ::: modules // - public ClienteleModule getClientele() { - return clientele; + public VismaModule getVisma() { + return visma; } // ::: init // public void init() { - add(clientele); + add(visma); } } diff --git a/src/main/java/io/kumare/iqr/mod/clientele/ClienteleConstants.java b/src/main/java/io/kumare/iqr/mod/clientele/ClienteleConstants.java deleted file mode 100644 index 82e01bb..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/ClienteleConstants.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele; - -// base -import io.kumare.iqr.app.AppConstants; - -/** - * - * @author afatecha - */ -public class ClienteleConstants { - - // ::: codes - // - public static final int CODE = AppConstants.CLIENTELE_CODE; - public static final String NAME = "clientele"; - -} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/ClienteleModule.java b/src/main/java/io/kumare/iqr/mod/clientele/ClienteleModule.java deleted file mode 100644 index cdf4e93..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/ClienteleModule.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele; - -// java -import io.kumare.lib.base.server.spring.module.BaseModule; - - -/** - * - * @author afatecha - */ -public class ClienteleModule extends BaseModule { - - // ::: - // - public static final ClienteleController controller = new ClienteleController(); - - // ::: api - // - @Override - public int getId() { - return ClienteleConstants.CODE; - } - - @Override - public String getName() { - return ClienteleConstants.NAME; - } - - @Override - public ClienteleController getController() { - return controller; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/visma/VismaConstants.java b/src/main/java/io/kumare/iqr/mod/visma/VismaConstants.java new file mode 100644 index 0000000..78b3ddd --- /dev/null +++ b/src/main/java/io/kumare/iqr/mod/visma/VismaConstants.java @@ -0,0 +1,20 @@ +/* + * + */ +package io.kumare.iqr.mod.visma; + +// base +import io.kumare.iqr.app.AppConstants; + +/** + * + * @author afatecha + */ +public class VismaConstants { + + // ::: codes + // + public static final int CODE = AppConstants.VISMA_CODE; + public static final String NAME = "visma"; + +} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/ClienteleController.java b/src/main/java/io/kumare/iqr/mod/visma/VismaController.java similarity index 88% rename from src/main/java/io/kumare/iqr/mod/clientele/ClienteleController.java rename to src/main/java/io/kumare/iqr/mod/visma/VismaController.java index dcb3d1a..9cc0aee 100644 --- a/src/main/java/io/kumare/iqr/mod/clientele/ClienteleController.java +++ b/src/main/java/io/kumare/iqr/mod/visma/VismaController.java @@ -1,7 +1,7 @@ /* * */ -package io.kumare.iqr.mod.clientele; +package io.kumare.iqr.mod.visma; // java import java.util.Collections; @@ -17,7 +17,7 @@ import io.kumare.iqr.app.module.AppModuleController; * * @author afatecha */ -public class ClienteleController extends AppModuleController { +public class VismaController extends AppModuleController { // ::: api // diff --git a/src/main/java/io/kumare/iqr/mod/visma/VismaModule.java b/src/main/java/io/kumare/iqr/mod/visma/VismaModule.java new file mode 100644 index 0000000..aeda8a4 --- /dev/null +++ b/src/main/java/io/kumare/iqr/mod/visma/VismaModule.java @@ -0,0 +1,37 @@ +/* + * + */ +package io.kumare.iqr.mod.visma; + +// java +import io.kumare.lib.base.server.spring.module.BaseModule; + + +/** + * + * @author afatecha + */ +public class VismaModule extends BaseModule { + + // ::: + // + public static final VismaController controller = new VismaController(); + + // ::: api + // + @Override + public int getId() { + return VismaConstants.CODE; + } + + @Override + public String getName() { + return VismaConstants.NAME; + } + + @Override + public VismaController getController() { + return controller; + } + +} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/client/GvTime.java b/src/main/java/io/kumare/iqr/mod/visma/action/GvTime.java similarity index 95% rename from src/main/java/io/kumare/iqr/mod/clientele/action/client/GvTime.java rename to src/main/java/io/kumare/iqr/mod/visma/action/GvTime.java index b0670fe..a647811 100644 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/client/GvTime.java +++ b/src/main/java/io/kumare/iqr/mod/visma/action/GvTime.java @@ -1,4 +1,4 @@ -package io.kumare.iqr.mod.clientele.action.client; +package io.kumare.iqr.mod.visma.action; import java.time.*; import java.time.format.DateTimeFormatter; diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/client/PunchType.java b/src/main/java/io/kumare/iqr/mod/visma/action/PunchType.java similarity index 90% rename from src/main/java/io/kumare/iqr/mod/clientele/action/client/PunchType.java rename to src/main/java/io/kumare/iqr/mod/visma/action/PunchType.java index c7be267..35b28e7 100644 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/client/PunchType.java +++ b/src/main/java/io/kumare/iqr/mod/visma/action/PunchType.java @@ -2,7 +2,7 @@ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Enum.java to edit this template */ -package io.kumare.iqr.mod.clientele.action.client; +package io.kumare.iqr.mod.visma.action; /** * diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaAddPunchAction.java b/src/main/java/io/kumare/iqr/mod/visma/action/VismaAddPunchAction.java similarity index 91% rename from src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaAddPunchAction.java rename to src/main/java/io/kumare/iqr/mod/visma/action/VismaAddPunchAction.java index 071f71e..945d113 100644 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaAddPunchAction.java +++ b/src/main/java/io/kumare/iqr/mod/visma/action/VismaAddPunchAction.java @@ -1,7 +1,7 @@ /* * */ -package io.kumare.iqr.mod.clientele.action.client; +package io.kumare.iqr.mod.visma.action; // java import io.kumare.adapter.spring.vismatime.message.punch.model.AddArtificialRequest; diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaAddPunchArgument.java b/src/main/java/io/kumare/iqr/mod/visma/action/VismaAddPunchArgument.java similarity index 86% rename from src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaAddPunchArgument.java rename to src/main/java/io/kumare/iqr/mod/visma/action/VismaAddPunchArgument.java index a74d440..ea5ee0d 100644 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaAddPunchArgument.java +++ b/src/main/java/io/kumare/iqr/mod/visma/action/VismaAddPunchArgument.java @@ -1,7 +1,7 @@ /* * */ -package io.kumare.iqr.mod.clientele.action.client; +package io.kumare.iqr.mod.visma.action; // app import java.time.LocalDateTime; diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaAddPunchMultipleAction.java b/src/main/java/io/kumare/iqr/mod/visma/action/VismaAddPunchMultipleAction.java similarity index 92% rename from src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaAddPunchMultipleAction.java rename to src/main/java/io/kumare/iqr/mod/visma/action/VismaAddPunchMultipleAction.java index ae952af..cdad755 100644 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaAddPunchMultipleAction.java +++ b/src/main/java/io/kumare/iqr/mod/visma/action/VismaAddPunchMultipleAction.java @@ -1,7 +1,7 @@ /* * */ -package io.kumare.iqr.mod.clientele.action.client; +package io.kumare.iqr.mod.visma.action; // java import io.kumare.adapter.spring.vismatime.message.punch.model.AddMultipleItemRequest; diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaAddPunchMultipleArgument.java b/src/main/java/io/kumare/iqr/mod/visma/action/VismaAddPunchMultipleArgument.java similarity index 79% rename from src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaAddPunchMultipleArgument.java rename to src/main/java/io/kumare/iqr/mod/visma/action/VismaAddPunchMultipleArgument.java index 63e4eb6..e98aa0b 100644 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaAddPunchMultipleArgument.java +++ b/src/main/java/io/kumare/iqr/mod/visma/action/VismaAddPunchMultipleArgument.java @@ -1,7 +1,7 @@ /* * */ -package io.kumare.iqr.mod.clientele.action.client; +package io.kumare.iqr.mod.visma.action; // app import io.kumare.adapter.spring.vismatime.message.punch.model.AddMultipleRequest; diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaAttendanceBookAction.java b/src/main/java/io/kumare/iqr/mod/visma/action/VismaAttendanceBookAction.java similarity index 96% rename from src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaAttendanceBookAction.java rename to src/main/java/io/kumare/iqr/mod/visma/action/VismaAttendanceBookAction.java index f213107..f7f1a62 100644 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaAttendanceBookAction.java +++ b/src/main/java/io/kumare/iqr/mod/visma/action/VismaAttendanceBookAction.java @@ -1,7 +1,7 @@ /* * */ -package io.kumare.iqr.mod.clientele.action.client; +package io.kumare.iqr.mod.visma.action; // java import io.kumare.adapter.spring.vismatime.message.attendance.model.AttendanceBookRequest; diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaAttendanceBookArgument.java b/src/main/java/io/kumare/iqr/mod/visma/action/VismaAttendanceBookArgument.java similarity index 92% rename from src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaAttendanceBookArgument.java rename to src/main/java/io/kumare/iqr/mod/visma/action/VismaAttendanceBookArgument.java index d507e79..9e13288 100644 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaAttendanceBookArgument.java +++ b/src/main/java/io/kumare/iqr/mod/visma/action/VismaAttendanceBookArgument.java @@ -1,7 +1,7 @@ /* * */ -package io.kumare.iqr.mod.clientele.action.client; +package io.kumare.iqr.mod.visma.action; // java import java.time.LocalDate; diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaDeletePunchAction.java b/src/main/java/io/kumare/iqr/mod/visma/action/VismaDeletePunchAction.java similarity index 91% rename from src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaDeletePunchAction.java rename to src/main/java/io/kumare/iqr/mod/visma/action/VismaDeletePunchAction.java index 9a5cfe5..5720ce8 100644 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaDeletePunchAction.java +++ b/src/main/java/io/kumare/iqr/mod/visma/action/VismaDeletePunchAction.java @@ -1,7 +1,7 @@ /* * */ -package io.kumare.iqr.mod.clientele.action.client; +package io.kumare.iqr.mod.visma.action; // java import io.kumare.adapter.spring.vismatime.message.punch.model.AddArtificialRequest; diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaDeletePunchArgument.java b/src/main/java/io/kumare/iqr/mod/visma/action/VismaDeletePunchArgument.java similarity index 78% rename from src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaDeletePunchArgument.java rename to src/main/java/io/kumare/iqr/mod/visma/action/VismaDeletePunchArgument.java index 8735eac..13701f7 100644 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaDeletePunchArgument.java +++ b/src/main/java/io/kumare/iqr/mod/visma/action/VismaDeletePunchArgument.java @@ -1,7 +1,7 @@ /* * */ -package io.kumare.iqr.mod.clientele.action.client; +package io.kumare.iqr.mod.visma.action; // app /** diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaEmployeeListAction.java b/src/main/java/io/kumare/iqr/mod/visma/action/VismaEmployeeListAction.java similarity index 90% rename from src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaEmployeeListAction.java rename to src/main/java/io/kumare/iqr/mod/visma/action/VismaEmployeeListAction.java index 11d66b0..d454764 100644 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaEmployeeListAction.java +++ b/src/main/java/io/kumare/iqr/mod/visma/action/VismaEmployeeListAction.java @@ -1,7 +1,7 @@ /* * */ -package io.kumare.iqr.mod.clientele.action.client; +package io.kumare.iqr.mod.visma.action; // java import io.kumare.adapter.spring.vismatime.message.user.model.UserItemResponse; diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaPunchListAction.java b/src/main/java/io/kumare/iqr/mod/visma/action/VismaPunchListAction.java similarity index 92% rename from src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaPunchListAction.java rename to src/main/java/io/kumare/iqr/mod/visma/action/VismaPunchListAction.java index f905bde..86f689f 100644 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaPunchListAction.java +++ b/src/main/java/io/kumare/iqr/mod/visma/action/VismaPunchListAction.java @@ -1,7 +1,7 @@ /* * */ -package io.kumare.iqr.mod.clientele.action.client; +package io.kumare.iqr.mod.visma.action; // java import io.kumare.adapter.spring.vismatime.message.punch.model.PaginatedListByDateRequest; diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaPunchListArgument.java b/src/main/java/io/kumare/iqr/mod/visma/action/VismaPunchListArgument.java similarity index 86% rename from src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaPunchListArgument.java rename to src/main/java/io/kumare/iqr/mod/visma/action/VismaPunchListArgument.java index aad50f6..6f891ec 100644 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaPunchListArgument.java +++ b/src/main/java/io/kumare/iqr/mod/visma/action/VismaPunchListArgument.java @@ -1,7 +1,7 @@ /* * */ -package io.kumare.iqr.mod.clientele.action.client; +package io.kumare.iqr.mod.visma.action; // app import java.time.LocalDate; diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaPunchListPageAction.java b/src/main/java/io/kumare/iqr/mod/visma/action/VismaPunchListPageAction.java similarity index 92% rename from src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaPunchListPageAction.java rename to src/main/java/io/kumare/iqr/mod/visma/action/VismaPunchListPageAction.java index 2ba72a5..1ca1df7 100644 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaPunchListPageAction.java +++ b/src/main/java/io/kumare/iqr/mod/visma/action/VismaPunchListPageAction.java @@ -1,7 +1,7 @@ /* * */ -package io.kumare.iqr.mod.clientele.action.client; +package io.kumare.iqr.mod.visma.action; // java import io.kumare.adapter.spring.vismatime.message.punch.model.PaginatedListByDateRequest; diff --git a/src/main/java/io/kumare/iqr/mod/clientele/endpoint/rest/AbstractClientRest.java b/src/main/java/io/kumare/iqr/mod/visma/endpoint/rest/AbstractVismaRest.java similarity index 96% rename from src/main/java/io/kumare/iqr/mod/clientele/endpoint/rest/AbstractClientRest.java rename to src/main/java/io/kumare/iqr/mod/visma/endpoint/rest/AbstractVismaRest.java index 52f587c..f537e2e 100644 --- a/src/main/java/io/kumare/iqr/mod/clientele/endpoint/rest/AbstractClientRest.java +++ b/src/main/java/io/kumare/iqr/mod/visma/endpoint/rest/AbstractVismaRest.java @@ -1,7 +1,7 @@ /* * */ -package io.kumare.iqr.mod.clientele.endpoint.rest; +package io.kumare.iqr.mod.visma.endpoint.rest; // java import java.util.Map; @@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.*; import io.kumare.iqr.app.action.AppActionArgument; import io.kumare.iqr.app.endpoint.rest.AppEndpointRest; // module -import io.kumare.iqr.mod.clientele.action.client.*; +import io.kumare.iqr.mod.visma.action.*; /** * Stateless passthrough endpoints to the VismaTime adapter — no local @@ -25,7 +25,7 @@ import io.kumare.iqr.mod.clientele.action.client.*; * * @author afatecha */ -public abstract class AbstractClientRest extends AppEndpointRest { +public abstract class AbstractVismaRest extends AppEndpointRest { // ::: EMPLOYEE LIST // diff --git a/src/main/java/io/kumare/iqr/mod/clientele/endpoint/rest/ClientRest.java b/src/main/java/io/kumare/iqr/mod/visma/endpoint/rest/VismaRest.java similarity index 72% rename from src/main/java/io/kumare/iqr/mod/clientele/endpoint/rest/ClientRest.java rename to src/main/java/io/kumare/iqr/mod/visma/endpoint/rest/VismaRest.java index 372bfcb..3159994 100644 --- a/src/main/java/io/kumare/iqr/mod/clientele/endpoint/rest/ClientRest.java +++ b/src/main/java/io/kumare/iqr/mod/visma/endpoint/rest/VismaRest.java @@ -1,7 +1,7 @@ /* * */ -package io.kumare.iqr.mod.clientele.endpoint.rest; +package io.kumare.iqr.mod.visma.endpoint.rest; // java import io.swagger.v3.oas.annotations.tags.*; @@ -18,7 +18,7 @@ import org.springframework.web.bind.annotation.*; // @RestController @RequestMapping("/clientele/clients") -public class ClientRest extends AbstractClientRest { +public class VismaRest extends AbstractVismaRest { }