diff --git a/README.md b/README.md index 6d5536b..c78b0fa 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,48 @@ -# iqr-server-gen - +# 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 6 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`](postman/visma-time.postman_collection.json). + +## Correr + +```bash +mvn spring-boot:run +``` + +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 +`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ó: 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. diff --git a/pom.xml b/pom.xml index aad3f63..e83b46c 100644 --- a/pom.xml +++ b/pom.xml @@ -46,12 +46,6 @@ kumare-base-server-spring 0.0.1-SNAPSHOT - - - io.kumare - kumare-adapter-spring-oauthlib - 0.0.1-SNAPSHOT - io.kumare @@ -59,49 +53,12 @@ 0.0.1-SNAPSHOT - - com.fasterxml.jackson.datatype - jackson-datatype-hibernate6 - - - - - org.springframework.security - spring-security-core - - org.springframework.boot spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.postgresql - postgresql - runtime - - - - - org.springframework.boot - spring-boot-starter-security - - - - org.springframework.boot - spring-boot-starter-oauth2-client - - - org.springframework.boot - spring-boot-starter-oauth2-resource-server - - com.google.code.gson diff --git a/postman/visma-time.postman_collection.json b/postman/visma-time.postman_collection.json new file mode 100644 index 0000000..d517232 --- /dev/null +++ b/postman/visma-time.postman_collection.json @@ -0,0 +1,110 @@ +{ + "info": { + "name": "Kumare Time Server - Visma Adapter", + "description": "Endpoints reales para probar el adapter kumare-adapter-spring-visma-time a través del test harness time-server. No requiere base de datos: son passthroughs directos al API de VismaTime (GeoVictoria).", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" + }, + "variable": [ + { "key": "baseUrl", "value": "http://localhost:8080/time/api" }, + { "key": "userId", "value": "11111111" }, + { "key": "punchKey", "value": "" } + ], + "item": [ + { + "name": "Employee list", + "request": { + "method": "GET", + "url": { "raw": "{{baseUrl}}/clientele/clients/employee", "host": ["{{baseUrl}}"], "path": ["clientele", "clients", "employee"] } + } + }, + { + "name": "Punch list", + "request": { + "method": "POST", + "header": [{ "key": "Content-Type", "value": "application/json" }], + "url": { "raw": "{{baseUrl}}/clientele/clients/punch/list", "host": ["{{baseUrl}}"], "path": ["clientele", "clients", "punch", "list"] }, + "body": { + "mode": "raw", + "raw": "{\n \"start\": \"2026-08-01\",\n \"end\": \"2026-08-12\",\n \"pageNumber\": 0\n}" + } + } + }, + { + "name": "Punch list (paged)", + "request": { + "method": "POST", + "header": [{ "key": "Content-Type", "value": "application/json" }], + "url": { "raw": "{{baseUrl}}/clientele/clients/punch/page", "host": ["{{baseUrl}}"], "path": ["clientele", "clients", "punch", "page"] }, + "body": { + "mode": "raw", + "raw": "{\n \"start\": \"2026-08-01\",\n \"end\": \"2026-08-12\",\n \"pageNumber\": 0\n}" + } + } + }, + { + "name": "Punch add", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "var body = pm.response.json();", + "if (body && body.punch && body.punch.token) {", + " pm.collectionVariables.set('punchKey', body.punch.token);", + "}" + ] + } + } + ], + "request": { + "method": "POST", + "header": [{ "key": "Content-Type", "value": "application/json" }], + "url": { "raw": "{{baseUrl}}/clientele/clients/punch/add", "host": ["{{baseUrl}}"], "path": ["clientele", "clients", "punch", "add"] }, + "body": { + "mode": "raw", + "raw": "{\n \"userId\": \"{{userId}}\",\n \"type\": \"ENTER\",\n \"date\": \"2026-08-12T09:00:00\"\n}" + } + }, + "description": "type acepta ENTER o EXIT (PunchType). El token de la respuesta se guarda automáticamente en {{punchKey}} para usarlo en 'Punch delete'." + }, + { + "name": "Punch delete", + "request": { + "method": "POST", + "header": [{ "key": "Content-Type", "value": "application/json" }], + "url": { "raw": "{{baseUrl}}/clientele/clients/punch/delete", "host": ["{{baseUrl}}"], "path": ["clientele", "clients", "punch", "delete"] }, + "body": { + "mode": "raw", + "raw": "{\n \"key\": \"{{punchKey}}\"\n}" + } + }, + "description": "Usa el token guardado por 'Punch add' (variable {{punchKey}}), o pegá uno manualmente." + }, + { + "name": "Punch add multiple", + "request": { + "method": "POST", + "header": [{ "key": "Content-Type", "value": "application/json" }], + "url": { "raw": "{{baseUrl}}/clientele/clients/punch/multiple", "host": ["{{baseUrl}}"], "path": ["clientele", "clients", "punch", "multiple"] }, + "body": { + "mode": "raw", + "raw": "[\n {\n \"userIdentifier\": \"{{userId}}\",\n \"type\": \"Ingreso\",\n \"date\": \"20260812090000\"\n }\n]" + } + }, + "description": "type acepta \"Ingreso\" o \"Salida\" (texto crudo del API de Visma, no el enum PunchType). date en formato yyyyMMddHHmmss." + }, + { + "name": "Attendance book", + "request": { + "method": "POST", + "header": [{ "key": "Content-Type", "value": "application/json" }], + "url": { "raw": "{{baseUrl}}/clientele/clients/attendance/book", "host": ["{{baseUrl}}"], "path": ["clientele", "clients", "attendance", "book"] }, + "body": { + "mode": "raw", + "raw": "{\n \"start\": \"2026-08-01\",\n \"end\": \"2026-08-12\",\n \"userIds\": \"{{userId}}\"\n}" + } + }, + "description": "userIds acepta varios identificadores separados por coma, sin espacio (ej. \"11111111,22222222\")." + } + ] +} diff --git a/src/main/java/io/kumare/iqr/IqrApplication.java b/src/main/java/io/kumare/iqr/IqrApplication.java deleted file mode 100644 index 3aedfc6..0000000 --- a/src/main/java/io/kumare/iqr/IqrApplication.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * - */ -package io.kumare.iqr; - -// spring -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.data.web.config.EnableSpringDataWebSupport; -// app -import io.kumare.iqr.app.App; - -/** - * - * @author afatecha - */ -@SpringBootApplication(scanBasePackages = {"io.kumare"}) -@EnableSpringDataWebSupport(pageSerializationMode = EnableSpringDataWebSupport.PageSerializationMode.VIA_DTO) -public class IqrApplication { - - // ::: cons - // - public static void main(String[] args) { - - var innerContext = SpringApplication.run(IqrApplication.class, args); - - // app - App.getEngine().getBase().setInnerContext(innerContext); - App.init(); - } - -} diff --git a/src/main/java/io/kumare/iqr/TimeApplication.java b/src/main/java/io/kumare/iqr/TimeApplication.java new file mode 100644 index 0000000..cd9aaee --- /dev/null +++ b/src/main/java/io/kumare/iqr/TimeApplication.java @@ -0,0 +1,44 @@ +/* + * + */ +package io.kumare.iqr; + +// spring +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; +import org.springframework.boot.autoconfigure.sql.init.SqlInitializationAutoConfiguration; +import org.springframework.data.web.config.EnableSpringDataWebSupport; +// app +import io.kumare.iqr.app.App; + +/** + * No local entities — kumare-base-server-spring pulls in spring-boot-starter-data-jpa + * transitively, so JPA/DataSource autoconfiguration is excluded explicitly rather than + * requiring an unused database. + * + * @author afatecha + */ +@SpringBootApplication(scanBasePackages = {"io.kumare"}, exclude = { + DataSourceAutoConfiguration.class, + DataSourceTransactionManagerAutoConfiguration.class, + SqlInitializationAutoConfiguration.class, + HibernateJpaAutoConfiguration.class +}) +@EnableSpringDataWebSupport(pageSerializationMode = EnableSpringDataWebSupport.PageSerializationMode.VIA_DTO) +public class IqrApplication { + + // ::: cons + // + public static void main(String[] args) { + + var innerContext = SpringApplication.run(IqrApplication.class, args); + + // app + App.getEngine().getBase().setInnerContext(innerContext); + App.init(); + } + +} diff --git a/src/main/java/io/kumare/iqr/app/App.java b/src/main/java/io/kumare/iqr/app/App.java index 12707f1..c85ee5a 100644 --- a/src/main/java/io/kumare/iqr/app/App.java +++ b/src/main/java/io/kumare/iqr/app/App.java @@ -4,6 +4,8 @@ package io.kumare.iqr.app; // base +import io.kumare.lib.app.api.background.SimpleBackgroundManager; +import io.kumare.lib.app.api.factory.SimpleFactoryManager; import io.kumare.lib.app.api.module.ServiceModuleController; // app import io.kumare.iqr.app.adapter.AppAdapters; @@ -24,6 +26,8 @@ public class App { public static void init() { if (!initialized) { + getEngine().getBase().setFactoryManager(new SimpleFactoryManager()); + getEngine().getBase().setBackgroundManager(new SimpleBackgroundManager()); modules.init(); //adapters.init(); initialized = true; diff --git a/src/main/java/io/kumare/iqr/app/AppConstants.java b/src/main/java/io/kumare/iqr/app/AppConstants.java index 41b4fe1..173d14e 100644 --- a/src/main/java/io/kumare/iqr/app/AppConstants.java +++ b/src/main/java/io/kumare/iqr/app/AppConstants.java @@ -11,11 +11,6 @@ public class AppConstants { // ::: modules // - public static final int AUTHENTICATION_CODE = 1; - public static final int TAXONOMY_CODE = 2; - public static final int POCKET_CODE = 3; - public static final int BIZ_CODE = 4; public static final int CLIENTELE_CODE = 5; - public static final int LOYALTY_CODE = 6; } diff --git a/src/main/java/io/kumare/iqr/app/AppEngine.java b/src/main/java/io/kumare/iqr/app/AppEngine.java index 8c68af4..f54f3b9 100644 --- a/src/main/java/io/kumare/iqr/app/AppEngine.java +++ b/src/main/java/io/kumare/iqr/app/AppEngine.java @@ -1,64 +1,69 @@ -/* - * - */ -package io.kumare.iqr.app; - -// base -import io.kumare.lib.app.api.Engine; -import io.kumare.lib.base.server.spring.BaseEngine; -import org.springframework.context.ConfigurableApplicationContext; -// app -import io.kumare.iqr.app.action.AppActionManager; -import io.kumare.iqr.app.security.AppPermissionManager; - -/** - * wrapper of BaseEngine - * - * @author afatecha - */ -public class AppEngine implements Engine { - - // cons - // - private static final AppEngine engine = new AppEngine(); - - // ::: constructors - // - private AppEngine() { - } - - // ::: api - // - public static AppEngine getEngine() { - return engine; - } - - // ::: api - // - @Override - public BaseEngine getBase() { - return BaseEngine.getEngine(); - } - - @Override - public ConfigurableApplicationContext getInnerContext() { - return (ConfigurableApplicationContext) getBase().getInnerContext(); - } - - @Override - public AppContext newContext() { - return new AppContext(); - } - - @Override - public AppActionManager getActionManager() { - return new AppActionManager(); - } - - @Override - public AppPermissionManager getPermissionManager() { - return new AppPermissionManager(); - } -} - - +/* + * + */ +package io.kumare.iqr.app; + +// base +import io.kumare.lib.app.api.Engine; +import io.kumare.lib.app.api.background.BackgroundManager; +import io.kumare.lib.app.api.event.EventManager; +import io.kumare.lib.app.api.factory.FactoryManager; +import io.kumare.lib.base.server.spring.BaseEngine; +import org.springframework.context.ConfigurableApplicationContext; + +/** + * wrapper of BaseEngine + * + * @author afatecha + */ +public class AppEngine implements Engine { + + // cons + // + private static final AppEngine engine = new AppEngine(); + + // ::: constructors + // + private AppEngine() { + } + + // ::: api + // + public static AppEngine getEngine() { + return engine; + } + + // ::: api + // + @Override + public BaseEngine getBase() { + return BaseEngine.getEngine(); + } + + @Override + public ConfigurableApplicationContext getInnerContext() { + return (ConfigurableApplicationContext) getBase().getInnerContext(); + } + + @Override + public AppContext newContext() { + return new AppContext(); + } + + @Override + public FactoryManager getFactoryManager() { + return getBase().getFactoryManager(); + } + + @Override + public BackgroundManager getBackgroundManager() { + return getBase().getBackgroundManager(); + } + + @Override + public EventManager getEventManager() { + return getBase().getEventManager(); + } +} + + diff --git a/src/main/java/io/kumare/iqr/app/action/AppActionManager.java b/src/main/java/io/kumare/iqr/app/action/AppActionManager.java deleted file mode 100644 index d9ba8bc..0000000 --- a/src/main/java/io/kumare/iqr/app/action/AppActionManager.java +++ /dev/null @@ -1,15 +0,0 @@ -/* - * - */ -package io.kumare.iqr.app.action; - -// base -import io.kumare.lib.base.server.spring.action.BaseActionManager; - -/** - * - * @author afatecha - */ -public class AppActionManager extends BaseActionManager { - -} diff --git a/src/main/java/io/kumare/iqr/app/action/AppActionResult.java b/src/main/java/io/kumare/iqr/app/action/AppActionResult.java deleted file mode 100644 index 208a597..0000000 --- a/src/main/java/io/kumare/iqr/app/action/AppActionResult.java +++ /dev/null @@ -1,15 +0,0 @@ -/* - * - */ -package io.kumare.iqr.app.action; - -// java -import java.io.Serializable; - -/** - * - * @author afatecha - */ -public class AppActionResult implements Serializable { - -} diff --git a/src/main/java/io/kumare/iqr/app/action/AppEntityActionArgument.java b/src/main/java/io/kumare/iqr/app/action/AppEntityActionArgument.java deleted file mode 100644 index ef1e650..0000000 --- a/src/main/java/io/kumare/iqr/app/action/AppEntityActionArgument.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * - */ -package io.kumare.iqr.app.action; - -// base -import io.kumare.lib.app.api.store.Entity; - -/** - * - * @author afatecha - * @param - */ -public class AppEntityActionArgument extends AppActionArgument { - - // ::: vars - // - private E entity; - - // ::: constructors - // - public AppEntityActionArgument() { - } - - public AppEntityActionArgument(E entity) { - this.entity = entity; - } - - // ::: fields - // - public E getEntity() { - return entity; - } - - public void setEntity(E entity) { - this.entity = entity; - } - - // ::: fluents - // - public AppEntityActionArgument entity(E entity) { - setEntity(entity); - return this; - } - -} diff --git a/src/main/java/io/kumare/iqr/app/action/AppEntityActionResult.java b/src/main/java/io/kumare/iqr/app/action/AppEntityActionResult.java deleted file mode 100644 index c5d6982..0000000 --- a/src/main/java/io/kumare/iqr/app/action/AppEntityActionResult.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * - */ -package io.kumare.iqr.app.action; - -// base -import io.kumare.lib.app.api.store.Entity; - -/** - * - * @author afatecha - * @param - */ -public class AppEntityActionResult extends AppActionResult { - - // ::: vars - // - private E entity; - - // ::: fields - // - public E getEntity() { - return entity; - } - - public void setEntity(E entity) { - this.entity = entity; - } - -} diff --git a/src/main/java/io/kumare/iqr/app/action/AppListActionArgument.java b/src/main/java/io/kumare/iqr/app/action/AppListActionArgument.java deleted file mode 100644 index 6e740de..0000000 --- a/src/main/java/io/kumare/iqr/app/action/AppListActionArgument.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * - */ -package io.kumare.iqr.app.action; - -// base -import io.kumare.lib.app.api.store.Entity; - -/** - * - * @author afatecha - * @param - */ -public class AppListActionArgument extends AppEntityActionArgument { - - // ::: vars - // - private boolean wrapped = false; - private boolean pageable = false; - private int pageNumber = 0; - private int pageSize = 0; - private String sort; - private String query; - - // ::: constructor - // - public AppListActionArgument() { - } - - public AppListActionArgument(E entity) { - super(entity); - } - - // ::: fields - // - public boolean isWrapped() { - return wrapped; - } - - public void setWrapped(boolean wrapped) { - this.wrapped = wrapped; - } - - public boolean isPageable() { - return pageable; - } - - public void setPageable(boolean pageable) { - this.pageable = pageable; - } - - public int getPageNumber() { - return pageNumber; - } - - public void setPageNumber(int pageNumber) { - this.pageNumber = pageNumber; - } - - public int getPageSize() { - return pageSize; - } - - public void setPageSize(int pageSize) { - this.pageSize = pageSize; - } - - public String getSort() { - return sort; - } - - public void setSort(String sort) { - this.sort = sort; - } - - public String getQuery() { - return query; - } - - public void setQuery(String query) { - this.query = query; - } - - -} diff --git a/src/main/java/io/kumare/iqr/app/adapter/AppAdapters.java b/src/main/java/io/kumare/iqr/app/adapter/AppAdapters.java index 3701275..0e646db 100644 --- a/src/main/java/io/kumare/iqr/app/adapter/AppAdapters.java +++ b/src/main/java/io/kumare/iqr/app/adapter/AppAdapters.java @@ -6,7 +6,6 @@ package io.kumare.iqr.app.adapter; // base import io.kumare.adapter.spring.vismatime.VismaTimeAdapter; import io.kumare.lib.base.server.spring.adapter.BaseAdapters; -import io.kumare.oauthlib.server.app.adapter.oauth.OauthAdapter; // app /** @@ -17,10 +16,6 @@ public class AppAdapters extends BaseAdapters { // ::: adapters // - public OauthAdapter getOauth() { - return getContext().getBean(OauthAdapter.class); - } - public VismaTimeAdapter getVisma() { return getContext().getBean(VismaTimeAdapter.class); } diff --git a/src/main/java/io/kumare/iqr/app/endpoint/rest/AppEndpointRest.java b/src/main/java/io/kumare/iqr/app/endpoint/rest/AppEndpointRest.java index 748196a..166afb4 100644 --- a/src/main/java/io/kumare/iqr/app/endpoint/rest/AppEndpointRest.java +++ b/src/main/java/io/kumare/iqr/app/endpoint/rest/AppEndpointRest.java @@ -4,7 +4,6 @@ package io.kumare.iqr.app.endpoint.rest; // base -import io.kumare.lib.app.api.action.ActionManager; import io.kumare.lib.base.server.spring.endpoint.rest.BaseEndpointRest; // app import io.kumare.iqr.app.AppContext; @@ -16,11 +15,6 @@ import io.kumare.iqr.app.AppEngine; */ public class AppEndpointRest extends BaseEndpointRest { - @Override - protected ActionManager getActionManager() { - return AppEngine.getEngine().getActionManager(); - } - @Override protected AppContext newContext() { return AppEngine.getEngine().newContext(); diff --git a/src/main/java/io/kumare/iqr/app/endpoint/rest/RequestTraceInterceptor.java b/src/main/java/io/kumare/iqr/app/endpoint/rest/RequestTraceInterceptor.java new file mode 100644 index 0000000..7c4b474 --- /dev/null +++ b/src/main/java/io/kumare/iqr/app/endpoint/rest/RequestTraceInterceptor.java @@ -0,0 +1,49 @@ +/* + */ +package io.kumare.iqr.app.endpoint.rest; + +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; +import org.springframework.web.servlet.HandlerInterceptor; + +/** + * Logs method, path, status and duration of every REST call — the trace + * trail for exercising the Visma adapter through this test harness. + * Controlled by the existing logging.level.io.kumare=DEBUG property. + * + * @author aservin + */ +@Component +public class RequestTraceInterceptor implements HandlerInterceptor { + + // ::: cons + // + private static final Logger logger = LoggerFactory.getLogger(RequestTraceInterceptor.class); + private static final String START_ATTR = "traceStartNanos"; + + // ::: api + // + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { + request.setAttribute(START_ATTR, System.nanoTime()); + logger.info("--> {} {}", request.getMethod(), request.getRequestURI()); + return true; + } + + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { + var start = (Long) request.getAttribute(START_ATTR); + var elapsedMs = start == null ? -1 : (System.nanoTime() - start) / 1_000_000; + if (ex != null) { + logger.error("<-- {} {} [{}] {}ms failed: {}", + request.getMethod(), request.getRequestURI(), response.getStatus(), elapsedMs, ex.toString()); + } else { + logger.info("<-- {} {} [{}] {}ms", + request.getMethod(), request.getRequestURI(), response.getStatus(), elapsedMs); + } + } + +} diff --git a/src/main/java/io/kumare/iqr/app/endpoint/rest/WebConfig.java b/src/main/java/io/kumare/iqr/app/endpoint/rest/WebConfig.java new file mode 100644 index 0000000..d068b6b --- /dev/null +++ b/src/main/java/io/kumare/iqr/app/endpoint/rest/WebConfig.java @@ -0,0 +1,41 @@ +/* + */ +package io.kumare.iqr.app.endpoint.rest; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +/** + * Test harness has no authentication — CORS-only (no spring-security on the + * classpath) plus the request trace logging interceptor. + * + * @author aservin + */ +@Configuration +public class WebConfig implements WebMvcConfigurer { + + // ::: constructors + // + @Autowired + private RequestTraceInterceptor requestTraceInterceptor; + + // ::: api + // + @Override + public void addCorsMappings(CorsRegistry registry) { + registry.addMapping("/**") + .allowedOriginPatterns("*") + .allowedMethods("OPTIONS", "HEAD", "GET", "PUT", "POST", "DELETE", "PATCH") + .allowedHeaders("*") + .allowCredentials(true); + } + + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(requestTraceInterceptor); + } + +} diff --git a/src/main/java/io/kumare/iqr/app/endpoint/rest/WebSecurityConfig.java b/src/main/java/io/kumare/iqr/app/endpoint/rest/WebSecurityConfig.java deleted file mode 100644 index 62363c0..0000000 --- a/src/main/java/io/kumare/iqr/app/endpoint/rest/WebSecurityConfig.java +++ /dev/null @@ -1,122 +0,0 @@ -/* - */ -package io.kumare.iqr.app.endpoint.rest; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.config.http.SessionCreationPolicy; -import org.springframework.security.web.SecurityFilterChain; -import org.springframework.web.cors.CorsConfiguration; -import org.springframework.web.cors.UrlBasedCorsConfigurationSource; - -import java.util.Arrays; - -/** - * @author aservin - */ -@Configuration -@EnableWebSecurity -public class WebSecurityConfig { - - // ::: constants - // - //private final JwtAuthConverter jwtAuthConverter; - - // ::: constructors - // - /* - public WebSecurityConfig(JwtAuthConverter jwtAuthConverter) { - this.jwtAuthConverter = jwtAuthConverter; - }*/ - - // ::: beans - // - @Bean - public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { - // REQUESTS - /*http.authorizeHttpRequests(authorize -> authorize - // Permitir acceso al login - .requestMatchers(HttpMethod.POST, "/account/accounts/login/**").permitAll() - // Agrupar rutas con las mismas reglas de autorización - .requestMatchers( - "/account/**", - "/actor/**", - "/attachment/**", - "/bpmflow/**", - "/authority/**", - "/bpmwork/**", - "/currency/**", - "/instrument/**", - "/issue/**", - "/management/**", - "/sale/**", - "/title/**", - "/workcase/**", - "/workgroup/**", - "/workflow/**" - ).hasAnyRole("ADMIN", "MOD") - // Permitir todas las rutas bajo "/procesos/" para todos los métodos - .requestMatchers("/procesos/**", - "/location/**").permitAll() - // Permitir acceso a Swagger y documentación API - .requestMatchers(HttpMethod.GET, - "/swagger-workflow-server.html", - "/swagger-ui/**", - "/swagger-ui.html", - "/v3/api-docs/**").permitAll() - // Requiere autenticación para el resto de las rutas - .anyRequest().authenticated());*/ - - //http - // .authorizeHttpRequests(authorize -> authorize.anyRequest().permitAll()); - - - /* - // OAUTH JWT CONFIGURATION - http.oauth2ResourceServer(oauth2ResourceServer - -> oauth2ResourceServer.jwt(jwt - -> jwt.jwtAuthenticationConverter(jwtAuthConverter)));*/ - - // CORS CONFIGURATION - var source = new UrlBasedCorsConfigurationSource(); - var corsConfig = new CorsConfiguration(); - corsConfig.setAllowCredentials(true); - corsConfig.addAllowedOriginPattern("*"); // Permitir cualquier origen - corsConfig.addAllowedHeader("*"); - corsConfig.setAllowedMethods(Arrays.asList("OPTIONS", "HEAD", "GET", "PUT", "POST", "DELETE", "PATCH")); - source.registerCorsConfiguration("/**", corsConfig); - - http.csrf(csrf -> csrf.disable()).cors(cors -> cors.configurationSource(source)); - - // SESSION MANAGEMENT - /* - http.sessionManagement(sessionManagement - -> sessionManagement.sessionCreationPolicy(SessionCreationPolicy.STATELESS));*/ - - // FINAL CONFIGURATION - return http.getOrBuild(); - } - - /* - //para prueba - @Bean - public CorsFilter corsFilter() { - final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); - final CorsConfiguration config = new CorsConfiguration(); - //config.setAllowCredentials(true); - config.setAllowCredentials(false); - config.addAllowedOrigin("*"); - config.addAllowedHeader("*"); - config.addAllowedMethod("OPTIONS"); - config.addAllowedMethod("HEAD"); - config.addAllowedMethod("GET"); - config.addAllowedMethod("PUT"); - config.addAllowedMethod("POST"); - config.addAllowedMethod("DELETE"); - config.addAllowedMethod("PATCH"); - source.registerCorsConfiguration("/**", config); - return new CorsFilter(source); - }*/ -} 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 910a4a9..db7fd5b 100644 --- a/src/main/java/io/kumare/iqr/app/module/AppModules.java +++ b/src/main/java/io/kumare/iqr/app/module/AppModules.java @@ -1,67 +1,32 @@ -/* - * - */ -package io.kumare.iqr.app.module; - -// base -import io.kumare.lib.base.server.spring.module.BaseModules; -// app -import io.kumare.iqr.mod.authentication.AuthenticationModule; -import io.kumare.iqr.mod.taxonomy.TaxonomyModule; -import io.kumare.iqr.mod.pocket.PocketModule; -import io.kumare.iqr.mod.biz.BizModule; -import io.kumare.iqr.mod.clientele.ClienteleModule; -import io.kumare.iqr.mod.loyalty.LoyaltyModule; - -/** - * - * @author afatecha - */ -public class AppModules extends BaseModules { - - // ::: constants - // - public static final AuthenticationModule authentication = new AuthenticationModule(); - public static final TaxonomyModule taxonomy = new TaxonomyModule(); - public static final PocketModule pocket = new PocketModule(); - public static final BizModule biz = new BizModule(); - public static final ClienteleModule clientele = new ClienteleModule(); - public static final LoyaltyModule loyalty = new LoyaltyModule(); - - // ::: modules - // - public AuthenticationModule getAuthentication() { - return authentication; - } - - public TaxonomyModule getTaxonomy() { - return taxonomy; - } - - public PocketModule getPocket() { - return pocket; - } - - public BizModule getBiz() { - return biz; - } - - public ClienteleModule getClientele() { - return clientele; - } - - public LoyaltyModule getLoyalty() { - return loyalty; - } - - // ::: init - // - public void init() { - add(authentication); - add(taxonomy); - add(pocket); - add(biz); - add(clientele); - add(loyalty); - } -} +/* + * + */ +package io.kumare.iqr.app.module; + +// base +import io.kumare.lib.base.server.spring.module.BaseModules; +// app +import io.kumare.iqr.mod.clientele.ClienteleModule; + +/** + * + * @author afatecha + */ +public class AppModules extends BaseModules { + + // ::: constants + // + public static final ClienteleModule clientele = new ClienteleModule(); + + // ::: modules + // + public ClienteleModule getClientele() { + return clientele; + } + + // ::: init + // + public void init() { + add(clientele); + } +} diff --git a/src/main/java/io/kumare/iqr/app/security/AppPermissionManager.java b/src/main/java/io/kumare/iqr/app/security/AppPermissionManager.java deleted file mode 100644 index c251531..0000000 --- a/src/main/java/io/kumare/iqr/app/security/AppPermissionManager.java +++ /dev/null @@ -1,16 +0,0 @@ -/* - * - */ -package io.kumare.iqr.app.security; - -// base -import io.kumare.lib.base.server.spring.security.BasePermissionManager; - -/** - * - * @author afatecha - */ -public class AppPermissionManager extends BasePermissionManager { - - -} diff --git a/src/main/java/io/kumare/iqr/app/security/AppSecurityScopes.java b/src/main/java/io/kumare/iqr/app/security/AppSecurityScopes.java deleted file mode 100644 index a94e286..0000000 --- a/src/main/java/io/kumare/iqr/app/security/AppSecurityScopes.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * - */ -package io.kumare.iqr.app.security; - -// java -import java.util.LinkedList; -import java.util.List; - - -/** - * - * @author afatecha - */ -public enum AppSecurityScopes { - - system(false), - service(false), - module(false), - reference(true), - component(true); - - // ::: api - // - private final boolean idRequired; - - AppSecurityScopes(boolean idRequired) { - this.idRequired = idRequired; - } - - public boolean isIdRequired() { - return idRequired; - } - - public int level() { - return ordinal() + 1; - } - - // ::: static - // - public static List scopes(String referenceId, String componentId) { - var list = new LinkedList(); - - list.add(system.name()); - list.add(service.name()); - list.add(module.name()); - - if (referenceId != null) { - list.add(reference.name() + "-" + referenceId); - } - if (componentId != null) { - list.add(component.name() + "-" + componentId); - } - - return list; - } -} diff --git a/src/main/java/io/kumare/iqr/app/store/AppEntity.java b/src/main/java/io/kumare/iqr/app/store/AppEntity.java deleted file mode 100644 index b2273ba..0000000 --- a/src/main/java/io/kumare/iqr/app/store/AppEntity.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * - */ -package io.kumare.iqr.app.store; - -// java -import jakarta.persistence.MappedSuperclass; -// base -import io.kumare.lib.base.server.spring.store.jpa.DefaultJpaEntity; - -/** - * - * @author afatecha - */ -@MappedSuperclass -public class AppEntity extends DefaultJpaEntity { - - // ::: constructors - // - public AppEntity() { - super(); - } - - public AppEntity(String id) { - super(id); - } - -} - diff --git a/src/main/java/io/kumare/iqr/app/store/AppEntityRepository.java b/src/main/java/io/kumare/iqr/app/store/AppEntityRepository.java deleted file mode 100644 index 3a5ebdb..0000000 --- a/src/main/java/io/kumare/iqr/app/store/AppEntityRepository.java +++ /dev/null @@ -1,21 +0,0 @@ -/* - * - */ -package io.kumare.iqr.app.store; - -// spring -import org.springframework.data.repository.NoRepositoryBean; -// base -import io.kumare.lib.app.api.store.Entity; -import io.kumare.lib.base.server.spring.store.jpa.BaseJpaEntityRepository; - -/** - * - * @author afatecha - * @param - */ -@NoRepositoryBean -public interface AppEntityRepository extends BaseJpaEntityRepository { - - -} diff --git a/src/main/java/io/kumare/iqr/app/store/AppEntityStore.java b/src/main/java/io/kumare/iqr/app/store/AppEntityStore.java deleted file mode 100644 index efba05d..0000000 --- a/src/main/java/io/kumare/iqr/app/store/AppEntityStore.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * - */ -package io.kumare.iqr.app.store; - -// base -import io.kumare.lib.app.api.store.Entity; -import io.kumare.lib.base.server.spring.BaseContext; -import io.kumare.lib.base.server.spring.store.jpa.BaseJpaEntityStore; -// app -import io.kumare.iqr.app.util.AppUtil; - -/** - * - * @author afatecha - * @param - */ -public abstract class AppEntityStore extends BaseJpaEntityStore { - - // ::: api - // - @Override - protected String makeEntityId(E model) { - return model.getId() == null ? AppUtil.randomId() : model.getId().toString(); - } - - - -} diff --git a/src/main/java/io/kumare/iqr/app/store/AppExtendedEntity.java b/src/main/java/io/kumare/iqr/app/store/AppExtendedEntity.java deleted file mode 100644 index b4ee1b1..0000000 --- a/src/main/java/io/kumare/iqr/app/store/AppExtendedEntity.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * - */ -package io.kumare.iqr.app.store; - -// java -import java.io.Serializable; -import jakarta.persistence.MappedSuperclass; -// base -import io.kumare.lib.base.server.spring.store.jpa.DefaultExtendedJpaEntity; - -/** - * - * @author afatecha - * @param - */ -@MappedSuperclass -public class AppExtendedEntity extends DefaultExtendedJpaEntity { - - // ::: constructors - // - public AppExtendedEntity() { - super(); - } - - public AppExtendedEntity(String id) { - super(id); - } -} - diff --git a/src/main/java/io/kumare/iqr/app/store/AppExtendedEntityData.java b/src/main/java/io/kumare/iqr/app/store/AppExtendedEntityData.java deleted file mode 100644 index e2d105b..0000000 --- a/src/main/java/io/kumare/iqr/app/store/AppExtendedEntityData.java +++ /dev/null @@ -1,15 +0,0 @@ -/* - * - */ -package io.kumare.iqr.app.store; - -// java -import java.io.Serializable; - -/** - * - * @author afatecha - */ -public class AppExtendedEntityData implements Serializable { - -} diff --git a/src/main/java/io/kumare/iqr/app/store/AppJacksonConfiguration.java b/src/main/java/io/kumare/iqr/app/store/AppJacksonConfiguration.java deleted file mode 100644 index ac83589..0000000 --- a/src/main/java/io/kumare/iqr/app/store/AppJacksonConfiguration.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * - */ -package io.kumare.iqr.app.store; - -// jackson -import com.fasterxml.jackson.datatype.hibernate6.Hibernate6Module; -// spring -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/** - * - */ -@Configuration -public class AppJacksonConfiguration { - - @Bean - public Hibernate6Module hibernate6Module() { - - Hibernate6Module module = new Hibernate6Module(); - module.enable(Hibernate6Module.Feature.SERIALIZE_IDENTIFIER_FOR_LAZY_NOT_LOADED_OBJECTS); - return module; - } - -} diff --git a/src/main/java/io/kumare/iqr/app/store/AppKeyEntityRepository.java b/src/main/java/io/kumare/iqr/app/store/AppKeyEntityRepository.java deleted file mode 100644 index 4d2f8b7..0000000 --- a/src/main/java/io/kumare/iqr/app/store/AppKeyEntityRepository.java +++ /dev/null @@ -1,21 +0,0 @@ -/* - * - */ -package io.kumare.iqr.app.store; - -// spring -import org.springframework.data.repository.NoRepositoryBean; -// base -import io.kumare.lib.app.api.store.Entity; -import io.kumare.lib.base.server.spring.store.jpa.BaseJpaKeyEntityRepository; - -/** - * - * @author afatecha - * @param - */ -@NoRepositoryBean -public interface AppKeyEntityRepository extends BaseJpaKeyEntityRepository{ - - -} diff --git a/src/main/java/io/kumare/iqr/app/store/AppKeyEntityStore.java b/src/main/java/io/kumare/iqr/app/store/AppKeyEntityStore.java deleted file mode 100644 index 933f2c6..0000000 --- a/src/main/java/io/kumare/iqr/app/store/AppKeyEntityStore.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * - */ -package io.kumare.iqr.app.store; - -// base -import io.kumare.lib.app.api.store.Entity; -import io.kumare.lib.app.api.Context; -import io.kumare.lib.base.server.spring.store.jpa.BaseJpaKeyEntityStore; -// app -import io.kumare.iqr.app.util.AppUtil; - -/** - * - * @author afatecha - * @param - */ -public abstract class AppKeyEntityStore extends BaseJpaKeyEntityStore { - - // ::: api - // - @Override - protected String makeEntityId(E model) { - return model.getId() == null ? AppUtil.randomId() : model.getId().toString(); - } - - - -} diff --git a/src/main/java/io/kumare/iqr/app/util/AppUtil.java b/src/main/java/io/kumare/iqr/app/util/AppUtil.java deleted file mode 100644 index 7077ce1..0000000 --- a/src/main/java/io/kumare/iqr/app/util/AppUtil.java +++ /dev/null @@ -1,18 +0,0 @@ -/* - * - */ -package io.kumare.iqr.app.util; - -import java.util.UUID; - -/** - * - * @author afatecha - */ -public class AppUtil { - - public static String randomId() { - return UUID.randomUUID().toString(); - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/AuthenticationConstants.java b/src/main/java/io/kumare/iqr/mod/authentication/AuthenticationConstants.java deleted file mode 100644 index fe51fd1..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/AuthenticationConstants.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication; - -// base -import io.kumare.iqr.app.AppConstants; - -/** - * - * @author afatecha - */ -public class AuthenticationConstants { - - // ::: codes - // - public static final int CODE = AppConstants.AUTHENTICATION_CODE; - public static final String NAME = "authentication"; - -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/AuthenticationController.java b/src/main/java/io/kumare/iqr/mod/authentication/AuthenticationController.java deleted file mode 100644 index 4feac36..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/AuthenticationController.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication; - -// java -import io.kumare.iqr.mod.authentication.store.AuthenticationEntities; -import java.util.Arrays; -import java.util.List; -// base -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app -import io.kumare.iqr.app.module.AppModuleController; -// module -import io.kumare.iqr.mod.authentication.store.authuser.AuthUserStore; -import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationStore; - -/** - * - * @author afatecha - */ -public class AuthenticationController extends AppModuleController { - - // ::: api - // - @Override - public boolean hasStore(String name) { - return AuthenticationEntities.hasDescriptor(name); - } - - @Override - public EntityDescriptor getEntityDescriptor(Class entityClass) { - return AuthenticationEntities.descriptorOf(entityClass); - } - - @Override - public EntityDescriptor getEntityDescriptor(String name) { - return AuthenticationEntities.descriptorOf(name); - } - - @Override - public List getEntityDescriptors() { - return Arrays.asList(AuthenticationEntities.values()); - } - - // ::: stores - // - public AuthUserStore getAuthUserStore() { - return getService(AuthUserStore.class); - } - - public AuthUserRelationStore getAuthUserRelationStore() { - return getService(AuthUserRelationStore.class); - } - - -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/AuthenticationErrors.java b/src/main/java/io/kumare/iqr/mod/authentication/AuthenticationErrors.java deleted file mode 100644 index 45fc230..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/AuthenticationErrors.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication; - -// java -import java.util.HashMap; -import java.util.Map; -// lib -import io.kumare.lib.transport.TransportCode; -import static io.kumare.lib.transport.Transports.code; -import io.kumare.lib.v.ExceptionPrototype; -// app -import io.kumare.iqr.app.AppException; -import io.kumare.iqr.app.endpoint.AppTransports; - - -/** - * - * @author afatecha - */ -public enum AuthenticationErrors implements ExceptionPrototype { - - - // auth user - authuser_notfound(1, code(AppTransports.http, 400)), - authuser_data_notfound(1, code(AppTransports.http, 400)), - authuser_preload_empty(1, code(AppTransports.http, 400)), - authuser_externalid_empty(1, code(AppTransports.http, 400)), - authuser_entitykey_empty(1, code(AppTransports.http, 400)), - authuser_custom_empty(1, code(AppTransports.http, 400)), - authuser_visible_empty(1, code(AppTransports.http, 400)), - authuser_email_empty(1, code(AppTransports.http, 400)), - authuser_emailconfirmed_empty(1, code(AppTransports.http, 400)), - authuser_phone_empty(1, code(AppTransports.http, 400)), - authuser_phoneconfirmed_empty(1, code(AppTransports.http, 400)), - authuser_name_empty(1, code(AppTransports.http, 400)), - - // auth user relation - authuserrelation_notfound(1, code(AppTransports.http, 400)), - authuserrelation_data_notfound(1, code(AppTransports.http, 400)), - authuserrelation_preload_empty(1, code(AppTransports.http, 400)), - authuserrelation_externalid_empty(1, code(AppTransports.http, 400)), - authuserrelation_userkey_empty(1, code(AppTransports.http, 400)), - authuserrelation_typevalue_empty(1, code(AppTransports.http, 400)), - authuserrelation_resourcetype_empty(1, code(AppTransports.http, 400)), - authuserrelation_resourcekey_empty(1, code(AppTransports.http, 400)), - authuserrelation_resourceid_empty(1, code(AppTransports.http, 400)), - authuserrelation_authuser_notfound(1, code(AppTransports.http, 400)); - - // ::: vars - // - private final Map transportCodes = new HashMap(); - private final int code; - - // ::: constructors - // - private AuthenticationErrors(int code, TransportCode... codes) { - this.code = code; - if (codes != null) { - for (var i : codes) { - if (i != null) { - transportCodes.put(i.getId(), i.getCode()); - } - } - } - } - - // ::: prototype api - // - @Override - public int getCode() { - return code; - } - - @Override - public String getName() { - return name(); - } - - @Override - public Map getTransportCodes() { - return transportCodes; - } - - @Override - public RuntimeException newInstance(String msg, Throwable cause, Map extra) { - var ex = new AppException(this, msg, cause); - ex.setExtra(extra); - return ex; - } - - -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/AuthenticationModule.java b/src/main/java/io/kumare/iqr/mod/authentication/AuthenticationModule.java deleted file mode 100644 index b6425bf..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/AuthenticationModule.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication; - -// java -import io.kumare.lib.base.server.spring.module.BaseModule; - - -/** - * - * @author afatecha - */ -public class AuthenticationModule extends BaseModule { - - // ::: - // - public static final AuthenticationController controller = new AuthenticationController(); - - // ::: api - // - @Override - public int getId() { - return AuthenticationConstants.CODE; - } - - @Override - public String getName() { - return AuthenticationConstants.NAME; - } - - @Override - public AuthenticationController getController() { - return controller; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/AuthenticationPermissions.java b/src/main/java/io/kumare/iqr/mod/authentication/AuthenticationPermissions.java deleted file mode 100644 index 08fa9ea..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/AuthenticationPermissions.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication; - -// base -import io.kumare.iqr.mod.authentication.store.AuthenticationEntities; -import io.kumare.lib.app.api.security.PermissionReference; -// app -import io.kumare.iqr.app.AppErrors; - -/** - * - * @author afatecha - */ -public enum AuthenticationPermissions { - - // auth user - //auth_user_add(AuthenticationEntities.authUser), - //auth_user_edit(AuthenticationEntities.authUser), - //auth_user_find(AuthenticationEntities.authUser), - //auth_user_enable(AuthenticationEntities.authUser), - //auth_user_disable(AuthenticationEntities.authUser), - //auth_user_list(AuthenticationEntities.authUser), - //auth_user_delete(AuthenticationEntities.authUser), - //auth_user_preload(AuthenticationEntities.authUser), - // - auth_user_viewer(AuthenticationEntities.authUser), - //auth_user_guest(AuthenticationEntities.authUser), - //auth_user_collab(AuthenticationEntities.authUser), - auth_user_worker(AuthenticationEntities.authUser), - //auth_user_control(AuthenticationEntities.authUser), - auth_user_manager(AuthenticationEntities.authUser), - auth_user_admin(null), - auth_user_system(null), - - // auth user relation - //auth_user_relation_add(AuthenticationEntities.authUserRelation), - //auth_user_relation_edit(AuthenticationEntities.authUserRelation), - //auth_user_relation_find(AuthenticationEntities.authUserRelation), - //auth_user_relation_enable(AuthenticationEntities.authUserRelation), - //auth_user_relation_disable(AuthenticationEntities.authUserRelation), - //auth_user_relation_list(AuthenticationEntities.authUserRelation), - //auth_user_relation_delete(AuthenticationEntities.authUserRelation), - //auth_user_relation_preload(AuthenticationEntities.authUserRelation), - // - auth_user_relation_viewer(AuthenticationEntities.authUserRelation), - //auth_user_relation_guest(AuthenticationEntities.authUserRelation), - //auth_user_relation_collab(AuthenticationEntities.authUserRelation), - auth_user_relation_worker(AuthenticationEntities.authUserRelation), - //auth_user_relation_control(AuthenticationEntities.authUserRelation), - auth_user_relation_manager(AuthenticationEntities.authUserRelation), - auth_user_relation_admin(null), - auth_user_relation_system(null); - - - // ::: - // - private final AuthenticationEntities resourceType; - - AuthenticationPermissions(AuthenticationEntities entityRef) { - this.resourceType = entityRef; - } - - // - public PermissionReference toReference() { - return toReference(null); - } - - public PermissionReference toReference(String resourceKey) { - var ref = new PermissionReference() - .module(AuthenticationConstants.NAME) - .permission(name()) - .error(AppErrors.action_unauthorized); - - if (resourceType != null && resourceKey != null) { - ref.resourceType(resourceType.name()) - .resourceKey(resourceKey); - } - - return ref; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserActionArgument.java b/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserActionArgument.java deleted file mode 100644 index f98690b..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserActionArgument.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.action.authuser; - -// base -import io.kumare.iqr.app.action.AppEntityActionArgument; -// entity -import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; - -/** - * - * @author afatecha - */ -public class AuthUserActionArgument extends AppEntityActionArgument { - - // ::: constructors - // - public AuthUserActionArgument() { - } - - public AuthUserActionArgument(AuthUserEntity entity) { - super(entity); - } - - // ::: api - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserAddAction.java b/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserAddAction.java deleted file mode 100644 index 5d3e214..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserAddAction.java +++ /dev/null @@ -1,169 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.action.authuser; - -// java -import java.util.List; -// lib -import io.kumare.lib.base.server.spring.action.Actions; -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.authentication.AuthenticationErrors; -// entity -import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; - -import io.kumare.iqr.mod.authentication.action.authuserrelation.AuthUserRelationAddAction; -import io.kumare.iqr.mod.authentication.action.authuserrelation.AuthUserRelationAddArgument; -import io.kumare.oauthlib.server.app.adapter.oauth.OauthAdapter; -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; -import org.keycloak.admin.client.CreatedResponseUtil; -import org.keycloak.representations.idm.CredentialRepresentation; -import org.keycloak.representations.idm.UserRepresentation; - -/** - * - * @author afatecha - */ -public class AuthUserAddAction extends AppAction> { - - // ::: vars - // - private AuthUserEntity entity; - private UserRepresentation user; - private OauthAdapter oauth; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, AuthenticationErrors.authuser_notfound); - - // relations - // fields - //V.ifEmpty(model.getExternalId(), AuthenticationErrors.authuser_externalid_empty); - //V.ifEmpty(model.getEntityKey(), AuthenticationErrors.authuser_entitykey_empty); - //V.ifEmpty(model.isCustom(), AuthenticationErrors.authuser_custom_empty); - //V.ifEmpty(model.isVisible(), AuthenticationErrors.authuser_visible_empty); - V.ifEmpty(model.getEmail(), AuthenticationErrors.authuser_email_empty); - //V.ifEmpty(model.isEmailConfirmed(), AuthenticationErrors.authuser_emailconfirmed_empty); - //V.ifEmpty(model.getPhone(), AuthenticationErrors.authuser_phone_empty); - //V.ifEmpty(model.isPhoneConfirmed(), AuthenticationErrors.authuser_phoneconfirmed_empty); - V.ifEmpty(model.getName(), AuthenticationErrors.authuser_name_empty); - } - - @Override - protected void doAction() { - - // adapters - //oauth = getContext().getAdapters().getOauth(); - - // controllers - //createKeycloakUser(); - // model - var model = makeModel(); - - // add - entity = saveEntity(model); - - // add others - addRelations(getArgument().getRelations()); - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private AuthUserEntity makeModel() { - var argModel = getArgument().getEntity(); - var model = new AuthUserEntity(); - - // relations - // fields - //model.setExternalId(user.getId()); - model.setEntityKey(argModel.getEntityKey());//user.getUsername()); - model.setCustom(argModel.isCustom()); - model.setVisible(argModel.isVisible()); - model.setEmail(argModel.getEmail()); - model.setEmailConfirmed(argModel.isEmailConfirmed()); - model.setPhone(argModel.getPhone()); - model.setPhoneConfirmed(argModel.isPhoneConfirmed()); - model.setName(argModel.getName()); - model.setActive(true); - - return model; - } - - // ::: save - // - private AuthUserEntity saveEntity(AuthUserEntity model) { - - var store = AppModules.authentication.getController().getAuthUserStore(); - - var saved = store.add(getContext(), model); - getContext().attach(saved.getId(), saved); - return saved; - } - - // ::: add relations - // - private void addRelations(List list) { - if (list != null) { - list.forEach(i -> { - i.getEntity().authUser(entity); - Actions.perform(getContext(), new AuthUserRelationAddAction(), i); - }); - } - } - - private void createKeycloakUser() { - var arg = getArgument().getEntity(); - - user = new UserRepresentation(); - user.setFirstName(arg.getName()); - user.setLastName(arg.getName()); - user.setEmail(arg.getEmail()); - user.setEmailVerified(false); - user.setUsername(arg.getEmail()); - - var credential = new CredentialRepresentation(); - credential.setType("password"); - credential.setTemporary(false); - String password = getArgument().getPassword(); - credential.setValue(password); - user.setCredentials(Collections.singletonList(credential)); - Map> attributes = new HashMap<>(); - attributes.put("phone", Collections.singletonList(arg.getPhone())); - user.setAttributes(attributes); - - createUserInKeycloak(); - } - - private void createUserInKeycloak() { - user.setEnabled(true); - user.setEmailVerified(false); - - var response = oauth.users().create(user); - String userId = CreatedResponseUtil.getCreatedId(response); - user = oauth.users().find(userId); - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserAddArgument.java b/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserAddArgument.java deleted file mode 100644 index 5747af5..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserAddArgument.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.action.authuser; - -// java -import java.util.List; -// app -import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; -import io.kumare.iqr.mod.authentication.action.authuserrelation.AuthUserRelationAddArgument; - -/** - * - * @author afatecha - */ -public class AuthUserAddArgument extends AuthUserActionArgument { - - // ::: vars - // - private List relations; - private String password; - - // ::: constructors - // - public AuthUserAddArgument() { - } - - public AuthUserAddArgument(AuthUserEntity entity) { - super(entity); - } - - // ::: fields - // - public List getRelations() { - return relations; - } - - public void setRelations(List list) { - this.relations = list; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - - -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserDeleteAction.java b/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserDeleteAction.java deleted file mode 100644 index fb20d22..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserDeleteAction.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.action.authuser; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.authentication.AuthenticationErrors; -// entity -import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; - -/** - * - * @author afatecha - */ -public class AuthUserDeleteAction extends AppAction> { - - // ::: vars - // - private AuthUserEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), AuthenticationErrors.authuser_notfound); - V.ifNull(getArgument().getEntity().getId(), AuthenticationErrors.authuser_notfound); - } - - @Override - protected void doAction() { - - var argModel = getArgument().getEntity(); - - deleteEntity(argModel); - } - - @Override - protected void setResultOnly() { - } - - // ::: delete - // - private void deleteEntity(AuthUserEntity model) { - - var store = AppModules.authentication.getController().getAuthUserStore(); - - store.deleteById(getContext(), model.getId()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserEditAction.java b/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserEditAction.java deleted file mode 100644 index 88f556d..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserEditAction.java +++ /dev/null @@ -1,109 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.action.authuser; - -// lib -import io.kumare.lib.v.V; -// app -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.authentication.AuthenticationErrors; -// entity -import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; - -/** - * - * @author afatecha - */ -public class AuthUserEditAction extends AppAction> { - - // ::: vars - // - private AuthUserEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, AuthenticationErrors.authuser_notfound); - - // fields - V.ifEmpty(model.getExternalId(), AuthenticationErrors.authuser_externalid_empty); - V.ifEmpty(model.getEntityKey(), AuthenticationErrors.authuser_entitykey_empty); - V.ifEmpty(model.isCustom(), AuthenticationErrors.authuser_custom_empty); - V.ifEmpty(model.isVisible(), AuthenticationErrors.authuser_visible_empty); - V.ifEmpty(model.getEmail(), AuthenticationErrors.authuser_email_empty); - V.ifEmpty(model.isEmailConfirmed(), AuthenticationErrors.authuser_emailconfirmed_empty); - V.ifEmpty(model.getPhone(), AuthenticationErrors.authuser_phone_empty); - V.ifEmpty(model.isPhoneConfirmed(), AuthenticationErrors.authuser_phoneconfirmed_empty); - V.ifEmpty(model.getName(), AuthenticationErrors.authuser_name_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - - var authentication = AppModules.authentication.getController(); - var authUserStore = authentication.getAuthUserStore(); - - // edit - entity = authUserStore.ensure(getContext(), argModel, AuthenticationErrors.authuser_notfound); - - editEntity(); - - entity = saveEntity(); - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private void editEntity() { - - var model = getArgument().getEntity(); - - // fields - entity.setExternalId(V.firstNotEmpty(model.getExternalId(), entity.getExternalId())); - entity.setEntityKey(V.firstNotEmpty(model.getEntityKey(), entity.getEntityKey())); - entity.setCustom(V.firstNotEmpty(model.isCustom(), entity.isCustom())); - entity.setVisible(V.firstNotEmpty(model.isVisible(), entity.isVisible())); - entity.setEmail(V.firstNotEmpty(model.getEmail(), entity.getEmail())); - entity.setEmailConfirmed(V.firstNotEmpty(model.isEmailConfirmed(), entity.isEmailConfirmed())); - entity.setPhone(V.firstNotEmpty(model.getPhone(), entity.getPhone())); - entity.setPhoneConfirmed(V.firstNotEmpty(model.isPhoneConfirmed(), entity.isPhoneConfirmed())); - entity.setName(V.firstNotEmpty(model.getName(), entity.getName())); - - - } - - // ::: save - // - private AuthUserEntity saveEntity() { - - var store = AppModules.authentication.getController().getAuthUserStore(); - - var saved = store.edit(getContext(), entity); - getContext().attach(saved.getId(), saved); - return saved; - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserEditArgument.java b/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserEditArgument.java deleted file mode 100644 index 071c08f..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserEditArgument.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.action.authuser; - -// app -import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; - -/** - * - * @author afatecha - */ -public class AuthUserEditArgument extends AuthUserActionArgument { - - // ::: vars - // - - - // ::: constructors - // - public AuthUserEditArgument() { - } - - public AuthUserEditArgument(AuthUserEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserEnableAction.java b/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserEnableAction.java deleted file mode 100644 index 68fe986..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserEnableAction.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.action.authuser; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.authentication.AuthenticationErrors; -// entity -import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; - - -/** - * - * @author afatecha - */ -public class AuthUserEnableAction extends AppAction { - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), AuthenticationErrors.authuser_notfound); - V.ifNull(getArgument().getEntity().getId(), AuthenticationErrors.authuser_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - - enableEntity(model); - } - - @Override - protected void setResultOnly() { - } - - // ::: enable - // - private void enableEntity(AuthUserEntity model) { - - var store = AppModules.authentication.getController().getAuthUserStore(); - - if (getArgument().getEntity().isActive()) { - store.enableById(getContext(), model.getId()); - } else { - store.disableById(getContext(), model.getId()); - } - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserFindAction.java b/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserFindAction.java deleted file mode 100644 index 4d96454..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserFindAction.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.action.authuser; - -// java -import java.util.HashMap; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.authentication.AuthenticationErrors; -// entity -import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; - - -/** - * - * @author afatecha - */ -public class AuthUserFindAction extends AppAction { - - // ::: vars - // - private AuthUserEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), AuthenticationErrors.authuser_notfound); - V.ifNull(getArgument().getEntity().getId(), AuthenticationErrors.authuser_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - entity = findEntity(model); - } - - @Override - protected void setResultOnly() { - var result = new HashMap(); - result.put("entity", entity); - setResult(result); - } - - // ::: find - // - private AuthUserEntity findEntity(AuthUserEntity model) { - - var store = AppModules.authentication.getController().getAuthUserStore(); - return store.findById(getContext(), model.getId()); - } - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserListAction.java b/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserListAction.java deleted file mode 100644 index 26fcf49..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserListAction.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.action.authuser; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.LinkedList; -import java.util.Map; -// spring -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// entity -import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; -import io.kumare.iqr.mod.authentication.store.authuser.AuthUserMapBuilder; - - -/** - * - * @author afatecha - */ -public class AuthUserListAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private final List entities = new LinkedList<>(); - - // ::: public api - // - public List getEntities() { - return entities; - } - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - } - - @Override - protected void doAction() { - - result.put("pageable", getArgument().isPageable()); - result.put("wrapped", getArgument().isWrapped()); - - if (getArgument().isPageable()) { - - var page = makePage(); - entities.addAll(page.toList()); - - if (getArgument().isWrapped()) { - result.put("page", makeWrappedPage(page)); - } else { - result.put("page", page); - } - - } else { - - var list = makeList(); - entities.addAll(list); - - if (getArgument().isWrapped()) { - result.put("list", makeWrappedList()); - } else { - result.put("list", list); - } - } - - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: page - // - private Page makePage() { - - var page = getArgument().getPageNumber(); - var size = getArgument().getPageSize(); - //var sort = getArgument().getSort(); - - var pageable = PageRequest.of(page, size); - - var store = AppModules.authentication.getController().getAuthUserStore(); - return store.getRepository().findAll(pageable); - } - - // ::: wrapped page - // - private Map makeWrappedPage(Page found) { - - var page = new HashMap(); - var content = new LinkedList(); - - wrapList(entities, content); - - page.put("size", found.getSize()); - page.put("number", found.getNumber()); - page.put("totalElements", found.getTotalElements()); - page.put("totalPages", found.getTotalPages()); - page.put("content", content); - - return page; - } - - - // ::: list - // - - private List makeList() { - - var store = AppModules.authentication.getController().getAuthUserStore(); - - return store.listAll(getContext()); - } - - // ::: wrapped list - private List makeWrappedList() { - var list = new LinkedList(); - - wrapList(entities, list); - - return list; - } - - // ::: wrapper - // - private void wrapList(List found, List output) { - - var builder = new AuthUserMapBuilder().addListGroup(); - - - output.addAll(builder.build(getContext(), found)); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserListArgument.java b/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserListArgument.java deleted file mode 100644 index 3fab626..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserListArgument.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.action.authuser; - -// app -import io.kumare.iqr.app.action.AppListActionArgument; -// store -import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; - -/** - * - * @author afatecha - */ -public class AuthUserListArgument extends AppListActionArgument { - - // ::: vars - // - - // ::: constructors - // - public AuthUserListArgument() { - } - - public AuthUserListArgument(AuthUserEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserPreloadAction.java b/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserPreloadAction.java deleted file mode 100644 index fe19ba9..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserPreloadAction.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.action.authuser; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.authentication.AuthenticationErrors; -// entity -import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; -// relations - - -/** - * - * @author afatecha - */ -public class AuthUserPreloadAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private Map params = new HashMap<>(); - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifEmpty(getArgument().getAction(), AuthenticationErrors.authuser_preload_empty); - } - - @Override - protected void doAction() { - if(getArgument().getParams() != null) { - params = getArgument().getParams(); - } - - switch (getArgument().getAction()) { - case "find" -> - prepareFind(); - case "list" -> - prepareList(); - case "add" -> - prepareAdd(); - case "edit" -> - prepareEdit(); - } - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: preload - // - private void prepareAdd() { - - } - - private void prepareEdit() { - var entity = findEntity(); - result.put("entity", entity); - - } - - private void prepareList() { - } - - private void prepareFind() { - var entity = findEntity(); - result.put("entity", entity); - - } - - // ::: queries - // - private AuthUserEntity findEntity() { - var store = AppModules.authentication.getController().getAuthUserStore(); - - var id = (String) params.get("id"); - if(id == null && getArgument().getEntity() != null) { - id = getArgument().getEntity().getId(); - } - return store.findById(getContext(), id); - } - - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserPreloadArgument.java b/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserPreloadArgument.java deleted file mode 100644 index a4c2261..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/action/authuser/AuthUserPreloadArgument.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.action.authuser; - -/** - * - * @author afatecha - */ -public class AuthUserPreloadArgument extends AuthUserActionArgument { - - // ::: vars - // - private String action; - - // ::: fields - // - public String getAction() { - return action; - } - - public void setAction(String action) { - this.action = action; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationActionArgument.java b/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationActionArgument.java deleted file mode 100644 index 95a115e..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationActionArgument.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.action.authuserrelation; - -// base -import io.kumare.iqr.app.action.AppEntityActionArgument; -// entity -import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity; - -/** - * - * @author afatecha - */ -public class AuthUserRelationActionArgument extends AppEntityActionArgument { - - // ::: constructors - // - public AuthUserRelationActionArgument() { - } - - public AuthUserRelationActionArgument(AuthUserRelationEntity entity) { - super(entity); - } - - // ::: api - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationAddAction.java b/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationAddAction.java deleted file mode 100644 index 61eb00f..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationAddAction.java +++ /dev/null @@ -1,123 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.action.authuserrelation; - - -// lib -import io.kumare.lib.base.server.spring.action.Actions; -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.authentication.AuthenticationErrors; -// entity -import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity; -import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; - - -/** - * - * @author afatecha - */ -public class AuthUserRelationAddAction extends AppAction> { - - // ::: vars - // - private AuthUserRelationEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, AuthenticationErrors.authuserrelation_notfound); - - // relations - V.ifNull(model.getAuthUser(), AuthenticationErrors.authuserrelation_authuser_notfound); - - // fields - V.ifEmpty(model.getExternalId(), AuthenticationErrors.authuserrelation_externalid_empty); - V.ifEmpty(model.getUserKey(), AuthenticationErrors.authuserrelation_userkey_empty); - V.ifEmpty(model.getTypeValue(), AuthenticationErrors.authuserrelation_typevalue_empty); - V.ifEmpty(model.getResourceType(), AuthenticationErrors.authuserrelation_resourcetype_empty); - V.ifEmpty(model.getResourceKey(), AuthenticationErrors.authuserrelation_resourcekey_empty); - V.ifEmpty(model.getResourceId(), AuthenticationErrors.authuserrelation_resourceid_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - var authentication = AppModules.authentication.getController(); - - var authUserStore = authentication.getAuthUserStore(); - - var authUser = authUserStore.ensure(getContext(), argModel.getAuthUser(), AuthenticationErrors.authuserrelation_authuser_notfound); - - // model - var model = makeModel(authUser); - - // add - entity = saveEntity(model); - - // add others - - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private AuthUserRelationEntity makeModel(AuthUserEntity authUser) { - - var argModel = getArgument().getEntity(); - var model = new AuthUserRelationEntity(); - - // relations - model.setAuthUser(authUser); - - // fields - model.setExternalId(argModel.getExternalId()); - model.setUserKey(argModel.getUserKey()); - model.setTypeValue(argModel.getTypeValue()); - model.setResourceType(argModel.getResourceType()); - model.setResourceKey(argModel.getResourceKey()); - model.setResourceId(argModel.getResourceId()); - model.setActive(true); - - - - return model; - } - - // ::: save - // - private AuthUserRelationEntity saveEntity(AuthUserRelationEntity model) { - - var store = AppModules.authentication.getController().getAuthUserRelationStore(); - - var saved = store.add(getContext(), model); - getContext().attach(saved.getId(), saved); - return saved; - } - - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationAddArgument.java b/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationAddArgument.java deleted file mode 100644 index c9967cd..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationAddArgument.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.action.authuserrelation; - - -// app -import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity; - - -/** - * - * @author afatecha - */ -public class AuthUserRelationAddArgument extends AuthUserRelationActionArgument { - - // ::: vars - // - - - // ::: constructors - // - public AuthUserRelationAddArgument() { - } - - public AuthUserRelationAddArgument(AuthUserRelationEntity entity) { - super(entity); - } - - // ::: fields - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationDeleteAction.java b/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationDeleteAction.java deleted file mode 100644 index ad2612f..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationDeleteAction.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.action.authuserrelation; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.authentication.AuthenticationErrors; -// entity -import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity; - -/** - * - * @author afatecha - */ -public class AuthUserRelationDeleteAction extends AppAction> { - - // ::: vars - // - private AuthUserRelationEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), AuthenticationErrors.authuserrelation_notfound); - V.ifNull(getArgument().getEntity().getId(), AuthenticationErrors.authuserrelation_notfound); - } - - @Override - protected void doAction() { - - var argModel = getArgument().getEntity(); - - deleteEntity(argModel); - } - - @Override - protected void setResultOnly() { - } - - // ::: delete - // - private void deleteEntity(AuthUserRelationEntity model) { - - var store = AppModules.authentication.getController().getAuthUserRelationStore(); - - store.deleteById(getContext(), model.getId()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationEditAction.java b/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationEditAction.java deleted file mode 100644 index 251a30e..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationEditAction.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.action.authuserrelation; - -// lib -import io.kumare.lib.v.V; -// app -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.authentication.AuthenticationErrors; -// entity -import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity; - -/** - * - * @author afatecha - */ -public class AuthUserRelationEditAction extends AppAction> { - - // ::: vars - // - private AuthUserRelationEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, AuthenticationErrors.authuserrelation_notfound); - - // fields - V.ifEmpty(model.getExternalId(), AuthenticationErrors.authuserrelation_externalid_empty); - V.ifEmpty(model.getUserKey(), AuthenticationErrors.authuserrelation_userkey_empty); - V.ifEmpty(model.getTypeValue(), AuthenticationErrors.authuserrelation_typevalue_empty); - V.ifEmpty(model.getResourceType(), AuthenticationErrors.authuserrelation_resourcetype_empty); - V.ifEmpty(model.getResourceKey(), AuthenticationErrors.authuserrelation_resourcekey_empty); - V.ifEmpty(model.getResourceId(), AuthenticationErrors.authuserrelation_resourceid_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - - var authentication = AppModules.authentication.getController(); - var authUserRelationStore = authentication.getAuthUserRelationStore(); - - // edit - entity = authUserRelationStore.ensure(getContext(), argModel, AuthenticationErrors.authuserrelation_notfound); - - editEntity(); - - entity = saveEntity(); - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private void editEntity() { - - var model = getArgument().getEntity(); - - // fields - entity.setExternalId(V.firstNotEmpty(model.getExternalId(), entity.getExternalId())); - entity.setUserKey(V.firstNotEmpty(model.getUserKey(), entity.getUserKey())); - entity.setTypeValue(V.firstNotEmpty(model.getTypeValue(), entity.getTypeValue())); - entity.setResourceType(V.firstNotEmpty(model.getResourceType(), entity.getResourceType())); - entity.setResourceKey(V.firstNotEmpty(model.getResourceKey(), entity.getResourceKey())); - entity.setResourceId(V.firstNotEmpty(model.getResourceId(), entity.getResourceId())); - - - } - - // ::: save - // - private AuthUserRelationEntity saveEntity() { - - var store = AppModules.authentication.getController().getAuthUserRelationStore(); - - var saved = store.edit(getContext(), entity); - getContext().attach(saved.getId(), saved); - return saved; - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationEditArgument.java b/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationEditArgument.java deleted file mode 100644 index 3efc6b6..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationEditArgument.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.action.authuserrelation; - -// app -import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity; - -/** - * - * @author afatecha - */ -public class AuthUserRelationEditArgument extends AuthUserRelationActionArgument { - - // ::: vars - // - - - // ::: constructors - // - public AuthUserRelationEditArgument() { - } - - public AuthUserRelationEditArgument(AuthUserRelationEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationEnableAction.java b/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationEnableAction.java deleted file mode 100644 index 82b3208..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationEnableAction.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.action.authuserrelation; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.authentication.AuthenticationErrors; -// entity -import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity; - - -/** - * - * @author afatecha - */ -public class AuthUserRelationEnableAction extends AppAction { - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), AuthenticationErrors.authuserrelation_notfound); - V.ifNull(getArgument().getEntity().getId(), AuthenticationErrors.authuserrelation_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - - enableEntity(model); - } - - @Override - protected void setResultOnly() { - } - - // ::: enable - // - private void enableEntity(AuthUserRelationEntity model) { - - var store = AppModules.authentication.getController().getAuthUserRelationStore(); - - if (getArgument().getEntity().isActive()) { - store.enableById(getContext(), model.getId()); - } else { - store.disableById(getContext(), model.getId()); - } - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationFindAction.java b/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationFindAction.java deleted file mode 100644 index 0f33927..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationFindAction.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.action.authuserrelation; - -// java -import java.util.HashMap; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.authentication.AuthenticationErrors; -// entity -import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity; - - -/** - * - * @author afatecha - */ -public class AuthUserRelationFindAction extends AppAction { - - // ::: vars - // - private AuthUserRelationEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), AuthenticationErrors.authuserrelation_notfound); - V.ifNull(getArgument().getEntity().getId(), AuthenticationErrors.authuserrelation_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - entity = findEntity(model); - } - - @Override - protected void setResultOnly() { - var result = new HashMap(); - result.put("entity", entity); - setResult(result); - } - - // ::: find - // - private AuthUserRelationEntity findEntity(AuthUserRelationEntity model) { - - var store = AppModules.authentication.getController().getAuthUserRelationStore(); - return store.findById(getContext(), model.getId()); - } - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationListAction.java b/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationListAction.java deleted file mode 100644 index 7c95104..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationListAction.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.action.authuserrelation; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.LinkedList; -import java.util.Map; -// spring -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// entity -import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity; -import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationMapBuilder; - - -/** - * - * @author afatecha - */ -public class AuthUserRelationListAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private final List entities = new LinkedList<>(); - - // ::: public api - // - public List getEntities() { - return entities; - } - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - } - - @Override - protected void doAction() { - - result.put("pageable", getArgument().isPageable()); - result.put("wrapped", getArgument().isWrapped()); - - if (getArgument().isPageable()) { - - var page = makePage(); - entities.addAll(page.toList()); - - if (getArgument().isWrapped()) { - result.put("page", makeWrappedPage(page)); - } else { - result.put("page", page); - } - - } else { - - var list = makeList(); - entities.addAll(list); - - if (getArgument().isWrapped()) { - result.put("list", makeWrappedList()); - } else { - result.put("list", list); - } - } - - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: page - // - private Page makePage() { - - var page = getArgument().getPageNumber(); - var size = getArgument().getPageSize(); - //var sort = getArgument().getSort(); - - var pageable = PageRequest.of(page, size); - - var store = AppModules.authentication.getController().getAuthUserRelationStore(); - return store.getRepository().findAll(pageable); - } - - // ::: wrapped page - // - private Map makeWrappedPage(Page found) { - - var page = new HashMap(); - var content = new LinkedList(); - - wrapList(entities, content); - - page.put("size", found.getSize()); - page.put("number", found.getNumber()); - page.put("totalElements", found.getTotalElements()); - page.put("totalPages", found.getTotalPages()); - page.put("content", content); - - return page; - } - - - // ::: list - // - - private List makeList() { - - var store = AppModules.authentication.getController().getAuthUserRelationStore(); - - return store.listAll(getContext()); - } - - // ::: wrapped list - private List makeWrappedList() { - var list = new LinkedList(); - - wrapList(entities, list); - - return list; - } - - // ::: wrapper - // - private void wrapList(List found, List output) { - - var builder = new AuthUserRelationMapBuilder().addListGroup(); - builder.getAuthUserBuilder().addMainGroup(); - - output.addAll(builder.build(getContext(), found)); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationListArgument.java b/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationListArgument.java deleted file mode 100644 index f778cce..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationListArgument.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.action.authuserrelation; - -// app -import io.kumare.iqr.app.action.AppListActionArgument; -// store -import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity; - -/** - * - * @author afatecha - */ -public class AuthUserRelationListArgument extends AppListActionArgument { - - // ::: vars - // - - // ::: constructors - // - public AuthUserRelationListArgument() { - } - - public AuthUserRelationListArgument(AuthUserRelationEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationPreloadAction.java b/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationPreloadAction.java deleted file mode 100644 index 9f06b25..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationPreloadAction.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.action.authuserrelation; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.authentication.AuthenticationErrors; -// entity -import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity; -// relations -import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; - -/** - * - * @author afatecha - */ -public class AuthUserRelationPreloadAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private Map params = new HashMap<>(); - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifEmpty(getArgument().getAction(), AuthenticationErrors.authuserrelation_preload_empty); - } - - @Override - protected void doAction() { - if(getArgument().getParams() != null) { - params = getArgument().getParams(); - } - - switch (getArgument().getAction()) { - case "find" -> - prepareFind(); - case "list" -> - prepareList(); - case "add" -> - prepareAdd(); - case "edit" -> - prepareEdit(); - } - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: preload - // - private void prepareAdd() { - result.put("authUsers", listAuthUsers()); - } - - private void prepareEdit() { - var entity = findEntity(); - result.put("entity", entity); - result.put("authUser", entity.getAuthUser()); - } - - private void prepareList() { - } - - private void prepareFind() { - var entity = findEntity(); - result.put("entity", entity); - result.put("authUser", entity.getAuthUser()); - } - - // ::: queries - // - private AuthUserRelationEntity findEntity() { - var store = AppModules.authentication.getController().getAuthUserRelationStore(); - - var id = (String) params.get("id"); - if(id == null && getArgument().getEntity() != null) { - id = getArgument().getEntity().getId(); - } - return store.findById(getContext(), id); - } - - public List listAuthUsers() { - var store = AppModules.authentication.getController().getAuthUserStore(); - - return store.listAll(getContext()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationPreloadArgument.java b/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationPreloadArgument.java deleted file mode 100644 index 1ea1627..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/action/authuserrelation/AuthUserRelationPreloadArgument.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.action.authuserrelation; - -/** - * - * @author afatecha - */ -public class AuthUserRelationPreloadArgument extends AuthUserRelationActionArgument { - - // ::: vars - // - private String action; - - // ::: fields - // - public String getAction() { - return action; - } - - public void setAction(String action) { - this.action = action; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/endpoint/rest/AbstractAuthUserRelationRest.java b/src/main/java/io/kumare/iqr/mod/authentication/endpoint/rest/AbstractAuthUserRelationRest.java deleted file mode 100644 index 5c252f0..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/endpoint/rest/AbstractAuthUserRelationRest.java +++ /dev/null @@ -1,214 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.endpoint.rest; - -// java -import java.util.Map; -// openapi -import io.swagger.v3.oas.annotations.*; -import io.swagger.v3.oas.annotations.media.*; -import io.swagger.v3.oas.annotations.responses.*; -// spring -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; -// base -import io.kumare.lib.app.api.operation.TransactionType; -import io.kumare.lib.app.api.security.PermissionReference; -// app -import io.kumare.iqr.app.endpoint.rest.AppEndpointRest; -import io.kumare.iqr.app.action.*; -// module -import io.kumare.iqr.mod.authentication.AuthenticationPermissions; -import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity; -import io.kumare.iqr.mod.authentication.action.authuserrelation.*; - -/** -* -* @author afatecha -*/ -public abstract class AbstractAuthUserRelationRest extends AppEndpointRest { - - // ::: DEFAULT PERMISSIONS - // - protected PermissionReference getPermission(String action, String ref, Object extra) { - switch (action) { - case null -> { - return null; - } - case "add" -> { - return AuthenticationPermissions.auth_user_relation_worker.toReference(ref); - } - case "edit" -> { - return AuthenticationPermissions.auth_user_relation_worker.toReference(ref); - } - case "enable" -> { - return AuthenticationPermissions.auth_user_relation_manager.toReference(ref); - } - case "disable" -> { - return AuthenticationPermissions.auth_user_relation_manager.toReference(ref); - } - case "delete" -> { - return AuthenticationPermissions.auth_user_relation_manager.toReference(ref); - } - case "find" -> { - return AuthenticationPermissions.auth_user_relation_viewer.toReference(ref); - } - case "list" -> { - return AuthenticationPermissions.auth_user_relation_viewer.toReference(ref); - } - default -> { - return null; - } - } - } - - - // ::: ADD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "auth user relation add operation", description = "") - // - @PostMapping - public ResponseEntity add(@RequestBody AuthUserRelationAddArgument arg) { - - var permission = getPermission("add", null, arg); - return handle(new AuthUserRelationAddAction(), arg, permission, TransactionType.service); - } - - // ::: EDIT - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "auth user relation edit operation", description = "") - // - @PutMapping("/{id}") - public ResponseEntity edit(@PathVariable("id") String id, - @RequestBody AuthUserRelationEditArgument arg) { - - arg.getEntity().id(id); - - var permission = getPermission("edit", id, arg); - return handle(new AuthUserRelationEditAction(), arg, permission, TransactionType.service); - } - - // ::: FIND - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "auth user relation find operation", description = "") - // - @GetMapping("/{id}") - public ResponseEntity find(@PathVariable("id") String id, - @ModelAttribute AuthUserRelationActionArgument arg) { - - - arg = arg == null ? new AuthUserRelationActionArgument() : arg; - - arg.entity(new AuthUserRelationEntity(id)); - - var permission = getPermission("find", id, arg); - return handle(new AuthUserRelationFindAction(), arg, permission); - } - - // ::: ENABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "auth user relation enable operation", description = "") - // - @PutMapping("/{id}/enable") - public ResponseEntity enable(@PathVariable("id") String id) { - - var arg = new AuthUserRelationActionArgument(); - arg.setEntity(new AuthUserRelationEntity(id)); - arg.getEntity().setActive(true); - - var permission = getPermission("disable", id, arg); - return handle(new AuthUserRelationEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: DISABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "auth user relation disable operation", description = "") - // - @PutMapping("/{id}/disable") - public ResponseEntity disable(@PathVariable("id") String id) { - - var arg = new AuthUserRelationActionArgument(); - arg.setEntity(new AuthUserRelationEntity(id)); - arg.getEntity().setActive(false); - - var permission = getPermission("disable", id, arg); - return handle(new AuthUserRelationEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: LIST - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "auth user relation list operation", description = "") - // - @GetMapping - public ResponseEntity list(@ModelAttribute AuthUserRelationListArgument arg) { - - arg = arg == null ? new AuthUserRelationListArgument() : arg; - - var permission = getPermission("list", null, arg); - return handle(new AuthUserRelationListAction(), arg, permission); - } - - // ::: DELETE - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "auth user relation delete operation", description = "") - // - @DeleteMapping("/{id}") - public ResponseEntity delete(@PathVariable("id") String id) { - - var arg = new AuthUserRelationActionArgument(); - - arg.setEntity(new AuthUserRelationEntity(id)); - - var permission = getPermission("delete", id, arg); - return handle(new AuthUserRelationDeleteAction(), arg, permission, TransactionType.service); - } - - // ::: PRELOAD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "auth user relation preload operation", description = "") - // - @PostMapping("/preload") - public ResponseEntity preload(@RequestBody AuthUserRelationPreloadArgument arg) { - - var permission = getPermission(arg.getAction(), null, arg); - return handle(new AuthUserRelationPreloadAction(), arg, permission); - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/endpoint/rest/AbstractAuthUserRest.java b/src/main/java/io/kumare/iqr/mod/authentication/endpoint/rest/AbstractAuthUserRest.java deleted file mode 100644 index 8c6dbc2..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/endpoint/rest/AbstractAuthUserRest.java +++ /dev/null @@ -1,214 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.endpoint.rest; - -// java -import java.util.Map; -// openapi -import io.swagger.v3.oas.annotations.*; -import io.swagger.v3.oas.annotations.media.*; -import io.swagger.v3.oas.annotations.responses.*; -// spring -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; -// base -import io.kumare.lib.app.api.operation.TransactionType; -import io.kumare.lib.app.api.security.PermissionReference; -// app -import io.kumare.iqr.app.endpoint.rest.AppEndpointRest; -import io.kumare.iqr.app.action.*; -// module -import io.kumare.iqr.mod.authentication.AuthenticationPermissions; -import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; -import io.kumare.iqr.mod.authentication.action.authuser.*; - -/** -* -* @author afatecha -*/ -public abstract class AbstractAuthUserRest extends AppEndpointRest { - - // ::: DEFAULT PERMISSIONS - // - protected PermissionReference getPermission(String action, String ref, Object extra) { - switch (action) { - case null -> { - return null; - } - case "add" -> { - return AuthenticationPermissions.auth_user_worker.toReference(ref); - } - case "edit" -> { - return AuthenticationPermissions.auth_user_worker.toReference(ref); - } - case "enable" -> { - return AuthenticationPermissions.auth_user_manager.toReference(ref); - } - case "disable" -> { - return AuthenticationPermissions.auth_user_manager.toReference(ref); - } - case "delete" -> { - return AuthenticationPermissions.auth_user_manager.toReference(ref); - } - case "find" -> { - return AuthenticationPermissions.auth_user_viewer.toReference(ref); - } - case "list" -> { - return AuthenticationPermissions.auth_user_viewer.toReference(ref); - } - default -> { - return null; - } - } - } - - - // ::: ADD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "auth user add operation", description = "") - // - @PostMapping - public ResponseEntity add(@RequestBody AuthUserAddArgument arg) { - - var permission = getPermission("add", null, arg); - return handle(new AuthUserAddAction(), arg, permission, TransactionType.service); - } - - // ::: EDIT - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "auth user edit operation", description = "") - // - @PutMapping("/{id}") - public ResponseEntity edit(@PathVariable("id") String id, - @RequestBody AuthUserEditArgument arg) { - - arg.getEntity().id(id); - - var permission = getPermission("edit", id, arg); - return handle(new AuthUserEditAction(), arg, permission, TransactionType.service); - } - - // ::: FIND - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "auth user find operation", description = "") - // - @GetMapping("/{id}") - public ResponseEntity find(@PathVariable("id") String id, - @ModelAttribute AuthUserActionArgument arg) { - - - arg = arg == null ? new AuthUserActionArgument() : arg; - - arg.entity(new AuthUserEntity(id)); - - var permission = getPermission("find", id, arg); - return handle(new AuthUserFindAction(), arg, permission); - } - - // ::: ENABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "auth user enable operation", description = "") - // - @PutMapping("/{id}/enable") - public ResponseEntity enable(@PathVariable("id") String id) { - - var arg = new AuthUserActionArgument(); - arg.setEntity(new AuthUserEntity(id)); - arg.getEntity().setActive(true); - - var permission = getPermission("disable", id, arg); - return handle(new AuthUserEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: DISABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "auth user disable operation", description = "") - // - @PutMapping("/{id}/disable") - public ResponseEntity disable(@PathVariable("id") String id) { - - var arg = new AuthUserActionArgument(); - arg.setEntity(new AuthUserEntity(id)); - arg.getEntity().setActive(false); - - var permission = getPermission("disable", id, arg); - return handle(new AuthUserEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: LIST - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "auth user list operation", description = "") - // - @GetMapping - public ResponseEntity list(@ModelAttribute AuthUserListArgument arg) { - - arg = arg == null ? new AuthUserListArgument() : arg; - - var permission = getPermission("list", null, arg); - return handle(new AuthUserListAction(), arg, permission); - } - - // ::: DELETE - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "auth user delete operation", description = "") - // - @DeleteMapping("/{id}") - public ResponseEntity delete(@PathVariable("id") String id) { - - var arg = new AuthUserActionArgument(); - - arg.setEntity(new AuthUserEntity(id)); - - var permission = getPermission("delete", id, arg); - return handle(new AuthUserDeleteAction(), arg, permission, TransactionType.service); - } - - // ::: PRELOAD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "auth user preload operation", description = "") - // - @PostMapping("/preload") - public ResponseEntity preload(@RequestBody AuthUserPreloadArgument arg) { - - var permission = getPermission(arg.getAction(), null, arg); - return handle(new AuthUserPreloadAction(), arg, permission); - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/endpoint/rest/AuthUserRelationRest.java b/src/main/java/io/kumare/iqr/mod/authentication/endpoint/rest/AuthUserRelationRest.java deleted file mode 100644 index a712f6c..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/endpoint/rest/AuthUserRelationRest.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.endpoint.rest; - -// java -import io.swagger.v3.oas.annotations.tags.*; -// spring -import org.springframework.web.bind.annotation.*; - -/** -* -* @author afatecha -*/ - -// openapi -//@Tag(name = "auth user relation rest endpoint") -// -//@RestController -//@RequestMapping("/authentication/auth-user-relations") -public class AuthUserRelationRest extends AbstractAuthUserRelationRest { - - -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/endpoint/rest/AuthUserRest.java b/src/main/java/io/kumare/iqr/mod/authentication/endpoint/rest/AuthUserRest.java deleted file mode 100644 index 7fe1642..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/endpoint/rest/AuthUserRest.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.endpoint.rest; - -// java -import io.swagger.v3.oas.annotations.tags.*; -// spring -import org.springframework.web.bind.annotation.*; - -/** -* -* @author afatecha -*/ - -// openapi -//@Tag(name = "auth user rest endpoint") -// -//@RestController -//@RequestMapping("/authentication/auth-users") -public class AuthUserRest extends AbstractAuthUserRest { - - -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/store/AuthenticationEntities.java b/src/main/java/io/kumare/iqr/mod/authentication/store/AuthenticationEntities.java deleted file mode 100644 index 9f0b99f..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/store/AuthenticationEntities.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.store; - -// base -// base -import io.kumare.lib.app.api.module.ServiceModule; -import io.kumare.lib.app.api.store.EntityStore; -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app -import io.kumare.iqr.app.AppEngine; -import io.kumare.iqr.app.module.AppModules; -import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; -import io.kumare.iqr.mod.authentication.store.authuser.AuthUserStore; -import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity; -import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationStore; - - -/** - * - * @author afatecha - */ -public enum AuthenticationEntities implements EntityDescriptor { - - authUser(AuthUserEntity.class, AuthUserStore.class), - authUserRelation(AuthUserRelationEntity.class, AuthUserRelationStore.class); - - // ::: vars - // - private final Class entityClass; - private final Class storeClass; - - // ::: constructor - // - AuthenticationEntities(Class entityClass, Class storeClass) { - this.entityClass = entityClass; - this.storeClass = storeClass; - } - - // ::: entity descriptor api - // - @Override - public String getName() { - return name(); - } - - @Override - public ServiceModule getModule() { - return AppModules.authentication; - } - - @Override - public Class getEntityClass() { - return entityClass; - } - - @Override - public Class getStoreClass() { - return storeClass; - } - - @Override - public EntityStore getStore() { - return (EntityStore) AppEngine.getEngine().getInnerContext().getBean(storeClass); - } - - // ::: statics - // - public static boolean hasDescriptor(String name) { - try { - var value = valueOf(name); - return value != null; - - } catch (Throwable t) { - return false; - } - } - - public static EntityDescriptor descriptorOf(String name) { - try { - return valueOf(name); - - } catch (Throwable t) { - return null; - } - } - - public static EntityDescriptor descriptorOf(Class entityClass) { - try { - for (var i : values()) { - if (i.entityClass == entityClass) { - return i; - } - } - - } catch (Throwable t) { - } - - return null; - } -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/store/authuser/AuthUserData.java b/src/main/java/io/kumare/iqr/mod/authentication/store/authuser/AuthUserData.java deleted file mode 100644 index b24254a..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/store/authuser/AuthUserData.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.store.authuser; - -// base -import io.kumare.iqr.app.store.AppExtendedEntityData; -// imports - - -public class AuthUserData extends AppExtendedEntityData { - - // ::: vars - // - - - // ::: fields - // - - - // ::: fluent - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/store/authuser/AuthUserEntity.java b/src/main/java/io/kumare/iqr/mod/authentication/store/authuser/AuthUserEntity.java deleted file mode 100644 index 1f890cf..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/store/authuser/AuthUserEntity.java +++ /dev/null @@ -1,179 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.store.authuser; - -// jakarta -import jakarta.persistence.Entity; -import jakarta.persistence.Index; -import jakarta.persistence.Table; -// base -import io.kumare.lib.app.api.store.*; -import io.kumare.iqr.app.store.*; -// imports - -// relations -// annotations -@Entity -@Table( - name = "auth_user", - indexes = { - @Index(name = "idx_auth_user_external_id", columnList = "externalId"), - @Index(name = "idx_auth_user_entity_key", columnList = "entityKey"), - @Index(name = "idx_auth_user_custom", columnList = "custom"), - @Index(name = "idx_auth_user_visible", columnList = "visible"), - @Index(name = "idx_auth_user_email", columnList = "email"), - @Index(name = "idx_auth_user_email_confirmed", columnList = "emailConfirmed"), - @Index(name = "idx_auth_user_phone", columnList = "phone"), - @Index(name = "idx_auth_user_phone_confirmed", columnList = "phoneConfirmed"), - @Index(name = "idx_auth_user_name", columnList = "name") - } -) -public class AuthUserEntity extends AppEntity implements SupportedEntityKey { - - // ::: vars - // - private String externalId; - private String entityKey; - private boolean custom; - private boolean visible; - private String email; - private boolean emailConfirmed; - private String phone; - private boolean phoneConfirmed; - private String name; - // relations - - // ::: constructors - // - public AuthUserEntity() { - } - - public AuthUserEntity(String id) { - super(id); - } - - // ::: fields - // - public String getExternalId() { - return externalId; - } - - public void setExternalId(String externalId) { - this.externalId = externalId; - } - - public String getEntityKey() { - return entityKey; - } - - public void setEntityKey(String entityKey) { - this.entityKey = entityKey; - } - - public boolean isCustom() { - return custom; - } - - public void setCustom(boolean custom) { - this.custom = custom; - } - - public boolean isVisible() { - return visible; - } - - public void setVisible(boolean visible) { - this.visible = visible; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public boolean isEmailConfirmed() { - return emailConfirmed; - } - - public void setEmailConfirmed(boolean emailConfirmed) { - this.emailConfirmed = emailConfirmed; - } - - public String getPhone() { - return phone; - } - - public void setPhone(String phone) { - this.phone = phone; - } - - public boolean isPhoneConfirmed() { - return phoneConfirmed; - } - - public void setPhoneConfirmed(boolean phoneConfirmed) { - this.phoneConfirmed = phoneConfirmed; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - // relations - // ::: fluent - // - public AuthUserEntity externalId(String externalId) { - setExternalId(externalId); - return this; - } - - public AuthUserEntity entityKey(String entityKey) { - setEntityKey(entityKey); - return this; - } - - public AuthUserEntity custom(boolean custom) { - setCustom(custom); - return this; - } - - public AuthUserEntity visible(boolean visible) { - setVisible(visible); - return this; - } - - public AuthUserEntity email(String email) { - setEmail(email); - return this; - } - - public AuthUserEntity emailConfirmed(boolean emailConfirmed) { - setEmailConfirmed(emailConfirmed); - return this; - } - - public AuthUserEntity phone(String phone) { - setPhone(phone); - return this; - } - - public AuthUserEntity phoneConfirmed(boolean phoneConfirmed) { - setPhoneConfirmed(phoneConfirmed); - return this; - } - - public AuthUserEntity name(String name) { - setName(name); - return this; - } - - // relations -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/store/authuser/AuthUserFields.java b/src/main/java/io/kumare/iqr/mod/authentication/store/authuser/AuthUserFields.java deleted file mode 100644 index 6484e13..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/store/authuser/AuthUserFields.java +++ /dev/null @@ -1,163 +0,0 @@ -/* - */ -package io.kumare.iqr.mod.authentication.store.authuser; - -// java -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -// base -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app - - -/** - * - * @author afatecha - */ -public enum AuthUserFields implements EntityFieldDescriptor { - - id(MAIN, FIND, LIST), - externalId(MAIN, FIND, LIST), - entityKey(MAIN, FIND, LIST), - custom(MAIN, FIND, LIST), - visible(MAIN, FIND, LIST), - email(MAIN, FIND, LIST), - emailConfirmed(MAIN, FIND, LIST), - phone(MAIN, FIND, LIST), - phoneConfirmed(MAIN, FIND, LIST), - name(MAIN, FIND, LIST), - active(MAIN, FIND, LIST), - inserted(AUDIT, FIND, LIST), - inserter(AUDIT, FIND, LIST), - modified(AUDIT, FIND), - modifier(AUDIT, FIND), - deleted(AUDIT), - removed(AUDIT), - remover(AUDIT); - - // ::: vars - // - private final boolean relation; - private final EntityDescriptor entityDescriptor; - private final Class enumClass; - private final List groups; - - // ::: constructors - // - AuthUserFields(String... groups) { - this(false, null, null, groups); - } - - AuthUserFields(EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this(true, entityDescriptor, enumClass, groups); - } - - AuthUserFields(boolean relation, EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this.relation = relation; - this.entityDescriptor = entityDescriptor; - this.enumClass = enumClass; - this.groups = groups == null ? Collections.EMPTY_LIST : Arrays.asList(groups); - } - - // ::: api - // - @Override - public String getName() { - return name(); - } - - @Override - public boolean isRelation() { - return relation; - } - - @Override - public Class getRelationEnumClass() { - return enumClass; - } - - @Override - public List getGroups() { - return groups; - } - - @Override - public EntityDescriptor getEntityDescriptor() { - return entityDescriptor; - } - - @Override - public Object fetchValue(AuthUserEntity entity) { - if (entity == null) { - return null; - } - - switch (this) { - case null -> { - return null; - } - case id -> { - return entity.getId(); - } - case externalId ->{ - return entity.getExternalId(); - } - case entityKey ->{ - return entity.getEntityKey(); - } - case custom ->{ - return entity.isCustom(); - } - case visible ->{ - return entity.isVisible(); - } - case email ->{ - return entity.getEmail(); - } - case emailConfirmed ->{ - return entity.isEmailConfirmed(); - } - case phone ->{ - return entity.getPhone(); - } - case phoneConfirmed ->{ - return entity.isPhoneConfirmed(); - } - case name ->{ - return entity.getName(); - } - case active -> { - return entity.isActive(); - } - case inserted -> { - return entity.getInserted(); - } - case inserter -> { - return entity.getInserter(); - } - case modified -> { - return entity.getModified(); - } - case modifier -> { - return entity.getModifier(); - } - case deleted -> { - return entity.isDeleted(); - } - case removed -> { - return entity.getRemoved(); - } - case remover -> { - return entity.getRemover(); - } - - default -> { - return null; - } - } - - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/store/authuser/AuthUserMapBuilder.java b/src/main/java/io/kumare/iqr/mod/authentication/store/authuser/AuthUserMapBuilder.java deleted file mode 100644 index ca30529..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/store/authuser/AuthUserMapBuilder.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.store.authuser; - -// java -import java.util.List; -import java.util.Map; -// base -import io.kumare.lib.app.api.Context; -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.BaseEntityMapBuilder; -// app - - -/** - * - * @author afatecha - */ -public class AuthUserMapBuilder extends BaseEntityMapBuilder { - - // ::: vars - // - - - - // ::: fields - // - @Override - public AuthUserMapBuilder addGroup(String name, boolean cascade) { - includes.addAll(EntityFieldDescriptor.group(AuthUserFields.values(), name)); - - return this; - } - - @Override - public AuthUserMapBuilder add(String fieldName) { - includes.add(AuthUserFields.valueOf(fieldName)); - return this; - } - - @Override - public AuthUserMapBuilder addAll(String... names) { - for (var i : names) { - includes.add(AuthUserFields.valueOf(i)); - } - return this; - } - - @Override - public AuthUserMapBuilder remove(String fieldName) { - excludes.add(AuthUserFields.valueOf(fieldName)); - return this; - } - - @Override - public AuthUserMapBuilder removeAll(String... names) { - for (var i : names) { - excludes.add(AuthUserFields.valueOf(i)); - } - return this; - } - - // ::: relations - // - @Override - public AuthUserMapBuilder addPlains(boolean cascade) { - includes.addAll(EntityFieldDescriptor.plains(AuthUserFields.values())); - - return this; - } - - @Override - public AuthUserMapBuilder addRelations(boolean cascade) { - includes.addAll(EntityFieldDescriptor.relations(AuthUserFields.values())); - - return this; - } - - - - // ::: internals - // - @Override - protected void internalAttachRelations(Context context, - AuthUserEntity entity, - List fields, - Map resultMap) { - - - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/store/authuser/AuthUserRepository.java b/src/main/java/io/kumare/iqr/mod/authentication/store/authuser/AuthUserRepository.java deleted file mode 100644 index c6f338c..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/store/authuser/AuthUserRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.store.authuser; - -// spring -import org.springframework.stereotype.Repository; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Repository -public interface AuthUserRepository extends AppKeyEntityRepository{ - -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/store/authuser/AuthUserStore.java b/src/main/java/io/kumare/iqr/mod/authentication/store/authuser/AuthUserStore.java deleted file mode 100644 index 95053af..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/store/authuser/AuthUserStore.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.store.authuser; - -// spring -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Service -public class AuthUserStore extends AppKeyEntityStore { - - // ::: vars - // - @Autowired - private AuthUserRepository repository; - - // ::: override - // - @Override - public AuthUserRepository getRepository() { - return repository; - } - - // ::: api - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/store/authuserrelation/AuthUserRelationData.java b/src/main/java/io/kumare/iqr/mod/authentication/store/authuserrelation/AuthUserRelationData.java deleted file mode 100644 index d5e2a6d..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/store/authuserrelation/AuthUserRelationData.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.store.authuserrelation; - -// base -import io.kumare.iqr.app.store.AppExtendedEntityData; -// imports - - -public class AuthUserRelationData extends AppExtendedEntityData { - - // ::: vars - // - - - // ::: fields - // - - - // ::: fluent - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/store/authuserrelation/AuthUserRelationEntity.java b/src/main/java/io/kumare/iqr/mod/authentication/store/authuserrelation/AuthUserRelationEntity.java deleted file mode 100644 index 5477cc0..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/store/authuserrelation/AuthUserRelationEntity.java +++ /dev/null @@ -1,153 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.store.authuserrelation; - -// jakarta -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.Index; -import jakarta.persistence.ManyToOne; -import jakarta.persistence.Table; -// base -import io.kumare.lib.app.api.store.*; -import io.kumare.iqr.app.store.*; -// imports - -// relations -import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; - -// annotations -@Entity -@Table( - name = "auth_user_relation", - indexes = { - @Index(name = "idx_auth_user_relation_external_id", columnList = "externalId"), - @Index(name = "idx_auth_user_relation_user_key", columnList = "userKey"), - @Index(name = "idx_auth_user_relation_type_value", columnList = "typeValue"), - @Index(name = "idx_auth_user_relation_resource_type", columnList = "resourceType"), - @Index(name = "idx_auth_user_relation_resource_key", columnList = "resourceKey"), - @Index(name = "idx_auth_user_relation_resource_id", columnList = "resourceId") - } -) -public class AuthUserRelationEntity extends AppEntity { - - // ::: vars - // - private String externalId; - private String userKey; - private String typeValue; - private String resourceType; - private String resourceKey; - private String resourceId; - // relations - @ManyToOne(fetch = FetchType.LAZY) - private AuthUserEntity authUser; - - // ::: constructors - // - public AuthUserRelationEntity() { - } - - public AuthUserRelationEntity(String id) { - super(id); - } - - // ::: fields - // - public String getExternalId() { - return externalId; - } - - public void setExternalId(String externalId) { - this.externalId = externalId; - } - - public String getUserKey() { - return userKey; - } - - public void setUserKey(String userKey) { - this.userKey = userKey; - } - - public String getTypeValue() { - return typeValue; - } - - public void setTypeValue(String typeValue) { - this.typeValue = typeValue; - } - - public String getResourceType() { - return resourceType; - } - - public void setResourceType(String resourceType) { - this.resourceType = resourceType; - } - - public String getResourceKey() { - return resourceKey; - } - - public void setResourceKey(String resourceKey) { - this.resourceKey = resourceKey; - } - - public String getResourceId() { - return resourceId; - } - - public void setResourceId(String resourceId) { - this.resourceId = resourceId; - } - - // relations - public AuthUserEntity getAuthUser() { - return authUser; - } - - public void setAuthUser(AuthUserEntity authUser) { - this.authUser = authUser; - } - - // ::: fluent - // - public AuthUserRelationEntity externalId(String externalId) { - setExternalId(externalId); - return this; - } - - public AuthUserRelationEntity userKey(String userKey) { - setUserKey(userKey); - return this; - } - - public AuthUserRelationEntity typeValue(String typeValue) { - setTypeValue(typeValue); - return this; - } - - public AuthUserRelationEntity resourceType(String resourceType) { - setResourceType(resourceType); - return this; - } - - public AuthUserRelationEntity resourceKey(String resourceKey) { - setResourceKey(resourceKey); - return this; - } - - public AuthUserRelationEntity resourceId(String resourceId) { - setResourceId(resourceId); - return this; - } - - // relations - public AuthUserRelationEntity authUser(AuthUserEntity authUser) { - setAuthUser(authUser); - return this; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/store/authuserrelation/AuthUserRelationFields.java b/src/main/java/io/kumare/iqr/mod/authentication/store/authuserrelation/AuthUserRelationFields.java deleted file mode 100644 index 08ee96f..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/store/authuserrelation/AuthUserRelationFields.java +++ /dev/null @@ -1,155 +0,0 @@ -/* - */ -package io.kumare.iqr.mod.authentication.store.authuserrelation; - -// java -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -// base -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app -import io.kumare.iqr.mod.authentication.store.AuthenticationEntities; -import io.kumare.iqr.mod.authentication.store.authuser.AuthUserFields; - -/** - * - * @author afatecha - */ -public enum AuthUserRelationFields implements EntityFieldDescriptor { - - id(MAIN, FIND, LIST), - externalId(MAIN, FIND, LIST), - userKey(MAIN, FIND, LIST), - typeValue(MAIN, FIND, LIST), - resourceType(MAIN, FIND, LIST), - resourceKey(MAIN, FIND, LIST), - resourceId(MAIN, FIND, LIST), - active(MAIN, FIND, LIST), - inserted(AUDIT, FIND, LIST), - inserter(AUDIT, FIND, LIST), - modified(AUDIT, FIND), - modifier(AUDIT, FIND), - deleted(AUDIT), - removed(AUDIT), - remover(AUDIT), - authUser(AuthenticationEntities.authUser, AuthUserFields.class, FIND, LIST); - - // ::: vars - // - private final boolean relation; - private final EntityDescriptor entityDescriptor; - private final Class enumClass; - private final List groups; - - // ::: constructors - // - AuthUserRelationFields(String... groups) { - this(false, null, null, groups); - } - - AuthUserRelationFields(EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this(true, entityDescriptor, enumClass, groups); - } - - AuthUserRelationFields(boolean relation, EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this.relation = relation; - this.entityDescriptor = entityDescriptor; - this.enumClass = enumClass; - this.groups = groups == null ? Collections.EMPTY_LIST : Arrays.asList(groups); - } - - // ::: api - // - @Override - public String getName() { - return name(); - } - - @Override - public boolean isRelation() { - return relation; - } - - @Override - public Class getRelationEnumClass() { - return enumClass; - } - - @Override - public List getGroups() { - return groups; - } - - @Override - public EntityDescriptor getEntityDescriptor() { - return entityDescriptor; - } - - @Override - public Object fetchValue(AuthUserRelationEntity entity) { - if (entity == null) { - return null; - } - - switch (this) { - case null -> { - return null; - } - case id -> { - return entity.getId(); - } - case externalId ->{ - return entity.getExternalId(); - } - case userKey ->{ - return entity.getUserKey(); - } - case typeValue ->{ - return entity.getTypeValue(); - } - case resourceType ->{ - return entity.getResourceType(); - } - case resourceKey ->{ - return entity.getResourceKey(); - } - case resourceId ->{ - return entity.getResourceId(); - } - case active -> { - return entity.isActive(); - } - case inserted -> { - return entity.getInserted(); - } - case inserter -> { - return entity.getInserter(); - } - case modified -> { - return entity.getModified(); - } - case modifier -> { - return entity.getModifier(); - } - case deleted -> { - return entity.isDeleted(); - } - case removed -> { - return entity.getRemoved(); - } - case remover -> { - return entity.getRemover(); - } - case authUser ->{ - return entity.getAuthUser(); - } - default -> { - return null; - } - } - - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/store/authuserrelation/AuthUserRelationMapBuilder.java b/src/main/java/io/kumare/iqr/mod/authentication/store/authuserrelation/AuthUserRelationMapBuilder.java deleted file mode 100644 index 923e56e..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/store/authuserrelation/AuthUserRelationMapBuilder.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.store.authuserrelation; - -// java -import java.util.List; -import java.util.Map; -// base -import io.kumare.lib.app.api.Context; -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.BaseEntityMapBuilder; -// app -import io.kumare.iqr.mod.authentication.store.authuser.AuthUserMapBuilder; - -/** - * - * @author afatecha - */ -public class AuthUserRelationMapBuilder extends BaseEntityMapBuilder { - - // ::: vars - // - private AuthUserMapBuilder authUserBuilder; - - - // ::: fields - // - @Override - public AuthUserRelationMapBuilder addGroup(String name, boolean cascade) { - includes.addAll(EntityFieldDescriptor.group(AuthUserRelationFields.values(), name)); - - if(cascade) { - if (includes.contains(AuthUserRelationFields.authUser)) { - getAuthUserBuilder().addGroup(name); - } - } - return this; - } - - @Override - public AuthUserRelationMapBuilder add(String fieldName) { - includes.add(AuthUserRelationFields.valueOf(fieldName)); - return this; - } - - @Override - public AuthUserRelationMapBuilder addAll(String... names) { - for (var i : names) { - includes.add(AuthUserRelationFields.valueOf(i)); - } - return this; - } - - @Override - public AuthUserRelationMapBuilder remove(String fieldName) { - excludes.add(AuthUserRelationFields.valueOf(fieldName)); - return this; - } - - @Override - public AuthUserRelationMapBuilder removeAll(String... names) { - for (var i : names) { - excludes.add(AuthUserRelationFields.valueOf(i)); - } - return this; - } - - // ::: relations - // - @Override - public AuthUserRelationMapBuilder addPlains(boolean cascade) { - includes.addAll(EntityFieldDescriptor.plains(AuthUserRelationFields.values())); - - if(cascade) { - if (includes.contains(AuthUserRelationFields.authUser)) { - getAuthUserBuilder().addPlains(); - } - } - return this; - } - - @Override - public AuthUserRelationMapBuilder addRelations(boolean cascade) { - includes.addAll(EntityFieldDescriptor.relations(AuthUserRelationFields.values())); - - if(cascade) { - if (includes.contains(AuthUserRelationFields.authUser)) { - getAuthUserBuilder().addRelations(); - } - } - return this; - } - - // ::: auth user - // - public AuthUserRelationMapBuilder addAuthUser() { - return addAuthUser(null); - } - - public AuthUserRelationMapBuilder addAuthUser(String group) { - return addAuthUser(group, false); - } - - public AuthUserRelationMapBuilder addAuthUser(String group, boolean cascade) { - includes.add(AuthUserRelationFields.authUser); - - if (group != null) { - getAuthUserBuilder().addGroup(group); - } - - return this; - } - - public AuthUserMapBuilder getAuthUserBuilder() { - if(authUserBuilder == null) { - authUserBuilder = new AuthUserMapBuilder(); - } - return authUserBuilder; - } - - // ::: internals - // - @Override - protected void internalAttachRelations(Context context, - AuthUserRelationEntity entity, - List fields, - Map resultMap) { - - if (fields.contains(AuthUserRelationFields.authUser)) { - attachRelation(context, - entity, - AuthUserRelationFields.authUser, - getAuthUserBuilder(), - resultMap); - } - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/store/authuserrelation/AuthUserRelationRepository.java b/src/main/java/io/kumare/iqr/mod/authentication/store/authuserrelation/AuthUserRelationRepository.java deleted file mode 100644 index 7bd7660..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/store/authuserrelation/AuthUserRelationRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.store.authuserrelation; - -// spring -import org.springframework.stereotype.Repository; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Repository -public interface AuthUserRelationRepository extends AppEntityRepository{ - -} diff --git a/src/main/java/io/kumare/iqr/mod/authentication/store/authuserrelation/AuthUserRelationStore.java b/src/main/java/io/kumare/iqr/mod/authentication/store/authuserrelation/AuthUserRelationStore.java deleted file mode 100644 index f532220..0000000 --- a/src/main/java/io/kumare/iqr/mod/authentication/store/authuserrelation/AuthUserRelationStore.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.authentication.store.authuserrelation; - -// spring -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Service -public class AuthUserRelationStore extends AppEntityStore { - - // ::: vars - // - @Autowired - private AuthUserRelationRepository repository; - - // ::: override - // - @Override - public AuthUserRelationRepository getRepository() { - return repository; - } - - // ::: api - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/BizConstants.java b/src/main/java/io/kumare/iqr/mod/biz/BizConstants.java deleted file mode 100644 index 6c06d29..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/BizConstants.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz; - -// base -import io.kumare.iqr.app.AppConstants; - -/** - * - * @author afatecha - */ -public class BizConstants { - - // ::: codes - // - public static final int CODE = AppConstants.BIZ_CODE; - public static final String NAME = "biz"; - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/BizController.java b/src/main/java/io/kumare/iqr/mod/biz/BizController.java deleted file mode 100644 index a8f0c41..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/BizController.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz; - -// java -import io.kumare.iqr.mod.biz.store.BizEntities; -import java.util.Arrays; -import java.util.List; -// base -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app -import io.kumare.iqr.app.module.AppModuleController; -// module -import io.kumare.iqr.mod.biz.store.business.BusinessStore; -import io.kumare.iqr.mod.biz.store.businessprofile.BusinessProfileStore; -import io.kumare.iqr.mod.biz.store.businesssetting.BusinessSettingStore; -import io.kumare.iqr.mod.biz.store.businesspromo.BusinessPromoStore; -import io.kumare.iqr.mod.biz.store.businesspromoitem.BusinessPromoItemStore; -import io.kumare.iqr.mod.biz.store.businessimage.BusinessImageStore; -import io.kumare.iqr.mod.biz.store.businessworker.BusinessWorkerStore; -import io.kumare.iqr.mod.biz.store.businesstag.BusinessTagStore; - -/** - * - * @author afatecha - */ -public class BizController extends AppModuleController { - - // ::: api - // - @Override - public boolean hasStore(String name) { - return BizEntities.hasDescriptor(name); - } - - @Override - public EntityDescriptor getEntityDescriptor(Class entityClass) { - return BizEntities.descriptorOf(entityClass); - } - - @Override - public EntityDescriptor getEntityDescriptor(String name) { - return BizEntities.descriptorOf(name); - } - - @Override - public List getEntityDescriptors() { - return Arrays.asList(BizEntities.values()); - } - - // ::: stores - // - public BusinessStore getBusinessStore() { - return getService(BusinessStore.class); - } - - public BusinessProfileStore getBusinessProfileStore() { - return getService(BusinessProfileStore.class); - } - - public BusinessSettingStore getBusinessSettingStore() { - return getService(BusinessSettingStore.class); - } - - public BusinessPromoStore getBusinessPromoStore() { - return getService(BusinessPromoStore.class); - } - - public BusinessPromoItemStore getBusinessPromoItemStore() { - return getService(BusinessPromoItemStore.class); - } - - public BusinessImageStore getBusinessImageStore() { - return getService(BusinessImageStore.class); - } - - public BusinessWorkerStore getBusinessWorkerStore() { - return getService(BusinessWorkerStore.class); - } - - public BusinessTagStore getBusinessTagStore() { - return getService(BusinessTagStore.class); - } - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/BizErrors.java b/src/main/java/io/kumare/iqr/mod/biz/BizErrors.java deleted file mode 100644 index a7cf6e0..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/BizErrors.java +++ /dev/null @@ -1,165 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz; - -// java -import java.util.HashMap; -import java.util.Map; -// lib -import io.kumare.lib.transport.TransportCode; -import static io.kumare.lib.transport.Transports.code; -import io.kumare.lib.v.ExceptionPrototype; -// app -import io.kumare.iqr.app.AppException; -import io.kumare.iqr.app.endpoint.AppTransports; - - -/** - * - * @author afatecha - */ -public enum BizErrors implements ExceptionPrototype { - - - // business - business_notfound(1, code(AppTransports.http, 400)), - business_data_notfound(1, code(AppTransports.http, 400)), - business_preload_empty(1, code(AppTransports.http, 400)), - business_entitykey_empty(1, code(AppTransports.http, 400)), - business_alias_empty(1, code(AppTransports.http, 400)), - business_statevalue_empty(1, code(AppTransports.http, 400)), - business_name_empty(1, code(AppTransports.http, 400)), - business_description_empty(1, code(AppTransports.http, 400)), - business_logo_notfound(1, code(AppTransports.http, 400)), - business_state_notfound(1, code(AppTransports.http, 400)), - - // business profile - businessprofile_notfound(1, code(AppTransports.http, 400)), - businessprofile_data_notfound(1, code(AppTransports.http, 400)), - businessprofile_preload_empty(1, code(AppTransports.http, 400)), - businessprofile_activityvalue_empty(1, code(AppTransports.http, 400)), - businessprofile_gpslatitude_empty(1, code(AppTransports.http, 400)), - businessprofile_gpslongitude_empty(1, code(AppTransports.http, 400)), - businessprofile_website_empty(1, code(AppTransports.http, 400)), - businessprofile_phone_empty(1, code(AppTransports.http, 400)), - businessprofile_address_empty(1, code(AppTransports.http, 400)), - businessprofile_extrainfo_empty(1, code(AppTransports.http, 400)), - businessprofile_description_empty(1, code(AppTransports.http, 400)), - businessprofile_business_notfound(1, code(AppTransports.http, 400)), - businessprofile_image_notfound(1, code(AppTransports.http, 400)), - businessprofile_activity_notfound(1, code(AppTransports.http, 400)), - - // business setting - businesssetting_notfound(1, code(AppTransports.http, 400)), - businesssetting_data_notfound(1, code(AppTransports.http, 400)), - businesssetting_preload_empty(1, code(AppTransports.http, 400)), - businesssetting_pointexchange_empty(1, code(AppTransports.http, 400)), - businesssetting_leadcapturereward_empty(1, code(AppTransports.http, 400)), - businesssetting_customercapturereward_empty(1, code(AppTransports.http, 400)), - businesssetting_business_notfound(1, code(AppTransports.http, 400)), - - // business promo - businesspromo_notfound(1, code(AppTransports.http, 400)), - businesspromo_data_notfound(1, code(AppTransports.http, 400)), - businesspromo_preload_empty(1, code(AppTransports.http, 400)), - businesspromo_statevalue_empty(1, code(AppTransports.http, 400)), - businesspromo_started_empty(1, code(AppTransports.http, 400)), - businesspromo_ended_empty(1, code(AppTransports.http, 400)), - businesspromo_schedulestart_empty(1, code(AppTransports.http, 400)), - businesspromo_scheduleend_empty(1, code(AppTransports.http, 400)), - businesspromo_title_empty(1, code(AppTransports.http, 400)), - businesspromo_bodyinfo_empty(1, code(AppTransports.http, 400)), - businesspromo_footerinfo_empty(1, code(AppTransports.http, 400)), - businesspromo_business_notfound(1, code(AppTransports.http, 400)), - businesspromo_image_notfound(1, code(AppTransports.http, 400)), - businesspromo_state_notfound(1, code(AppTransports.http, 400)), - - // business promo item - businesspromoitem_notfound(1, code(AppTransports.http, 400)), - businesspromoitem_data_notfound(1, code(AppTransports.http, 400)), - businesspromoitem_preload_empty(1, code(AppTransports.http, 400)), - businesspromoitem_title_empty(1, code(AppTransports.http, 400)), - businesspromoitem_description_empty(1, code(AppTransports.http, 400)), - businesspromoitem_points_empty(1, code(AppTransports.http, 400)), - businesspromoitem_condition_empty(1, code(AppTransports.http, 400)), - businesspromoitem_business_notfound(1, code(AppTransports.http, 400)), - businesspromoitem_promo_notfound(1, code(AppTransports.http, 400)), - businesspromoitem_image_notfound(1, code(AppTransports.http, 400)), - - // business image - businessimage_notfound(1, code(AppTransports.http, 400)), - businessimage_data_notfound(1, code(AppTransports.http, 400)), - businessimage_preload_empty(1, code(AppTransports.http, 400)), - businessimage_typevalue_empty(1, code(AppTransports.http, 400)), - businessimage_bytes_empty(1, code(AppTransports.http, 400)), - businessimage_business_notfound(1, code(AppTransports.http, 400)), - businessimage_type_notfound(1, code(AppTransports.http, 400)), - - // business worker - businessworker_notfound(1, code(AppTransports.http, 400)), - businessworker_data_notfound(1, code(AppTransports.http, 400)), - businessworker_preload_empty(1, code(AppTransports.http, 400)), - businessworker_entitykey_empty(1, code(AppTransports.http, 400)), - businessworker_rolevalue_empty(1, code(AppTransports.http, 400)), - businessworker_statevalue_empty(1, code(AppTransports.http, 400)), - businessworker_email_empty(1, code(AppTransports.http, 400)), - businessworker_phone_empty(1, code(AppTransports.http, 400)), - businessworker_name_empty(1, code(AppTransports.http, 400)), - businessworker_description_empty(1, code(AppTransports.http, 400)), - businessworker_business_notfound(1, code(AppTransports.http, 400)), - businessworker_authuser_notfound(1, code(AppTransports.http, 400)), - businessworker_role_notfound(1, code(AppTransports.http, 400)), - businessworker_state_notfound(1, code(AppTransports.http, 400)), - - // business tag - businesstag_notfound(1, code(AppTransports.http, 400)), - businesstag_data_notfound(1, code(AppTransports.http, 400)), - businesstag_preload_empty(1, code(AppTransports.http, 400)), - businesstag_entitykey_empty(1, code(AppTransports.http, 400)), - businesstag_name_empty(1, code(AppTransports.http, 400)); - - // ::: vars - // - private final Map transportCodes = new HashMap(); - private final int code; - - // ::: constructors - // - private BizErrors(int code, TransportCode... codes) { - this.code = code; - if (codes != null) { - for (var i : codes) { - if (i != null) { - transportCodes.put(i.getId(), i.getCode()); - } - } - } - } - - // ::: prototype api - // - @Override - public int getCode() { - return code; - } - - @Override - public String getName() { - return name(); - } - - @Override - public Map getTransportCodes() { - return transportCodes; - } - - @Override - public RuntimeException newInstance(String msg, Throwable cause, Map extra) { - var ex = new AppException(this, msg, cause); - ex.setExtra(extra); - return ex; - } - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/BizModule.java b/src/main/java/io/kumare/iqr/mod/biz/BizModule.java deleted file mode 100644 index e1ba335..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/BizModule.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz; - -// java -import io.kumare.lib.base.server.spring.module.BaseModule; - - -/** - * - * @author afatecha - */ -public class BizModule extends BaseModule { - - // ::: - // - public static final BizController controller = new BizController(); - - // ::: api - // - @Override - public int getId() { - return BizConstants.CODE; - } - - @Override - public String getName() { - return BizConstants.NAME; - } - - @Override - public BizController getController() { - return controller; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/BizPermissions.java b/src/main/java/io/kumare/iqr/mod/biz/BizPermissions.java deleted file mode 100644 index ed7f9dc..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/BizPermissions.java +++ /dev/null @@ -1,198 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz; - -// base -import io.kumare.iqr.mod.biz.store.BizEntities; -import io.kumare.lib.app.api.security.PermissionReference; -// app -import io.kumare.iqr.app.AppErrors; - -/** - * - * @author afatecha - */ -public enum BizPermissions { - - // business - //business_add(BizEntities.business), - //business_edit(BizEntities.business), - //business_find(BizEntities.business), - //business_enable(BizEntities.business), - //business_disable(BizEntities.business), - //business_list(BizEntities.business), - //business_delete(BizEntities.business), - //business_preload(BizEntities.business), - // - business_viewer(BizEntities.business), - //business_guest(BizEntities.business), - //business_collab(BizEntities.business), - business_worker(BizEntities.business), - //business_control(BizEntities.business), - business_manager(BizEntities.business), - business_admin(null), - business_system(null), - - // business profile - //business_profile_add(BizEntities.businessProfile), - //business_profile_edit(BizEntities.businessProfile), - //business_profile_find(BizEntities.businessProfile), - //business_profile_enable(BizEntities.businessProfile), - //business_profile_disable(BizEntities.businessProfile), - //business_profile_list(BizEntities.businessProfile), - //business_profile_delete(BizEntities.businessProfile), - //business_profile_preload(BizEntities.businessProfile), - // - business_profile_viewer(BizEntities.businessProfile), - //business_profile_guest(BizEntities.businessProfile), - //business_profile_collab(BizEntities.businessProfile), - business_profile_worker(BizEntities.businessProfile), - //business_profile_control(BizEntities.businessProfile), - business_profile_manager(BizEntities.businessProfile), - business_profile_admin(null), - business_profile_system(null), - - // business setting - //business_setting_add(BizEntities.businessSetting), - //business_setting_edit(BizEntities.businessSetting), - //business_setting_find(BizEntities.businessSetting), - //business_setting_enable(BizEntities.businessSetting), - //business_setting_disable(BizEntities.businessSetting), - //business_setting_list(BizEntities.businessSetting), - //business_setting_delete(BizEntities.businessSetting), - //business_setting_preload(BizEntities.businessSetting), - // - business_setting_viewer(BizEntities.businessSetting), - //business_setting_guest(BizEntities.businessSetting), - //business_setting_collab(BizEntities.businessSetting), - business_setting_worker(BizEntities.businessSetting), - //business_setting_control(BizEntities.businessSetting), - business_setting_manager(BizEntities.businessSetting), - business_setting_admin(null), - business_setting_system(null), - - // business promo - //business_promo_add(BizEntities.businessPromo), - //business_promo_edit(BizEntities.businessPromo), - //business_promo_find(BizEntities.businessPromo), - //business_promo_enable(BizEntities.businessPromo), - //business_promo_disable(BizEntities.businessPromo), - //business_promo_list(BizEntities.businessPromo), - //business_promo_delete(BizEntities.businessPromo), - //business_promo_preload(BizEntities.businessPromo), - // - business_promo_viewer(BizEntities.businessPromo), - //business_promo_guest(BizEntities.businessPromo), - //business_promo_collab(BizEntities.businessPromo), - business_promo_worker(BizEntities.businessPromo), - //business_promo_control(BizEntities.businessPromo), - business_promo_manager(BizEntities.businessPromo), - business_promo_admin(null), - business_promo_system(null), - - // business promo item - //business_promo_item_add(BizEntities.businessPromoItem), - //business_promo_item_edit(BizEntities.businessPromoItem), - //business_promo_item_find(BizEntities.businessPromoItem), - //business_promo_item_enable(BizEntities.businessPromoItem), - //business_promo_item_disable(BizEntities.businessPromoItem), - //business_promo_item_list(BizEntities.businessPromoItem), - //business_promo_item_delete(BizEntities.businessPromoItem), - //business_promo_item_preload(BizEntities.businessPromoItem), - // - business_promo_item_viewer(BizEntities.businessPromoItem), - //business_promo_item_guest(BizEntities.businessPromoItem), - //business_promo_item_collab(BizEntities.businessPromoItem), - business_promo_item_worker(BizEntities.businessPromoItem), - //business_promo_item_control(BizEntities.businessPromoItem), - business_promo_item_manager(BizEntities.businessPromoItem), - business_promo_item_admin(null), - business_promo_item_system(null), - - // business image - //business_image_add(BizEntities.businessImage), - //business_image_edit(BizEntities.businessImage), - //business_image_find(BizEntities.businessImage), - //business_image_enable(BizEntities.businessImage), - //business_image_disable(BizEntities.businessImage), - //business_image_list(BizEntities.businessImage), - //business_image_delete(BizEntities.businessImage), - //business_image_preload(BizEntities.businessImage), - // - business_image_viewer(BizEntities.businessImage), - //business_image_guest(BizEntities.businessImage), - //business_image_collab(BizEntities.businessImage), - business_image_worker(BizEntities.businessImage), - //business_image_control(BizEntities.businessImage), - business_image_manager(BizEntities.businessImage), - business_image_admin(null), - business_image_system(null), - - // business worker - //business_worker_add(BizEntities.businessWorker), - //business_worker_edit(BizEntities.businessWorker), - //business_worker_find(BizEntities.businessWorker), - //business_worker_enable(BizEntities.businessWorker), - //business_worker_disable(BizEntities.businessWorker), - //business_worker_list(BizEntities.businessWorker), - //business_worker_delete(BizEntities.businessWorker), - //business_worker_preload(BizEntities.businessWorker), - // - business_worker_viewer(BizEntities.businessWorker), - //business_worker_guest(BizEntities.businessWorker), - //business_worker_collab(BizEntities.businessWorker), - business_worker_worker(BizEntities.businessWorker), - //business_worker_control(BizEntities.businessWorker), - business_worker_manager(BizEntities.businessWorker), - business_worker_admin(null), - business_worker_system(null), - - // business tag - //business_tag_add(BizEntities.businessTag), - //business_tag_edit(BizEntities.businessTag), - //business_tag_find(BizEntities.businessTag), - //business_tag_enable(BizEntities.businessTag), - //business_tag_disable(BizEntities.businessTag), - //business_tag_list(BizEntities.businessTag), - //business_tag_delete(BizEntities.businessTag), - //business_tag_preload(BizEntities.businessTag), - // - business_tag_viewer(BizEntities.businessTag), - //business_tag_guest(BizEntities.businessTag), - //business_tag_collab(BizEntities.businessTag), - business_tag_worker(BizEntities.businessTag), - //business_tag_control(BizEntities.businessTag), - business_tag_manager(BizEntities.businessTag), - business_tag_admin(null), - business_tag_system(null); - - - // ::: - // - private final BizEntities resourceType; - - BizPermissions(BizEntities entityRef) { - this.resourceType = entityRef; - } - - // - public PermissionReference toReference() { - return toReference(null); - } - - public PermissionReference toReference(String resourceKey) { - var ref = new PermissionReference() - .module(BizConstants.NAME) - .permission(name()) - .error(AppErrors.action_unauthorized); - - if (resourceType != null && resourceKey != null) { - ref.resourceType(resourceType.name()) - .resourceKey(resourceKey); - } - - return ref; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessActionArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessActionArgument.java deleted file mode 100644 index 996f017..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessActionArgument.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.business; - -// base -import io.kumare.iqr.app.action.AppEntityActionArgument; -// entity -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; - -/** - * - * @author afatecha - */ -public class BusinessActionArgument extends AppEntityActionArgument { - - // ::: constructors - // - public BusinessActionArgument() { - } - - public BusinessActionArgument(BusinessEntity entity) { - super(entity); - } - - // ::: api - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessAddAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessAddAction.java deleted file mode 100644 index 52c0c7d..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessAddAction.java +++ /dev/null @@ -1,161 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.business; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -import io.kumare.iqr.mod.authentication.action.authuser.AuthUserAddArgument; -import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; -// module -import io.kumare.iqr.mod.biz.BizErrors; -import io.kumare.iqr.mod.biz.action.businessprofile.BusinessProfileAddAction; -import io.kumare.iqr.mod.biz.action.businessprofile.BusinessProfileAddArgument; -import io.kumare.iqr.mod.biz.action.businesstag.BusinessTagAddAction; -import io.kumare.iqr.mod.biz.action.businesstag.BusinessTagAddArgument; -import io.kumare.iqr.mod.biz.action.businessworker.BusinessWorkerAddAction; -import io.kumare.iqr.mod.biz.action.businessworker.BusinessWorkerAddArgument; -import io.kumare.iqr.mod.biz.store.BizTaxonomies; -import io.kumare.iqr.mod.biz.store.BizWorkerRoles; -// entity -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; -import io.kumare.iqr.mod.biz.store.businesstag.BusinessTagEntity; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; -import io.kumare.lib.base.server.spring.action.Actions; - -/** - * - * @author afatecha - */ -public class BusinessAddAction extends AppAction> { - - // ::: vars - // - private BusinessEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, BizErrors.business_notfound); - - // relations - //V.ifNull(model.getState(), BizErrors.business_state_notfound); - // fields - //V.ifEmpty(model.getEntityKey(), BizErrors.business_entitykey_empty); - //V.ifEmpty(model.getAlias(), BizErrors.business_alias_empty); - //V.ifEmpty(model.getStateValue(), BizErrors.business_statevalue_empty); - V.ifEmpty(model.getName(), BizErrors.business_name_empty); - //V.ifEmpty(model.getDescription(), BizErrors.business_description_empty); - } - - @Override - protected void doAction() { - // controllers - var state = BizTaxonomies.businessState.ensureDefault(getContext()); - - // model - var model = makeModel(state); - - // add - entity = saveEntity(model); - - // add others - addProfile(getArgument().getProfile()); - addManager(getArgument().getManager()); - addTags(); - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private BusinessEntity makeModel(TaxonEntity state) { - - var argModel = getArgument().getEntity(); - var model = new BusinessEntity(); - - // relations - model.setState(state); - model.setStateValue(state.getValue()); - - // fields - model.setEntityKey(generateKey()); - model.setAlias(argModel.getAlias()); - model.setName(argModel.getName()); - model.setDescription(argModel.getDescription()); - model.setActive(true); - - return model; - } - - private String generateKey() { - return null; - } - - // ::: save - // - private BusinessEntity saveEntity(BusinessEntity model) { - - var store = AppModules.biz.getController().getBusinessStore(); - - var saved = store.add(getContext(), model); - getContext().attach(saved.getId(), saved); - return saved; - } - - // ::: adds - // - private void addProfile(BusinessProfileAddArgument argument) { - argument.getEntity().setBusiness(entity); - Actions.perform(getContext(), new BusinessProfileAddAction(), argument); - } - - private void addManager(BusinessWorkerAddArgument argument) { - - var worker = argument.getEntity(); - worker - .business(entity) - .role(new TaxonEntity() - .taxaKey(BizTaxonomies.businessWorkerRole.getKey()) - .entityKey(BizWorkerRoles.manager.getKey())); - - var addUser = new AuthUserAddArgument(); - addUser.entity(new AuthUserEntity() - .email(worker.getEmail()) - .phone(worker.getPhone()) - .name(worker.getName()) - .visible(true) - .entityKey(worker.getEntityKey())); - - argument.setAuthUser(addUser); - - Actions.perform(getContext(), new BusinessWorkerAddAction(), argument); - } - - private void addTags() { - var tags = BizTaxonomies.businessDefaultTag.list(getContext()); - - tags.forEach(i -> { - var arg = new BusinessTagAddArgument(); - arg.entity(new BusinessTagEntity().name(i.getName())); - Actions.perform(getContext(), new BusinessTagAddAction(), arg); - }); - } -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessAddArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessAddArgument.java deleted file mode 100644 index ffe3c4d..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessAddArgument.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.business; - -// app -import io.kumare.iqr.mod.biz.action.businessprofile.BusinessProfileAddArgument; -import io.kumare.iqr.mod.biz.action.businessworker.BusinessWorkerAddArgument; -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; - -/** - * - * @author afatecha - */ -public class BusinessAddArgument extends BusinessActionArgument { - - // ::: vars - // - private BusinessProfileAddArgument profile; - private BusinessWorkerAddArgument manager; - - // ::: constructors - // - public BusinessAddArgument() { - } - - public BusinessAddArgument(BusinessEntity entity) { - super(entity); - } - - // ::: fields - // - public BusinessProfileAddArgument getProfile() { - return profile; - } - - public void setProfile(BusinessProfileAddArgument profile) { - this.profile = profile; - } - - public BusinessWorkerAddArgument getManager() { - return manager; - } - - public void setManager(BusinessWorkerAddArgument manager) { - this.manager = manager; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessDeleteAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessDeleteAction.java deleted file mode 100644 index 63bc066..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessDeleteAction.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.business; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; - -/** - * - * @author afatecha - */ -public class BusinessDeleteAction extends AppAction> { - - // ::: vars - // - private BusinessEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), BizErrors.business_notfound); - V.ifNull(getArgument().getEntity().getId(), BizErrors.business_notfound); - } - - @Override - protected void doAction() { - - var argModel = getArgument().getEntity(); - - deleteEntity(argModel); - } - - @Override - protected void setResultOnly() { - } - - // ::: delete - // - private void deleteEntity(BusinessEntity model) { - - var store = AppModules.biz.getController().getBusinessStore(); - - store.deleteById(getContext(), model.getId()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessEditAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessEditAction.java deleted file mode 100644 index feaaab2..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessEditAction.java +++ /dev/null @@ -1,110 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.business; - -// lib -import io.kumare.lib.v.V; -// app -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -import io.kumare.iqr.mod.biz.action.businessprofile.BusinessProfileEditAction; -import io.kumare.iqr.mod.biz.action.businessprofile.BusinessProfileEditArgument; -// entity -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; -import io.kumare.lib.base.server.spring.action.Actions; - -/** - * - * @author afatecha - */ -public class BusinessEditAction extends AppAction> { - - // ::: vars - // - private BusinessEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, BizErrors.business_notfound); - - // fields - //V.ifEmpty(model.getEntityKey(), BizErrors.business_entitykey_empty); - //V.ifEmpty(model.getAlias(), BizErrors.business_alias_empty); - //V.ifEmpty(model.getStateValue(), BizErrors.business_statevalue_empty); - //V.ifEmpty(model.getName(), BizErrors.business_name_empty); - //V.ifEmpty(model.getDescription(), BizErrors.business_description_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - var biz = AppModules.biz.getController(); - var businessStore = biz.getBusinessStore(); - - // edit - entity = businessStore.ensure(getContext(), argModel, BizErrors.business_notfound); - - editEntity(); - - entity = saveEntity(); - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private void editEntity() { - - var model = getArgument().getEntity(); - - // fields - //entity.setEntityKey(V.firstNotEmpty(model.getEntityKey(), entity.getEntityKey())); - entity.setAlias(V.firstNotEmpty(model.getAlias(), entity.getAlias())); - //entity.setStateValue(V.firstNotEmpty(model.getStateValue(), entity.getStateValue())); - entity.setName(V.firstNotEmpty(model.getName(), entity.getName())); - entity.setDescription(V.firstNotEmpty(model.getDescription(), entity.getDescription())); - - } - - // ::: save - // - private BusinessEntity saveEntity() { - - var store = AppModules.biz.getController().getBusinessStore(); - - var saved = store.edit(getContext(), entity); - getContext().attach(saved.getId(), saved); - return saved; - } - - // ::: edit others - // - public void editProfile(BusinessProfileEditArgument argument) { - if (argument != null) { - argument.getEntity().setBusiness(entity); - Actions.perform(getContext(), new BusinessProfileEditAction(), argument); - } - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessEditArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessEditArgument.java deleted file mode 100644 index 8888f0b..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessEditArgument.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.business; - -// app -import io.kumare.iqr.mod.biz.action.businessprofile.BusinessProfileEditArgument; -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; - -/** - * - * @author afatecha - */ -public class BusinessEditArgument extends BusinessActionArgument { - - // ::: vars - // - private BusinessProfileEditArgument profile; - - // ::: constructors - // - public BusinessEditArgument() { - } - - public BusinessEditArgument(BusinessEntity entity) { - super(entity); - } - - // ::: fields - // - public BusinessProfileEditArgument getProfile() { - return profile; - } - - public void setProfile(BusinessProfileEditArgument profile) { - this.profile = profile; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessEnableAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessEnableAction.java deleted file mode 100644 index 9e41d3f..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessEnableAction.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.business; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; - - -/** - * - * @author afatecha - */ -public class BusinessEnableAction extends AppAction { - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), BizErrors.business_notfound); - V.ifNull(getArgument().getEntity().getId(), BizErrors.business_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - - enableEntity(model); - } - - @Override - protected void setResultOnly() { - } - - // ::: enable - // - private void enableEntity(BusinessEntity model) { - - var store = AppModules.biz.getController().getBusinessStore(); - - if (getArgument().getEntity().isActive()) { - store.enableById(getContext(), model.getId()); - } else { - store.disableById(getContext(), model.getId()); - } - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessFindAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessFindAction.java deleted file mode 100644 index dcdec73..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessFindAction.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.business; - -// java -import java.util.HashMap; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; - - -/** - * - * @author afatecha - */ -public class BusinessFindAction extends AppAction { - - // ::: vars - // - private BusinessEntity entity; - - // ::: public api - // - public BusinessEntity getEntity() { - return entity; - } - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), BizErrors.business_notfound); - V.ifNull(getArgument().getEntity().getId(), BizErrors.business_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - entity = findEntity(model); - } - - @Override - protected void setResultOnly() { - var result = new HashMap(); - result.put("entity", entity); - setResult(result); - } - - // ::: find - // - private BusinessEntity findEntity(BusinessEntity model) { - - var store = AppModules.biz.getController().getBusinessStore(); - return store.findById(getContext(), model.getId()); - } - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessListAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessListAction.java deleted file mode 100644 index 0108435..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessListAction.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.business; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.LinkedList; -import java.util.Map; -// spring -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// entity -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; -import io.kumare.iqr.mod.biz.store.business.BusinessMapBuilder; - - -/** - * - * @author afatecha - */ -public class BusinessListAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private final List entities = new LinkedList<>(); - - // ::: public api - // - public List getEntities() { - return entities; - } - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - } - - @Override - protected void doAction() { - - result.put("pageable", getArgument().isPageable()); - result.put("wrapped", getArgument().isWrapped()); - - if (getArgument().isPageable()) { - - var page = makePage(); - entities.addAll(page.toList()); - - if (getArgument().isWrapped()) { - result.put("page", makeWrappedPage(page)); - } else { - result.put("page", page); - } - - } else { - - var list = makeList(); - entities.addAll(list); - - if (getArgument().isWrapped()) { - result.put("list", makeWrappedList()); - } else { - result.put("list", list); - } - } - - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: page - // - private Page makePage() { - - var page = getArgument().getPageNumber(); - var size = getArgument().getPageSize(); - //var sort = getArgument().getSort(); - - var pageable = PageRequest.of(page, size); - - var store = AppModules.biz.getController().getBusinessStore(); - return store.getRepository().findAll(pageable); - } - - // ::: wrapped page - // - private Map makeWrappedPage(Page found) { - - var page = new HashMap(); - var content = new LinkedList(); - - wrapList(entities, content); - - page.put("size", found.getSize()); - page.put("number", found.getNumber()); - page.put("totalElements", found.getTotalElements()); - page.put("totalPages", found.getTotalPages()); - page.put("content", content); - - return page; - } - - - // ::: list - // - - private List makeList() { - - var store = AppModules.biz.getController().getBusinessStore(); - - return store.listAll(getContext()); - } - - // ::: wrapped list - private List makeWrappedList() { - var list = new LinkedList(); - - wrapList(entities, list); - - return list; - } - - // ::: wrapper - // - private void wrapList(List found, List output) { - - var builder = new BusinessMapBuilder().addListGroup(); - builder.getStateBuilder().addMainGroup(); - - output.addAll(builder.build(getContext(), found)); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessListArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessListArgument.java deleted file mode 100644 index 904dc82..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessListArgument.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.business; - -// app -import io.kumare.iqr.app.action.AppListActionArgument; -// store -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; - -/** - * - * @author afatecha - */ -public class BusinessListArgument extends AppListActionArgument { - - // ::: vars - // - - // ::: constructors - // - public BusinessListArgument() { - } - - public BusinessListArgument(BusinessEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessPreloadAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessPreloadAction.java deleted file mode 100644 index cb99847..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessPreloadAction.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.business; - -// java -import java.util.HashMap; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -import io.kumare.iqr.mod.biz.store.BizTaxonomies; -// entity -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; -// relations - -/** - * - * @author afatecha - */ -public class BusinessPreloadAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private Map params = new HashMap<>(); - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifEmpty(getArgument().getAction(), BizErrors.business_preload_empty); - } - - @Override - protected void doAction() { - if (getArgument().getParams() != null) { - params = getArgument().getParams(); - } - - switch (getArgument().getAction()) { - case "find" -> - prepareFind(); - case "list" -> - prepareList(); - case "add" -> - prepareAdd(); - case "edit" -> - prepareEdit(); - } - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: preload - // - private void prepareAdd() { - var activities = BizTaxonomies.businessActivity.list(getContext()); - result.put("activities", activities); - } - - private void prepareEdit() { - var entity = findEntity(); - result.put("entity", entity); - result.put("state", entity.getState()); - } - - private void prepareList() { - } - - private void prepareFind() { - var entity = findEntity(); - result.put("entity", entity); - result.put("state", entity.getState()); - } - - // ::: queries - // - private BusinessEntity findEntity() { - var store = AppModules.biz.getController().getBusinessStore(); - - var id = (String) params.get("id"); - if (id == null && getArgument().getEntity() != null) { - id = getArgument().getEntity().getId(); - } - return store.findById(getContext(), id); - } -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessPreloadArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessPreloadArgument.java deleted file mode 100644 index 3cfb52e..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/business/BusinessPreloadArgument.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.business; - -/** - * - * @author afatecha - */ -public class BusinessPreloadArgument extends BusinessActionArgument { - - // ::: vars - // - private String action; - - // ::: fields - // - public String getAction() { - return action; - } - - public void setAction(String action) { - this.action = action; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImageActionArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImageActionArgument.java deleted file mode 100644 index 6b20b2f..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImageActionArgument.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessimage; - -// base -import io.kumare.iqr.app.action.AppEntityActionArgument; -// entity -import io.kumare.iqr.mod.biz.store.businessimage.BusinessImageEntity; - -/** - * - * @author afatecha - */ -public class BusinessImageActionArgument extends AppEntityActionArgument { - - // ::: constructors - // - public BusinessImageActionArgument() { - } - - public BusinessImageActionArgument(BusinessImageEntity entity) { - super(entity); - } - - // ::: api - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImageAddAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImageAddAction.java deleted file mode 100644 index c166ef0..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImageAddAction.java +++ /dev/null @@ -1,121 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessimage; - - -// lib -import io.kumare.lib.base.server.spring.action.Actions; -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businessimage.BusinessImageEntity; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; - - -/** - * - * @author afatecha - */ -public class BusinessImageAddAction extends AppAction> { - - // ::: vars - // - private BusinessImageEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, BizErrors.businessimage_notfound); - - // relations - V.ifNull(model.getBusiness(), BizErrors.businessimage_business_notfound); - V.ifNull(model.getType(), BizErrors.businessimage_type_notfound); - - // fields - V.ifEmpty(model.getTypeValue(), BizErrors.businessimage_typevalue_empty); - V.ifEmpty(model.getBytes(), BizErrors.businessimage_bytes_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - var biz = AppModules.biz.getController(); - var taxonomy = AppModules.taxonomy.getController(); - - var businessStore = biz.getBusinessStore(); - var taxonStore = taxonomy.getTaxonStore(); - - var business = businessStore.ensure(getContext(), argModel.getBusiness(), BizErrors.businessimage_business_notfound); - var type = taxonStore.ensure(getContext(), argModel.getType(), BizErrors.businessimage_type_notfound); - - // model - var model = makeModel(business, type); - - // add - entity = saveEntity(model); - - // add others - - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private BusinessImageEntity makeModel(BusinessEntity business, TaxonEntity type) { - - var argModel = getArgument().getEntity(); - var model = new BusinessImageEntity(); - - // relations - model.setBusiness(business); - model.setType(type); - - // fields - model.setTypeValue(argModel.getTypeValue()); - model.setBytes(argModel.getBytes()); - model.setActive(true); - - - - return model; - } - - // ::: save - // - private BusinessImageEntity saveEntity(BusinessImageEntity model) { - - var store = AppModules.biz.getController().getBusinessImageStore(); - - var saved = store.add(getContext(), model); - getContext().attach(saved.getId(), saved); - return saved; - } - - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImageAddArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImageAddArgument.java deleted file mode 100644 index daebcfc..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImageAddArgument.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessimage; - - -// app -import io.kumare.iqr.mod.biz.store.businessimage.BusinessImageEntity; - - -/** - * - * @author afatecha - */ -public class BusinessImageAddArgument extends BusinessImageActionArgument { - - // ::: vars - // - - - // ::: constructors - // - public BusinessImageAddArgument() { - } - - public BusinessImageAddArgument(BusinessImageEntity entity) { - super(entity); - } - - // ::: fields - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImageDeleteAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImageDeleteAction.java deleted file mode 100644 index fc5548b..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImageDeleteAction.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessimage; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businessimage.BusinessImageEntity; - -/** - * - * @author afatecha - */ -public class BusinessImageDeleteAction extends AppAction> { - - // ::: vars - // - private BusinessImageEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), BizErrors.businessimage_notfound); - V.ifNull(getArgument().getEntity().getId(), BizErrors.businessimage_notfound); - } - - @Override - protected void doAction() { - - var argModel = getArgument().getEntity(); - - deleteEntity(argModel); - } - - @Override - protected void setResultOnly() { - } - - // ::: delete - // - private void deleteEntity(BusinessImageEntity model) { - - var store = AppModules.biz.getController().getBusinessImageStore(); - - store.deleteById(getContext(), model.getId()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImageEditAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImageEditAction.java deleted file mode 100644 index 7dfbb3b..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImageEditAction.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessimage; - -// lib -import io.kumare.lib.v.V; -// app -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businessimage.BusinessImageEntity; - -/** - * - * @author afatecha - */ -public class BusinessImageEditAction extends AppAction> { - - // ::: vars - // - private BusinessImageEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, BizErrors.businessimage_notfound); - - // fields - V.ifEmpty(model.getTypeValue(), BizErrors.businessimage_typevalue_empty); - V.ifEmpty(model.getBytes(), BizErrors.businessimage_bytes_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - - var biz = AppModules.biz.getController(); - var businessImageStore = biz.getBusinessImageStore(); - - // edit - entity = businessImageStore.ensure(getContext(), argModel, BizErrors.businessimage_notfound); - - editEntity(); - - entity = saveEntity(); - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private void editEntity() { - - var model = getArgument().getEntity(); - - // fields - entity.setTypeValue(V.firstNotEmpty(model.getTypeValue(), entity.getTypeValue())); - entity.setBytes(V.firstNotEmpty(model.getBytes(), entity.getBytes())); - - - } - - // ::: save - // - private BusinessImageEntity saveEntity() { - - var store = AppModules.biz.getController().getBusinessImageStore(); - - var saved = store.edit(getContext(), entity); - getContext().attach(saved.getId(), saved); - return saved; - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImageEditArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImageEditArgument.java deleted file mode 100644 index ce1377f..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImageEditArgument.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessimage; - -// app -import io.kumare.iqr.mod.biz.store.businessimage.BusinessImageEntity; - -/** - * - * @author afatecha - */ -public class BusinessImageEditArgument extends BusinessImageActionArgument { - - // ::: vars - // - - - // ::: constructors - // - public BusinessImageEditArgument() { - } - - public BusinessImageEditArgument(BusinessImageEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImageEnableAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImageEnableAction.java deleted file mode 100644 index 1a46486..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImageEnableAction.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessimage; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businessimage.BusinessImageEntity; - - -/** - * - * @author afatecha - */ -public class BusinessImageEnableAction extends AppAction { - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), BizErrors.businessimage_notfound); - V.ifNull(getArgument().getEntity().getId(), BizErrors.businessimage_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - - enableEntity(model); - } - - @Override - protected void setResultOnly() { - } - - // ::: enable - // - private void enableEntity(BusinessImageEntity model) { - - var store = AppModules.biz.getController().getBusinessImageStore(); - - if (getArgument().getEntity().isActive()) { - store.enableById(getContext(), model.getId()); - } else { - store.disableById(getContext(), model.getId()); - } - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImageFindAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImageFindAction.java deleted file mode 100644 index a901a95..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImageFindAction.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessimage; - -// java -import java.util.HashMap; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businessimage.BusinessImageEntity; - - -/** - * - * @author afatecha - */ -public class BusinessImageFindAction extends AppAction { - - // ::: vars - // - private BusinessImageEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), BizErrors.businessimage_notfound); - V.ifNull(getArgument().getEntity().getId(), BizErrors.businessimage_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - entity = findEntity(model); - } - - @Override - protected void setResultOnly() { - var result = new HashMap(); - result.put("entity", entity); - setResult(result); - } - - // ::: find - // - private BusinessImageEntity findEntity(BusinessImageEntity model) { - - var store = AppModules.biz.getController().getBusinessImageStore(); - return store.findById(getContext(), model.getId()); - } - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImageListAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImageListAction.java deleted file mode 100644 index 31ec3dc..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImageListAction.java +++ /dev/null @@ -1,149 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessimage; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.LinkedList; -import java.util.Map; -// spring -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// entity -import io.kumare.iqr.mod.biz.store.businessimage.BusinessImageEntity; -import io.kumare.iqr.mod.biz.store.businessimage.BusinessImageMapBuilder; - - -/** - * - * @author afatecha - */ -public class BusinessImageListAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private final List entities = new LinkedList<>(); - - // ::: public api - // - public List getEntities() { - return entities; - } - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - } - - @Override - protected void doAction() { - - result.put("pageable", getArgument().isPageable()); - result.put("wrapped", getArgument().isWrapped()); - - if (getArgument().isPageable()) { - - var page = makePage(); - entities.addAll(page.toList()); - - if (getArgument().isWrapped()) { - result.put("page", makeWrappedPage(page)); - } else { - result.put("page", page); - } - - } else { - - var list = makeList(); - entities.addAll(list); - - if (getArgument().isWrapped()) { - result.put("list", makeWrappedList()); - } else { - result.put("list", list); - } - } - - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: page - // - private Page makePage() { - - var page = getArgument().getPageNumber(); - var size = getArgument().getPageSize(); - //var sort = getArgument().getSort(); - - var pageable = PageRequest.of(page, size); - - var store = AppModules.biz.getController().getBusinessImageStore(); - return store.getRepository().findAll(pageable); - } - - // ::: wrapped page - // - private Map makeWrappedPage(Page found) { - - var page = new HashMap(); - var content = new LinkedList(); - - wrapList(entities, content); - - page.put("size", found.getSize()); - page.put("number", found.getNumber()); - page.put("totalElements", found.getTotalElements()); - page.put("totalPages", found.getTotalPages()); - page.put("content", content); - - return page; - } - - - // ::: list - // - - private List makeList() { - - var store = AppModules.biz.getController().getBusinessImageStore(); - - return store.listAll(getContext()); - } - - // ::: wrapped list - private List makeWrappedList() { - var list = new LinkedList(); - - wrapList(entities, list); - - return list; - } - - // ::: wrapper - // - private void wrapList(List found, List output) { - - var builder = new BusinessImageMapBuilder().addListGroup(); - builder.getBusinessBuilder().addMainGroup(); - builder.getTypeBuilder().addMainGroup(); - - output.addAll(builder.build(getContext(), found)); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImageListArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImageListArgument.java deleted file mode 100644 index e9b39fd..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImageListArgument.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessimage; - -// app -import io.kumare.iqr.app.action.AppListActionArgument; -// store -import io.kumare.iqr.mod.biz.store.businessimage.BusinessImageEntity; - -/** - * - * @author afatecha - */ -public class BusinessImageListArgument extends AppListActionArgument { - - // ::: vars - // - - // ::: constructors - // - public BusinessImageListArgument() { - } - - public BusinessImageListArgument(BusinessImageEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImagePreloadAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImagePreloadAction.java deleted file mode 100644 index f90fdb7..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImagePreloadAction.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessimage; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businessimage.BusinessImageEntity; -// relations -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; - -/** - * - * @author afatecha - */ -public class BusinessImagePreloadAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private Map params = new HashMap<>(); - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifEmpty(getArgument().getAction(), BizErrors.businessimage_preload_empty); - } - - @Override - protected void doAction() { - if(getArgument().getParams() != null) { - params = getArgument().getParams(); - } - - switch (getArgument().getAction()) { - case "find" -> - prepareFind(); - case "list" -> - prepareList(); - case "add" -> - prepareAdd(); - case "edit" -> - prepareEdit(); - } - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: preload - // - private void prepareAdd() { - result.put("taxons", listTaxons()); - result.put("businesss", listBusinesss()); - } - - private void prepareEdit() { - var entity = findEntity(); - result.put("entity", entity); - result.put("business", entity.getBusiness()); - result.put("type", entity.getType()); - } - - private void prepareList() { - } - - private void prepareFind() { - var entity = findEntity(); - result.put("entity", entity); - result.put("business", entity.getBusiness()); - result.put("type", entity.getType()); - } - - // ::: queries - // - private BusinessImageEntity findEntity() { - var store = AppModules.biz.getController().getBusinessImageStore(); - - var id = (String) params.get("id"); - if(id == null && getArgument().getEntity() != null) { - id = getArgument().getEntity().getId(); - } - return store.findById(getContext(), id); - } - - public List listBusinesss() { - var store = AppModules.biz.getController().getBusinessStore(); - - return store.listAll(getContext()); - } - public List listTaxons() { - var store = AppModules.taxonomy.getController().getTaxonStore(); - - return store.listAll(getContext()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImagePreloadArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImagePreloadArgument.java deleted file mode 100644 index 27721e0..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessimage/BusinessImagePreloadArgument.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessimage; - -/** - * - * @author afatecha - */ -public class BusinessImagePreloadArgument extends BusinessImageActionArgument { - - // ::: vars - // - private String action; - - // ::: fields - // - public String getAction() { - return action; - } - - public void setAction(String action) { - this.action = action; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfileActionArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfileActionArgument.java deleted file mode 100644 index 00a535d..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfileActionArgument.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessprofile; - -// base -import io.kumare.iqr.app.action.AppEntityActionArgument; -// entity -import io.kumare.iqr.mod.biz.store.businessprofile.BusinessProfileEntity; - -/** - * - * @author afatecha - */ -public class BusinessProfileActionArgument extends AppEntityActionArgument { - - // ::: constructors - // - public BusinessProfileActionArgument() { - } - - public BusinessProfileActionArgument(BusinessProfileEntity entity) { - super(entity); - } - - // ::: api - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfileAddAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfileAddAction.java deleted file mode 100644 index 04e2842..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfileAddAction.java +++ /dev/null @@ -1,133 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessprofile; - - -// lib -import io.kumare.lib.base.server.spring.action.Actions; -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -import io.kumare.iqr.mod.biz.store.BizTaxonomies; -// entity -import io.kumare.iqr.mod.biz.store.businessprofile.BusinessProfileEntity; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; -import io.kumare.iqr.mod.biz.store.businessimage.BusinessImageEntity; - - -/** - * - * @author afatecha - */ -public class BusinessProfileAddAction extends AppAction> { - - // ::: vars - // - private BusinessProfileEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, BizErrors.businessprofile_notfound); - - // relations - V.ifNull(model.getBusiness(), BizErrors.businessprofile_business_notfound); - //V.ifNull(model.getImage(), BizErrors.businessprofile_image_notfound); - V.ifNull(model.getActivity(), BizErrors.businessprofile_activity_notfound); - - // fields - //V.ifEmpty(model.getActivityValue(), BizErrors.businessprofile_activityvalue_empty); - //V.ifEmpty(model.getGpsLatitude(), BizErrors.businessprofile_gpslatitude_empty); - //V.ifEmpty(model.getGpsLongitude(), BizErrors.businessprofile_gpslongitude_empty); - //V.ifEmpty(model.getWebsite(), BizErrors.businessprofile_website_empty); - //V.ifEmpty(model.getPhone(), BizErrors.businessprofile_phone_empty); - //V.ifEmpty(model.getAddress(), BizErrors.businessprofile_address_empty); - //V.ifEmpty(model.getExtraInfo(), BizErrors.businessprofile_extrainfo_empty); - //V.ifEmpty(model.getDescription(), BizErrors.businessprofile_description_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - var biz = AppModules.biz.getController(); - var businessStore = biz.getBusinessStore(); - - var business = businessStore.ensure(getContext(), argModel.getBusiness(), BizErrors.businessprofile_business_notfound); - var activity = BizTaxonomies.businessActivity.ensureDefault(getContext()); - - // model - var model = makeModel(business, activity); - - // add - entity = saveEntity(model); - - // add others - - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private BusinessProfileEntity makeModel(BusinessEntity business, TaxonEntity activity) { - - var argModel = getArgument().getEntity(); - var model = new BusinessProfileEntity(); - - // relations - model.setBusiness(business); - model.setActivity(activity); - model.setActivityValue(activity.getValue()); - - // fields - model.setGpsLatitude(argModel.getGpsLatitude()); - model.setGpsLongitude(argModel.getGpsLongitude()); - model.setWebsite(argModel.getWebsite()); - model.setPhone(argModel.getPhone()); - model.setAddress(argModel.getAddress()); - model.setExtraInfo(argModel.getExtraInfo()); - model.setDescription(argModel.getDescription()); - model.setActive(true); - - - - return model; - } - - // ::: save - // - private BusinessProfileEntity saveEntity(BusinessProfileEntity model) { - - var store = AppModules.biz.getController().getBusinessProfileStore(); - - var saved = store.add(getContext(), model); - getContext().attach(saved.getId(), saved); - return saved; - } - - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfileAddArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfileAddArgument.java deleted file mode 100644 index c5817e0..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfileAddArgument.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessprofile; - - -// app -import io.kumare.iqr.mod.biz.store.businessprofile.BusinessProfileEntity; - - -/** - * - * @author afatecha - */ -public class BusinessProfileAddArgument extends BusinessProfileActionArgument { - - // ::: vars - // - - - // ::: constructors - // - public BusinessProfileAddArgument() { - } - - public BusinessProfileAddArgument(BusinessProfileEntity entity) { - super(entity); - } - - // ::: fields - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfileDeleteAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfileDeleteAction.java deleted file mode 100644 index aee2b69..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfileDeleteAction.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessprofile; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businessprofile.BusinessProfileEntity; - -/** - * - * @author afatecha - */ -public class BusinessProfileDeleteAction extends AppAction> { - - // ::: vars - // - private BusinessProfileEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), BizErrors.businessprofile_notfound); - V.ifNull(getArgument().getEntity().getId(), BizErrors.businessprofile_notfound); - } - - @Override - protected void doAction() { - - var argModel = getArgument().getEntity(); - - deleteEntity(argModel); - } - - @Override - protected void setResultOnly() { - } - - // ::: delete - // - private void deleteEntity(BusinessProfileEntity model) { - - var store = AppModules.biz.getController().getBusinessProfileStore(); - - store.deleteById(getContext(), model.getId()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfileEditAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfileEditAction.java deleted file mode 100644 index 21cd18b..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfileEditAction.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessprofile; - -// lib -import io.kumare.lib.v.V; -// app -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businessprofile.BusinessProfileEntity; - -/** - * - * @author afatecha - */ -public class BusinessProfileEditAction extends AppAction> { - - // ::: vars - // - private BusinessProfileEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, BizErrors.businessprofile_notfound); - - // fields - V.ifEmpty(model.getActivityValue(), BizErrors.businessprofile_activityvalue_empty); - V.ifEmpty(model.getGpsLatitude(), BizErrors.businessprofile_gpslatitude_empty); - V.ifEmpty(model.getGpsLongitude(), BizErrors.businessprofile_gpslongitude_empty); - V.ifEmpty(model.getWebsite(), BizErrors.businessprofile_website_empty); - V.ifEmpty(model.getPhone(), BizErrors.businessprofile_phone_empty); - V.ifEmpty(model.getAddress(), BizErrors.businessprofile_address_empty); - V.ifEmpty(model.getExtraInfo(), BizErrors.businessprofile_extrainfo_empty); - V.ifEmpty(model.getDescription(), BizErrors.businessprofile_description_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - - var biz = AppModules.biz.getController(); - var businessProfileStore = biz.getBusinessProfileStore(); - - // edit - entity = businessProfileStore.ensure(getContext(), argModel, BizErrors.businessprofile_notfound); - - editEntity(); - - entity = saveEntity(); - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private void editEntity() { - - var model = getArgument().getEntity(); - - // fields - entity.setActivityValue(V.firstNotEmpty(model.getActivityValue(), entity.getActivityValue())); - entity.setGpsLatitude(V.firstNotEmpty(model.getGpsLatitude(), entity.getGpsLatitude())); - entity.setGpsLongitude(V.firstNotEmpty(model.getGpsLongitude(), entity.getGpsLongitude())); - entity.setWebsite(V.firstNotEmpty(model.getWebsite(), entity.getWebsite())); - entity.setPhone(V.firstNotEmpty(model.getPhone(), entity.getPhone())); - entity.setAddress(V.firstNotEmpty(model.getAddress(), entity.getAddress())); - entity.setExtraInfo(V.firstNotEmpty(model.getExtraInfo(), entity.getExtraInfo())); - entity.setDescription(V.firstNotEmpty(model.getDescription(), entity.getDescription())); - - - } - - // ::: save - // - private BusinessProfileEntity saveEntity() { - - var store = AppModules.biz.getController().getBusinessProfileStore(); - - var saved = store.edit(getContext(), entity); - getContext().attach(saved.getId(), saved); - return saved; - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfileEditArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfileEditArgument.java deleted file mode 100644 index 5ffb2c7..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfileEditArgument.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessprofile; - -// app -import io.kumare.iqr.mod.biz.store.businessprofile.BusinessProfileEntity; - -/** - * - * @author afatecha - */ -public class BusinessProfileEditArgument extends BusinessProfileActionArgument { - - // ::: vars - // - - - // ::: constructors - // - public BusinessProfileEditArgument() { - } - - public BusinessProfileEditArgument(BusinessProfileEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfileEnableAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfileEnableAction.java deleted file mode 100644 index 487b72f..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfileEnableAction.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessprofile; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businessprofile.BusinessProfileEntity; - - -/** - * - * @author afatecha - */ -public class BusinessProfileEnableAction extends AppAction { - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), BizErrors.businessprofile_notfound); - V.ifNull(getArgument().getEntity().getId(), BizErrors.businessprofile_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - - enableEntity(model); - } - - @Override - protected void setResultOnly() { - } - - // ::: enable - // - private void enableEntity(BusinessProfileEntity model) { - - var store = AppModules.biz.getController().getBusinessProfileStore(); - - if (getArgument().getEntity().isActive()) { - store.enableById(getContext(), model.getId()); - } else { - store.disableById(getContext(), model.getId()); - } - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfileFindAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfileFindAction.java deleted file mode 100644 index 33540f6..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfileFindAction.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessprofile; - -// java -import java.util.HashMap; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businessprofile.BusinessProfileEntity; - - -/** - * - * @author afatecha - */ -public class BusinessProfileFindAction extends AppAction { - - // ::: vars - // - private BusinessProfileEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), BizErrors.businessprofile_notfound); - V.ifNull(getArgument().getEntity().getId(), BizErrors.businessprofile_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - entity = findEntity(model); - } - - @Override - protected void setResultOnly() { - var result = new HashMap(); - result.put("entity", entity); - setResult(result); - } - - // ::: find - // - private BusinessProfileEntity findEntity(BusinessProfileEntity model) { - - var store = AppModules.biz.getController().getBusinessProfileStore(); - return store.findById(getContext(), model.getId()); - } - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfileListAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfileListAction.java deleted file mode 100644 index 030cd3c..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfileListAction.java +++ /dev/null @@ -1,149 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessprofile; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.LinkedList; -import java.util.Map; -// spring -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// entity -import io.kumare.iqr.mod.biz.store.businessprofile.BusinessProfileEntity; -import io.kumare.iqr.mod.biz.store.businessprofile.BusinessProfileMapBuilder; - - -/** - * - * @author afatecha - */ -public class BusinessProfileListAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private final List entities = new LinkedList<>(); - - // ::: public api - // - public List getEntities() { - return entities; - } - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - } - - @Override - protected void doAction() { - - result.put("pageable", getArgument().isPageable()); - result.put("wrapped", getArgument().isWrapped()); - - if (getArgument().isPageable()) { - - var page = makePage(); - entities.addAll(page.toList()); - - if (getArgument().isWrapped()) { - result.put("page", makeWrappedPage(page)); - } else { - result.put("page", page); - } - - } else { - - var list = makeList(); - entities.addAll(list); - - if (getArgument().isWrapped()) { - result.put("list", makeWrappedList()); - } else { - result.put("list", list); - } - } - - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: page - // - private Page makePage() { - - var page = getArgument().getPageNumber(); - var size = getArgument().getPageSize(); - //var sort = getArgument().getSort(); - - var pageable = PageRequest.of(page, size); - - var store = AppModules.biz.getController().getBusinessProfileStore(); - return store.getRepository().findAll(pageable); - } - - // ::: wrapped page - // - private Map makeWrappedPage(Page found) { - - var page = new HashMap(); - var content = new LinkedList(); - - wrapList(entities, content); - - page.put("size", found.getSize()); - page.put("number", found.getNumber()); - page.put("totalElements", found.getTotalElements()); - page.put("totalPages", found.getTotalPages()); - page.put("content", content); - - return page; - } - - - // ::: list - // - - private List makeList() { - - var store = AppModules.biz.getController().getBusinessProfileStore(); - - return store.listAll(getContext()); - } - - // ::: wrapped list - private List makeWrappedList() { - var list = new LinkedList(); - - wrapList(entities, list); - - return list; - } - - // ::: wrapper - // - private void wrapList(List found, List output) { - - var builder = new BusinessProfileMapBuilder().addListGroup(); - builder.getBusinessBuilder().addMainGroup(); - builder.getActivityBuilder().addMainGroup(); - - output.addAll(builder.build(getContext(), found)); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfileListArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfileListArgument.java deleted file mode 100644 index b6c6011..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfileListArgument.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessprofile; - -// app -import io.kumare.iqr.app.action.AppListActionArgument; -// store -import io.kumare.iqr.mod.biz.store.businessprofile.BusinessProfileEntity; - -/** - * - * @author afatecha - */ -public class BusinessProfileListArgument extends AppListActionArgument { - - // ::: vars - // - - // ::: constructors - // - public BusinessProfileListArgument() { - } - - public BusinessProfileListArgument(BusinessProfileEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfilePreloadAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfilePreloadAction.java deleted file mode 100644 index 3bbd362..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfilePreloadAction.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessprofile; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businessprofile.BusinessProfileEntity; -// relations -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; - -/** - * - * @author afatecha - */ -public class BusinessProfilePreloadAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private Map params = new HashMap<>(); - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifEmpty(getArgument().getAction(), BizErrors.businessprofile_preload_empty); - } - - @Override - protected void doAction() { - if (getArgument().getParams() != null) { - params = getArgument().getParams(); - } - - switch (getArgument().getAction()) { - case "find" -> - prepareFind(); - case "list" -> - prepareList(); - case "add" -> - prepareAdd(); - case "edit" -> - prepareEdit(); - } - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: preload - // - private void prepareAdd() { - result.put("taxons", listTaxons()); - result.put("businesss", listBusinesss()); - } - - private void prepareEdit() { - var entity = findEntity(); - result.put("entity", entity); - result.put("business", entity.getBusiness()); - result.put("activity", entity.getActivity()); - } - - private void prepareList() { - } - - private void prepareFind() { - var entity = findEntity(); - result.put("entity", entity); - result.put("business", entity.getBusiness()); - result.put("activity", entity.getActivity()); - } - - // ::: queries - // - private BusinessProfileEntity findEntity() { - var store = AppModules.biz.getController().getBusinessProfileStore(); - - var id = (String) params.get("id"); - if (id == null && getArgument().getEntity() != null) { - id = getArgument().getEntity().getId(); - } - return store.findById(getContext(), id); - } - - public List listBusinesss() { - var store = AppModules.biz.getController().getBusinessStore(); - - return store.listAll(getContext()); - } - - public List listTaxons() { - var store = AppModules.taxonomy.getController().getTaxonStore(); - - return store.listAll(getContext()); - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfilePreloadArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfilePreloadArgument.java deleted file mode 100644 index a1ee0e7..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessprofile/BusinessProfilePreloadArgument.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessprofile; - -/** - * - * @author afatecha - */ -public class BusinessProfilePreloadArgument extends BusinessProfileActionArgument { - - // ::: vars - // - private String action; - - // ::: fields - // - public String getAction() { - return action; - } - - public void setAction(String action) { - this.action = action; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoActionArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoActionArgument.java deleted file mode 100644 index 128fbdb..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoActionArgument.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesspromo; - -// base -import io.kumare.iqr.app.action.AppEntityActionArgument; -// entity -import io.kumare.iqr.mod.biz.store.businesspromo.BusinessPromoEntity; - -/** - * - * @author afatecha - */ -public class BusinessPromoActionArgument extends AppEntityActionArgument { - - // ::: constructors - // - public BusinessPromoActionArgument() { - } - - public BusinessPromoActionArgument(BusinessPromoEntity entity) { - super(entity); - } - - // ::: api - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoAddAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoAddAction.java deleted file mode 100644 index f28c70b..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoAddAction.java +++ /dev/null @@ -1,149 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesspromo; - -// java -import java.util.List; -// lib -import io.kumare.lib.base.server.spring.action.Actions; -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businesspromo.BusinessPromoEntity; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; -import io.kumare.iqr.mod.biz.store.businessimage.BusinessImageEntity; -import io.kumare.iqr.mod.biz.action.businesspromoitem.BusinessPromoItemAddAction; -import io.kumare.iqr.mod.biz.action.businesspromoitem.BusinessPromoItemAddArgument; - -/** - * - * @author afatecha - */ -public class BusinessPromoAddAction extends AppAction> { - - // ::: vars - // - private BusinessPromoEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, BizErrors.businesspromo_notfound); - - // relations - V.ifNull(model.getBusiness(), BizErrors.businesspromo_business_notfound); - V.ifNull(model.getImage(), BizErrors.businesspromo_image_notfound); - V.ifNull(model.getState(), BizErrors.businesspromo_state_notfound); - - // fields - V.ifEmpty(model.getStateValue(), BizErrors.businesspromo_statevalue_empty); - V.ifEmpty(model.getStarted(), BizErrors.businesspromo_started_empty); - V.ifEmpty(model.getEnded(), BizErrors.businesspromo_ended_empty); - V.ifEmpty(model.getScheduleStart(), BizErrors.businesspromo_schedulestart_empty); - V.ifEmpty(model.getScheduleEnd(), BizErrors.businesspromo_scheduleend_empty); - V.ifEmpty(model.getTitle(), BizErrors.businesspromo_title_empty); - V.ifEmpty(model.getBodyInfo(), BizErrors.businesspromo_bodyinfo_empty); - V.ifEmpty(model.getFooterInfo(), BizErrors.businesspromo_footerinfo_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - var biz = AppModules.biz.getController(); - var taxonomy = AppModules.taxonomy.getController(); - - var businessStore = biz.getBusinessStore(); - var businessImageStore = biz.getBusinessImageStore(); - var taxonStore = taxonomy.getTaxonStore(); - - var business = businessStore.ensure(getContext(), argModel.getBusiness(), BizErrors.businesspromo_business_notfound); - var image = businessImageStore.ensure(getContext(), argModel.getImage(), BizErrors.businesspromo_image_notfound); - var state = taxonStore.ensure(getContext(), argModel.getState(), BizErrors.businesspromo_state_notfound); - - // model - var model = makeModel(business, image, state); - - // add - entity = saveEntity(model); - - // add others - addItems(getArgument().getItems()); - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private BusinessPromoEntity makeModel(BusinessEntity business, BusinessImageEntity image, TaxonEntity state) { - - var argModel = getArgument().getEntity(); - var model = new BusinessPromoEntity(); - - // relations - model.setBusiness(business); - model.setImage(image); - model.setState(state); - - // fields - model.setStateValue(argModel.getStateValue()); - model.setStarted(argModel.getStarted()); - model.setEnded(argModel.getEnded()); - model.setScheduleStart(argModel.getScheduleStart()); - model.setScheduleEnd(argModel.getScheduleEnd()); - model.setTitle(argModel.getTitle()); - model.setBodyInfo(argModel.getBodyInfo()); - model.setFooterInfo(argModel.getFooterInfo()); - model.setActive(true); - - - - return model; - } - - // ::: save - // - private BusinessPromoEntity saveEntity(BusinessPromoEntity model) { - - var store = AppModules.biz.getController().getBusinessPromoStore(); - - var saved = store.add(getContext(), model); - getContext().attach(saved.getId(), saved); - return saved; - } - - // ::: add items - // - private void addItems(List list) { - if(list != null) { - list.forEach(i->{ - i.getEntity().promo(entity); - Actions.perform(getContext(), new BusinessPromoItemAddAction(), i); - }); - } - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoAddArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoAddArgument.java deleted file mode 100644 index f405605..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoAddArgument.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesspromo; - -// java -import java.util.List; -// app -import io.kumare.iqr.mod.biz.store.businesspromo.BusinessPromoEntity; -import io.kumare.iqr.mod.biz.action.businesspromoitem.BusinessPromoItemAddArgument; - -/** - * - * @author afatecha - */ -public class BusinessPromoAddArgument extends BusinessPromoActionArgument { - - // ::: vars - // - private List items; - - // ::: constructors - // - public BusinessPromoAddArgument() { - } - - public BusinessPromoAddArgument(BusinessPromoEntity entity) { - super(entity); - } - - // ::: fields - // - public List getItems() { - return items; - } - - public void setItems(List list) { - this.items = list; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoDeleteAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoDeleteAction.java deleted file mode 100644 index 0155dfe..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoDeleteAction.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesspromo; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businesspromo.BusinessPromoEntity; - -/** - * - * @author afatecha - */ -public class BusinessPromoDeleteAction extends AppAction> { - - // ::: vars - // - private BusinessPromoEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), BizErrors.businesspromo_notfound); - V.ifNull(getArgument().getEntity().getId(), BizErrors.businesspromo_notfound); - } - - @Override - protected void doAction() { - - var argModel = getArgument().getEntity(); - - deleteEntity(argModel); - } - - @Override - protected void setResultOnly() { - } - - // ::: delete - // - private void deleteEntity(BusinessPromoEntity model) { - - var store = AppModules.biz.getController().getBusinessPromoStore(); - - store.deleteById(getContext(), model.getId()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoEditAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoEditAction.java deleted file mode 100644 index a85d31c..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoEditAction.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesspromo; - -// lib -import io.kumare.lib.v.V; -// app -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businesspromo.BusinessPromoEntity; - -/** - * - * @author afatecha - */ -public class BusinessPromoEditAction extends AppAction> { - - // ::: vars - // - private BusinessPromoEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, BizErrors.businesspromo_notfound); - - // fields - V.ifEmpty(model.getStateValue(), BizErrors.businesspromo_statevalue_empty); - V.ifEmpty(model.getStarted(), BizErrors.businesspromo_started_empty); - V.ifEmpty(model.getEnded(), BizErrors.businesspromo_ended_empty); - V.ifEmpty(model.getScheduleStart(), BizErrors.businesspromo_schedulestart_empty); - V.ifEmpty(model.getScheduleEnd(), BizErrors.businesspromo_scheduleend_empty); - V.ifEmpty(model.getTitle(), BizErrors.businesspromo_title_empty); - V.ifEmpty(model.getBodyInfo(), BizErrors.businesspromo_bodyinfo_empty); - V.ifEmpty(model.getFooterInfo(), BizErrors.businesspromo_footerinfo_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - - var biz = AppModules.biz.getController(); - var businessPromoStore = biz.getBusinessPromoStore(); - - // edit - entity = businessPromoStore.ensure(getContext(), argModel, BizErrors.businesspromo_notfound); - - editEntity(); - - entity = saveEntity(); - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private void editEntity() { - - var model = getArgument().getEntity(); - - // fields - entity.setStateValue(V.firstNotEmpty(model.getStateValue(), entity.getStateValue())); - entity.setStarted(V.firstNotEmpty(model.getStarted(), entity.getStarted())); - entity.setEnded(V.firstNotEmpty(model.getEnded(), entity.getEnded())); - entity.setScheduleStart(V.firstNotEmpty(model.getScheduleStart(), entity.getScheduleStart())); - entity.setScheduleEnd(V.firstNotEmpty(model.getScheduleEnd(), entity.getScheduleEnd())); - entity.setTitle(V.firstNotEmpty(model.getTitle(), entity.getTitle())); - entity.setBodyInfo(V.firstNotEmpty(model.getBodyInfo(), entity.getBodyInfo())); - entity.setFooterInfo(V.firstNotEmpty(model.getFooterInfo(), entity.getFooterInfo())); - - - } - - // ::: save - // - private BusinessPromoEntity saveEntity() { - - var store = AppModules.biz.getController().getBusinessPromoStore(); - - var saved = store.edit(getContext(), entity); - getContext().attach(saved.getId(), saved); - return saved; - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoEditArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoEditArgument.java deleted file mode 100644 index 7b2d4ca..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoEditArgument.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesspromo; - -// app -import io.kumare.iqr.mod.biz.store.businesspromo.BusinessPromoEntity; - -/** - * - * @author afatecha - */ -public class BusinessPromoEditArgument extends BusinessPromoActionArgument { - - // ::: vars - // - - - // ::: constructors - // - public BusinessPromoEditArgument() { - } - - public BusinessPromoEditArgument(BusinessPromoEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoEnableAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoEnableAction.java deleted file mode 100644 index dcae50b..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoEnableAction.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesspromo; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businesspromo.BusinessPromoEntity; - - -/** - * - * @author afatecha - */ -public class BusinessPromoEnableAction extends AppAction { - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), BizErrors.businesspromo_notfound); - V.ifNull(getArgument().getEntity().getId(), BizErrors.businesspromo_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - - enableEntity(model); - } - - @Override - protected void setResultOnly() { - } - - // ::: enable - // - private void enableEntity(BusinessPromoEntity model) { - - var store = AppModules.biz.getController().getBusinessPromoStore(); - - if (getArgument().getEntity().isActive()) { - store.enableById(getContext(), model.getId()); - } else { - store.disableById(getContext(), model.getId()); - } - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoFindAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoFindAction.java deleted file mode 100644 index c7ecaf4..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoFindAction.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesspromo; - -// java -import java.util.HashMap; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businesspromo.BusinessPromoEntity; - - -/** - * - * @author afatecha - */ -public class BusinessPromoFindAction extends AppAction { - - // ::: vars - // - private BusinessPromoEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), BizErrors.businesspromo_notfound); - V.ifNull(getArgument().getEntity().getId(), BizErrors.businesspromo_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - entity = findEntity(model); - } - - @Override - protected void setResultOnly() { - var result = new HashMap(); - result.put("entity", entity); - setResult(result); - } - - // ::: find - // - private BusinessPromoEntity findEntity(BusinessPromoEntity model) { - - var store = AppModules.biz.getController().getBusinessPromoStore(); - return store.findById(getContext(), model.getId()); - } - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoListAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoListAction.java deleted file mode 100644 index cb1245b..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoListAction.java +++ /dev/null @@ -1,150 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesspromo; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.LinkedList; -import java.util.Map; -// spring -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// entity -import io.kumare.iqr.mod.biz.store.businesspromo.BusinessPromoEntity; -import io.kumare.iqr.mod.biz.store.businesspromo.BusinessPromoMapBuilder; - - -/** - * - * @author afatecha - */ -public class BusinessPromoListAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private final List entities = new LinkedList<>(); - - // ::: public api - // - public List getEntities() { - return entities; - } - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - } - - @Override - protected void doAction() { - - result.put("pageable", getArgument().isPageable()); - result.put("wrapped", getArgument().isWrapped()); - - if (getArgument().isPageable()) { - - var page = makePage(); - entities.addAll(page.toList()); - - if (getArgument().isWrapped()) { - result.put("page", makeWrappedPage(page)); - } else { - result.put("page", page); - } - - } else { - - var list = makeList(); - entities.addAll(list); - - if (getArgument().isWrapped()) { - result.put("list", makeWrappedList()); - } else { - result.put("list", list); - } - } - - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: page - // - private Page makePage() { - - var page = getArgument().getPageNumber(); - var size = getArgument().getPageSize(); - //var sort = getArgument().getSort(); - - var pageable = PageRequest.of(page, size); - - var store = AppModules.biz.getController().getBusinessPromoStore(); - return store.getRepository().findAll(pageable); - } - - // ::: wrapped page - // - private Map makeWrappedPage(Page found) { - - var page = new HashMap(); - var content = new LinkedList(); - - wrapList(entities, content); - - page.put("size", found.getSize()); - page.put("number", found.getNumber()); - page.put("totalElements", found.getTotalElements()); - page.put("totalPages", found.getTotalPages()); - page.put("content", content); - - return page; - } - - - // ::: list - // - - private List makeList() { - - var store = AppModules.biz.getController().getBusinessPromoStore(); - - return store.listAll(getContext()); - } - - // ::: wrapped list - private List makeWrappedList() { - var list = new LinkedList(); - - wrapList(entities, list); - - return list; - } - - // ::: wrapper - // - private void wrapList(List found, List output) { - - var builder = new BusinessPromoMapBuilder().addListGroup(); - builder.getBusinessBuilder().addMainGroup(); - builder.getImageBuilder().addMainGroup(); - builder.getStateBuilder().addMainGroup(); - - output.addAll(builder.build(getContext(), found)); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoListArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoListArgument.java deleted file mode 100644 index 1dcedd5..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoListArgument.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesspromo; - -// app -import io.kumare.iqr.app.action.AppListActionArgument; -// store -import io.kumare.iqr.mod.biz.store.businesspromo.BusinessPromoEntity; - -/** - * - * @author afatecha - */ -public class BusinessPromoListArgument extends AppListActionArgument { - - // ::: vars - // - - // ::: constructors - // - public BusinessPromoListArgument() { - } - - public BusinessPromoListArgument(BusinessPromoEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoPreloadAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoPreloadAction.java deleted file mode 100644 index c998324..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoPreloadAction.java +++ /dev/null @@ -1,123 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesspromo; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businesspromo.BusinessPromoEntity; -// relations -import io.kumare.iqr.mod.biz.store.businessimage.BusinessImageEntity; -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; - -/** - * - * @author afatecha - */ -public class BusinessPromoPreloadAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private Map params = new HashMap<>(); - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifEmpty(getArgument().getAction(), BizErrors.businesspromo_preload_empty); - } - - @Override - protected void doAction() { - if(getArgument().getParams() != null) { - params = getArgument().getParams(); - } - - switch (getArgument().getAction()) { - case "find" -> - prepareFind(); - case "list" -> - prepareList(); - case "add" -> - prepareAdd(); - case "edit" -> - prepareEdit(); - } - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: preload - // - private void prepareAdd() { - result.put("taxons", listTaxons()); - result.put("businessImages", listBusinessImages()); - result.put("businesss", listBusinesss()); - } - - private void prepareEdit() { - var entity = findEntity(); - result.put("entity", entity); - result.put("business", entity.getBusiness()); - result.put("image", entity.getImage()); - result.put("state", entity.getState()); - } - - private void prepareList() { - } - - private void prepareFind() { - var entity = findEntity(); - result.put("entity", entity); - result.put("business", entity.getBusiness()); - result.put("image", entity.getImage()); - result.put("state", entity.getState()); - } - - // ::: queries - // - private BusinessPromoEntity findEntity() { - var store = AppModules.biz.getController().getBusinessPromoStore(); - - var id = (String) params.get("id"); - if(id == null && getArgument().getEntity() != null) { - id = getArgument().getEntity().getId(); - } - return store.findById(getContext(), id); - } - - public List listBusinessImages() { - var store = AppModules.biz.getController().getBusinessImageStore(); - - return store.listAll(getContext()); - } - public List listBusinesss() { - var store = AppModules.biz.getController().getBusinessStore(); - - return store.listAll(getContext()); - } - public List listTaxons() { - var store = AppModules.taxonomy.getController().getTaxonStore(); - - return store.listAll(getContext()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoPreloadArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoPreloadArgument.java deleted file mode 100644 index 855aadb..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromo/BusinessPromoPreloadArgument.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesspromo; - -/** - * - * @author afatecha - */ -public class BusinessPromoPreloadArgument extends BusinessPromoActionArgument { - - // ::: vars - // - private String action; - - // ::: fields - // - public String getAction() { - return action; - } - - public void setAction(String action) { - this.action = action; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemActionArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemActionArgument.java deleted file mode 100644 index 30d99d5..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemActionArgument.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesspromoitem; - -// base -import io.kumare.iqr.app.action.AppEntityActionArgument; -// entity -import io.kumare.iqr.mod.biz.store.businesspromoitem.BusinessPromoItemEntity; - -/** - * - * @author afatecha - */ -public class BusinessPromoItemActionArgument extends AppEntityActionArgument { - - // ::: constructors - // - public BusinessPromoItemActionArgument() { - } - - public BusinessPromoItemActionArgument(BusinessPromoItemEntity entity) { - super(entity); - } - - // ::: api - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemAddAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemAddAction.java deleted file mode 100644 index 68c3807..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemAddAction.java +++ /dev/null @@ -1,129 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesspromoitem; - - -// lib -import io.kumare.lib.base.server.spring.action.Actions; -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businesspromoitem.BusinessPromoItemEntity; -import io.kumare.iqr.mod.biz.store.businesspromo.BusinessPromoEntity; -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; -import io.kumare.iqr.mod.biz.store.businessimage.BusinessImageEntity; - - -/** - * - * @author afatecha - */ -public class BusinessPromoItemAddAction extends AppAction> { - - // ::: vars - // - private BusinessPromoItemEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, BizErrors.businesspromoitem_notfound); - - // relations - V.ifNull(model.getBusiness(), BizErrors.businesspromoitem_business_notfound); - V.ifNull(model.getPromo(), BizErrors.businesspromoitem_promo_notfound); - V.ifNull(model.getImage(), BizErrors.businesspromoitem_image_notfound); - - // fields - V.ifEmpty(model.getTitle(), BizErrors.businesspromoitem_title_empty); - V.ifEmpty(model.getDescription(), BizErrors.businesspromoitem_description_empty); - V.ifEmpty(model.getPoints(), BizErrors.businesspromoitem_points_empty); - V.ifEmpty(model.getCondition(), BizErrors.businesspromoitem_condition_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - var biz = AppModules.biz.getController(); - - var businessPromoStore = biz.getBusinessPromoStore(); - var businessStore = biz.getBusinessStore(); - var businessImageStore = biz.getBusinessImageStore(); - - var business = businessStore.ensure(getContext(), argModel.getBusiness(), BizErrors.businesspromoitem_business_notfound); - var promo = businessPromoStore.ensure(getContext(), argModel.getPromo(), BizErrors.businesspromoitem_promo_notfound); - var image = businessImageStore.ensure(getContext(), argModel.getImage(), BizErrors.businesspromoitem_image_notfound); - - // model - var model = makeModel(business, promo, image); - - // add - entity = saveEntity(model); - - // add others - - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private BusinessPromoItemEntity makeModel(BusinessEntity business, BusinessPromoEntity promo, BusinessImageEntity image) { - - var argModel = getArgument().getEntity(); - var model = new BusinessPromoItemEntity(); - - // relations - model.setBusiness(business); - model.setPromo(promo); - model.setImage(image); - - // fields - model.setTitle(argModel.getTitle()); - model.setDescription(argModel.getDescription()); - model.setPoints(argModel.getPoints()); - model.setCondition(argModel.getCondition()); - model.setActive(true); - - - - return model; - } - - // ::: save - // - private BusinessPromoItemEntity saveEntity(BusinessPromoItemEntity model) { - - var store = AppModules.biz.getController().getBusinessPromoItemStore(); - - var saved = store.add(getContext(), model); - getContext().attach(saved.getId(), saved); - return saved; - } - - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemAddArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemAddArgument.java deleted file mode 100644 index 1f45325..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemAddArgument.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesspromoitem; - - -// app -import io.kumare.iqr.mod.biz.store.businesspromoitem.BusinessPromoItemEntity; - - -/** - * - * @author afatecha - */ -public class BusinessPromoItemAddArgument extends BusinessPromoItemActionArgument { - - // ::: vars - // - - - // ::: constructors - // - public BusinessPromoItemAddArgument() { - } - - public BusinessPromoItemAddArgument(BusinessPromoItemEntity entity) { - super(entity); - } - - // ::: fields - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemDeleteAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemDeleteAction.java deleted file mode 100644 index 9922e53..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemDeleteAction.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesspromoitem; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businesspromoitem.BusinessPromoItemEntity; - -/** - * - * @author afatecha - */ -public class BusinessPromoItemDeleteAction extends AppAction> { - - // ::: vars - // - private BusinessPromoItemEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), BizErrors.businesspromoitem_notfound); - V.ifNull(getArgument().getEntity().getId(), BizErrors.businesspromoitem_notfound); - } - - @Override - protected void doAction() { - - var argModel = getArgument().getEntity(); - - deleteEntity(argModel); - } - - @Override - protected void setResultOnly() { - } - - // ::: delete - // - private void deleteEntity(BusinessPromoItemEntity model) { - - var store = AppModules.biz.getController().getBusinessPromoItemStore(); - - store.deleteById(getContext(), model.getId()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemEditAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemEditAction.java deleted file mode 100644 index bb60d16..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemEditAction.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesspromoitem; - -// lib -import io.kumare.lib.v.V; -// app -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businesspromoitem.BusinessPromoItemEntity; - -/** - * - * @author afatecha - */ -public class BusinessPromoItemEditAction extends AppAction> { - - // ::: vars - // - private BusinessPromoItemEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, BizErrors.businesspromoitem_notfound); - - // fields - V.ifEmpty(model.getTitle(), BizErrors.businesspromoitem_title_empty); - V.ifEmpty(model.getDescription(), BizErrors.businesspromoitem_description_empty); - V.ifEmpty(model.getPoints(), BizErrors.businesspromoitem_points_empty); - V.ifEmpty(model.getCondition(), BizErrors.businesspromoitem_condition_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - - var biz = AppModules.biz.getController(); - var businessPromoItemStore = biz.getBusinessPromoItemStore(); - - // edit - entity = businessPromoItemStore.ensure(getContext(), argModel, BizErrors.businesspromoitem_notfound); - - editEntity(); - - entity = saveEntity(); - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private void editEntity() { - - var model = getArgument().getEntity(); - - // fields - entity.setTitle(V.firstNotEmpty(model.getTitle(), entity.getTitle())); - entity.setDescription(V.firstNotEmpty(model.getDescription(), entity.getDescription())); - entity.setPoints(V.firstNotEmpty(model.getPoints(), entity.getPoints())); - entity.setCondition(V.firstNotEmpty(model.getCondition(), entity.getCondition())); - - - } - - // ::: save - // - private BusinessPromoItemEntity saveEntity() { - - var store = AppModules.biz.getController().getBusinessPromoItemStore(); - - var saved = store.edit(getContext(), entity); - getContext().attach(saved.getId(), saved); - return saved; - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemEditArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemEditArgument.java deleted file mode 100644 index 0ac9a7e..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemEditArgument.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesspromoitem; - -// app -import io.kumare.iqr.mod.biz.store.businesspromoitem.BusinessPromoItemEntity; - -/** - * - * @author afatecha - */ -public class BusinessPromoItemEditArgument extends BusinessPromoItemActionArgument { - - // ::: vars - // - - - // ::: constructors - // - public BusinessPromoItemEditArgument() { - } - - public BusinessPromoItemEditArgument(BusinessPromoItemEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemEnableAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemEnableAction.java deleted file mode 100644 index f54b814..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemEnableAction.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesspromoitem; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businesspromoitem.BusinessPromoItemEntity; - - -/** - * - * @author afatecha - */ -public class BusinessPromoItemEnableAction extends AppAction { - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), BizErrors.businesspromoitem_notfound); - V.ifNull(getArgument().getEntity().getId(), BizErrors.businesspromoitem_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - - enableEntity(model); - } - - @Override - protected void setResultOnly() { - } - - // ::: enable - // - private void enableEntity(BusinessPromoItemEntity model) { - - var store = AppModules.biz.getController().getBusinessPromoItemStore(); - - if (getArgument().getEntity().isActive()) { - store.enableById(getContext(), model.getId()); - } else { - store.disableById(getContext(), model.getId()); - } - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemFindAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemFindAction.java deleted file mode 100644 index 9f87ce6..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemFindAction.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesspromoitem; - -// java -import java.util.HashMap; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businesspromoitem.BusinessPromoItemEntity; - - -/** - * - * @author afatecha - */ -public class BusinessPromoItemFindAction extends AppAction { - - // ::: vars - // - private BusinessPromoItemEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), BizErrors.businesspromoitem_notfound); - V.ifNull(getArgument().getEntity().getId(), BizErrors.businesspromoitem_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - entity = findEntity(model); - } - - @Override - protected void setResultOnly() { - var result = new HashMap(); - result.put("entity", entity); - setResult(result); - } - - // ::: find - // - private BusinessPromoItemEntity findEntity(BusinessPromoItemEntity model) { - - var store = AppModules.biz.getController().getBusinessPromoItemStore(); - return store.findById(getContext(), model.getId()); - } - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemListAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemListAction.java deleted file mode 100644 index 997ea5f..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemListAction.java +++ /dev/null @@ -1,150 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesspromoitem; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.LinkedList; -import java.util.Map; -// spring -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// entity -import io.kumare.iqr.mod.biz.store.businesspromoitem.BusinessPromoItemEntity; -import io.kumare.iqr.mod.biz.store.businesspromoitem.BusinessPromoItemMapBuilder; - - -/** - * - * @author afatecha - */ -public class BusinessPromoItemListAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private final List entities = new LinkedList<>(); - - // ::: public api - // - public List getEntities() { - return entities; - } - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - } - - @Override - protected void doAction() { - - result.put("pageable", getArgument().isPageable()); - result.put("wrapped", getArgument().isWrapped()); - - if (getArgument().isPageable()) { - - var page = makePage(); - entities.addAll(page.toList()); - - if (getArgument().isWrapped()) { - result.put("page", makeWrappedPage(page)); - } else { - result.put("page", page); - } - - } else { - - var list = makeList(); - entities.addAll(list); - - if (getArgument().isWrapped()) { - result.put("list", makeWrappedList()); - } else { - result.put("list", list); - } - } - - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: page - // - private Page makePage() { - - var page = getArgument().getPageNumber(); - var size = getArgument().getPageSize(); - //var sort = getArgument().getSort(); - - var pageable = PageRequest.of(page, size); - - var store = AppModules.biz.getController().getBusinessPromoItemStore(); - return store.getRepository().findAll(pageable); - } - - // ::: wrapped page - // - private Map makeWrappedPage(Page found) { - - var page = new HashMap(); - var content = new LinkedList(); - - wrapList(entities, content); - - page.put("size", found.getSize()); - page.put("number", found.getNumber()); - page.put("totalElements", found.getTotalElements()); - page.put("totalPages", found.getTotalPages()); - page.put("content", content); - - return page; - } - - - // ::: list - // - - private List makeList() { - - var store = AppModules.biz.getController().getBusinessPromoItemStore(); - - return store.listAll(getContext()); - } - - // ::: wrapped list - private List makeWrappedList() { - var list = new LinkedList(); - - wrapList(entities, list); - - return list; - } - - // ::: wrapper - // - private void wrapList(List found, List output) { - - var builder = new BusinessPromoItemMapBuilder().addListGroup(); - builder.getBusinessBuilder().addMainGroup(); - builder.getPromoBuilder().addMainGroup(); - builder.getImageBuilder().addMainGroup(); - - output.addAll(builder.build(getContext(), found)); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemListArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemListArgument.java deleted file mode 100644 index 100cac6..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemListArgument.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesspromoitem; - -// app -import io.kumare.iqr.app.action.AppListActionArgument; -// store -import io.kumare.iqr.mod.biz.store.businesspromoitem.BusinessPromoItemEntity; - -/** - * - * @author afatecha - */ -public class BusinessPromoItemListArgument extends AppListActionArgument { - - // ::: vars - // - - // ::: constructors - // - public BusinessPromoItemListArgument() { - } - - public BusinessPromoItemListArgument(BusinessPromoItemEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemPreloadAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemPreloadAction.java deleted file mode 100644 index 6a5d140..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemPreloadAction.java +++ /dev/null @@ -1,123 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesspromoitem; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businesspromoitem.BusinessPromoItemEntity; -// relations -import io.kumare.iqr.mod.biz.store.businessimage.BusinessImageEntity; -import io.kumare.iqr.mod.biz.store.businesspromo.BusinessPromoEntity; -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; - -/** - * - * @author afatecha - */ -public class BusinessPromoItemPreloadAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private Map params = new HashMap<>(); - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifEmpty(getArgument().getAction(), BizErrors.businesspromoitem_preload_empty); - } - - @Override - protected void doAction() { - if(getArgument().getParams() != null) { - params = getArgument().getParams(); - } - - switch (getArgument().getAction()) { - case "find" -> - prepareFind(); - case "list" -> - prepareList(); - case "add" -> - prepareAdd(); - case "edit" -> - prepareEdit(); - } - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: preload - // - private void prepareAdd() { - result.put("businessPromos", listBusinessPromos()); - result.put("businessImages", listBusinessImages()); - result.put("businesss", listBusinesss()); - } - - private void prepareEdit() { - var entity = findEntity(); - result.put("entity", entity); - result.put("business", entity.getBusiness()); - result.put("promo", entity.getPromo()); - result.put("image", entity.getImage()); - } - - private void prepareList() { - } - - private void prepareFind() { - var entity = findEntity(); - result.put("entity", entity); - result.put("business", entity.getBusiness()); - result.put("promo", entity.getPromo()); - result.put("image", entity.getImage()); - } - - // ::: queries - // - private BusinessPromoItemEntity findEntity() { - var store = AppModules.biz.getController().getBusinessPromoItemStore(); - - var id = (String) params.get("id"); - if(id == null && getArgument().getEntity() != null) { - id = getArgument().getEntity().getId(); - } - return store.findById(getContext(), id); - } - - public List listBusinessPromos() { - var store = AppModules.biz.getController().getBusinessPromoStore(); - - return store.listAll(getContext()); - } - public List listBusinessImages() { - var store = AppModules.biz.getController().getBusinessImageStore(); - - return store.listAll(getContext()); - } - public List listBusinesss() { - var store = AppModules.biz.getController().getBusinessStore(); - - return store.listAll(getContext()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemPreloadArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemPreloadArgument.java deleted file mode 100644 index 08fdfc8..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesspromoitem/BusinessPromoItemPreloadArgument.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesspromoitem; - -/** - * - * @author afatecha - */ -public class BusinessPromoItemPreloadArgument extends BusinessPromoItemActionArgument { - - // ::: vars - // - private String action; - - // ::: fields - // - public String getAction() { - return action; - } - - public void setAction(String action) { - this.action = action; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingActionArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingActionArgument.java deleted file mode 100644 index 99a1114..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingActionArgument.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesssetting; - -// base -import io.kumare.iqr.app.action.AppEntityActionArgument; -// entity -import io.kumare.iqr.mod.biz.store.businesssetting.BusinessSettingEntity; - -/** - * - * @author afatecha - */ -public class BusinessSettingActionArgument extends AppEntityActionArgument { - - // ::: constructors - // - public BusinessSettingActionArgument() { - } - - public BusinessSettingActionArgument(BusinessSettingEntity entity) { - super(entity); - } - - // ::: api - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingAddAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingAddAction.java deleted file mode 100644 index 0ca0321..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingAddAction.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesssetting; - - -// lib -import io.kumare.lib.base.server.spring.action.Actions; -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businesssetting.BusinessSettingEntity; -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; - - -/** - * - * @author afatecha - */ -public class BusinessSettingAddAction extends AppAction> { - - // ::: vars - // - private BusinessSettingEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, BizErrors.businesssetting_notfound); - - // relations - V.ifNull(model.getBusiness(), BizErrors.businesssetting_business_notfound); - - // fields - V.ifEmpty(model.getPointExchange(), BizErrors.businesssetting_pointexchange_empty); - V.ifEmpty(model.getLeadCaptureReward(), BizErrors.businesssetting_leadcapturereward_empty); - V.ifEmpty(model.getCustomerCaptureReward(), BizErrors.businesssetting_customercapturereward_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - var biz = AppModules.biz.getController(); - - var businessStore = biz.getBusinessStore(); - - var business = businessStore.ensure(getContext(), argModel.getBusiness(), BizErrors.businesssetting_business_notfound); - - // model - var model = makeModel(business); - - // add - entity = saveEntity(model); - - // add others - - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private BusinessSettingEntity makeModel(BusinessEntity business) { - - var argModel = getArgument().getEntity(); - var model = new BusinessSettingEntity(); - - // relations - model.setBusiness(business); - - // fields - model.setPointExchange(argModel.getPointExchange()); - model.setLeadCaptureReward(argModel.getLeadCaptureReward()); - model.setCustomerCaptureReward(argModel.getCustomerCaptureReward()); - model.setActive(true); - - - - return model; - } - - // ::: save - // - private BusinessSettingEntity saveEntity(BusinessSettingEntity model) { - - var store = AppModules.biz.getController().getBusinessSettingStore(); - - var saved = store.add(getContext(), model); - getContext().attach(saved.getId(), saved); - return saved; - } - - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingAddArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingAddArgument.java deleted file mode 100644 index deb37c1..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingAddArgument.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesssetting; - - -// app -import io.kumare.iqr.mod.biz.store.businesssetting.BusinessSettingEntity; - - -/** - * - * @author afatecha - */ -public class BusinessSettingAddArgument extends BusinessSettingActionArgument { - - // ::: vars - // - - - // ::: constructors - // - public BusinessSettingAddArgument() { - } - - public BusinessSettingAddArgument(BusinessSettingEntity entity) { - super(entity); - } - - // ::: fields - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingDeleteAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingDeleteAction.java deleted file mode 100644 index d671ee3..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingDeleteAction.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesssetting; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businesssetting.BusinessSettingEntity; - -/** - * - * @author afatecha - */ -public class BusinessSettingDeleteAction extends AppAction> { - - // ::: vars - // - private BusinessSettingEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), BizErrors.businesssetting_notfound); - V.ifNull(getArgument().getEntity().getId(), BizErrors.businesssetting_notfound); - } - - @Override - protected void doAction() { - - var argModel = getArgument().getEntity(); - - deleteEntity(argModel); - } - - @Override - protected void setResultOnly() { - } - - // ::: delete - // - private void deleteEntity(BusinessSettingEntity model) { - - var store = AppModules.biz.getController().getBusinessSettingStore(); - - store.deleteById(getContext(), model.getId()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingEditAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingEditAction.java deleted file mode 100644 index 2035a77..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingEditAction.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesssetting; - -// lib -import io.kumare.lib.v.V; -// app -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businesssetting.BusinessSettingEntity; - -/** - * - * @author afatecha - */ -public class BusinessSettingEditAction extends AppAction> { - - // ::: vars - // - private BusinessSettingEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, BizErrors.businesssetting_notfound); - - // fields - V.ifEmpty(model.getPointExchange(), BizErrors.businesssetting_pointexchange_empty); - V.ifEmpty(model.getLeadCaptureReward(), BizErrors.businesssetting_leadcapturereward_empty); - V.ifEmpty(model.getCustomerCaptureReward(), BizErrors.businesssetting_customercapturereward_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - - var biz = AppModules.biz.getController(); - var businessSettingStore = biz.getBusinessSettingStore(); - - // edit - entity = businessSettingStore.ensure(getContext(), argModel, BizErrors.businesssetting_notfound); - - editEntity(); - - entity = saveEntity(); - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private void editEntity() { - - var model = getArgument().getEntity(); - - // fields - entity.setPointExchange(V.firstNotEmpty(model.getPointExchange(), entity.getPointExchange())); - entity.setLeadCaptureReward(V.firstNotEmpty(model.getLeadCaptureReward(), entity.getLeadCaptureReward())); - entity.setCustomerCaptureReward(V.firstNotEmpty(model.getCustomerCaptureReward(), entity.getCustomerCaptureReward())); - - - } - - // ::: save - // - private BusinessSettingEntity saveEntity() { - - var store = AppModules.biz.getController().getBusinessSettingStore(); - - var saved = store.edit(getContext(), entity); - getContext().attach(saved.getId(), saved); - return saved; - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingEditArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingEditArgument.java deleted file mode 100644 index 1e9bfad..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingEditArgument.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesssetting; - -// app -import io.kumare.iqr.mod.biz.store.businesssetting.BusinessSettingEntity; - -/** - * - * @author afatecha - */ -public class BusinessSettingEditArgument extends BusinessSettingActionArgument { - - // ::: vars - // - - - // ::: constructors - // - public BusinessSettingEditArgument() { - } - - public BusinessSettingEditArgument(BusinessSettingEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingEnableAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingEnableAction.java deleted file mode 100644 index 81869a1..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingEnableAction.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesssetting; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businesssetting.BusinessSettingEntity; - - -/** - * - * @author afatecha - */ -public class BusinessSettingEnableAction extends AppAction { - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), BizErrors.businesssetting_notfound); - V.ifNull(getArgument().getEntity().getId(), BizErrors.businesssetting_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - - enableEntity(model); - } - - @Override - protected void setResultOnly() { - } - - // ::: enable - // - private void enableEntity(BusinessSettingEntity model) { - - var store = AppModules.biz.getController().getBusinessSettingStore(); - - if (getArgument().getEntity().isActive()) { - store.enableById(getContext(), model.getId()); - } else { - store.disableById(getContext(), model.getId()); - } - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingFindAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingFindAction.java deleted file mode 100644 index 0fb06c9..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingFindAction.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesssetting; - -// java -import java.util.HashMap; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businesssetting.BusinessSettingEntity; - - -/** - * - * @author afatecha - */ -public class BusinessSettingFindAction extends AppAction { - - // ::: vars - // - private BusinessSettingEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), BizErrors.businesssetting_notfound); - V.ifNull(getArgument().getEntity().getId(), BizErrors.businesssetting_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - entity = findEntity(model); - } - - @Override - protected void setResultOnly() { - var result = new HashMap(); - result.put("entity", entity); - setResult(result); - } - - // ::: find - // - private BusinessSettingEntity findEntity(BusinessSettingEntity model) { - - var store = AppModules.biz.getController().getBusinessSettingStore(); - return store.findById(getContext(), model.getId()); - } - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingListAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingListAction.java deleted file mode 100644 index 4986c62..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingListAction.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesssetting; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.LinkedList; -import java.util.Map; -// spring -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// entity -import io.kumare.iqr.mod.biz.store.businesssetting.BusinessSettingEntity; -import io.kumare.iqr.mod.biz.store.businesssetting.BusinessSettingMapBuilder; - - -/** - * - * @author afatecha - */ -public class BusinessSettingListAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private final List entities = new LinkedList<>(); - - // ::: public api - // - public List getEntities() { - return entities; - } - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - } - - @Override - protected void doAction() { - - result.put("pageable", getArgument().isPageable()); - result.put("wrapped", getArgument().isWrapped()); - - if (getArgument().isPageable()) { - - var page = makePage(); - entities.addAll(page.toList()); - - if (getArgument().isWrapped()) { - result.put("page", makeWrappedPage(page)); - } else { - result.put("page", page); - } - - } else { - - var list = makeList(); - entities.addAll(list); - - if (getArgument().isWrapped()) { - result.put("list", makeWrappedList()); - } else { - result.put("list", list); - } - } - - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: page - // - private Page makePage() { - - var page = getArgument().getPageNumber(); - var size = getArgument().getPageSize(); - //var sort = getArgument().getSort(); - - var pageable = PageRequest.of(page, size); - - var store = AppModules.biz.getController().getBusinessSettingStore(); - return store.getRepository().findAll(pageable); - } - - // ::: wrapped page - // - private Map makeWrappedPage(Page found) { - - var page = new HashMap(); - var content = new LinkedList(); - - wrapList(entities, content); - - page.put("size", found.getSize()); - page.put("number", found.getNumber()); - page.put("totalElements", found.getTotalElements()); - page.put("totalPages", found.getTotalPages()); - page.put("content", content); - - return page; - } - - - // ::: list - // - - private List makeList() { - - var store = AppModules.biz.getController().getBusinessSettingStore(); - - return store.listAll(getContext()); - } - - // ::: wrapped list - private List makeWrappedList() { - var list = new LinkedList(); - - wrapList(entities, list); - - return list; - } - - // ::: wrapper - // - private void wrapList(List found, List output) { - - var builder = new BusinessSettingMapBuilder().addListGroup(); - builder.getBusinessBuilder().addMainGroup(); - - output.addAll(builder.build(getContext(), found)); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingListArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingListArgument.java deleted file mode 100644 index 6124558..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingListArgument.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesssetting; - -// app -import io.kumare.iqr.app.action.AppListActionArgument; -// store -import io.kumare.iqr.mod.biz.store.businesssetting.BusinessSettingEntity; - -/** - * - * @author afatecha - */ -public class BusinessSettingListArgument extends AppListActionArgument { - - // ::: vars - // - - // ::: constructors - // - public BusinessSettingListArgument() { - } - - public BusinessSettingListArgument(BusinessSettingEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingPreloadAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingPreloadAction.java deleted file mode 100644 index 652acb1..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingPreloadAction.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesssetting; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businesssetting.BusinessSettingEntity; -// relations -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; - -/** - * - * @author afatecha - */ -public class BusinessSettingPreloadAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private Map params = new HashMap<>(); - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifEmpty(getArgument().getAction(), BizErrors.businesssetting_preload_empty); - } - - @Override - protected void doAction() { - if(getArgument().getParams() != null) { - params = getArgument().getParams(); - } - - switch (getArgument().getAction()) { - case "find" -> - prepareFind(); - case "list" -> - prepareList(); - case "add" -> - prepareAdd(); - case "edit" -> - prepareEdit(); - } - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: preload - // - private void prepareAdd() { - result.put("businesss", listBusinesss()); - } - - private void prepareEdit() { - var entity = findEntity(); - result.put("entity", entity); - result.put("business", entity.getBusiness()); - } - - private void prepareList() { - } - - private void prepareFind() { - var entity = findEntity(); - result.put("entity", entity); - result.put("business", entity.getBusiness()); - } - - // ::: queries - // - private BusinessSettingEntity findEntity() { - var store = AppModules.biz.getController().getBusinessSettingStore(); - - var id = (String) params.get("id"); - if(id == null && getArgument().getEntity() != null) { - id = getArgument().getEntity().getId(); - } - return store.findById(getContext(), id); - } - - public List listBusinesss() { - var store = AppModules.biz.getController().getBusinessStore(); - - return store.listAll(getContext()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingPreloadArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingPreloadArgument.java deleted file mode 100644 index 8bb7052..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesssetting/BusinessSettingPreloadArgument.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesssetting; - -/** - * - * @author afatecha - */ -public class BusinessSettingPreloadArgument extends BusinessSettingActionArgument { - - // ::: vars - // - private String action; - - // ::: fields - // - public String getAction() { - return action; - } - - public void setAction(String action) { - this.action = action; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagActionArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagActionArgument.java deleted file mode 100644 index 2685ae5..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagActionArgument.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesstag; - -// base -import io.kumare.iqr.app.action.AppEntityActionArgument; -// entity -import io.kumare.iqr.mod.biz.store.businesstag.BusinessTagEntity; - -/** - * - * @author afatecha - */ -public class BusinessTagActionArgument extends AppEntityActionArgument { - - // ::: constructors - // - public BusinessTagActionArgument() { - } - - public BusinessTagActionArgument(BusinessTagEntity entity) { - super(entity); - } - - // ::: api - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagAddAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagAddAction.java deleted file mode 100644 index 9b8c6e7..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagAddAction.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesstag; - - -// lib -import io.kumare.lib.base.server.spring.action.Actions; -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businesstag.BusinessTagEntity; - - - -/** - * - * @author afatecha - */ -public class BusinessTagAddAction extends AppAction> { - - // ::: vars - // - private BusinessTagEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, BizErrors.businesstag_notfound); - - // relations - - // fields - V.ifEmpty(model.getEntityKey(), BizErrors.businesstag_entitykey_empty); - V.ifEmpty(model.getName(), BizErrors.businesstag_name_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - - - - - - - // model - var model = makeModel(); - - // add - entity = saveEntity(model); - - // add others - - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private BusinessTagEntity makeModel() { - - var argModel = getArgument().getEntity(); - var model = new BusinessTagEntity(); - - // relations - - - // fields - model.setEntityKey(argModel.getEntityKey()); - model.setName(argModel.getName()); - model.setActive(true); - - - - return model; - } - - // ::: save - // - private BusinessTagEntity saveEntity(BusinessTagEntity model) { - - var store = AppModules.biz.getController().getBusinessTagStore(); - - var saved = store.add(getContext(), model); - getContext().attach(saved.getId(), saved); - return saved; - } - - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagAddArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagAddArgument.java deleted file mode 100644 index 7d06b63..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagAddArgument.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesstag; - - -// app -import io.kumare.iqr.mod.biz.store.businesstag.BusinessTagEntity; - - -/** - * - * @author afatecha - */ -public class BusinessTagAddArgument extends BusinessTagActionArgument { - - // ::: vars - // - - - // ::: constructors - // - public BusinessTagAddArgument() { - } - - public BusinessTagAddArgument(BusinessTagEntity entity) { - super(entity); - } - - // ::: fields - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagDeleteAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagDeleteAction.java deleted file mode 100644 index ebc7e5f..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagDeleteAction.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesstag; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businesstag.BusinessTagEntity; - -/** - * - * @author afatecha - */ -public class BusinessTagDeleteAction extends AppAction> { - - // ::: vars - // - private BusinessTagEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), BizErrors.businesstag_notfound); - V.ifNull(getArgument().getEntity().getId(), BizErrors.businesstag_notfound); - } - - @Override - protected void doAction() { - - var argModel = getArgument().getEntity(); - - deleteEntity(argModel); - } - - @Override - protected void setResultOnly() { - } - - // ::: delete - // - private void deleteEntity(BusinessTagEntity model) { - - var store = AppModules.biz.getController().getBusinessTagStore(); - - store.deleteById(getContext(), model.getId()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagEditAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagEditAction.java deleted file mode 100644 index afa7de4..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagEditAction.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesstag; - -// lib -import io.kumare.lib.v.V; -// app -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businesstag.BusinessTagEntity; - -/** - * - * @author afatecha - */ -public class BusinessTagEditAction extends AppAction> { - - // ::: vars - // - private BusinessTagEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, BizErrors.businesstag_notfound); - - // fields - V.ifEmpty(model.getEntityKey(), BizErrors.businesstag_entitykey_empty); - V.ifEmpty(model.getName(), BizErrors.businesstag_name_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - - var biz = AppModules.biz.getController(); - var businessTagStore = biz.getBusinessTagStore(); - - // edit - entity = businessTagStore.ensure(getContext(), argModel, BizErrors.businesstag_notfound); - - editEntity(); - - entity = saveEntity(); - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private void editEntity() { - - var model = getArgument().getEntity(); - - // fields - entity.setEntityKey(V.firstNotEmpty(model.getEntityKey(), entity.getEntityKey())); - entity.setName(V.firstNotEmpty(model.getName(), entity.getName())); - - - } - - // ::: save - // - private BusinessTagEntity saveEntity() { - - var store = AppModules.biz.getController().getBusinessTagStore(); - - var saved = store.edit(getContext(), entity); - getContext().attach(saved.getId(), saved); - return saved; - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagEditArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagEditArgument.java deleted file mode 100644 index 0c02492..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagEditArgument.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesstag; - -// app -import io.kumare.iqr.mod.biz.store.businesstag.BusinessTagEntity; - -/** - * - * @author afatecha - */ -public class BusinessTagEditArgument extends BusinessTagActionArgument { - - // ::: vars - // - - - // ::: constructors - // - public BusinessTagEditArgument() { - } - - public BusinessTagEditArgument(BusinessTagEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagEnableAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagEnableAction.java deleted file mode 100644 index f70401f..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagEnableAction.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesstag; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businesstag.BusinessTagEntity; - - -/** - * - * @author afatecha - */ -public class BusinessTagEnableAction extends AppAction { - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), BizErrors.businesstag_notfound); - V.ifNull(getArgument().getEntity().getId(), BizErrors.businesstag_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - - enableEntity(model); - } - - @Override - protected void setResultOnly() { - } - - // ::: enable - // - private void enableEntity(BusinessTagEntity model) { - - var store = AppModules.biz.getController().getBusinessTagStore(); - - if (getArgument().getEntity().isActive()) { - store.enableById(getContext(), model.getId()); - } else { - store.disableById(getContext(), model.getId()); - } - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagFindAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagFindAction.java deleted file mode 100644 index 38383d9..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagFindAction.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesstag; - -// java -import java.util.HashMap; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businesstag.BusinessTagEntity; - - -/** - * - * @author afatecha - */ -public class BusinessTagFindAction extends AppAction { - - // ::: vars - // - private BusinessTagEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), BizErrors.businesstag_notfound); - V.ifNull(getArgument().getEntity().getId(), BizErrors.businesstag_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - entity = findEntity(model); - } - - @Override - protected void setResultOnly() { - var result = new HashMap(); - result.put("entity", entity); - setResult(result); - } - - // ::: find - // - private BusinessTagEntity findEntity(BusinessTagEntity model) { - - var store = AppModules.biz.getController().getBusinessTagStore(); - return store.findById(getContext(), model.getId()); - } - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagListAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagListAction.java deleted file mode 100644 index 353bc02..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagListAction.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesstag; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.LinkedList; -import java.util.Map; -// spring -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// entity -import io.kumare.iqr.mod.biz.store.businesstag.BusinessTagEntity; -import io.kumare.iqr.mod.biz.store.businesstag.BusinessTagMapBuilder; - - -/** - * - * @author afatecha - */ -public class BusinessTagListAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private final List entities = new LinkedList<>(); - - // ::: public api - // - public List getEntities() { - return entities; - } - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - } - - @Override - protected void doAction() { - - result.put("pageable", getArgument().isPageable()); - result.put("wrapped", getArgument().isWrapped()); - - if (getArgument().isPageable()) { - - var page = makePage(); - entities.addAll(page.toList()); - - if (getArgument().isWrapped()) { - result.put("page", makeWrappedPage(page)); - } else { - result.put("page", page); - } - - } else { - - var list = makeList(); - entities.addAll(list); - - if (getArgument().isWrapped()) { - result.put("list", makeWrappedList()); - } else { - result.put("list", list); - } - } - - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: page - // - private Page makePage() { - - var page = getArgument().getPageNumber(); - var size = getArgument().getPageSize(); - //var sort = getArgument().getSort(); - - var pageable = PageRequest.of(page, size); - - var store = AppModules.biz.getController().getBusinessTagStore(); - return store.getRepository().findAll(pageable); - } - - // ::: wrapped page - // - private Map makeWrappedPage(Page found) { - - var page = new HashMap(); - var content = new LinkedList(); - - wrapList(entities, content); - - page.put("size", found.getSize()); - page.put("number", found.getNumber()); - page.put("totalElements", found.getTotalElements()); - page.put("totalPages", found.getTotalPages()); - page.put("content", content); - - return page; - } - - - // ::: list - // - - private List makeList() { - - var store = AppModules.biz.getController().getBusinessTagStore(); - - return store.listAll(getContext()); - } - - // ::: wrapped list - private List makeWrappedList() { - var list = new LinkedList(); - - wrapList(entities, list); - - return list; - } - - // ::: wrapper - // - private void wrapList(List found, List output) { - - var builder = new BusinessTagMapBuilder().addListGroup(); - - - output.addAll(builder.build(getContext(), found)); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagListArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagListArgument.java deleted file mode 100644 index c4a0b28..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagListArgument.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesstag; - -// app -import io.kumare.iqr.app.action.AppListActionArgument; -// store -import io.kumare.iqr.mod.biz.store.businesstag.BusinessTagEntity; - -/** - * - * @author afatecha - */ -public class BusinessTagListArgument extends AppListActionArgument { - - // ::: vars - // - - // ::: constructors - // - public BusinessTagListArgument() { - } - - public BusinessTagListArgument(BusinessTagEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagPreloadAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagPreloadAction.java deleted file mode 100644 index 4ae84e1..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagPreloadAction.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesstag; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businesstag.BusinessTagEntity; -// relations - - -/** - * - * @author afatecha - */ -public class BusinessTagPreloadAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private Map params = new HashMap<>(); - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifEmpty(getArgument().getAction(), BizErrors.businesstag_preload_empty); - } - - @Override - protected void doAction() { - if(getArgument().getParams() != null) { - params = getArgument().getParams(); - } - - switch (getArgument().getAction()) { - case "find" -> - prepareFind(); - case "list" -> - prepareList(); - case "add" -> - prepareAdd(); - case "edit" -> - prepareEdit(); - } - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: preload - // - private void prepareAdd() { - - } - - private void prepareEdit() { - var entity = findEntity(); - result.put("entity", entity); - - } - - private void prepareList() { - } - - private void prepareFind() { - var entity = findEntity(); - result.put("entity", entity); - - } - - // ::: queries - // - private BusinessTagEntity findEntity() { - var store = AppModules.biz.getController().getBusinessTagStore(); - - var id = (String) params.get("id"); - if(id == null && getArgument().getEntity() != null) { - id = getArgument().getEntity().getId(); - } - return store.findById(getContext(), id); - } - - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagPreloadArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagPreloadArgument.java deleted file mode 100644 index e6ec1da..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businesstag/BusinessTagPreloadArgument.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businesstag; - -/** - * - * @author afatecha - */ -public class BusinessTagPreloadArgument extends BusinessTagActionArgument { - - // ::: vars - // - private String action; - - // ::: fields - // - public String getAction() { - return action; - } - - public void setAction(String action) { - this.action = action; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerActionArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerActionArgument.java deleted file mode 100644 index 16e0aec..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerActionArgument.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessworker; - -// base -import io.kumare.iqr.app.action.AppEntityActionArgument; -// entity -import io.kumare.iqr.mod.biz.store.businessworker.BusinessWorkerEntity; - -/** - * - * @author afatecha - */ -public class BusinessWorkerActionArgument extends AppEntityActionArgument { - - // ::: constructors - // - public BusinessWorkerActionArgument() { - } - - public BusinessWorkerActionArgument(BusinessWorkerEntity entity) { - super(entity); - } - - // ::: api - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerAddAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerAddAction.java deleted file mode 100644 index f4a137d..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerAddAction.java +++ /dev/null @@ -1,146 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessworker; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -import io.kumare.iqr.mod.authentication.action.authuser.AuthUserAddArgument; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businessworker.BusinessWorkerEntity; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; -import io.kumare.iqr.mod.biz.store.BizTaxonomies; -import io.kumare.iqr.mod.biz.store.BizWorkerRoles; - -/** - * - * @author afatecha - */ -public class BusinessWorkerAddAction extends AppAction> { - - // ::: vars - // - private BusinessWorkerEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, BizErrors.businessworker_notfound); - - // relations - V.ifNull(model.getBusiness(), BizErrors.businessworker_business_notfound); - //V.ifNull(model.getAuthUser(), BizErrors.businessworker_authuser_notfound); - V.ifNull(model.getRole(), BizErrors.businessworker_role_notfound); - //V.ifNull(model.getState(), BizErrors.businessworker_state_notfound); - - // fields - //V.ifEmpty(model.getEntityKey(), BizErrors.businessworker_entitykey_empty); - //V.ifEmpty(model.getRoleValue(), BizErrors.businessworker_rolevalue_empty); - //V.ifEmpty(model.getStateValue(), BizErrors.businessworker_statevalue_empty); - //V.ifEmpty(model.getEmail(), BizErrors.businessworker_email_empty); - //V.ifEmpty(model.getPhone(), BizErrors.businessworker_phone_empty); - V.ifEmpty(model.getName(), BizErrors.businessworker_name_empty); - //V.ifEmpty(model.getDescription(), BizErrors.businessworker_description_empty); - - // other arguments - V.ifNull(getArgument().getAuthUser(), BizErrors.businessworker_authuser_notfound); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - var biz = AppModules.biz.getController(); - var businessStore = biz.getBusinessStore(); - - var business = businessStore.ensure(getContext(), - argModel.getBusiness(), - BizErrors.businessworker_business_notfound); - - var roleKey = argModel.getRole().getEntityKey(); - var role = BizTaxonomies.businessWorkerRole.ensureByKey(getContext(), roleKey); - var state = BizTaxonomies.businessWorkerState.ensureDefault(getContext()); - - // model - var model = makeModel(business, role, state); - - // add - entity = saveEntity(model); - - // add others - addAuthUser(getArgument().getAuthUser()); - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private BusinessWorkerEntity makeModel(BusinessEntity business, TaxonEntity role, TaxonEntity state) { - - var argModel = getArgument().getEntity(); - var model = new BusinessWorkerEntity(); - - // relations - model.setBusiness(business); - model.setRole(role); - model.setRoleValue(role.getValue()); - model.setState(state); - model.setStateValue(state.getValue()); - - // fields - model.setEntityKey(generateKey()); - model.setEmail(argModel.getEmail()); - model.setPhone(argModel.getPhone()); - model.setName(argModel.getName()); - model.setDescription(argModel.getDescription()); - model.setActive(true); - - return model; - } - - private String generateKey() { - return "XXX-CHANGE-XXX";// base64 de un json... - //"http://iqr.site/pub/w/ID" - //"http://iqr.site/pub/c/blabalbal" - } - - // ::: save - // - private BusinessWorkerEntity saveEntity(BusinessWorkerEntity model) { - - var store = AppModules.biz.getController().getBusinessWorkerStore(); - - var saved = store.add(getContext(), model); - getContext().attach(saved.getId(), saved); - return saved; - } - - // ::: add others - // - private void addAuthUser(AuthUserAddArgument authUser) { - // XXX DO IT - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerAddArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerAddArgument.java deleted file mode 100644 index 22dfc0e..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerAddArgument.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessworker; - -// app -import io.kumare.iqr.mod.authentication.action.authuser.AuthUserAddArgument; -import io.kumare.iqr.mod.biz.store.businessworker.BusinessWorkerEntity; - -/** - * - * @author afatecha - */ -public class BusinessWorkerAddArgument extends BusinessWorkerActionArgument { - - // ::: vars - // - private AuthUserAddArgument authUser; - - // ::: constructors - // - public BusinessWorkerAddArgument() { - } - - public BusinessWorkerAddArgument(BusinessWorkerEntity entity) { - super(entity); - } - - // ::: fields - // - public AuthUserAddArgument getAuthUser() { - return authUser; - } - - public void setAuthUser(AuthUserAddArgument authUser) { - this.authUser = authUser; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerDeleteAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerDeleteAction.java deleted file mode 100644 index b884f06..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerDeleteAction.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessworker; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businessworker.BusinessWorkerEntity; - -/** - * - * @author afatecha - */ -public class BusinessWorkerDeleteAction extends AppAction> { - - // ::: vars - // - private BusinessWorkerEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), BizErrors.businessworker_notfound); - V.ifNull(getArgument().getEntity().getId(), BizErrors.businessworker_notfound); - } - - @Override - protected void doAction() { - - var argModel = getArgument().getEntity(); - - deleteEntity(argModel); - } - - @Override - protected void setResultOnly() { - } - - // ::: delete - // - private void deleteEntity(BusinessWorkerEntity model) { - - var store = AppModules.biz.getController().getBusinessWorkerStore(); - - store.deleteById(getContext(), model.getId()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerEditAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerEditAction.java deleted file mode 100644 index 46474a8..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerEditAction.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessworker; - -// lib -import io.kumare.lib.v.V; -// app -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businessworker.BusinessWorkerEntity; - -/** - * - * @author afatecha - */ -public class BusinessWorkerEditAction extends AppAction> { - - // ::: vars - // - private BusinessWorkerEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, BizErrors.businessworker_notfound); - - // fields - V.ifEmpty(model.getEntityKey(), BizErrors.businessworker_entitykey_empty); - V.ifEmpty(model.getRoleValue(), BizErrors.businessworker_rolevalue_empty); - V.ifEmpty(model.getStateValue(), BizErrors.businessworker_statevalue_empty); - V.ifEmpty(model.getEmail(), BizErrors.businessworker_email_empty); - V.ifEmpty(model.getPhone(), BizErrors.businessworker_phone_empty); - V.ifEmpty(model.getName(), BizErrors.businessworker_name_empty); - V.ifEmpty(model.getDescription(), BizErrors.businessworker_description_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - - var biz = AppModules.biz.getController(); - var businessWorkerStore = biz.getBusinessWorkerStore(); - - // edit - entity = businessWorkerStore.ensure(getContext(), argModel, BizErrors.businessworker_notfound); - - editEntity(); - - entity = saveEntity(); - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private void editEntity() { - - var model = getArgument().getEntity(); - - // fields - entity.setEntityKey(V.firstNotEmpty(model.getEntityKey(), entity.getEntityKey())); - entity.setRoleValue(V.firstNotEmpty(model.getRoleValue(), entity.getRoleValue())); - entity.setStateValue(V.firstNotEmpty(model.getStateValue(), entity.getStateValue())); - entity.setEmail(V.firstNotEmpty(model.getEmail(), entity.getEmail())); - entity.setPhone(V.firstNotEmpty(model.getPhone(), entity.getPhone())); - entity.setName(V.firstNotEmpty(model.getName(), entity.getName())); - entity.setDescription(V.firstNotEmpty(model.getDescription(), entity.getDescription())); - - - } - - // ::: save - // - private BusinessWorkerEntity saveEntity() { - - var store = AppModules.biz.getController().getBusinessWorkerStore(); - - var saved = store.edit(getContext(), entity); - getContext().attach(saved.getId(), saved); - return saved; - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerEditArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerEditArgument.java deleted file mode 100644 index 64ecb80..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerEditArgument.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessworker; - -// app -import io.kumare.iqr.mod.biz.store.businessworker.BusinessWorkerEntity; - -/** - * - * @author afatecha - */ -public class BusinessWorkerEditArgument extends BusinessWorkerActionArgument { - - // ::: vars - // - - - // ::: constructors - // - public BusinessWorkerEditArgument() { - } - - public BusinessWorkerEditArgument(BusinessWorkerEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerEnableAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerEnableAction.java deleted file mode 100644 index e9aa623..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerEnableAction.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessworker; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businessworker.BusinessWorkerEntity; - - -/** - * - * @author afatecha - */ -public class BusinessWorkerEnableAction extends AppAction { - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), BizErrors.businessworker_notfound); - V.ifNull(getArgument().getEntity().getId(), BizErrors.businessworker_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - - enableEntity(model); - } - - @Override - protected void setResultOnly() { - } - - // ::: enable - // - private void enableEntity(BusinessWorkerEntity model) { - - var store = AppModules.biz.getController().getBusinessWorkerStore(); - - if (getArgument().getEntity().isActive()) { - store.enableById(getContext(), model.getId()); - } else { - store.disableById(getContext(), model.getId()); - } - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerFindAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerFindAction.java deleted file mode 100644 index 839d54c..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerFindAction.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessworker; - -// java -import java.util.HashMap; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businessworker.BusinessWorkerEntity; - - -/** - * - * @author afatecha - */ -public class BusinessWorkerFindAction extends AppAction { - - // ::: vars - // - private BusinessWorkerEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), BizErrors.businessworker_notfound); - V.ifNull(getArgument().getEntity().getId(), BizErrors.businessworker_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - entity = findEntity(model); - } - - @Override - protected void setResultOnly() { - var result = new HashMap(); - result.put("entity", entity); - setResult(result); - } - - // ::: find - // - private BusinessWorkerEntity findEntity(BusinessWorkerEntity model) { - - var store = AppModules.biz.getController().getBusinessWorkerStore(); - return store.findById(getContext(), model.getId()); - } - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerListAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerListAction.java deleted file mode 100644 index 4e3e82a..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerListAction.java +++ /dev/null @@ -1,150 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessworker; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.LinkedList; -import java.util.Map; -// spring -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// entity -import io.kumare.iqr.mod.biz.store.businessworker.BusinessWorkerEntity; -import io.kumare.iqr.mod.biz.store.businessworker.BusinessWorkerMapBuilder; - - -/** - * - * @author afatecha - */ -public class BusinessWorkerListAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private final List entities = new LinkedList<>(); - - // ::: public api - // - public List getEntities() { - return entities; - } - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - } - - @Override - protected void doAction() { - - result.put("pageable", getArgument().isPageable()); - result.put("wrapped", getArgument().isWrapped()); - - if (getArgument().isPageable()) { - - var page = makePage(); - entities.addAll(page.toList()); - - if (getArgument().isWrapped()) { - result.put("page", makeWrappedPage(page)); - } else { - result.put("page", page); - } - - } else { - - var list = makeList(); - entities.addAll(list); - - if (getArgument().isWrapped()) { - result.put("list", makeWrappedList()); - } else { - result.put("list", list); - } - } - - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: page - // - private Page makePage() { - - var page = getArgument().getPageNumber(); - var size = getArgument().getPageSize(); - //var sort = getArgument().getSort(); - - var pageable = PageRequest.of(page, size); - - var store = AppModules.biz.getController().getBusinessWorkerStore(); - return store.getRepository().findAll(pageable); - } - - // ::: wrapped page - // - private Map makeWrappedPage(Page found) { - - var page = new HashMap(); - var content = new LinkedList(); - - wrapList(entities, content); - - page.put("size", found.getSize()); - page.put("number", found.getNumber()); - page.put("totalElements", found.getTotalElements()); - page.put("totalPages", found.getTotalPages()); - page.put("content", content); - - return page; - } - - - // ::: list - // - - private List makeList() { - - var store = AppModules.biz.getController().getBusinessWorkerStore(); - - return store.listAll(getContext()); - } - - // ::: wrapped list - private List makeWrappedList() { - var list = new LinkedList(); - - wrapList(entities, list); - - return list; - } - - // ::: wrapper - // - private void wrapList(List found, List output) { - - var builder = new BusinessWorkerMapBuilder().addListGroup(); - builder.getBusinessBuilder().addMainGroup(); - builder.getRoleBuilder().addMainGroup(); - builder.getStateBuilder().addMainGroup(); - - output.addAll(builder.build(getContext(), found)); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerListArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerListArgument.java deleted file mode 100644 index d533333..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerListArgument.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessworker; - -// app -import io.kumare.iqr.app.action.AppListActionArgument; -// store -import io.kumare.iqr.mod.biz.store.businessworker.BusinessWorkerEntity; - -/** - * - * @author afatecha - */ -public class BusinessWorkerListArgument extends AppListActionArgument { - - // ::: vars - // - - // ::: constructors - // - public BusinessWorkerListArgument() { - } - - public BusinessWorkerListArgument(BusinessWorkerEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerPreloadAction.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerPreloadAction.java deleted file mode 100644 index b6eeb78..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerPreloadAction.java +++ /dev/null @@ -1,118 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessworker; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.biz.BizErrors; -// entity -import io.kumare.iqr.mod.biz.store.businessworker.BusinessWorkerEntity; -// relations -import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; - -/** - * - * @author afatecha - */ -public class BusinessWorkerPreloadAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private Map params = new HashMap<>(); - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifEmpty(getArgument().getAction(), BizErrors.businessworker_preload_empty); - } - - @Override - protected void doAction() { - if (getArgument().getParams() != null) { - params = getArgument().getParams(); - } - - switch (getArgument().getAction()) { - case "find" -> - prepareFind(); - case "list" -> - prepareList(); - case "add" -> - prepareAdd(); - case "edit" -> - prepareEdit(); - } - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: preload - // - private void prepareAdd() { - result.put("taxons", listTaxons()); - result.put("businesss", listBusinesses()); - } - - private void prepareEdit() { - var entity = findEntity(); - result.put("entity", entity); - result.put("business", entity.getBusiness()); - result.put("role", entity.getRole()); - result.put("state", entity.getState()); - } - - private void prepareList() { - } - - private void prepareFind() { - var entity = findEntity(); - result.put("entity", entity); - result.put("business", entity.getBusiness()); - result.put("role", entity.getRole()); - result.put("state", entity.getState()); - } - - // ::: queries - // - private BusinessWorkerEntity findEntity() { - var store = AppModules.biz.getController().getBusinessWorkerStore(); - - var id = (String) params.get("id"); - if (id == null && getArgument().getEntity() != null) { - id = getArgument().getEntity().getId(); - } - return store.findById(getContext(), id); - } - - public List listBusinesses() { - var store = AppModules.biz.getController().getBusinessStore(); - - return store.listAll(getContext()); - } - - public List listTaxons() { - var store = AppModules.taxonomy.getController().getTaxonStore(); - - return store.listAll(getContext()); - } - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerPreloadArgument.java b/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerPreloadArgument.java deleted file mode 100644 index e9ec351..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/action/businessworker/BusinessWorkerPreloadArgument.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.action.businessworker; - -/** - * - * @author afatecha - */ -public class BusinessWorkerPreloadArgument extends BusinessWorkerActionArgument { - - // ::: vars - // - private String action; - - // ::: fields - // - public String getAction() { - return action; - } - - public void setAction(String action) { - this.action = action; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/AbstractBusinessImageRest.java b/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/AbstractBusinessImageRest.java deleted file mode 100644 index d401fb1..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/AbstractBusinessImageRest.java +++ /dev/null @@ -1,214 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.endpoint.rest; - -// java -import java.util.Map; -// openapi -import io.swagger.v3.oas.annotations.*; -import io.swagger.v3.oas.annotations.media.*; -import io.swagger.v3.oas.annotations.responses.*; -// spring -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; -// base -import io.kumare.lib.app.api.operation.TransactionType; -import io.kumare.lib.app.api.security.PermissionReference; -// app -import io.kumare.iqr.app.endpoint.rest.AppEndpointRest; -import io.kumare.iqr.app.action.*; -// module -import io.kumare.iqr.mod.biz.BizPermissions; -import io.kumare.iqr.mod.biz.store.businessimage.BusinessImageEntity; -import io.kumare.iqr.mod.biz.action.businessimage.*; - -/** -* -* @author afatecha -*/ -public abstract class AbstractBusinessImageRest extends AppEndpointRest { - - // ::: DEFAULT PERMISSIONS - // - protected PermissionReference getPermission(String action, String ref, Object extra) { - switch (action) { - case null -> { - return null; - } - case "add" -> { - return BizPermissions.business_image_worker.toReference(ref); - } - case "edit" -> { - return BizPermissions.business_image_worker.toReference(ref); - } - case "enable" -> { - return BizPermissions.business_image_manager.toReference(ref); - } - case "disable" -> { - return BizPermissions.business_image_manager.toReference(ref); - } - case "delete" -> { - return BizPermissions.business_image_manager.toReference(ref); - } - case "find" -> { - return BizPermissions.business_image_viewer.toReference(ref); - } - case "list" -> { - return BizPermissions.business_image_viewer.toReference(ref); - } - default -> { - return null; - } - } - } - - - // ::: ADD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "business image add operation", description = "") - // - @PostMapping - public ResponseEntity add(@RequestBody BusinessImageAddArgument arg) { - - var permission = getPermission("add", null, arg); - return handle(new BusinessImageAddAction(), arg, permission, TransactionType.service); - } - - // ::: EDIT - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "business image edit operation", description = "") - // - @PutMapping("/{id}") - public ResponseEntity edit(@PathVariable("id") String id, - @RequestBody BusinessImageEditArgument arg) { - - arg.getEntity().id(id); - - var permission = getPermission("edit", id, arg); - return handle(new BusinessImageEditAction(), arg, permission, TransactionType.service); - } - - // ::: FIND - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "business image find operation", description = "") - // - @GetMapping("/{id}") - public ResponseEntity find(@PathVariable("id") String id, - @ModelAttribute BusinessImageActionArgument arg) { - - - arg = arg == null ? new BusinessImageActionArgument() : arg; - - arg.entity(new BusinessImageEntity(id)); - - var permission = getPermission("find", id, arg); - return handle(new BusinessImageFindAction(), arg, permission); - } - - // ::: ENABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "business image enable operation", description = "") - // - @PutMapping("/{id}/enable") - public ResponseEntity enable(@PathVariable("id") String id) { - - var arg = new BusinessImageActionArgument(); - arg.setEntity(new BusinessImageEntity(id)); - arg.getEntity().setActive(true); - - var permission = getPermission("disable", id, arg); - return handle(new BusinessImageEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: DISABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "business image disable operation", description = "") - // - @PutMapping("/{id}/disable") - public ResponseEntity disable(@PathVariable("id") String id) { - - var arg = new BusinessImageActionArgument(); - arg.setEntity(new BusinessImageEntity(id)); - arg.getEntity().setActive(false); - - var permission = getPermission("disable", id, arg); - return handle(new BusinessImageEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: LIST - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "business image list operation", description = "") - // - @GetMapping - public ResponseEntity list(@ModelAttribute BusinessImageListArgument arg) { - - arg = arg == null ? new BusinessImageListArgument() : arg; - - var permission = getPermission("list", null, arg); - return handle(new BusinessImageListAction(), arg, permission); - } - - // ::: DELETE - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "business image delete operation", description = "") - // - @DeleteMapping("/{id}") - public ResponseEntity delete(@PathVariable("id") String id) { - - var arg = new BusinessImageActionArgument(); - - arg.setEntity(new BusinessImageEntity(id)); - - var permission = getPermission("delete", id, arg); - return handle(new BusinessImageDeleteAction(), arg, permission, TransactionType.service); - } - - // ::: PRELOAD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "business image preload operation", description = "") - // - @PostMapping("/preload") - public ResponseEntity preload(@RequestBody BusinessImagePreloadArgument arg) { - - var permission = getPermission(arg.getAction(), null, arg); - return handle(new BusinessImagePreloadAction(), arg, permission); - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/AbstractBusinessProfileRest.java b/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/AbstractBusinessProfileRest.java deleted file mode 100644 index 3079269..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/AbstractBusinessProfileRest.java +++ /dev/null @@ -1,215 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.endpoint.rest; - -// java -import java.util.Map; -// openapi -import io.swagger.v3.oas.annotations.*; -import io.swagger.v3.oas.annotations.media.*; -import io.swagger.v3.oas.annotations.responses.*; -// spring -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; -// base -import io.kumare.lib.app.api.operation.TransactionType; -import io.kumare.lib.app.api.security.PermissionReference; -// app -import io.kumare.iqr.app.endpoint.rest.AppEndpointRest; -import io.kumare.iqr.app.action.*; -// module -import io.kumare.iqr.mod.biz.BizPermissions; -import io.kumare.iqr.mod.biz.store.businessprofile.BusinessProfileEntity; -import io.kumare.iqr.mod.biz.action.businessprofile.*; - -/** -* -* @author afatecha -*/ -public abstract class AbstractBusinessProfileRest extends AppEndpointRest { - - // ::: DEFAULT PERMISSIONS - // - protected PermissionReference getPermission(String action, String ref, Object extra) { - switch (action) { - case null -> { - return null; - } - case "add" -> { - return BizPermissions.business_profile_worker.toReference(ref); - } - case "edit" -> { - return BizPermissions.business_profile_worker.toReference(ref); - } - case "enable" -> { - return BizPermissions.business_profile_manager.toReference(ref); - } - case "disable" -> { - return BizPermissions.business_profile_manager.toReference(ref); - } - case "delete" -> { - return BizPermissions.business_profile_manager.toReference(ref); - } - case "find" -> { - return BizPermissions.business_profile_viewer.toReference(ref); - } - case "list" -> { - return BizPermissions.business_profile_viewer.toReference(ref); - } - default -> { - return null; - } - } - } - - - // ::: ADD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "business profile add operation", description = "") - // - @PostMapping - public ResponseEntity add(@RequestBody BusinessProfileAddArgument arg) { - - var permission = getPermission("add", null, arg); - return handle(new BusinessProfileAddAction(), arg, permission, TransactionType.service); - } - - // ::: EDIT - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "business profile edit operation", description = "") - // - @PutMapping("/{id}") - public ResponseEntity edit(@PathVariable("id") String id, - @RequestBody BusinessProfileEditArgument arg) { - - arg.getEntity().id(id); - - var permission = getPermission("edit", id, arg); - return handle(new BusinessProfileEditAction(), arg, permission, TransactionType.service); - } - - // ::: FIND - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "business profile find operation", description = "") - // - @GetMapping("/{id}") - public ResponseEntity find(@PathVariable("id") String id, - @ModelAttribute BusinessProfileActionArgument arg) { - - - arg = arg == null ? new BusinessProfileActionArgument() : arg; - - arg.entity(new BusinessProfileEntity(id)); - - var permission = getPermission("find", id, arg); - return handle(new BusinessProfileFindAction(), arg, permission); - } - - // ::: ENABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "business profile enable operation", description = "") - // - @PutMapping("/{id}/enable") - public ResponseEntity enable(@PathVariable("id") String id) { - - var arg = new BusinessProfileActionArgument(); - arg.setEntity(new BusinessProfileEntity(id)); - arg.getEntity().setActive(true); - - var permission = getPermission("disable", id, arg); - return handle(new BusinessProfileEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: DISABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "business profile disable operation", description = "") - // - @PutMapping("/{id}/disable") - public ResponseEntity disable(@PathVariable("id") String id) { - - var arg = new BusinessProfileActionArgument(); - arg.setEntity(new BusinessProfileEntity(id)); - arg.getEntity().setActive(false); - - var permission = getPermission("disable", id, arg); - return handle(new BusinessProfileEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: LIST - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "business profile list operation", description = "") - // - @GetMapping - public ResponseEntity list(@ModelAttribute BusinessProfileListArgument arg) { - - arg = arg == null ? new BusinessProfileListArgument() : arg; - - var permission = getPermission("list", null, arg); - return handle(new BusinessProfileListAction(), arg, permission); - } - - // ::: DELETE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "business profile delete operation", description = "") - // - @DeleteMapping("/{id}") - public ResponseEntity delete(@PathVariable("id") String id) { - - var arg = new BusinessProfileActionArgument(); - - arg.setEntity(new BusinessProfileEntity(id)); - - var permission = getPermission("delete", id, arg); - return handle(new BusinessProfileDeleteAction(), arg, permission, TransactionType.service); - }*/ - - // ::: PRELOAD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "business profile preload operation", description = "") - // - @PostMapping("/preload") - public ResponseEntity preload(@RequestBody BusinessProfilePreloadArgument arg) { - - var permission = getPermission(arg.getAction(), null, arg); - return handle(new BusinessProfilePreloadAction(), arg, permission); - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/AbstractBusinessPromoItemRest.java b/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/AbstractBusinessPromoItemRest.java deleted file mode 100644 index b53774a..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/AbstractBusinessPromoItemRest.java +++ /dev/null @@ -1,214 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.endpoint.rest; - -// java -import java.util.Map; -// openapi -import io.swagger.v3.oas.annotations.*; -import io.swagger.v3.oas.annotations.media.*; -import io.swagger.v3.oas.annotations.responses.*; -// spring -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; -// base -import io.kumare.lib.app.api.operation.TransactionType; -import io.kumare.lib.app.api.security.PermissionReference; -// app -import io.kumare.iqr.app.endpoint.rest.AppEndpointRest; -import io.kumare.iqr.app.action.*; -// module -import io.kumare.iqr.mod.biz.BizPermissions; -import io.kumare.iqr.mod.biz.store.businesspromoitem.BusinessPromoItemEntity; -import io.kumare.iqr.mod.biz.action.businesspromoitem.*; - -/** -* -* @author afatecha -*/ -public abstract class AbstractBusinessPromoItemRest extends AppEndpointRest { - - // ::: DEFAULT PERMISSIONS - // - protected PermissionReference getPermission(String action, String ref, Object extra) { - switch (action) { - case null -> { - return null; - } - case "add" -> { - return BizPermissions.business_promo_item_worker.toReference(ref); - } - case "edit" -> { - return BizPermissions.business_promo_item_worker.toReference(ref); - } - case "enable" -> { - return BizPermissions.business_promo_item_manager.toReference(ref); - } - case "disable" -> { - return BizPermissions.business_promo_item_manager.toReference(ref); - } - case "delete" -> { - return BizPermissions.business_promo_item_manager.toReference(ref); - } - case "find" -> { - return BizPermissions.business_promo_item_viewer.toReference(ref); - } - case "list" -> { - return BizPermissions.business_promo_item_viewer.toReference(ref); - } - default -> { - return null; - } - } - } - - - // ::: ADD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "business promo item add operation", description = "") - // - @PostMapping - public ResponseEntity add(@RequestBody BusinessPromoItemAddArgument arg) { - - var permission = getPermission("add", null, arg); - return handle(new BusinessPromoItemAddAction(), arg, permission, TransactionType.service); - } - - // ::: EDIT - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "business promo item edit operation", description = "") - // - @PutMapping("/{id}") - public ResponseEntity edit(@PathVariable("id") String id, - @RequestBody BusinessPromoItemEditArgument arg) { - - arg.getEntity().id(id); - - var permission = getPermission("edit", id, arg); - return handle(new BusinessPromoItemEditAction(), arg, permission, TransactionType.service); - } - - // ::: FIND - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "business promo item find operation", description = "") - // - @GetMapping("/{id}") - public ResponseEntity find(@PathVariable("id") String id, - @ModelAttribute BusinessPromoItemActionArgument arg) { - - - arg = arg == null ? new BusinessPromoItemActionArgument() : arg; - - arg.entity(new BusinessPromoItemEntity(id)); - - var permission = getPermission("find", id, arg); - return handle(new BusinessPromoItemFindAction(), arg, permission); - } - - // ::: ENABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "business promo item enable operation", description = "") - // - @PutMapping("/{id}/enable") - public ResponseEntity enable(@PathVariable("id") String id) { - - var arg = new BusinessPromoItemActionArgument(); - arg.setEntity(new BusinessPromoItemEntity(id)); - arg.getEntity().setActive(true); - - var permission = getPermission("disable", id, arg); - return handle(new BusinessPromoItemEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: DISABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "business promo item disable operation", description = "") - // - @PutMapping("/{id}/disable") - public ResponseEntity disable(@PathVariable("id") String id) { - - var arg = new BusinessPromoItemActionArgument(); - arg.setEntity(new BusinessPromoItemEntity(id)); - arg.getEntity().setActive(false); - - var permission = getPermission("disable", id, arg); - return handle(new BusinessPromoItemEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: LIST - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "business promo item list operation", description = "") - // - @GetMapping - public ResponseEntity list(@ModelAttribute BusinessPromoItemListArgument arg) { - - arg = arg == null ? new BusinessPromoItemListArgument() : arg; - - var permission = getPermission("list", null, arg); - return handle(new BusinessPromoItemListAction(), arg, permission); - } - - // ::: DELETE - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "business promo item delete operation", description = "") - // - @DeleteMapping("/{id}") - public ResponseEntity delete(@PathVariable("id") String id) { - - var arg = new BusinessPromoItemActionArgument(); - - arg.setEntity(new BusinessPromoItemEntity(id)); - - var permission = getPermission("delete", id, arg); - return handle(new BusinessPromoItemDeleteAction(), arg, permission, TransactionType.service); - } - - // ::: PRELOAD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "business promo item preload operation", description = "") - // - @PostMapping("/preload") - public ResponseEntity preload(@RequestBody BusinessPromoItemPreloadArgument arg) { - - var permission = getPermission(arg.getAction(), null, arg); - return handle(new BusinessPromoItemPreloadAction(), arg, permission); - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/AbstractBusinessPromoRest.java b/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/AbstractBusinessPromoRest.java deleted file mode 100644 index 49f3b1e..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/AbstractBusinessPromoRest.java +++ /dev/null @@ -1,214 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.endpoint.rest; - -// java -import java.util.Map; -// openapi -import io.swagger.v3.oas.annotations.*; -import io.swagger.v3.oas.annotations.media.*; -import io.swagger.v3.oas.annotations.responses.*; -// spring -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; -// base -import io.kumare.lib.app.api.operation.TransactionType; -import io.kumare.lib.app.api.security.PermissionReference; -// app -import io.kumare.iqr.app.endpoint.rest.AppEndpointRest; -import io.kumare.iqr.app.action.*; -// module -import io.kumare.iqr.mod.biz.BizPermissions; -import io.kumare.iqr.mod.biz.store.businesspromo.BusinessPromoEntity; -import io.kumare.iqr.mod.biz.action.businesspromo.*; - -/** -* -* @author afatecha -*/ -public abstract class AbstractBusinessPromoRest extends AppEndpointRest { - - // ::: DEFAULT PERMISSIONS - // - protected PermissionReference getPermission(String action, String ref, Object extra) { - switch (action) { - case null -> { - return null; - } - case "add" -> { - return BizPermissions.business_promo_worker.toReference(ref); - } - case "edit" -> { - return BizPermissions.business_promo_worker.toReference(ref); - } - case "enable" -> { - return BizPermissions.business_promo_manager.toReference(ref); - } - case "disable" -> { - return BizPermissions.business_promo_manager.toReference(ref); - } - case "delete" -> { - return BizPermissions.business_promo_manager.toReference(ref); - } - case "find" -> { - return BizPermissions.business_promo_viewer.toReference(ref); - } - case "list" -> { - return BizPermissions.business_promo_viewer.toReference(ref); - } - default -> { - return null; - } - } - } - - - // ::: ADD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "business promo add operation", description = "") - // - @PostMapping - public ResponseEntity add(@RequestBody BusinessPromoAddArgument arg) { - - var permission = getPermission("add", null, arg); - return handle(new BusinessPromoAddAction(), arg, permission, TransactionType.service); - } - - // ::: EDIT - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "business promo edit operation", description = "") - // - @PutMapping("/{id}") - public ResponseEntity edit(@PathVariable("id") String id, - @RequestBody BusinessPromoEditArgument arg) { - - arg.getEntity().id(id); - - var permission = getPermission("edit", id, arg); - return handle(new BusinessPromoEditAction(), arg, permission, TransactionType.service); - } - - // ::: FIND - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "business promo find operation", description = "") - // - @GetMapping("/{id}") - public ResponseEntity find(@PathVariable("id") String id, - @ModelAttribute BusinessPromoActionArgument arg) { - - - arg = arg == null ? new BusinessPromoActionArgument() : arg; - - arg.entity(new BusinessPromoEntity(id)); - - var permission = getPermission("find", id, arg); - return handle(new BusinessPromoFindAction(), arg, permission); - } - - // ::: ENABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "business promo enable operation", description = "") - // - @PutMapping("/{id}/enable") - public ResponseEntity enable(@PathVariable("id") String id) { - - var arg = new BusinessPromoActionArgument(); - arg.setEntity(new BusinessPromoEntity(id)); - arg.getEntity().setActive(true); - - var permission = getPermission("disable", id, arg); - return handle(new BusinessPromoEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: DISABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "business promo disable operation", description = "") - // - @PutMapping("/{id}/disable") - public ResponseEntity disable(@PathVariable("id") String id) { - - var arg = new BusinessPromoActionArgument(); - arg.setEntity(new BusinessPromoEntity(id)); - arg.getEntity().setActive(false); - - var permission = getPermission("disable", id, arg); - return handle(new BusinessPromoEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: LIST - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "business promo list operation", description = "") - // - @GetMapping - public ResponseEntity list(@ModelAttribute BusinessPromoListArgument arg) { - - arg = arg == null ? new BusinessPromoListArgument() : arg; - - var permission = getPermission("list", null, arg); - return handle(new BusinessPromoListAction(), arg, permission); - } - - // ::: DELETE - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "business promo delete operation", description = "") - // - @DeleteMapping("/{id}") - public ResponseEntity delete(@PathVariable("id") String id) { - - var arg = new BusinessPromoActionArgument(); - - arg.setEntity(new BusinessPromoEntity(id)); - - var permission = getPermission("delete", id, arg); - return handle(new BusinessPromoDeleteAction(), arg, permission, TransactionType.service); - } - - // ::: PRELOAD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "business promo preload operation", description = "") - // - @PostMapping("/preload") - public ResponseEntity preload(@RequestBody BusinessPromoPreloadArgument arg) { - - var permission = getPermission(arg.getAction(), null, arg); - return handle(new BusinessPromoPreloadAction(), arg, permission); - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/AbstractBusinessRest.java b/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/AbstractBusinessRest.java deleted file mode 100644 index 5e1d0e5..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/AbstractBusinessRest.java +++ /dev/null @@ -1,215 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.endpoint.rest; - -// java -import java.util.Map; -// openapi -import io.swagger.v3.oas.annotations.*; -import io.swagger.v3.oas.annotations.media.*; -import io.swagger.v3.oas.annotations.responses.*; -// spring -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; -// base -import io.kumare.lib.app.api.operation.TransactionType; -import io.kumare.lib.app.api.security.PermissionReference; -// app -import io.kumare.iqr.app.endpoint.rest.AppEndpointRest; -import io.kumare.iqr.app.action.*; -// module -import io.kumare.iqr.mod.biz.BizPermissions; -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; -import io.kumare.iqr.mod.biz.action.business.*; - -/** -* -* @author afatecha -*/ -public abstract class AbstractBusinessRest extends AppEndpointRest { - - // ::: DEFAULT PERMISSIONS - // - protected PermissionReference getPermission(String action, String ref, Object extra) { - switch (action) { - case null -> { - return null; - } - case "add" -> { - return BizPermissions.business_worker.toReference(ref); - } - case "edit" -> { - return BizPermissions.business_worker.toReference(ref); - } - case "enable" -> { - return BizPermissions.business_manager.toReference(ref); - } - case "disable" -> { - return BizPermissions.business_manager.toReference(ref); - } - case "delete" -> { - return BizPermissions.business_manager.toReference(ref); - } - case "find" -> { - return BizPermissions.business_viewer.toReference(ref); - } - case "list" -> { - return BizPermissions.business_viewer.toReference(ref); - } - default -> { - return null; - } - } - } - - - // ::: ADD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "business add operation", description = "") - // - @PostMapping - public ResponseEntity add(@RequestBody BusinessAddArgument arg) { - - var permission = getPermission("add", null, arg); - return handle(new BusinessAddAction(), arg, permission, TransactionType.service); - } - - // ::: EDIT - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "business edit operation", description = "") - // - @PutMapping("/{id}") - public ResponseEntity edit(@PathVariable("id") String id, - @RequestBody BusinessEditArgument arg) { - - arg.getEntity().id(id); - - var permission = getPermission("edit", id, arg); - return handle(new BusinessEditAction(), arg, permission, TransactionType.service); - } - - // ::: FIND - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "business find operation", description = "") - // - @GetMapping("/{id}") - public ResponseEntity find(@PathVariable("id") String id, - @ModelAttribute BusinessActionArgument arg) { - - - arg = arg == null ? new BusinessActionArgument() : arg; - - arg.entity(new BusinessEntity(id)); - - var permission = getPermission("find", id, arg); - return handle(new BusinessFindAction(), arg, permission); - } - - // ::: ENABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "business enable operation", description = "") - // - @PutMapping("/{id}/enable") - public ResponseEntity enable(@PathVariable("id") String id) { - - var arg = new BusinessActionArgument(); - arg.setEntity(new BusinessEntity(id)); - arg.getEntity().setActive(true); - - var permission = getPermission("disable", id, arg); - return handle(new BusinessEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: DISABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "business disable operation", description = "") - // - @PutMapping("/{id}/disable") - public ResponseEntity disable(@PathVariable("id") String id) { - - var arg = new BusinessActionArgument(); - arg.setEntity(new BusinessEntity(id)); - arg.getEntity().setActive(false); - - var permission = getPermission("disable", id, arg); - return handle(new BusinessEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: LIST - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "business list operation", description = "") - // - @GetMapping - public ResponseEntity list(@ModelAttribute BusinessListArgument arg) { - - arg = arg == null ? new BusinessListArgument() : arg; - - var permission = getPermission("list", null, arg); - return handle(new BusinessListAction(), arg, permission); - } - - // ::: DELETE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "business delete operation", description = "") - // - @DeleteMapping("/{id}") - public ResponseEntity delete(@PathVariable("id") String id) { - - var arg = new BusinessActionArgument(); - - arg.setEntity(new BusinessEntity(id)); - - var permission = getPermission("delete", id, arg); - return handle(new BusinessDeleteAction(), arg, permission, TransactionType.service); - }*/ - - // ::: PRELOAD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "business preload operation", description = "") - // - @PostMapping("/preload") - public ResponseEntity preload(@RequestBody BusinessPreloadArgument arg) { - - var permission = getPermission(arg.getAction(), null, arg); - return handle(new BusinessPreloadAction(), arg, permission); - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/AbstractBusinessSettingRest.java b/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/AbstractBusinessSettingRest.java deleted file mode 100644 index 71fbec6..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/AbstractBusinessSettingRest.java +++ /dev/null @@ -1,214 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.endpoint.rest; - -// java -import java.util.Map; -// openapi -import io.swagger.v3.oas.annotations.*; -import io.swagger.v3.oas.annotations.media.*; -import io.swagger.v3.oas.annotations.responses.*; -// spring -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; -// base -import io.kumare.lib.app.api.operation.TransactionType; -import io.kumare.lib.app.api.security.PermissionReference; -// app -import io.kumare.iqr.app.endpoint.rest.AppEndpointRest; -import io.kumare.iqr.app.action.*; -// module -import io.kumare.iqr.mod.biz.BizPermissions; -import io.kumare.iqr.mod.biz.store.businesssetting.BusinessSettingEntity; -import io.kumare.iqr.mod.biz.action.businesssetting.*; - -/** -* -* @author afatecha -*/ -public abstract class AbstractBusinessSettingRest extends AppEndpointRest { - - // ::: DEFAULT PERMISSIONS - // - protected PermissionReference getPermission(String action, String ref, Object extra) { - switch (action) { - case null -> { - return null; - } - case "add" -> { - return BizPermissions.business_setting_worker.toReference(ref); - } - case "edit" -> { - return BizPermissions.business_setting_worker.toReference(ref); - } - case "enable" -> { - return BizPermissions.business_setting_manager.toReference(ref); - } - case "disable" -> { - return BizPermissions.business_setting_manager.toReference(ref); - } - case "delete" -> { - return BizPermissions.business_setting_manager.toReference(ref); - } - case "find" -> { - return BizPermissions.business_setting_viewer.toReference(ref); - } - case "list" -> { - return BizPermissions.business_setting_viewer.toReference(ref); - } - default -> { - return null; - } - } - } - - - // ::: ADD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "business setting add operation", description = "") - // - @PostMapping - public ResponseEntity add(@RequestBody BusinessSettingAddArgument arg) { - - var permission = getPermission("add", null, arg); - return handle(new BusinessSettingAddAction(), arg, permission, TransactionType.service); - } - - // ::: EDIT - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "business setting edit operation", description = "") - // - @PutMapping("/{id}") - public ResponseEntity edit(@PathVariable("id") String id, - @RequestBody BusinessSettingEditArgument arg) { - - arg.getEntity().id(id); - - var permission = getPermission("edit", id, arg); - return handle(new BusinessSettingEditAction(), arg, permission, TransactionType.service); - } - - // ::: FIND - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "business setting find operation", description = "") - // - @GetMapping("/{id}") - public ResponseEntity find(@PathVariable("id") String id, - @ModelAttribute BusinessSettingActionArgument arg) { - - - arg = arg == null ? new BusinessSettingActionArgument() : arg; - - arg.entity(new BusinessSettingEntity(id)); - - var permission = getPermission("find", id, arg); - return handle(new BusinessSettingFindAction(), arg, permission); - } - - // ::: ENABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "business setting enable operation", description = "") - // - @PutMapping("/{id}/enable") - public ResponseEntity enable(@PathVariable("id") String id) { - - var arg = new BusinessSettingActionArgument(); - arg.setEntity(new BusinessSettingEntity(id)); - arg.getEntity().setActive(true); - - var permission = getPermission("disable", id, arg); - return handle(new BusinessSettingEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: DISABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "business setting disable operation", description = "") - // - @PutMapping("/{id}/disable") - public ResponseEntity disable(@PathVariable("id") String id) { - - var arg = new BusinessSettingActionArgument(); - arg.setEntity(new BusinessSettingEntity(id)); - arg.getEntity().setActive(false); - - var permission = getPermission("disable", id, arg); - return handle(new BusinessSettingEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: LIST - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "business setting list operation", description = "") - // - @GetMapping - public ResponseEntity list(@ModelAttribute BusinessSettingListArgument arg) { - - arg = arg == null ? new BusinessSettingListArgument() : arg; - - var permission = getPermission("list", null, arg); - return handle(new BusinessSettingListAction(), arg, permission); - } - - // ::: DELETE - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "business setting delete operation", description = "") - // - @DeleteMapping("/{id}") - public ResponseEntity delete(@PathVariable("id") String id) { - - var arg = new BusinessSettingActionArgument(); - - arg.setEntity(new BusinessSettingEntity(id)); - - var permission = getPermission("delete", id, arg); - return handle(new BusinessSettingDeleteAction(), arg, permission, TransactionType.service); - } - - // ::: PRELOAD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "business setting preload operation", description = "") - // - @PostMapping("/preload") - public ResponseEntity preload(@RequestBody BusinessSettingPreloadArgument arg) { - - var permission = getPermission(arg.getAction(), null, arg); - return handle(new BusinessSettingPreloadAction(), arg, permission); - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/AbstractBusinessTagRest.java b/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/AbstractBusinessTagRest.java deleted file mode 100644 index af5dcf9..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/AbstractBusinessTagRest.java +++ /dev/null @@ -1,214 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.endpoint.rest; - -// java -import java.util.Map; -// openapi -import io.swagger.v3.oas.annotations.*; -import io.swagger.v3.oas.annotations.media.*; -import io.swagger.v3.oas.annotations.responses.*; -// spring -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; -// base -import io.kumare.lib.app.api.operation.TransactionType; -import io.kumare.lib.app.api.security.PermissionReference; -// app -import io.kumare.iqr.app.endpoint.rest.AppEndpointRest; -import io.kumare.iqr.app.action.*; -// module -import io.kumare.iqr.mod.biz.BizPermissions; -import io.kumare.iqr.mod.biz.store.businesstag.BusinessTagEntity; -import io.kumare.iqr.mod.biz.action.businesstag.*; - -/** -* -* @author afatecha -*/ -public abstract class AbstractBusinessTagRest extends AppEndpointRest { - - // ::: DEFAULT PERMISSIONS - // - protected PermissionReference getPermission(String action, String ref, Object extra) { - switch (action) { - case null -> { - return null; - } - case "add" -> { - return BizPermissions.business_tag_worker.toReference(ref); - } - case "edit" -> { - return BizPermissions.business_tag_worker.toReference(ref); - } - case "enable" -> { - return BizPermissions.business_tag_manager.toReference(ref); - } - case "disable" -> { - return BizPermissions.business_tag_manager.toReference(ref); - } - case "delete" -> { - return BizPermissions.business_tag_manager.toReference(ref); - } - case "find" -> { - return BizPermissions.business_tag_viewer.toReference(ref); - } - case "list" -> { - return BizPermissions.business_tag_viewer.toReference(ref); - } - default -> { - return null; - } - } - } - - - // ::: ADD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "business tag add operation", description = "") - // - @PostMapping - public ResponseEntity add(@RequestBody BusinessTagAddArgument arg) { - - var permission = getPermission("add", null, arg); - return handle(new BusinessTagAddAction(), arg, permission, TransactionType.service); - } - - // ::: EDIT - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "business tag edit operation", description = "") - // - @PutMapping("/{id}") - public ResponseEntity edit(@PathVariable("id") String id, - @RequestBody BusinessTagEditArgument arg) { - - arg.getEntity().id(id); - - var permission = getPermission("edit", id, arg); - return handle(new BusinessTagEditAction(), arg, permission, TransactionType.service); - } - - // ::: FIND - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "business tag find operation", description = "") - // - @GetMapping("/{id}") - public ResponseEntity find(@PathVariable("id") String id, - @ModelAttribute BusinessTagActionArgument arg) { - - - arg = arg == null ? new BusinessTagActionArgument() : arg; - - arg.entity(new BusinessTagEntity(id)); - - var permission = getPermission("find", id, arg); - return handle(new BusinessTagFindAction(), arg, permission); - } - - // ::: ENABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "business tag enable operation", description = "") - // - @PutMapping("/{id}/enable") - public ResponseEntity enable(@PathVariable("id") String id) { - - var arg = new BusinessTagActionArgument(); - arg.setEntity(new BusinessTagEntity(id)); - arg.getEntity().setActive(true); - - var permission = getPermission("disable", id, arg); - return handle(new BusinessTagEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: DISABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "business tag disable operation", description = "") - // - @PutMapping("/{id}/disable") - public ResponseEntity disable(@PathVariable("id") String id) { - - var arg = new BusinessTagActionArgument(); - arg.setEntity(new BusinessTagEntity(id)); - arg.getEntity().setActive(false); - - var permission = getPermission("disable", id, arg); - return handle(new BusinessTagEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: LIST - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "business tag list operation", description = "") - // - @GetMapping - public ResponseEntity list(@ModelAttribute BusinessTagListArgument arg) { - - arg = arg == null ? new BusinessTagListArgument() : arg; - - var permission = getPermission("list", null, arg); - return handle(new BusinessTagListAction(), arg, permission); - } - - // ::: DELETE - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "business tag delete operation", description = "") - // - @DeleteMapping("/{id}") - public ResponseEntity delete(@PathVariable("id") String id) { - - var arg = new BusinessTagActionArgument(); - - arg.setEntity(new BusinessTagEntity(id)); - - var permission = getPermission("delete", id, arg); - return handle(new BusinessTagDeleteAction(), arg, permission, TransactionType.service); - } - - // ::: PRELOAD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "business tag preload operation", description = "") - // - @PostMapping("/preload") - public ResponseEntity preload(@RequestBody BusinessTagPreloadArgument arg) { - - var permission = getPermission(arg.getAction(), null, arg); - return handle(new BusinessTagPreloadAction(), arg, permission); - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/AbstractBusinessWorkerRest.java b/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/AbstractBusinessWorkerRest.java deleted file mode 100644 index 8d0557b..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/AbstractBusinessWorkerRest.java +++ /dev/null @@ -1,214 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.endpoint.rest; - -// java -import java.util.Map; -// openapi -import io.swagger.v3.oas.annotations.*; -import io.swagger.v3.oas.annotations.media.*; -import io.swagger.v3.oas.annotations.responses.*; -// spring -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; -// base -import io.kumare.lib.app.api.operation.TransactionType; -import io.kumare.lib.app.api.security.PermissionReference; -// app -import io.kumare.iqr.app.endpoint.rest.AppEndpointRest; -import io.kumare.iqr.app.action.*; -// module -import io.kumare.iqr.mod.biz.BizPermissions; -import io.kumare.iqr.mod.biz.store.businessworker.BusinessWorkerEntity; -import io.kumare.iqr.mod.biz.action.businessworker.*; - -/** -* -* @author afatecha -*/ -public abstract class AbstractBusinessWorkerRest extends AppEndpointRest { - - // ::: DEFAULT PERMISSIONS - // - protected PermissionReference getPermission(String action, String ref, Object extra) { - switch (action) { - case null -> { - return null; - } - case "add" -> { - return BizPermissions.business_worker_worker.toReference(ref); - } - case "edit" -> { - return BizPermissions.business_worker_worker.toReference(ref); - } - case "enable" -> { - return BizPermissions.business_worker_manager.toReference(ref); - } - case "disable" -> { - return BizPermissions.business_worker_manager.toReference(ref); - } - case "delete" -> { - return BizPermissions.business_worker_manager.toReference(ref); - } - case "find" -> { - return BizPermissions.business_worker_viewer.toReference(ref); - } - case "list" -> { - return BizPermissions.business_worker_viewer.toReference(ref); - } - default -> { - return null; - } - } - } - - - // ::: ADD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "business worker add operation", description = "") - // - @PostMapping - public ResponseEntity add(@RequestBody BusinessWorkerAddArgument arg) { - - var permission = getPermission("add", null, arg); - return handle(new BusinessWorkerAddAction(), arg, permission, TransactionType.service); - } - - // ::: EDIT - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "business worker edit operation", description = "") - // - @PutMapping("/{id}") - public ResponseEntity edit(@PathVariable("id") String id, - @RequestBody BusinessWorkerEditArgument arg) { - - arg.getEntity().id(id); - - var permission = getPermission("edit", id, arg); - return handle(new BusinessWorkerEditAction(), arg, permission, TransactionType.service); - } - - // ::: FIND - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "business worker find operation", description = "") - // - @GetMapping("/{id}") - public ResponseEntity find(@PathVariable("id") String id, - @ModelAttribute BusinessWorkerActionArgument arg) { - - - arg = arg == null ? new BusinessWorkerActionArgument() : arg; - - arg.entity(new BusinessWorkerEntity(id)); - - var permission = getPermission("find", id, arg); - return handle(new BusinessWorkerFindAction(), arg, permission); - } - - // ::: ENABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "business worker enable operation", description = "") - // - @PutMapping("/{id}/enable") - public ResponseEntity enable(@PathVariable("id") String id) { - - var arg = new BusinessWorkerActionArgument(); - arg.setEntity(new BusinessWorkerEntity(id)); - arg.getEntity().setActive(true); - - var permission = getPermission("disable", id, arg); - return handle(new BusinessWorkerEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: DISABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "business worker disable operation", description = "") - // - @PutMapping("/{id}/disable") - public ResponseEntity disable(@PathVariable("id") String id) { - - var arg = new BusinessWorkerActionArgument(); - arg.setEntity(new BusinessWorkerEntity(id)); - arg.getEntity().setActive(false); - - var permission = getPermission("disable", id, arg); - return handle(new BusinessWorkerEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: LIST - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "business worker list operation", description = "") - // - @GetMapping - public ResponseEntity list(@ModelAttribute BusinessWorkerListArgument arg) { - - arg = arg == null ? new BusinessWorkerListArgument() : arg; - - var permission = getPermission("list", null, arg); - return handle(new BusinessWorkerListAction(), arg, permission); - } - - // ::: DELETE - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "business worker delete operation", description = "") - // - @DeleteMapping("/{id}") - public ResponseEntity delete(@PathVariable("id") String id) { - - var arg = new BusinessWorkerActionArgument(); - - arg.setEntity(new BusinessWorkerEntity(id)); - - var permission = getPermission("delete", id, arg); - return handle(new BusinessWorkerDeleteAction(), arg, permission, TransactionType.service); - } - - // ::: PRELOAD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "business worker preload operation", description = "") - // - @PostMapping("/preload") - public ResponseEntity preload(@RequestBody BusinessWorkerPreloadArgument arg) { - - var permission = getPermission(arg.getAction(), null, arg); - return handle(new BusinessWorkerPreloadAction(), arg, permission); - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/BizTaxonomyRest.java b/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/BizTaxonomyRest.java deleted file mode 100644 index b0e43c8..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/BizTaxonomyRest.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.endpoint.rest; - -// java -import io.kumare.iqr.mod.taxonomy.endpoint.rest.AbstractTaxonRest; -import io.swagger.v3.oas.annotations.tags.*; -// spring -import org.springframework.web.bind.annotation.*; - -/** -* -* @author afatecha -*/ - -// openapi -@Tag(name = "workforce taxonomy rest endpoint") -// -@RestController -@RequestMapping("/biz/{taxaKey}-taxons") -public class BizTaxonomyRest extends AbstractTaxonRest { - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/BusinessImageRest.java b/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/BusinessImageRest.java deleted file mode 100644 index a67f3e7..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/BusinessImageRest.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.endpoint.rest; - -// java -import io.swagger.v3.oas.annotations.tags.*; -// spring -import org.springframework.web.bind.annotation.*; - -/** -* -* @author afatecha -*/ - -// openapi -//@Tag(name = "business image rest endpoint") -// -//@RestController -//@RequestMapping("/biz/business/{businessId}/images") -public class BusinessImageRest extends AbstractBusinessImageRest { - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/BusinessProfileRest.java b/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/BusinessProfileRest.java deleted file mode 100644 index ddd6333..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/BusinessProfileRest.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.endpoint.rest; - -// java -import io.swagger.v3.oas.annotations.tags.*; -// spring -import org.springframework.web.bind.annotation.*; - -/** -* -* @author afatecha -*/ - -// openapi -//@Tag(name = "business profile rest endpoint") -// -//@RestController -//@RequestMapping("/biz/business-profiles") -public class BusinessProfileRest extends AbstractBusinessProfileRest { - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/BusinessPromoItemRest.java b/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/BusinessPromoItemRest.java deleted file mode 100644 index 993f2ce..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/BusinessPromoItemRest.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.endpoint.rest; - -// java -import io.swagger.v3.oas.annotations.tags.*; -// spring -import org.springframework.web.bind.annotation.*; - -/** -* -* @author afatecha -*/ - -// openapi -//@Tag(name = "business promo item rest endpoint") -// -//@RestController -//@RequestMapping("/biz/business-promo-items") -public class BusinessPromoItemRest extends AbstractBusinessPromoItemRest { - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/BusinessPromoRest.java b/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/BusinessPromoRest.java deleted file mode 100644 index 7d0aa0b..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/BusinessPromoRest.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.endpoint.rest; - -// java -import io.swagger.v3.oas.annotations.tags.*; -// spring -import org.springframework.web.bind.annotation.*; - -/** -* -* @author afatecha -*/ - -// openapi -//@Tag(name = "business promo rest endpoint") -// -//@RestController -//@RequestMapping("/biz/business-promos") -public class BusinessPromoRest extends AbstractBusinessPromoRest { - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/BusinessRest.java b/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/BusinessRest.java deleted file mode 100644 index 5239425..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/BusinessRest.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.endpoint.rest; - -// java -import io.swagger.v3.oas.annotations.tags.*; -// spring -import org.springframework.web.bind.annotation.*; - -/** -* -* @author afatecha -*/ - -// openapi -@Tag(name = "business rest endpoint") -// -@RestController -@RequestMapping("/biz/businesses") -public class BusinessRest extends AbstractBusinessRest { - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/BusinessSettingRest.java b/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/BusinessSettingRest.java deleted file mode 100644 index 7f8183c..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/BusinessSettingRest.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.endpoint.rest; - -// java -import io.swagger.v3.oas.annotations.tags.*; -// spring -import org.springframework.web.bind.annotation.*; - -/** -* -* @author afatecha -*/ - -// openapi -//@Tag(name = "business setting rest endpoint") -// -//@RestController -//@RequestMapping("/biz/business-settings") -public class BusinessSettingRest extends AbstractBusinessSettingRest { - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/BusinessTagRest.java b/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/BusinessTagRest.java deleted file mode 100644 index 4df3a61..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/BusinessTagRest.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.endpoint.rest; - -// java -import io.swagger.v3.oas.annotations.tags.*; -// spring -import org.springframework.web.bind.annotation.*; - -/** -* -* @author afatecha -*/ - -// openapi -//@Tag(name = "business tag rest endpoint") -// -//@RestController -//@RequestMapping("/biz/business-tags") -public class BusinessTagRest extends AbstractBusinessTagRest { - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/BusinessWorkerRest.java b/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/BusinessWorkerRest.java deleted file mode 100644 index 6bece42..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/endpoint/rest/BusinessWorkerRest.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.endpoint.rest; - -// java -import io.swagger.v3.oas.annotations.tags.*; -// spring -import org.springframework.web.bind.annotation.*; - -/** -* -* @author afatecha -*/ - -// openapi -//@Tag(name = "business worker rest endpoint") -// -//@RestController -//@RequestMapping("/biz/business-workers") -public class BusinessWorkerRest extends AbstractBusinessWorkerRest { - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/BizEntities.java b/src/main/java/io/kumare/iqr/mod/biz/store/BizEntities.java deleted file mode 100644 index 2060c8f..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/BizEntities.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store; - -// base -// base -import io.kumare.lib.app.api.module.ServiceModule; -import io.kumare.lib.app.api.store.EntityStore; -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app -import io.kumare.iqr.app.AppEngine; -import io.kumare.iqr.app.module.AppModules; -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; -import io.kumare.iqr.mod.biz.store.business.BusinessStore; -import io.kumare.iqr.mod.biz.store.businessprofile.BusinessProfileEntity; -import io.kumare.iqr.mod.biz.store.businessprofile.BusinessProfileStore; -import io.kumare.iqr.mod.biz.store.businesssetting.BusinessSettingEntity; -import io.kumare.iqr.mod.biz.store.businesssetting.BusinessSettingStore; -import io.kumare.iqr.mod.biz.store.businesspromo.BusinessPromoEntity; -import io.kumare.iqr.mod.biz.store.businesspromo.BusinessPromoStore; -import io.kumare.iqr.mod.biz.store.businesspromoitem.BusinessPromoItemEntity; -import io.kumare.iqr.mod.biz.store.businesspromoitem.BusinessPromoItemStore; -import io.kumare.iqr.mod.biz.store.businessimage.BusinessImageEntity; -import io.kumare.iqr.mod.biz.store.businessimage.BusinessImageStore; -import io.kumare.iqr.mod.biz.store.businessworker.BusinessWorkerEntity; -import io.kumare.iqr.mod.biz.store.businessworker.BusinessWorkerStore; -import io.kumare.iqr.mod.biz.store.businesstag.BusinessTagEntity; -import io.kumare.iqr.mod.biz.store.businesstag.BusinessTagStore; - - -/** - * - * @author afatecha - */ -public enum BizEntities implements EntityDescriptor { - - business(BusinessEntity.class, BusinessStore.class), - businessProfile(BusinessProfileEntity.class, BusinessProfileStore.class), - businessSetting(BusinessSettingEntity.class, BusinessSettingStore.class), - businessPromo(BusinessPromoEntity.class, BusinessPromoStore.class), - businessPromoItem(BusinessPromoItemEntity.class, BusinessPromoItemStore.class), - businessImage(BusinessImageEntity.class, BusinessImageStore.class), - businessWorker(BusinessWorkerEntity.class, BusinessWorkerStore.class), - businessTag(BusinessTagEntity.class, BusinessTagStore.class); - - // ::: vars - // - private final Class entityClass; - private final Class storeClass; - - // ::: constructor - // - BizEntities(Class entityClass, Class storeClass) { - this.entityClass = entityClass; - this.storeClass = storeClass; - } - - // ::: entity descriptor api - // - @Override - public String getName() { - return name(); - } - - @Override - public ServiceModule getModule() { - return AppModules.biz; - } - - @Override - public Class getEntityClass() { - return entityClass; - } - - @Override - public Class getStoreClass() { - return storeClass; - } - - @Override - public EntityStore getStore() { - return (EntityStore) AppEngine.getEngine().getInnerContext().getBean(storeClass); - } - - // ::: statics - // - public static boolean hasDescriptor(String name) { - try { - var value = valueOf(name); - return value != null; - - } catch (Throwable t) { - return false; - } - } - - public static EntityDescriptor descriptorOf(String name) { - try { - return valueOf(name); - - } catch (Throwable t) { - return null; - } - } - - public static EntityDescriptor descriptorOf(Class entityClass) { - try { - for (var i : values()) { - if (i.entityClass == entityClass) { - return i; - } - } - - } catch (Throwable t) { - } - - return null; - } -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/BizTaxonomies.java b/src/main/java/io/kumare/iqr/mod/biz/store/BizTaxonomies.java deleted file mode 100644 index a5ff9fa..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/BizTaxonomies.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store; - -// base -import io.kumare.lib.app.api.Context; -import io.kumare.lib.v.ExceptionPrototype; -// app -import io.kumare.iqr.app.module.AppModules; -import io.kumare.iqr.mod.biz.BizErrors; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; -import java.util.List; - -/** - * - * @author administrador - */ -public enum BizTaxonomies { - - businessActivity("business-activity", BizErrors.businessprofile_activity_notfound), - businessState("business-state", BizErrors.business_state_notfound), - businessPromoState("business-promo-state", BizErrors.businesspromo_state_notfound), - businessImageType("business-image-type", BizErrors.businessimage_type_notfound), - businessDefaultTag("business-default-tag", BizErrors.businesstag_notfound), - businessWorkerState("business-worker-state", BizErrors.businessworker_state_notfound), - businessWorkerRole("business-worker-role", BizErrors.businessworker_role_notfound); - - // ::: - // - private final String taxaKey; - private final ExceptionPrototype proto; - - // ::: constructor - // - BizTaxonomies(String taxaKey, ExceptionPrototype proto) { - this.taxaKey = taxaKey; - this.proto = proto; - } - - public String getKey() { - return taxaKey; - } - - // ::: ensure - // - public TaxonEntity ensure(Context context, TaxonEntity taxon) { - return AppModules.taxonomy.getController().getTaxonStore() - .ensure(context, taxaKey, taxon, proto); - } - - public TaxonEntity ensureById(Context context, String taxonId) { - return AppModules.taxonomy.getController().getTaxonStore() - .ensureById(context, taxaKey, taxonId, proto); - } - - public TaxonEntity ensureByKey(Context context, String key) { - return AppModules.taxonomy.getController().getTaxonStore() - .ensureByKey(context, taxaKey, key, proto); - } - - public TaxonEntity ensureByValue(Context context, String value) { - return AppModules.taxonomy.getController().getTaxonStore() - .ensureByValue(context, taxaKey, value, proto); - } - - // ::: find - // - public TaxonEntity findById(Context context, String taxonId) { - return AppModules.taxonomy.getController() - .getTaxonStore() - .findById(context, taxaKey, taxonId); - } - - public TaxonEntity findByKey(Context context, String key) { - return AppModules.taxonomy.getController() - .getTaxonStore() - .findByKey(context, taxaKey, key); - } - - public TaxonEntity findByValue(Context context, String value) { - return AppModules.taxonomy.getController() - .getTaxonStore() - .findByValue(context, taxaKey, value); - } - - // ::: list - // - public List list(Context context) { - return AppModules.taxonomy.getController() - .getTaxonStore() - .listByTaxaKey(context, taxaKey); - } - - // ::: default - // - public TaxonEntity ensureDefault(Context context) { - return AppModules.taxonomy.getController() - .getTaxonStore() - .ensureDefault(context, taxaKey, proto); - } - - public TaxonEntity findDefault(Context context) { - return AppModules.taxonomy.getController() - .getTaxonStore() - .findDefault(context, taxaKey); - } - - // ::: statics - // - public static boolean hasTaxaKey(String taxaKey) { - for (var i : values()) { - if (i.getKey().equals(taxaKey)) { - return true; - } - } - - return false; - } -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/BizWorkerRoles.java b/src/main/java/io/kumare/iqr/mod/biz/store/BizWorkerRoles.java deleted file mode 100644 index 44ece8f..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/BizWorkerRoles.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - */ -package io.kumare.iqr.mod.biz.store; - -/** - * - * @author administrador - */ -public enum BizWorkerRoles { - - manager("manager-role"), - worker("worker-role"); - - // ::: implementation - // - private final String key; - - // ::: constructor - // - BizWorkerRoles(String key) { - this.key = key; - } - - // ::: api - // - public String getKey() { - return key; - } -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/business/BusinessData.java b/src/main/java/io/kumare/iqr/mod/biz/store/business/BusinessData.java deleted file mode 100644 index 49dd874..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/business/BusinessData.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.business; - -// base -import io.kumare.iqr.app.store.AppExtendedEntityData; -// imports - - -public class BusinessData extends AppExtendedEntityData { - - // ::: vars - // - - - // ::: fields - // - - - // ::: fluent - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/business/BusinessEntity.java b/src/main/java/io/kumare/iqr/mod/biz/store/business/BusinessEntity.java deleted file mode 100644 index bafa2e8..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/business/BusinessEntity.java +++ /dev/null @@ -1,137 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.business; - -// jakarta -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.Index; -import jakarta.persistence.ManyToOne; -import jakarta.persistence.Table; -// base -import io.kumare.lib.app.api.store.*; -import io.kumare.iqr.app.store.*; -// imports - -// relations -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; - -// annotations -@Entity -@Table( - name = "business", - indexes = { - @Index(name = "idx_business_entity_key", columnList = "entityKey"), - @Index(name = "idx_business_alias", columnList = "alias"), - @Index(name = "idx_business_state_value", columnList = "stateValue"), - @Index(name = "idx_business_name", columnList = "name"), - @Index(name = "idx_business_description", columnList = "description") - } -) -public class BusinessEntity extends AppEntity implements SupportedEntityKey { - - // ::: vars - // - private String entityKey; - private String alias; - private String stateValue; - private String name; - private String description; - @ManyToOne(fetch = FetchType.LAZY) - private TaxonEntity state; - - // ::: constructors - // - public BusinessEntity() { - } - - public BusinessEntity(String id) { - super(id); - } - - // ::: fields - // - @Override - public String getEntityKey() { - return entityKey; - } - - @Override - public void setEntityKey(String entityKey) { - this.entityKey = entityKey; - } - - public String getAlias() { - return alias; - } - - public void setAlias(String alias) { - this.alias = alias; - } - - public String getStateValue() { - return stateValue; - } - - public void setStateValue(String stateValue) { - this.stateValue = stateValue; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public TaxonEntity getState() { - return state; - } - - public void setState(TaxonEntity state) { - this.state = state; - } - - // ::: fluent - // - public BusinessEntity entityKey(String entityKey) { - setEntityKey(entityKey); - return this; - } - - public BusinessEntity alias(String alias) { - setAlias(alias); - return this; - } - - public BusinessEntity stateValue(String stateValue) { - setStateValue(stateValue); - return this; - } - - public BusinessEntity name(String name) { - setName(name); - return this; - } - - public BusinessEntity description(String description) { - setDescription(description); - return this; - } - - public BusinessEntity state(TaxonEntity state) { - setState(state); - return this; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/business/BusinessFields.java b/src/main/java/io/kumare/iqr/mod/biz/store/business/BusinessFields.java deleted file mode 100644 index acb59cc..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/business/BusinessFields.java +++ /dev/null @@ -1,151 +0,0 @@ -/* - */ -package io.kumare.iqr.mod.biz.store.business; - -// java -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -// base -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app -import io.kumare.iqr.mod.taxonomy.store.TaxonomyEntities; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonFields; - -/** - * - * @author afatecha - */ -public enum BusinessFields implements EntityFieldDescriptor { - - id(MAIN, FIND, LIST), - entityKey(MAIN, FIND, LIST), - alias(MAIN, FIND, LIST), - stateValue(MAIN, FIND, LIST), - name(MAIN, FIND, LIST), - description(MAIN, FIND, LIST), - active(MAIN, FIND, LIST), - inserted(AUDIT, FIND, LIST), - inserter(AUDIT, FIND, LIST), - modified(AUDIT, FIND), - modifier(AUDIT, FIND), - deleted(AUDIT), - removed(AUDIT), - remover(AUDIT), - state(TaxonomyEntities.taxon, TaxonFields.class, FIND, LIST); - - // ::: vars - // - private final boolean relation; - private final EntityDescriptor entityDescriptor; - private final Class enumClass; - private final List groups; - - // ::: constructors - // - BusinessFields(String... groups) { - this(false, null, null, groups); - } - - BusinessFields(EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this(true, entityDescriptor, enumClass, groups); - } - - BusinessFields(boolean relation, EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this.relation = relation; - this.entityDescriptor = entityDescriptor; - this.enumClass = enumClass; - this.groups = groups == null ? Collections.EMPTY_LIST : Arrays.asList(groups); - } - - // ::: api - // - @Override - public String getName() { - return name(); - } - - @Override - public boolean isRelation() { - return relation; - } - - @Override - public Class getRelationEnumClass() { - return enumClass; - } - - @Override - public List getGroups() { - return groups; - } - - @Override - public EntityDescriptor getEntityDescriptor() { - return entityDescriptor; - } - - @Override - public Object fetchValue(BusinessEntity entity) { - if (entity == null) { - return null; - } - - switch (this) { - case null -> { - return null; - } - case id -> { - return entity.getId(); - } - case entityKey ->{ - return entity.getEntityKey(); - } - case alias ->{ - return entity.getAlias(); - } - case stateValue ->{ - return entity.getStateValue(); - } - case name ->{ - return entity.getName(); - } - case description ->{ - return entity.getDescription(); - } - case active -> { - return entity.isActive(); - } - case inserted -> { - return entity.getInserted(); - } - case inserter -> { - return entity.getInserter(); - } - case modified -> { - return entity.getModified(); - } - case modifier -> { - return entity.getModifier(); - } - case deleted -> { - return entity.isDeleted(); - } - case removed -> { - return entity.getRemoved(); - } - case remover -> { - return entity.getRemover(); - } - case state ->{ - return entity.getState(); - } - default -> { - return null; - } - } - - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/business/BusinessMapBuilder.java b/src/main/java/io/kumare/iqr/mod/biz/store/business/BusinessMapBuilder.java deleted file mode 100644 index 076b8fd..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/business/BusinessMapBuilder.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.business; - -// java -import java.util.List; -import java.util.Map; -// base -import io.kumare.lib.app.api.Context; -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.BaseEntityMapBuilder; -// app -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonMapBuilder; - -/** - * - * @author afatecha - */ -public class BusinessMapBuilder extends BaseEntityMapBuilder { - - // ::: vars - // - private TaxonMapBuilder stateBuilder; - - - // ::: fields - // - @Override - public BusinessMapBuilder addGroup(String name, boolean cascade) { - includes.addAll(EntityFieldDescriptor.group(BusinessFields.values(), name)); - - if(cascade) { - if (includes.contains(BusinessFields.state)) { - getStateBuilder().addGroup(name); - } - } - return this; - } - - @Override - public BusinessMapBuilder add(String fieldName) { - includes.add(BusinessFields.valueOf(fieldName)); - return this; - } - - @Override - public BusinessMapBuilder addAll(String... names) { - for (var i : names) { - includes.add(BusinessFields.valueOf(i)); - } - return this; - } - - @Override - public BusinessMapBuilder remove(String fieldName) { - excludes.add(BusinessFields.valueOf(fieldName)); - return this; - } - - @Override - public BusinessMapBuilder removeAll(String... names) { - for (var i : names) { - excludes.add(BusinessFields.valueOf(i)); - } - return this; - } - - // ::: relations - // - @Override - public BusinessMapBuilder addPlains(boolean cascade) { - includes.addAll(EntityFieldDescriptor.plains(BusinessFields.values())); - - if(cascade) { - if (includes.contains(BusinessFields.state)) { - getStateBuilder().addPlains(); - } - } - return this; - } - - @Override - public BusinessMapBuilder addRelations(boolean cascade) { - includes.addAll(EntityFieldDescriptor.relations(BusinessFields.values())); - - if(cascade) { - if (includes.contains(BusinessFields.state)) { - getStateBuilder().addRelations(); - } - } - return this; - } - - // ::: state - // - public BusinessMapBuilder addState() { - return addState(null); - } - - public BusinessMapBuilder addState(String group) { - return addState(group, false); - } - - public BusinessMapBuilder addState(String group, boolean cascade) { - includes.add(BusinessFields.state); - - if (group != null) { - getStateBuilder().addGroup(group); - } - - return this; - } - - public TaxonMapBuilder getStateBuilder() { - if(stateBuilder == null) { - stateBuilder = new TaxonMapBuilder(); - } - return stateBuilder; - } - - // ::: internals - // - @Override - protected void internalAttachRelations(Context context, - BusinessEntity entity, - List fields, - Map resultMap) { - - if (fields.contains(BusinessFields.state)) { - attachRelation(context, - entity, - BusinessFields.state, - getStateBuilder(), - resultMap); - } - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/business/BusinessRepository.java b/src/main/java/io/kumare/iqr/mod/biz/store/business/BusinessRepository.java deleted file mode 100644 index 9e9d969..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/business/BusinessRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.business; - -// spring -import org.springframework.stereotype.Repository; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Repository -public interface BusinessRepository extends AppKeyEntityRepository{ - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/business/BusinessStore.java b/src/main/java/io/kumare/iqr/mod/biz/store/business/BusinessStore.java deleted file mode 100644 index 9b92a4c..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/business/BusinessStore.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.business; - -// spring -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Service -public class BusinessStore extends AppKeyEntityStore { - - // ::: vars - // - @Autowired - private BusinessRepository repository; - - // ::: override - // - @Override - public BusinessRepository getRepository() { - return repository; - } - - // ::: api - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businessimage/BusinessImageData.java b/src/main/java/io/kumare/iqr/mod/biz/store/businessimage/BusinessImageData.java deleted file mode 100644 index 1825e58..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businessimage/BusinessImageData.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businessimage; - -// base -import io.kumare.iqr.app.store.AppExtendedEntityData; -// imports - - -public class BusinessImageData extends AppExtendedEntityData { - - // ::: vars - // - - - // ::: fields - // - - - // ::: fluent - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businessimage/BusinessImageEntity.java b/src/main/java/io/kumare/iqr/mod/biz/store/businessimage/BusinessImageEntity.java deleted file mode 100644 index a769c78..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businessimage/BusinessImageEntity.java +++ /dev/null @@ -1,109 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businessimage; - -// jakarta -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.Index; -import jakarta.persistence.ManyToOne; -import jakarta.persistence.Table; -// base -import io.kumare.lib.app.api.store.*; -import io.kumare.iqr.app.store.*; -// imports - -// relations -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; - -// annotations -@Entity -@Table( - name = "business_image", - indexes = { - @Index(name = "idx_business_image_type_value", columnList = "typeValue"), - @Index(name = "idx_business_image_bytes", columnList = "bytes") - } -) -public class BusinessImageEntity extends AppEntity { - - // ::: vars - // - private String typeValue; - private byte[] bytes; - // relations - @ManyToOne(fetch = FetchType.LAZY) - private BusinessEntity business; - @ManyToOne(fetch = FetchType.LAZY) - private TaxonEntity type; - - // ::: constructors - // - public BusinessImageEntity() { - } - - public BusinessImageEntity(String id) { - super(id); - } - - // ::: fields - // - public String getTypeValue() { - return typeValue; - } - - public void setTypeValue(String typeValue) { - this.typeValue = typeValue; - } - - public byte[] getBytes() { - return bytes; - } - - public void setBytes(byte[] bytes) { - this.bytes = bytes; - } - - // relations - public BusinessEntity getBusiness() { - return business; - } - - public void setBusiness(BusinessEntity business) { - this.business = business; - } - - public TaxonEntity getType() { - return type; - } - - public void setType(TaxonEntity type) { - this.type = type; - } - - // ::: fluent - // - public BusinessImageEntity typeValue(String typeValue) { - setTypeValue(typeValue); - return this; - } - - public BusinessImageEntity bytes(byte[] bytes) { - setBytes(bytes); - return this; - } - - // relations - public BusinessImageEntity business(BusinessEntity business) { - setBusiness(business); - return this; - } - - public BusinessImageEntity type(TaxonEntity type) { - setType(type); - return this; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businessimage/BusinessImageFields.java b/src/main/java/io/kumare/iqr/mod/biz/store/businessimage/BusinessImageFields.java deleted file mode 100644 index 13d03d7..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businessimage/BusinessImageFields.java +++ /dev/null @@ -1,145 +0,0 @@ -/* - */ -package io.kumare.iqr.mod.biz.store.businessimage; - -// java -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -// base -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app -import io.kumare.iqr.mod.biz.store.BizEntities; -import io.kumare.iqr.mod.biz.store.business.BusinessFields; -import io.kumare.iqr.mod.taxonomy.store.TaxonomyEntities; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonFields; - -/** - * - * @author afatecha - */ -public enum BusinessImageFields implements EntityFieldDescriptor { - - id(MAIN, FIND, LIST), - typeValue(MAIN, FIND, LIST), - bytes(MAIN, FIND, LIST), - active(MAIN, FIND, LIST), - inserted(AUDIT, FIND, LIST), - inserter(AUDIT, FIND, LIST), - modified(AUDIT, FIND), - modifier(AUDIT, FIND), - deleted(AUDIT), - removed(AUDIT), - remover(AUDIT), - business(BizEntities.business, BusinessFields.class, FIND, LIST), - type(TaxonomyEntities.taxon, TaxonFields.class, FIND, LIST); - - // ::: vars - // - private final boolean relation; - private final EntityDescriptor entityDescriptor; - private final Class enumClass; - private final List groups; - - // ::: constructors - // - BusinessImageFields(String... groups) { - this(false, null, null, groups); - } - - BusinessImageFields(EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this(true, entityDescriptor, enumClass, groups); - } - - BusinessImageFields(boolean relation, EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this.relation = relation; - this.entityDescriptor = entityDescriptor; - this.enumClass = enumClass; - this.groups = groups == null ? Collections.EMPTY_LIST : Arrays.asList(groups); - } - - // ::: api - // - @Override - public String getName() { - return name(); - } - - @Override - public boolean isRelation() { - return relation; - } - - @Override - public Class getRelationEnumClass() { - return enumClass; - } - - @Override - public List getGroups() { - return groups; - } - - @Override - public EntityDescriptor getEntityDescriptor() { - return entityDescriptor; - } - - @Override - public Object fetchValue(BusinessImageEntity entity) { - if (entity == null) { - return null; - } - - switch (this) { - case null -> { - return null; - } - case id -> { - return entity.getId(); - } - case typeValue ->{ - return entity.getTypeValue(); - } - case bytes ->{ - return entity.getBytes(); - } - case active -> { - return entity.isActive(); - } - case inserted -> { - return entity.getInserted(); - } - case inserter -> { - return entity.getInserter(); - } - case modified -> { - return entity.getModified(); - } - case modifier -> { - return entity.getModifier(); - } - case deleted -> { - return entity.isDeleted(); - } - case removed -> { - return entity.getRemoved(); - } - case remover -> { - return entity.getRemover(); - } - case business ->{ - return entity.getBusiness(); - } - case type ->{ - return entity.getType(); - } - default -> { - return null; - } - } - - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businessimage/BusinessImageMapBuilder.java b/src/main/java/io/kumare/iqr/mod/biz/store/businessimage/BusinessImageMapBuilder.java deleted file mode 100644 index ef25c6d..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businessimage/BusinessImageMapBuilder.java +++ /dev/null @@ -1,185 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businessimage; - -// java -import java.util.List; -import java.util.Map; -// base -import io.kumare.lib.app.api.Context; -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.BaseEntityMapBuilder; -// app -import io.kumare.iqr.mod.biz.store.business.BusinessMapBuilder; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonMapBuilder; - -/** - * - * @author afatecha - */ -public class BusinessImageMapBuilder extends BaseEntityMapBuilder { - - // ::: vars - // - private BusinessMapBuilder businessBuilder; - private TaxonMapBuilder typeBuilder; - - - // ::: fields - // - @Override - public BusinessImageMapBuilder addGroup(String name, boolean cascade) { - includes.addAll(EntityFieldDescriptor.group(BusinessImageFields.values(), name)); - - if(cascade) { - if (includes.contains(BusinessImageFields.business)) { - getBusinessBuilder().addGroup(name); - } - if (includes.contains(BusinessImageFields.type)) { - getTypeBuilder().addGroup(name); - } - } - return this; - } - - @Override - public BusinessImageMapBuilder add(String fieldName) { - includes.add(BusinessImageFields.valueOf(fieldName)); - return this; - } - - @Override - public BusinessImageMapBuilder addAll(String... names) { - for (var i : names) { - includes.add(BusinessImageFields.valueOf(i)); - } - return this; - } - - @Override - public BusinessImageMapBuilder remove(String fieldName) { - excludes.add(BusinessImageFields.valueOf(fieldName)); - return this; - } - - @Override - public BusinessImageMapBuilder removeAll(String... names) { - for (var i : names) { - excludes.add(BusinessImageFields.valueOf(i)); - } - return this; - } - - // ::: relations - // - @Override - public BusinessImageMapBuilder addPlains(boolean cascade) { - includes.addAll(EntityFieldDescriptor.plains(BusinessImageFields.values())); - - if(cascade) { - if (includes.contains(BusinessImageFields.business)) { - getBusinessBuilder().addPlains(); - } - if (includes.contains(BusinessImageFields.type)) { - getTypeBuilder().addPlains(); - } - } - return this; - } - - @Override - public BusinessImageMapBuilder addRelations(boolean cascade) { - includes.addAll(EntityFieldDescriptor.relations(BusinessImageFields.values())); - - if(cascade) { - if (includes.contains(BusinessImageFields.business)) { - getBusinessBuilder().addRelations(); - } - if (includes.contains(BusinessImageFields.type)) { - getTypeBuilder().addRelations(); - } - } - return this; - } - - // ::: business - // - public BusinessImageMapBuilder addBusiness() { - return addBusiness(null); - } - - public BusinessImageMapBuilder addBusiness(String group) { - return addBusiness(group, false); - } - - public BusinessImageMapBuilder addBusiness(String group, boolean cascade) { - includes.add(BusinessImageFields.business); - - if (group != null) { - getBusinessBuilder().addGroup(group); - } - - return this; - } - - public BusinessMapBuilder getBusinessBuilder() { - if(businessBuilder == null) { - businessBuilder = new BusinessMapBuilder(); - } - return businessBuilder; - } - - - // ::: type - // - public BusinessImageMapBuilder addType() { - return addType(null); - } - - public BusinessImageMapBuilder addType(String group) { - return addType(group, false); - } - - public BusinessImageMapBuilder addType(String group, boolean cascade) { - includes.add(BusinessImageFields.type); - - if (group != null) { - getTypeBuilder().addGroup(group); - } - - return this; - } - - public TaxonMapBuilder getTypeBuilder() { - if(typeBuilder == null) { - typeBuilder = new TaxonMapBuilder(); - } - return typeBuilder; - } - - // ::: internals - // - @Override - protected void internalAttachRelations(Context context, - BusinessImageEntity entity, - List fields, - Map resultMap) { - - if (fields.contains(BusinessImageFields.business)) { - attachRelation(context, - entity, - BusinessImageFields.business, - getBusinessBuilder(), - resultMap); - } - if (fields.contains(BusinessImageFields.type)) { - attachRelation(context, - entity, - BusinessImageFields.type, - getTypeBuilder(), - resultMap); - } - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businessimage/BusinessImageRepository.java b/src/main/java/io/kumare/iqr/mod/biz/store/businessimage/BusinessImageRepository.java deleted file mode 100644 index 5af0311..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businessimage/BusinessImageRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businessimage; - -// spring -import org.springframework.stereotype.Repository; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Repository -public interface BusinessImageRepository extends AppEntityRepository{ - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businessimage/BusinessImageStore.java b/src/main/java/io/kumare/iqr/mod/biz/store/businessimage/BusinessImageStore.java deleted file mode 100644 index 4a0d9bb..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businessimage/BusinessImageStore.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businessimage; - -// spring -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Service -public class BusinessImageStore extends AppEntityStore { - - // ::: vars - // - @Autowired - private BusinessImageRepository repository; - - // ::: override - // - @Override - public BusinessImageRepository getRepository() { - return repository; - } - - // ::: api - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businessprofile/BusinessProfileData.java b/src/main/java/io/kumare/iqr/mod/biz/store/businessprofile/BusinessProfileData.java deleted file mode 100644 index 95ed7df..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businessprofile/BusinessProfileData.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businessprofile; - -// base -import io.kumare.iqr.app.store.AppExtendedEntityData; -// imports - - -public class BusinessProfileData extends AppExtendedEntityData { - - // ::: vars - // - - - // ::: fields - // - - - // ::: fluent - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businessprofile/BusinessProfileEntity.java b/src/main/java/io/kumare/iqr/mod/biz/store/businessprofile/BusinessProfileEntity.java deleted file mode 100644 index 6f12ac2..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businessprofile/BusinessProfileEntity.java +++ /dev/null @@ -1,200 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businessprofile; - -// jakarta -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.Index; -import jakarta.persistence.ManyToOne; -import jakarta.persistence.Table; -// base -import io.kumare.lib.app.api.store.*; -import io.kumare.iqr.app.store.*; -// imports - -// relations -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; -import io.kumare.iqr.mod.biz.store.businessimage.BusinessImageEntity; - -// annotations -@Entity -@Table( - name = "business_profile", - indexes = { - @Index(name = "idx_business_profile_activity_value", columnList = "activityValue"), - @Index(name = "idx_business_profile_gps_latitude", columnList = "gpsLatitude"), - @Index(name = "idx_business_profile_gps_longitude", columnList = "gpsLongitude"), - @Index(name = "idx_business_profile_website", columnList = "website"), - @Index(name = "idx_business_profile_phone", columnList = "phone"), - @Index(name = "idx_business_profile_address", columnList = "address"), - @Index(name = "idx_business_profile_extra_info", columnList = "extraInfo"), - @Index(name = "idx_business_profile_description", columnList = "description") - } -) -public class BusinessProfileEntity extends AppEntity { - - // ::: vars - // - private String activityValue; - private String gpsLatitude; - private String gpsLongitude; - private String website; - private String phone; - private String address; - private String extraInfo; - private String description; - // relations - @ManyToOne(fetch = FetchType.LAZY) - private BusinessEntity business; - @ManyToOne(fetch = FetchType.LAZY) - private TaxonEntity activity; - - // ::: constructors - // - public BusinessProfileEntity() { - } - - public BusinessProfileEntity(String id) { - super(id); - } - - // ::: fields - // - public String getActivityValue() { - return activityValue; - } - - public void setActivityValue(String activityValue) { - this.activityValue = activityValue; - } - - public String getGpsLatitude() { - return gpsLatitude; - } - - public void setGpsLatitude(String gpsLatitude) { - this.gpsLatitude = gpsLatitude; - } - - public String getGpsLongitude() { - return gpsLongitude; - } - - public void setGpsLongitude(String gpsLongitude) { - this.gpsLongitude = gpsLongitude; - } - - public String getWebsite() { - return website; - } - - public void setWebsite(String website) { - this.website = website; - } - - public String getPhone() { - return phone; - } - - public void setPhone(String phone) { - this.phone = phone; - } - - public String getAddress() { - return address; - } - - public void setAddress(String address) { - this.address = address; - } - - public String getExtraInfo() { - return extraInfo; - } - - public void setExtraInfo(String extraInfo) { - this.extraInfo = extraInfo; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - // relations - public BusinessEntity getBusiness() { - return business; - } - - public void setBusiness(BusinessEntity business) { - this.business = business; - } - - public TaxonEntity getActivity() { - return activity; - } - - public void setActivity(TaxonEntity activity) { - this.activity = activity; - } - - // ::: fluent - // - public BusinessProfileEntity activityValue(String activityValue) { - setActivityValue(activityValue); - return this; - } - - public BusinessProfileEntity gpsLatitude(String gpsLatitude) { - setGpsLatitude(gpsLatitude); - return this; - } - - public BusinessProfileEntity gpsLongitude(String gpsLongitude) { - setGpsLongitude(gpsLongitude); - return this; - } - - public BusinessProfileEntity website(String website) { - setWebsite(website); - return this; - } - - public BusinessProfileEntity phone(String phone) { - setPhone(phone); - return this; - } - - public BusinessProfileEntity address(String address) { - setAddress(address); - return this; - } - - public BusinessProfileEntity extraInfo(String extraInfo) { - setExtraInfo(extraInfo); - return this; - } - - public BusinessProfileEntity description(String description) { - setDescription(description); - return this; - } - - // relations - public BusinessProfileEntity business(BusinessEntity business) { - setBusiness(business); - return this; - } - - public BusinessProfileEntity activity(TaxonEntity activity) { - setActivity(activity); - return this; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businessprofile/BusinessProfileFields.java b/src/main/java/io/kumare/iqr/mod/biz/store/businessprofile/BusinessProfileFields.java deleted file mode 100644 index 123a363..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businessprofile/BusinessProfileFields.java +++ /dev/null @@ -1,171 +0,0 @@ -/* - */ -package io.kumare.iqr.mod.biz.store.businessprofile; - -// java -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -// base -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app -import io.kumare.iqr.mod.biz.store.BizEntities; -import io.kumare.iqr.mod.biz.store.business.BusinessFields; -import io.kumare.iqr.mod.biz.store.BizEntities; -import io.kumare.iqr.mod.biz.store.businessimage.BusinessImageFields; -import io.kumare.iqr.mod.taxonomy.store.TaxonomyEntities; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonFields; - -/** - * - * @author afatecha - */ -public enum BusinessProfileFields implements EntityFieldDescriptor { - - id(MAIN, FIND, LIST), - activityValue(MAIN, FIND, LIST), - gpsLatitude(MAIN, FIND, LIST), - gpsLongitude(MAIN, FIND, LIST), - website(MAIN, FIND, LIST), - phone(MAIN, FIND, LIST), - address(MAIN, FIND, LIST), - extraInfo(MAIN, FIND, LIST), - description(MAIN, FIND, LIST), - active(MAIN, FIND, LIST), - inserted(AUDIT, FIND, LIST), - inserter(AUDIT, FIND, LIST), - modified(AUDIT, FIND), - modifier(AUDIT, FIND), - deleted(AUDIT), - removed(AUDIT), - remover(AUDIT), - business(BizEntities.business, BusinessFields.class, FIND, LIST), - activity(TaxonomyEntities.taxon, TaxonFields.class, FIND, LIST); - - // ::: vars - // - private final boolean relation; - private final EntityDescriptor entityDescriptor; - private final Class enumClass; - private final List groups; - - // ::: constructors - // - BusinessProfileFields(String... groups) { - this(false, null, null, groups); - } - - BusinessProfileFields(EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this(true, entityDescriptor, enumClass, groups); - } - - BusinessProfileFields(boolean relation, EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this.relation = relation; - this.entityDescriptor = entityDescriptor; - this.enumClass = enumClass; - this.groups = groups == null ? Collections.EMPTY_LIST : Arrays.asList(groups); - } - - // ::: api - // - @Override - public String getName() { - return name(); - } - - @Override - public boolean isRelation() { - return relation; - } - - @Override - public Class getRelationEnumClass() { - return enumClass; - } - - @Override - public List getGroups() { - return groups; - } - - @Override - public EntityDescriptor getEntityDescriptor() { - return entityDescriptor; - } - - @Override - public Object fetchValue(BusinessProfileEntity entity) { - if (entity == null) { - return null; - } - - switch (this) { - case null -> { - return null; - } - case id -> { - return entity.getId(); - } - case activityValue ->{ - return entity.getActivityValue(); - } - case gpsLatitude ->{ - return entity.getGpsLatitude(); - } - case gpsLongitude ->{ - return entity.getGpsLongitude(); - } - case website ->{ - return entity.getWebsite(); - } - case phone ->{ - return entity.getPhone(); - } - case address ->{ - return entity.getAddress(); - } - case extraInfo ->{ - return entity.getExtraInfo(); - } - case description ->{ - return entity.getDescription(); - } - case active -> { - return entity.isActive(); - } - case inserted -> { - return entity.getInserted(); - } - case inserter -> { - return entity.getInserter(); - } - case modified -> { - return entity.getModified(); - } - case modifier -> { - return entity.getModifier(); - } - case deleted -> { - return entity.isDeleted(); - } - case removed -> { - return entity.getRemoved(); - } - case remover -> { - return entity.getRemover(); - } - case business ->{ - return entity.getBusiness(); - } - case activity ->{ - return entity.getActivity(); - } - default -> { - return null; - } - } - - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businessprofile/BusinessProfileMapBuilder.java b/src/main/java/io/kumare/iqr/mod/biz/store/businessprofile/BusinessProfileMapBuilder.java deleted file mode 100644 index 10e8d96..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businessprofile/BusinessProfileMapBuilder.java +++ /dev/null @@ -1,185 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businessprofile; - -// java -import java.util.List; -import java.util.Map; -// base -import io.kumare.lib.app.api.Context; -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.BaseEntityMapBuilder; -// app -import io.kumare.iqr.mod.biz.store.business.BusinessMapBuilder; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonMapBuilder; - -/** - * - * @author afatecha - */ -public class BusinessProfileMapBuilder extends BaseEntityMapBuilder { - - // ::: vars - // - private BusinessMapBuilder businessBuilder; - private TaxonMapBuilder activityBuilder; - - - // ::: fields - // - @Override - public BusinessProfileMapBuilder addGroup(String name, boolean cascade) { - includes.addAll(EntityFieldDescriptor.group(BusinessProfileFields.values(), name)); - - if(cascade) { - if (includes.contains(BusinessProfileFields.business)) { - getBusinessBuilder().addGroup(name); - } - if (includes.contains(BusinessProfileFields.activity)) { - getActivityBuilder().addGroup(name); - } - } - return this; - } - - @Override - public BusinessProfileMapBuilder add(String fieldName) { - includes.add(BusinessProfileFields.valueOf(fieldName)); - return this; - } - - @Override - public BusinessProfileMapBuilder addAll(String... names) { - for (var i : names) { - includes.add(BusinessProfileFields.valueOf(i)); - } - return this; - } - - @Override - public BusinessProfileMapBuilder remove(String fieldName) { - excludes.add(BusinessProfileFields.valueOf(fieldName)); - return this; - } - - @Override - public BusinessProfileMapBuilder removeAll(String... names) { - for (var i : names) { - excludes.add(BusinessProfileFields.valueOf(i)); - } - return this; - } - - // ::: relations - // - @Override - public BusinessProfileMapBuilder addPlains(boolean cascade) { - includes.addAll(EntityFieldDescriptor.plains(BusinessProfileFields.values())); - - if(cascade) { - if (includes.contains(BusinessProfileFields.business)) { - getBusinessBuilder().addPlains(); - } - if (includes.contains(BusinessProfileFields.activity)) { - getActivityBuilder().addPlains(); - } - } - return this; - } - - @Override - public BusinessProfileMapBuilder addRelations(boolean cascade) { - includes.addAll(EntityFieldDescriptor.relations(BusinessProfileFields.values())); - - if(cascade) { - if (includes.contains(BusinessProfileFields.business)) { - getBusinessBuilder().addRelations(); - } - if (includes.contains(BusinessProfileFields.activity)) { - getActivityBuilder().addRelations(); - } - } - return this; - } - - // ::: business - // - public BusinessProfileMapBuilder addBusiness() { - return addBusiness(null); - } - - public BusinessProfileMapBuilder addBusiness(String group) { - return addBusiness(group, false); - } - - public BusinessProfileMapBuilder addBusiness(String group, boolean cascade) { - includes.add(BusinessProfileFields.business); - - if (group != null) { - getBusinessBuilder().addGroup(group); - } - - return this; - } - - public BusinessMapBuilder getBusinessBuilder() { - if(businessBuilder == null) { - businessBuilder = new BusinessMapBuilder(); - } - return businessBuilder; - } - - - // ::: activity - // - public BusinessProfileMapBuilder addActivity() { - return addActivity(null); - } - - public BusinessProfileMapBuilder addActivity(String group) { - return addActivity(group, false); - } - - public BusinessProfileMapBuilder addActivity(String group, boolean cascade) { - includes.add(BusinessProfileFields.activity); - - if (group != null) { - getActivityBuilder().addGroup(group); - } - - return this; - } - - public TaxonMapBuilder getActivityBuilder() { - if(activityBuilder == null) { - activityBuilder = new TaxonMapBuilder(); - } - return activityBuilder; - } - - // ::: internals - // - @Override - protected void internalAttachRelations(Context context, - BusinessProfileEntity entity, - List fields, - Map resultMap) { - - if (fields.contains(BusinessProfileFields.business)) { - attachRelation(context, - entity, - BusinessProfileFields.business, - getBusinessBuilder(), - resultMap); - } - if (fields.contains(BusinessProfileFields.activity)) { - attachRelation(context, - entity, - BusinessProfileFields.activity, - getActivityBuilder(), - resultMap); - } - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businessprofile/BusinessProfileRepository.java b/src/main/java/io/kumare/iqr/mod/biz/store/businessprofile/BusinessProfileRepository.java deleted file mode 100644 index d6e366b..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businessprofile/BusinessProfileRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businessprofile; - -// spring -import org.springframework.stereotype.Repository; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Repository -public interface BusinessProfileRepository extends AppEntityRepository{ - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businessprofile/BusinessProfileStore.java b/src/main/java/io/kumare/iqr/mod/biz/store/businessprofile/BusinessProfileStore.java deleted file mode 100644 index 9356531..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businessprofile/BusinessProfileStore.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businessprofile; - -// spring -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Service -public class BusinessProfileStore extends AppEntityStore { - - // ::: vars - // - @Autowired - private BusinessProfileRepository repository; - - // ::: override - // - @Override - public BusinessProfileRepository getRepository() { - return repository; - } - - // ::: api - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businesspromo/BusinessPromoData.java b/src/main/java/io/kumare/iqr/mod/biz/store/businesspromo/BusinessPromoData.java deleted file mode 100644 index 5a43970..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businesspromo/BusinessPromoData.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businesspromo; - -// base -import io.kumare.iqr.app.store.AppExtendedEntityData; -// imports - - -public class BusinessPromoData extends AppExtendedEntityData { - - // ::: vars - // - - - // ::: fields - // - - - // ::: fluent - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businesspromo/BusinessPromoEntity.java b/src/main/java/io/kumare/iqr/mod/biz/store/businesspromo/BusinessPromoEntity.java deleted file mode 100644 index aa53b49..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businesspromo/BusinessPromoEntity.java +++ /dev/null @@ -1,215 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businesspromo; - -// jakarta -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.Index; -import jakarta.persistence.ManyToOne; -import jakarta.persistence.Table; -// base -import io.kumare.lib.app.api.store.*; -import io.kumare.iqr.app.store.*; -// imports -import java.util.Date; -// relations -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; -import io.kumare.iqr.mod.biz.store.businessimage.BusinessImageEntity; - -// annotations -@Entity -@Table( - name = "business_promo", - indexes = { - @Index(name = "idx_business_promo_state_value", columnList = "stateValue"), - @Index(name = "idx_business_promo_started", columnList = "started"), - @Index(name = "idx_business_promo_ended", columnList = "ended"), - @Index(name = "idx_business_promo_schedule_start", columnList = "scheduleStart"), - @Index(name = "idx_business_promo_schedule_end", columnList = "scheduleEnd"), - @Index(name = "idx_business_promo_title", columnList = "title"), - @Index(name = "idx_business_promo_body_info", columnList = "bodyInfo"), - @Index(name = "idx_business_promo_footer_info", columnList = "footerInfo") - } -) -public class BusinessPromoEntity extends AppEntity { - - // ::: vars - // - private String stateValue; - private Date started; - private Date ended; - private Date scheduleStart; - private Date scheduleEnd; - private String title; - private String bodyInfo; - private String footerInfo; - // relations - @ManyToOne(fetch = FetchType.LAZY) - private BusinessEntity business; - @ManyToOne(fetch = FetchType.LAZY) - private BusinessImageEntity image; - @ManyToOne(fetch = FetchType.LAZY) - private TaxonEntity state; - - // ::: constructors - // - public BusinessPromoEntity() { - } - - public BusinessPromoEntity(String id) { - super(id); - } - - // ::: fields - // - public String getStateValue() { - return stateValue; - } - - public void setStateValue(String stateValue) { - this.stateValue = stateValue; - } - - public Date getStarted() { - return started; - } - - public void setStarted(Date started) { - this.started = started; - } - - public Date getEnded() { - return ended; - } - - public void setEnded(Date ended) { - this.ended = ended; - } - - public Date getScheduleStart() { - return scheduleStart; - } - - public void setScheduleStart(Date scheduleStart) { - this.scheduleStart = scheduleStart; - } - - public Date getScheduleEnd() { - return scheduleEnd; - } - - public void setScheduleEnd(Date scheduleEnd) { - this.scheduleEnd = scheduleEnd; - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getBodyInfo() { - return bodyInfo; - } - - public void setBodyInfo(String bodyInfo) { - this.bodyInfo = bodyInfo; - } - - public String getFooterInfo() { - return footerInfo; - } - - public void setFooterInfo(String footerInfo) { - this.footerInfo = footerInfo; - } - - // relations - public BusinessEntity getBusiness() { - return business; - } - - public void setBusiness(BusinessEntity business) { - this.business = business; - } - - public BusinessImageEntity getImage() { - return image; - } - - public void setImage(BusinessImageEntity image) { - this.image = image; - } - - public TaxonEntity getState() { - return state; - } - - public void setState(TaxonEntity state) { - this.state = state; - } - - // ::: fluent - // - public BusinessPromoEntity stateValue(String stateValue) { - setStateValue(stateValue); - return this; - } - - public BusinessPromoEntity started(Date started) { - setStarted(started); - return this; - } - - public BusinessPromoEntity ended(Date ended) { - setEnded(ended); - return this; - } - - public BusinessPromoEntity scheduleStart(Date scheduleStart) { - setScheduleStart(scheduleStart); - return this; - } - - public BusinessPromoEntity scheduleEnd(Date scheduleEnd) { - setScheduleEnd(scheduleEnd); - return this; - } - - public BusinessPromoEntity title(String title) { - setTitle(title); - return this; - } - - public BusinessPromoEntity bodyInfo(String bodyInfo) { - setBodyInfo(bodyInfo); - return this; - } - - public BusinessPromoEntity footerInfo(String footerInfo) { - setFooterInfo(footerInfo); - return this; - } - - // relations - public BusinessPromoEntity business(BusinessEntity business) { - setBusiness(business); - return this; - } - - public BusinessPromoEntity image(BusinessImageEntity image) { - setImage(image); - return this; - } - - public BusinessPromoEntity state(TaxonEntity state) { - setState(state); - return this; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businesspromo/BusinessPromoFields.java b/src/main/java/io/kumare/iqr/mod/biz/store/businesspromo/BusinessPromoFields.java deleted file mode 100644 index cbeb435..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businesspromo/BusinessPromoFields.java +++ /dev/null @@ -1,175 +0,0 @@ -/* - */ -package io.kumare.iqr.mod.biz.store.businesspromo; - -// java -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -// base -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app -import io.kumare.iqr.mod.biz.store.BizEntities; -import io.kumare.iqr.mod.biz.store.business.BusinessFields; -import io.kumare.iqr.mod.biz.store.BizEntities; -import io.kumare.iqr.mod.biz.store.businessimage.BusinessImageFields; -import io.kumare.iqr.mod.taxonomy.store.TaxonomyEntities; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonFields; - -/** - * - * @author afatecha - */ -public enum BusinessPromoFields implements EntityFieldDescriptor { - - id(MAIN, FIND, LIST), - stateValue(MAIN, FIND, LIST), - started(MAIN, FIND, LIST), - ended(MAIN, FIND, LIST), - scheduleStart(MAIN, FIND, LIST), - scheduleEnd(MAIN, FIND, LIST), - title(MAIN, FIND, LIST), - bodyInfo(MAIN, FIND, LIST), - footerInfo(MAIN, FIND, LIST), - active(MAIN, FIND, LIST), - inserted(AUDIT, FIND, LIST), - inserter(AUDIT, FIND, LIST), - modified(AUDIT, FIND), - modifier(AUDIT, FIND), - deleted(AUDIT), - removed(AUDIT), - remover(AUDIT), - business(BizEntities.business, BusinessFields.class, FIND, LIST), - image(BizEntities.businessImage, BusinessImageFields.class, FIND, LIST), - state(TaxonomyEntities.taxon, TaxonFields.class, FIND, LIST); - - // ::: vars - // - private final boolean relation; - private final EntityDescriptor entityDescriptor; - private final Class enumClass; - private final List groups; - - // ::: constructors - // - BusinessPromoFields(String... groups) { - this(false, null, null, groups); - } - - BusinessPromoFields(EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this(true, entityDescriptor, enumClass, groups); - } - - BusinessPromoFields(boolean relation, EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this.relation = relation; - this.entityDescriptor = entityDescriptor; - this.enumClass = enumClass; - this.groups = groups == null ? Collections.EMPTY_LIST : Arrays.asList(groups); - } - - // ::: api - // - @Override - public String getName() { - return name(); - } - - @Override - public boolean isRelation() { - return relation; - } - - @Override - public Class getRelationEnumClass() { - return enumClass; - } - - @Override - public List getGroups() { - return groups; - } - - @Override - public EntityDescriptor getEntityDescriptor() { - return entityDescriptor; - } - - @Override - public Object fetchValue(BusinessPromoEntity entity) { - if (entity == null) { - return null; - } - - switch (this) { - case null -> { - return null; - } - case id -> { - return entity.getId(); - } - case stateValue ->{ - return entity.getStateValue(); - } - case started ->{ - return entity.getStarted(); - } - case ended ->{ - return entity.getEnded(); - } - case scheduleStart ->{ - return entity.getScheduleStart(); - } - case scheduleEnd ->{ - return entity.getScheduleEnd(); - } - case title ->{ - return entity.getTitle(); - } - case bodyInfo ->{ - return entity.getBodyInfo(); - } - case footerInfo ->{ - return entity.getFooterInfo(); - } - case active -> { - return entity.isActive(); - } - case inserted -> { - return entity.getInserted(); - } - case inserter -> { - return entity.getInserter(); - } - case modified -> { - return entity.getModified(); - } - case modifier -> { - return entity.getModifier(); - } - case deleted -> { - return entity.isDeleted(); - } - case removed -> { - return entity.getRemoved(); - } - case remover -> { - return entity.getRemover(); - } - case business ->{ - return entity.getBusiness(); - } - case image ->{ - return entity.getImage(); - } - case state ->{ - return entity.getState(); - } - default -> { - return null; - } - } - - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businesspromo/BusinessPromoMapBuilder.java b/src/main/java/io/kumare/iqr/mod/biz/store/businesspromo/BusinessPromoMapBuilder.java deleted file mode 100644 index e6feb1f..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businesspromo/BusinessPromoMapBuilder.java +++ /dev/null @@ -1,231 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businesspromo; - -// java -import java.util.List; -import java.util.Map; -// base -import io.kumare.lib.app.api.Context; -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.BaseEntityMapBuilder; -// app -import io.kumare.iqr.mod.biz.store.business.BusinessMapBuilder; -import io.kumare.iqr.mod.biz.store.businessimage.BusinessImageMapBuilder; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonMapBuilder; - -/** - * - * @author afatecha - */ -public class BusinessPromoMapBuilder extends BaseEntityMapBuilder { - - // ::: vars - // - private BusinessMapBuilder businessBuilder; - private BusinessImageMapBuilder imageBuilder; - private TaxonMapBuilder stateBuilder; - - - // ::: fields - // - @Override - public BusinessPromoMapBuilder addGroup(String name, boolean cascade) { - includes.addAll(EntityFieldDescriptor.group(BusinessPromoFields.values(), name)); - - if(cascade) { - if (includes.contains(BusinessPromoFields.business)) { - getBusinessBuilder().addGroup(name); - } - if (includes.contains(BusinessPromoFields.image)) { - getImageBuilder().addGroup(name); - } - if (includes.contains(BusinessPromoFields.state)) { - getStateBuilder().addGroup(name); - } - } - return this; - } - - @Override - public BusinessPromoMapBuilder add(String fieldName) { - includes.add(BusinessPromoFields.valueOf(fieldName)); - return this; - } - - @Override - public BusinessPromoMapBuilder addAll(String... names) { - for (var i : names) { - includes.add(BusinessPromoFields.valueOf(i)); - } - return this; - } - - @Override - public BusinessPromoMapBuilder remove(String fieldName) { - excludes.add(BusinessPromoFields.valueOf(fieldName)); - return this; - } - - @Override - public BusinessPromoMapBuilder removeAll(String... names) { - for (var i : names) { - excludes.add(BusinessPromoFields.valueOf(i)); - } - return this; - } - - // ::: relations - // - @Override - public BusinessPromoMapBuilder addPlains(boolean cascade) { - includes.addAll(EntityFieldDescriptor.plains(BusinessPromoFields.values())); - - if(cascade) { - if (includes.contains(BusinessPromoFields.business)) { - getBusinessBuilder().addPlains(); - } - if (includes.contains(BusinessPromoFields.image)) { - getImageBuilder().addPlains(); - } - if (includes.contains(BusinessPromoFields.state)) { - getStateBuilder().addPlains(); - } - } - return this; - } - - @Override - public BusinessPromoMapBuilder addRelations(boolean cascade) { - includes.addAll(EntityFieldDescriptor.relations(BusinessPromoFields.values())); - - if(cascade) { - if (includes.contains(BusinessPromoFields.business)) { - getBusinessBuilder().addRelations(); - } - if (includes.contains(BusinessPromoFields.image)) { - getImageBuilder().addRelations(); - } - if (includes.contains(BusinessPromoFields.state)) { - getStateBuilder().addRelations(); - } - } - return this; - } - - // ::: business - // - public BusinessPromoMapBuilder addBusiness() { - return addBusiness(null); - } - - public BusinessPromoMapBuilder addBusiness(String group) { - return addBusiness(group, false); - } - - public BusinessPromoMapBuilder addBusiness(String group, boolean cascade) { - includes.add(BusinessPromoFields.business); - - if (group != null) { - getBusinessBuilder().addGroup(group); - } - - return this; - } - - public BusinessMapBuilder getBusinessBuilder() { - if(businessBuilder == null) { - businessBuilder = new BusinessMapBuilder(); - } - return businessBuilder; - } - - - // ::: image - // - public BusinessPromoMapBuilder addImage() { - return addImage(null); - } - - public BusinessPromoMapBuilder addImage(String group) { - return addImage(group, false); - } - - public BusinessPromoMapBuilder addImage(String group, boolean cascade) { - includes.add(BusinessPromoFields.image); - - if (group != null) { - getImageBuilder().addGroup(group); - } - - return this; - } - - public BusinessImageMapBuilder getImageBuilder() { - if(imageBuilder == null) { - imageBuilder = new BusinessImageMapBuilder(); - } - return imageBuilder; - } - - - // ::: state - // - public BusinessPromoMapBuilder addState() { - return addState(null); - } - - public BusinessPromoMapBuilder addState(String group) { - return addState(group, false); - } - - public BusinessPromoMapBuilder addState(String group, boolean cascade) { - includes.add(BusinessPromoFields.state); - - if (group != null) { - getStateBuilder().addGroup(group); - } - - return this; - } - - public TaxonMapBuilder getStateBuilder() { - if(stateBuilder == null) { - stateBuilder = new TaxonMapBuilder(); - } - return stateBuilder; - } - - // ::: internals - // - @Override - protected void internalAttachRelations(Context context, - BusinessPromoEntity entity, - List fields, - Map resultMap) { - - if (fields.contains(BusinessPromoFields.business)) { - attachRelation(context, - entity, - BusinessPromoFields.business, - getBusinessBuilder(), - resultMap); - } - if (fields.contains(BusinessPromoFields.image)) { - attachRelation(context, - entity, - BusinessPromoFields.image, - getImageBuilder(), - resultMap); - } - if (fields.contains(BusinessPromoFields.state)) { - attachRelation(context, - entity, - BusinessPromoFields.state, - getStateBuilder(), - resultMap); - } - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businesspromo/BusinessPromoRepository.java b/src/main/java/io/kumare/iqr/mod/biz/store/businesspromo/BusinessPromoRepository.java deleted file mode 100644 index 4e73f24..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businesspromo/BusinessPromoRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businesspromo; - -// spring -import org.springframework.stereotype.Repository; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Repository -public interface BusinessPromoRepository extends AppEntityRepository{ - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businesspromo/BusinessPromoStore.java b/src/main/java/io/kumare/iqr/mod/biz/store/businesspromo/BusinessPromoStore.java deleted file mode 100644 index a4a4454..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businesspromo/BusinessPromoStore.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businesspromo; - -// spring -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Service -public class BusinessPromoStore extends AppEntityStore { - - // ::: vars - // - @Autowired - private BusinessPromoRepository repository; - - // ::: override - // - @Override - public BusinessPromoRepository getRepository() { - return repository; - } - - // ::: api - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businesspromoitem/BusinessPromoItemData.java b/src/main/java/io/kumare/iqr/mod/biz/store/businesspromoitem/BusinessPromoItemData.java deleted file mode 100644 index 8a9bf6e..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businesspromoitem/BusinessPromoItemData.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businesspromoitem; - -// base -import io.kumare.iqr.app.store.AppExtendedEntityData; -// imports - - -public class BusinessPromoItemData extends AppExtendedEntityData { - - // ::: vars - // - - - // ::: fields - // - - - // ::: fluent - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businesspromoitem/BusinessPromoItemEntity.java b/src/main/java/io/kumare/iqr/mod/biz/store/businesspromoitem/BusinessPromoItemEntity.java deleted file mode 100644 index d781c33..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businesspromoitem/BusinessPromoItemEntity.java +++ /dev/null @@ -1,155 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businesspromoitem; - -// jakarta -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.Index; -import jakarta.persistence.ManyToOne; -import jakarta.persistence.Table; -// base -import io.kumare.lib.app.api.store.*; -import io.kumare.iqr.app.store.*; -// imports - -// relations -import io.kumare.iqr.mod.biz.store.businesspromo.BusinessPromoEntity; -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; -import io.kumare.iqr.mod.biz.store.businessimage.BusinessImageEntity; - -// annotations -@Entity -@Table( - name = "business_promo_item", - indexes = { - @Index(name = "idx_business_promo_item_title", columnList = "title"), - @Index(name = "idx_business_promo_item_description", columnList = "description"), - @Index(name = "idx_business_promo_item_points", columnList = "points"), - @Index(name = "idx_business_promo_item_condition", columnList = "condition") - } -) -public class BusinessPromoItemEntity extends AppEntity { - - // ::: vars - // - private String title; - private String description; - private int points; - private String condition; - // relations - @ManyToOne(fetch = FetchType.LAZY) - private BusinessEntity business; - @ManyToOne(fetch = FetchType.LAZY) - private BusinessPromoEntity promo; - @ManyToOne(fetch = FetchType.LAZY) - private BusinessImageEntity image; - - // ::: constructors - // - public BusinessPromoItemEntity() { - } - - public BusinessPromoItemEntity(String id) { - super(id); - } - - // ::: fields - // - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public int getPoints() { - return points; - } - - public void setPoints(int points) { - this.points = points; - } - - public String getCondition() { - return condition; - } - - public void setCondition(String condition) { - this.condition = condition; - } - - // relations - public BusinessEntity getBusiness() { - return business; - } - - public void setBusiness(BusinessEntity business) { - this.business = business; - } - - public BusinessPromoEntity getPromo() { - return promo; - } - - public void setPromo(BusinessPromoEntity promo) { - this.promo = promo; - } - - public BusinessImageEntity getImage() { - return image; - } - - public void setImage(BusinessImageEntity image) { - this.image = image; - } - - // ::: fluent - // - public BusinessPromoItemEntity title(String title) { - setTitle(title); - return this; - } - - public BusinessPromoItemEntity description(String description) { - setDescription(description); - return this; - } - - public BusinessPromoItemEntity points(int points) { - setPoints(points); - return this; - } - - public BusinessPromoItemEntity condition(String condition) { - setCondition(condition); - return this; - } - - // relations - public BusinessPromoItemEntity business(BusinessEntity business) { - setBusiness(business); - return this; - } - - public BusinessPromoItemEntity promo(BusinessPromoEntity promo) { - setPromo(promo); - return this; - } - - public BusinessPromoItemEntity image(BusinessImageEntity image) { - setImage(image); - return this; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businesspromoitem/BusinessPromoItemFields.java b/src/main/java/io/kumare/iqr/mod/biz/store/businesspromoitem/BusinessPromoItemFields.java deleted file mode 100644 index 57ab1ed..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businesspromoitem/BusinessPromoItemFields.java +++ /dev/null @@ -1,159 +0,0 @@ -/* - */ -package io.kumare.iqr.mod.biz.store.businesspromoitem; - -// java -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -// base -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app -import io.kumare.iqr.mod.biz.store.BizEntities; -import io.kumare.iqr.mod.biz.store.business.BusinessFields; -import io.kumare.iqr.mod.biz.store.BizEntities; -import io.kumare.iqr.mod.biz.store.businesspromo.BusinessPromoFields; -import io.kumare.iqr.mod.biz.store.BizEntities; -import io.kumare.iqr.mod.biz.store.businessimage.BusinessImageFields; - -/** - * - * @author afatecha - */ -public enum BusinessPromoItemFields implements EntityFieldDescriptor { - - id(MAIN, FIND, LIST), - title(MAIN, FIND, LIST), - description(MAIN, FIND, LIST), - points(MAIN, FIND, LIST), - condition(MAIN, FIND, LIST), - active(MAIN, FIND, LIST), - inserted(AUDIT, FIND, LIST), - inserter(AUDIT, FIND, LIST), - modified(AUDIT, FIND), - modifier(AUDIT, FIND), - deleted(AUDIT), - removed(AUDIT), - remover(AUDIT), - business(BizEntities.business, BusinessFields.class, FIND, LIST), - promo(BizEntities.businessPromo, BusinessPromoFields.class, FIND, LIST), - image(BizEntities.businessImage, BusinessImageFields.class, FIND, LIST); - - // ::: vars - // - private final boolean relation; - private final EntityDescriptor entityDescriptor; - private final Class enumClass; - private final List groups; - - // ::: constructors - // - BusinessPromoItemFields(String... groups) { - this(false, null, null, groups); - } - - BusinessPromoItemFields(EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this(true, entityDescriptor, enumClass, groups); - } - - BusinessPromoItemFields(boolean relation, EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this.relation = relation; - this.entityDescriptor = entityDescriptor; - this.enumClass = enumClass; - this.groups = groups == null ? Collections.EMPTY_LIST : Arrays.asList(groups); - } - - // ::: api - // - @Override - public String getName() { - return name(); - } - - @Override - public boolean isRelation() { - return relation; - } - - @Override - public Class getRelationEnumClass() { - return enumClass; - } - - @Override - public List getGroups() { - return groups; - } - - @Override - public EntityDescriptor getEntityDescriptor() { - return entityDescriptor; - } - - @Override - public Object fetchValue(BusinessPromoItemEntity entity) { - if (entity == null) { - return null; - } - - switch (this) { - case null -> { - return null; - } - case id -> { - return entity.getId(); - } - case title ->{ - return entity.getTitle(); - } - case description ->{ - return entity.getDescription(); - } - case points ->{ - return entity.getPoints(); - } - case condition ->{ - return entity.getCondition(); - } - case active -> { - return entity.isActive(); - } - case inserted -> { - return entity.getInserted(); - } - case inserter -> { - return entity.getInserter(); - } - case modified -> { - return entity.getModified(); - } - case modifier -> { - return entity.getModifier(); - } - case deleted -> { - return entity.isDeleted(); - } - case removed -> { - return entity.getRemoved(); - } - case remover -> { - return entity.getRemover(); - } - case business ->{ - return entity.getBusiness(); - } - case promo ->{ - return entity.getPromo(); - } - case image ->{ - return entity.getImage(); - } - default -> { - return null; - } - } - - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businesspromoitem/BusinessPromoItemMapBuilder.java b/src/main/java/io/kumare/iqr/mod/biz/store/businesspromoitem/BusinessPromoItemMapBuilder.java deleted file mode 100644 index 789b0a6..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businesspromoitem/BusinessPromoItemMapBuilder.java +++ /dev/null @@ -1,231 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businesspromoitem; - -// java -import java.util.List; -import java.util.Map; -// base -import io.kumare.lib.app.api.Context; -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.BaseEntityMapBuilder; -// app -import io.kumare.iqr.mod.biz.store.businesspromo.BusinessPromoMapBuilder; -import io.kumare.iqr.mod.biz.store.business.BusinessMapBuilder; -import io.kumare.iqr.mod.biz.store.businessimage.BusinessImageMapBuilder; - -/** - * - * @author afatecha - */ -public class BusinessPromoItemMapBuilder extends BaseEntityMapBuilder { - - // ::: vars - // - private BusinessMapBuilder businessBuilder; - private BusinessPromoMapBuilder promoBuilder; - private BusinessImageMapBuilder imageBuilder; - - - // ::: fields - // - @Override - public BusinessPromoItemMapBuilder addGroup(String name, boolean cascade) { - includes.addAll(EntityFieldDescriptor.group(BusinessPromoItemFields.values(), name)); - - if(cascade) { - if (includes.contains(BusinessPromoItemFields.business)) { - getBusinessBuilder().addGroup(name); - } - if (includes.contains(BusinessPromoItemFields.promo)) { - getPromoBuilder().addGroup(name); - } - if (includes.contains(BusinessPromoItemFields.image)) { - getImageBuilder().addGroup(name); - } - } - return this; - } - - @Override - public BusinessPromoItemMapBuilder add(String fieldName) { - includes.add(BusinessPromoItemFields.valueOf(fieldName)); - return this; - } - - @Override - public BusinessPromoItemMapBuilder addAll(String... names) { - for (var i : names) { - includes.add(BusinessPromoItemFields.valueOf(i)); - } - return this; - } - - @Override - public BusinessPromoItemMapBuilder remove(String fieldName) { - excludes.add(BusinessPromoItemFields.valueOf(fieldName)); - return this; - } - - @Override - public BusinessPromoItemMapBuilder removeAll(String... names) { - for (var i : names) { - excludes.add(BusinessPromoItemFields.valueOf(i)); - } - return this; - } - - // ::: relations - // - @Override - public BusinessPromoItemMapBuilder addPlains(boolean cascade) { - includes.addAll(EntityFieldDescriptor.plains(BusinessPromoItemFields.values())); - - if(cascade) { - if (includes.contains(BusinessPromoItemFields.business)) { - getBusinessBuilder().addPlains(); - } - if (includes.contains(BusinessPromoItemFields.promo)) { - getPromoBuilder().addPlains(); - } - if (includes.contains(BusinessPromoItemFields.image)) { - getImageBuilder().addPlains(); - } - } - return this; - } - - @Override - public BusinessPromoItemMapBuilder addRelations(boolean cascade) { - includes.addAll(EntityFieldDescriptor.relations(BusinessPromoItemFields.values())); - - if(cascade) { - if (includes.contains(BusinessPromoItemFields.business)) { - getBusinessBuilder().addRelations(); - } - if (includes.contains(BusinessPromoItemFields.promo)) { - getPromoBuilder().addRelations(); - } - if (includes.contains(BusinessPromoItemFields.image)) { - getImageBuilder().addRelations(); - } - } - return this; - } - - // ::: business - // - public BusinessPromoItemMapBuilder addBusiness() { - return addBusiness(null); - } - - public BusinessPromoItemMapBuilder addBusiness(String group) { - return addBusiness(group, false); - } - - public BusinessPromoItemMapBuilder addBusiness(String group, boolean cascade) { - includes.add(BusinessPromoItemFields.business); - - if (group != null) { - getBusinessBuilder().addGroup(group); - } - - return this; - } - - public BusinessMapBuilder getBusinessBuilder() { - if(businessBuilder == null) { - businessBuilder = new BusinessMapBuilder(); - } - return businessBuilder; - } - - - // ::: promo - // - public BusinessPromoItemMapBuilder addPromo() { - return addPromo(null); - } - - public BusinessPromoItemMapBuilder addPromo(String group) { - return addPromo(group, false); - } - - public BusinessPromoItemMapBuilder addPromo(String group, boolean cascade) { - includes.add(BusinessPromoItemFields.promo); - - if (group != null) { - getPromoBuilder().addGroup(group); - } - - return this; - } - - public BusinessPromoMapBuilder getPromoBuilder() { - if(promoBuilder == null) { - promoBuilder = new BusinessPromoMapBuilder(); - } - return promoBuilder; - } - - - // ::: image - // - public BusinessPromoItemMapBuilder addImage() { - return addImage(null); - } - - public BusinessPromoItemMapBuilder addImage(String group) { - return addImage(group, false); - } - - public BusinessPromoItemMapBuilder addImage(String group, boolean cascade) { - includes.add(BusinessPromoItemFields.image); - - if (group != null) { - getImageBuilder().addGroup(group); - } - - return this; - } - - public BusinessImageMapBuilder getImageBuilder() { - if(imageBuilder == null) { - imageBuilder = new BusinessImageMapBuilder(); - } - return imageBuilder; - } - - // ::: internals - // - @Override - protected void internalAttachRelations(Context context, - BusinessPromoItemEntity entity, - List fields, - Map resultMap) { - - if (fields.contains(BusinessPromoItemFields.business)) { - attachRelation(context, - entity, - BusinessPromoItemFields.business, - getBusinessBuilder(), - resultMap); - } - if (fields.contains(BusinessPromoItemFields.promo)) { - attachRelation(context, - entity, - BusinessPromoItemFields.promo, - getPromoBuilder(), - resultMap); - } - if (fields.contains(BusinessPromoItemFields.image)) { - attachRelation(context, - entity, - BusinessPromoItemFields.image, - getImageBuilder(), - resultMap); - } - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businesspromoitem/BusinessPromoItemRepository.java b/src/main/java/io/kumare/iqr/mod/biz/store/businesspromoitem/BusinessPromoItemRepository.java deleted file mode 100644 index bd503be..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businesspromoitem/BusinessPromoItemRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businesspromoitem; - -// spring -import org.springframework.stereotype.Repository; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Repository -public interface BusinessPromoItemRepository extends AppEntityRepository{ - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businesspromoitem/BusinessPromoItemStore.java b/src/main/java/io/kumare/iqr/mod/biz/store/businesspromoitem/BusinessPromoItemStore.java deleted file mode 100644 index 0ac50ed..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businesspromoitem/BusinessPromoItemStore.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businesspromoitem; - -// spring -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Service -public class BusinessPromoItemStore extends AppEntityStore { - - // ::: vars - // - @Autowired - private BusinessPromoItemRepository repository; - - // ::: override - // - @Override - public BusinessPromoItemRepository getRepository() { - return repository; - } - - // ::: api - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businesssetting/BusinessSettingData.java b/src/main/java/io/kumare/iqr/mod/biz/store/businesssetting/BusinessSettingData.java deleted file mode 100644 index 47ee277..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businesssetting/BusinessSettingData.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businesssetting; - -// base -import io.kumare.iqr.app.store.AppExtendedEntityData; -// imports - - -public class BusinessSettingData extends AppExtendedEntityData { - - // ::: vars - // - - - // ::: fields - // - - - // ::: fluent - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businesssetting/BusinessSettingEntity.java b/src/main/java/io/kumare/iqr/mod/biz/store/businesssetting/BusinessSettingEntity.java deleted file mode 100644 index a73ddfd..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businesssetting/BusinessSettingEntity.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businesssetting; - -// jakarta -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.Index; -import jakarta.persistence.ManyToOne; -import jakarta.persistence.Table; -// base -import io.kumare.lib.app.api.store.*; -import io.kumare.iqr.app.store.*; -// imports - -// relations -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; - -// annotations -@Entity -@Table( - name = "business_setting", - indexes = { - @Index(name = "idx_business_setting_point_exchange", columnList = "pointExchange"), - @Index(name = "idx_business_setting_lead_capture_reward", columnList = "leadCaptureReward"), - @Index(name = "idx_business_setting_customer_capture_reward", columnList = "customerCaptureReward") - } -) -public class BusinessSettingEntity extends AppEntity { - - // ::: vars - // - private int pointExchange; - private int leadCaptureReward; - private int customerCaptureReward; - // relations - @ManyToOne(fetch = FetchType.LAZY) - private BusinessEntity business; - - // ::: constructors - // - public BusinessSettingEntity() { - } - - public BusinessSettingEntity(String id) { - super(id); - } - - // ::: fields - // - public int getPointExchange() { - return pointExchange; - } - - public void setPointExchange(int pointExchange) { - this.pointExchange = pointExchange; - } - - public int getLeadCaptureReward() { - return leadCaptureReward; - } - - public void setLeadCaptureReward(int leadCaptureReward) { - this.leadCaptureReward = leadCaptureReward; - } - - public int getCustomerCaptureReward() { - return customerCaptureReward; - } - - public void setCustomerCaptureReward(int customerCaptureReward) { - this.customerCaptureReward = customerCaptureReward; - } - - // relations - public BusinessEntity getBusiness() { - return business; - } - - public void setBusiness(BusinessEntity business) { - this.business = business; - } - - // ::: fluent - // - public BusinessSettingEntity pointExchange(int pointExchange) { - setPointExchange(pointExchange); - return this; - } - - public BusinessSettingEntity leadCaptureReward(int leadCaptureReward) { - setLeadCaptureReward(leadCaptureReward); - return this; - } - - public BusinessSettingEntity customerCaptureReward(int customerCaptureReward) { - setCustomerCaptureReward(customerCaptureReward); - return this; - } - - // relations - public BusinessSettingEntity business(BusinessEntity business) { - setBusiness(business); - return this; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businesssetting/BusinessSettingFields.java b/src/main/java/io/kumare/iqr/mod/biz/store/businesssetting/BusinessSettingFields.java deleted file mode 100644 index ae27cb9..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businesssetting/BusinessSettingFields.java +++ /dev/null @@ -1,143 +0,0 @@ -/* - */ -package io.kumare.iqr.mod.biz.store.businesssetting; - -// java -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -// base -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app -import io.kumare.iqr.mod.biz.store.BizEntities; -import io.kumare.iqr.mod.biz.store.business.BusinessFields; - -/** - * - * @author afatecha - */ -public enum BusinessSettingFields implements EntityFieldDescriptor { - - id(MAIN, FIND, LIST), - pointExchange(MAIN, FIND, LIST), - leadCaptureReward(MAIN, FIND, LIST), - customerCaptureReward(MAIN, FIND, LIST), - active(MAIN, FIND, LIST), - inserted(AUDIT, FIND, LIST), - inserter(AUDIT, FIND, LIST), - modified(AUDIT, FIND), - modifier(AUDIT, FIND), - deleted(AUDIT), - removed(AUDIT), - remover(AUDIT), - business(BizEntities.business, BusinessFields.class, FIND, LIST); - - // ::: vars - // - private final boolean relation; - private final EntityDescriptor entityDescriptor; - private final Class enumClass; - private final List groups; - - // ::: constructors - // - BusinessSettingFields(String... groups) { - this(false, null, null, groups); - } - - BusinessSettingFields(EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this(true, entityDescriptor, enumClass, groups); - } - - BusinessSettingFields(boolean relation, EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this.relation = relation; - this.entityDescriptor = entityDescriptor; - this.enumClass = enumClass; - this.groups = groups == null ? Collections.EMPTY_LIST : Arrays.asList(groups); - } - - // ::: api - // - @Override - public String getName() { - return name(); - } - - @Override - public boolean isRelation() { - return relation; - } - - @Override - public Class getRelationEnumClass() { - return enumClass; - } - - @Override - public List getGroups() { - return groups; - } - - @Override - public EntityDescriptor getEntityDescriptor() { - return entityDescriptor; - } - - @Override - public Object fetchValue(BusinessSettingEntity entity) { - if (entity == null) { - return null; - } - - switch (this) { - case null -> { - return null; - } - case id -> { - return entity.getId(); - } - case pointExchange ->{ - return entity.getPointExchange(); - } - case leadCaptureReward ->{ - return entity.getLeadCaptureReward(); - } - case customerCaptureReward ->{ - return entity.getCustomerCaptureReward(); - } - case active -> { - return entity.isActive(); - } - case inserted -> { - return entity.getInserted(); - } - case inserter -> { - return entity.getInserter(); - } - case modified -> { - return entity.getModified(); - } - case modifier -> { - return entity.getModifier(); - } - case deleted -> { - return entity.isDeleted(); - } - case removed -> { - return entity.getRemoved(); - } - case remover -> { - return entity.getRemover(); - } - case business ->{ - return entity.getBusiness(); - } - default -> { - return null; - } - } - - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businesssetting/BusinessSettingMapBuilder.java b/src/main/java/io/kumare/iqr/mod/biz/store/businesssetting/BusinessSettingMapBuilder.java deleted file mode 100644 index 6981ee7..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businesssetting/BusinessSettingMapBuilder.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businesssetting; - -// java -import java.util.List; -import java.util.Map; -// base -import io.kumare.lib.app.api.Context; -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.BaseEntityMapBuilder; -// app -import io.kumare.iqr.mod.biz.store.business.BusinessMapBuilder; - -/** - * - * @author afatecha - */ -public class BusinessSettingMapBuilder extends BaseEntityMapBuilder { - - // ::: vars - // - private BusinessMapBuilder businessBuilder; - - - // ::: fields - // - @Override - public BusinessSettingMapBuilder addGroup(String name, boolean cascade) { - includes.addAll(EntityFieldDescriptor.group(BusinessSettingFields.values(), name)); - - if(cascade) { - if (includes.contains(BusinessSettingFields.business)) { - getBusinessBuilder().addGroup(name); - } - } - return this; - } - - @Override - public BusinessSettingMapBuilder add(String fieldName) { - includes.add(BusinessSettingFields.valueOf(fieldName)); - return this; - } - - @Override - public BusinessSettingMapBuilder addAll(String... names) { - for (var i : names) { - includes.add(BusinessSettingFields.valueOf(i)); - } - return this; - } - - @Override - public BusinessSettingMapBuilder remove(String fieldName) { - excludes.add(BusinessSettingFields.valueOf(fieldName)); - return this; - } - - @Override - public BusinessSettingMapBuilder removeAll(String... names) { - for (var i : names) { - excludes.add(BusinessSettingFields.valueOf(i)); - } - return this; - } - - // ::: relations - // - @Override - public BusinessSettingMapBuilder addPlains(boolean cascade) { - includes.addAll(EntityFieldDescriptor.plains(BusinessSettingFields.values())); - - if(cascade) { - if (includes.contains(BusinessSettingFields.business)) { - getBusinessBuilder().addPlains(); - } - } - return this; - } - - @Override - public BusinessSettingMapBuilder addRelations(boolean cascade) { - includes.addAll(EntityFieldDescriptor.relations(BusinessSettingFields.values())); - - if(cascade) { - if (includes.contains(BusinessSettingFields.business)) { - getBusinessBuilder().addRelations(); - } - } - return this; - } - - // ::: business - // - public BusinessSettingMapBuilder addBusiness() { - return addBusiness(null); - } - - public BusinessSettingMapBuilder addBusiness(String group) { - return addBusiness(group, false); - } - - public BusinessSettingMapBuilder addBusiness(String group, boolean cascade) { - includes.add(BusinessSettingFields.business); - - if (group != null) { - getBusinessBuilder().addGroup(group); - } - - return this; - } - - public BusinessMapBuilder getBusinessBuilder() { - if(businessBuilder == null) { - businessBuilder = new BusinessMapBuilder(); - } - return businessBuilder; - } - - // ::: internals - // - @Override - protected void internalAttachRelations(Context context, - BusinessSettingEntity entity, - List fields, - Map resultMap) { - - if (fields.contains(BusinessSettingFields.business)) { - attachRelation(context, - entity, - BusinessSettingFields.business, - getBusinessBuilder(), - resultMap); - } - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businesssetting/BusinessSettingRepository.java b/src/main/java/io/kumare/iqr/mod/biz/store/businesssetting/BusinessSettingRepository.java deleted file mode 100644 index e39b76a..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businesssetting/BusinessSettingRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businesssetting; - -// spring -import org.springframework.stereotype.Repository; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Repository -public interface BusinessSettingRepository extends AppEntityRepository{ - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businesssetting/BusinessSettingStore.java b/src/main/java/io/kumare/iqr/mod/biz/store/businesssetting/BusinessSettingStore.java deleted file mode 100644 index 42c1670..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businesssetting/BusinessSettingStore.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businesssetting; - -// spring -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Service -public class BusinessSettingStore extends AppEntityStore { - - // ::: vars - // - @Autowired - private BusinessSettingRepository repository; - - // ::: override - // - @Override - public BusinessSettingRepository getRepository() { - return repository; - } - - // ::: api - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businesstag/BusinessTagData.java b/src/main/java/io/kumare/iqr/mod/biz/store/businesstag/BusinessTagData.java deleted file mode 100644 index 39675b1..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businesstag/BusinessTagData.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businesstag; - -// base -import io.kumare.iqr.app.store.AppExtendedEntityData; -// imports - - -public class BusinessTagData extends AppExtendedEntityData { - - // ::: vars - // - - - // ::: fields - // - - - // ::: fluent - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businesstag/BusinessTagEntity.java b/src/main/java/io/kumare/iqr/mod/biz/store/businesstag/BusinessTagEntity.java deleted file mode 100644 index 78efd9d..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businesstag/BusinessTagEntity.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businesstag; - -// jakarta -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.Index; -import jakarta.persistence.ManyToOne; -import jakarta.persistence.Table; -// base -import io.kumare.lib.app.api.store.*; -import io.kumare.iqr.app.store.*; -// imports - -// relations - - -// annotations -@Entity -@Table( - name = "business_tag", - indexes = { - @Index(name = "idx_business_tag_entity_key", columnList = "entityKey"), - @Index(name = "idx_business_tag_name", columnList = "name") - } -) -public class BusinessTagEntity extends AppEntity implements SupportedEntityKey { - - // ::: vars - // - private String entityKey; - private String name; - // relations - - - // ::: constructors - // - public BusinessTagEntity() { - } - - public BusinessTagEntity(String id) { - super(id); - } - - // ::: fields - // - public String getEntityKey() { - return entityKey; - } - - public void setEntityKey(String entityKey) { - this.entityKey = entityKey; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - // relations - - - // ::: fluent - // - public BusinessTagEntity entityKey(String entityKey) { - setEntityKey(entityKey); - return this; - } - - public BusinessTagEntity name(String name) { - setName(name); - return this; - } - - // relations - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businesstag/BusinessTagFields.java b/src/main/java/io/kumare/iqr/mod/biz/store/businesstag/BusinessTagFields.java deleted file mode 100644 index 4dd0082..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businesstag/BusinessTagFields.java +++ /dev/null @@ -1,135 +0,0 @@ -/* - */ -package io.kumare.iqr.mod.biz.store.businesstag; - -// java -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -// base -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app - - -/** - * - * @author afatecha - */ -public enum BusinessTagFields implements EntityFieldDescriptor { - - id(MAIN, FIND, LIST), - entityKey(MAIN, FIND, LIST), - name(MAIN, FIND, LIST), - active(MAIN, FIND, LIST), - inserted(AUDIT, FIND, LIST), - inserter(AUDIT, FIND, LIST), - modified(AUDIT, FIND), - modifier(AUDIT, FIND), - deleted(AUDIT), - removed(AUDIT), - remover(AUDIT); - - // ::: vars - // - private final boolean relation; - private final EntityDescriptor entityDescriptor; - private final Class enumClass; - private final List groups; - - // ::: constructors - // - BusinessTagFields(String... groups) { - this(false, null, null, groups); - } - - BusinessTagFields(EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this(true, entityDescriptor, enumClass, groups); - } - - BusinessTagFields(boolean relation, EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this.relation = relation; - this.entityDescriptor = entityDescriptor; - this.enumClass = enumClass; - this.groups = groups == null ? Collections.EMPTY_LIST : Arrays.asList(groups); - } - - // ::: api - // - @Override - public String getName() { - return name(); - } - - @Override - public boolean isRelation() { - return relation; - } - - @Override - public Class getRelationEnumClass() { - return enumClass; - } - - @Override - public List getGroups() { - return groups; - } - - @Override - public EntityDescriptor getEntityDescriptor() { - return entityDescriptor; - } - - @Override - public Object fetchValue(BusinessTagEntity entity) { - if (entity == null) { - return null; - } - - switch (this) { - case null -> { - return null; - } - case id -> { - return entity.getId(); - } - case entityKey ->{ - return entity.getEntityKey(); - } - case name ->{ - return entity.getName(); - } - case active -> { - return entity.isActive(); - } - case inserted -> { - return entity.getInserted(); - } - case inserter -> { - return entity.getInserter(); - } - case modified -> { - return entity.getModified(); - } - case modifier -> { - return entity.getModifier(); - } - case deleted -> { - return entity.isDeleted(); - } - case removed -> { - return entity.getRemoved(); - } - case remover -> { - return entity.getRemover(); - } - - default -> { - return null; - } - } - - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businesstag/BusinessTagMapBuilder.java b/src/main/java/io/kumare/iqr/mod/biz/store/businesstag/BusinessTagMapBuilder.java deleted file mode 100644 index 99fcdfd..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businesstag/BusinessTagMapBuilder.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businesstag; - -// java -import java.util.List; -import java.util.Map; -// base -import io.kumare.lib.app.api.Context; -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.BaseEntityMapBuilder; -// app - - -/** - * - * @author afatecha - */ -public class BusinessTagMapBuilder extends BaseEntityMapBuilder { - - // ::: vars - // - - - - // ::: fields - // - @Override - public BusinessTagMapBuilder addGroup(String name, boolean cascade) { - includes.addAll(EntityFieldDescriptor.group(BusinessTagFields.values(), name)); - - return this; - } - - @Override - public BusinessTagMapBuilder add(String fieldName) { - includes.add(BusinessTagFields.valueOf(fieldName)); - return this; - } - - @Override - public BusinessTagMapBuilder addAll(String... names) { - for (var i : names) { - includes.add(BusinessTagFields.valueOf(i)); - } - return this; - } - - @Override - public BusinessTagMapBuilder remove(String fieldName) { - excludes.add(BusinessTagFields.valueOf(fieldName)); - return this; - } - - @Override - public BusinessTagMapBuilder removeAll(String... names) { - for (var i : names) { - excludes.add(BusinessTagFields.valueOf(i)); - } - return this; - } - - // ::: relations - // - @Override - public BusinessTagMapBuilder addPlains(boolean cascade) { - includes.addAll(EntityFieldDescriptor.plains(BusinessTagFields.values())); - - return this; - } - - @Override - public BusinessTagMapBuilder addRelations(boolean cascade) { - includes.addAll(EntityFieldDescriptor.relations(BusinessTagFields.values())); - - return this; - } - - - - // ::: internals - // - @Override - protected void internalAttachRelations(Context context, - BusinessTagEntity entity, - List fields, - Map resultMap) { - - - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businesstag/BusinessTagRepository.java b/src/main/java/io/kumare/iqr/mod/biz/store/businesstag/BusinessTagRepository.java deleted file mode 100644 index 64c4002..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businesstag/BusinessTagRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businesstag; - -// spring -import org.springframework.stereotype.Repository; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Repository -public interface BusinessTagRepository extends AppKeyEntityRepository{ - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businesstag/BusinessTagStore.java b/src/main/java/io/kumare/iqr/mod/biz/store/businesstag/BusinessTagStore.java deleted file mode 100644 index 6fbe0cf..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businesstag/BusinessTagStore.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businesstag; - -// spring -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Service -public class BusinessTagStore extends AppKeyEntityStore { - - // ::: vars - // - @Autowired - private BusinessTagRepository repository; - - // ::: override - // - @Override - public BusinessTagRepository getRepository() { - return repository; - } - - // ::: api - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businessworker/BusinessWorkerData.java b/src/main/java/io/kumare/iqr/mod/biz/store/businessworker/BusinessWorkerData.java deleted file mode 100644 index 14b0235..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businessworker/BusinessWorkerData.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businessworker; - -// base -import io.kumare.iqr.app.store.AppExtendedEntityData; -// imports - - -public class BusinessWorkerData extends AppExtendedEntityData { - - // ::: vars - // - - - // ::: fields - // - - - // ::: fluent - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businessworker/BusinessWorkerEntity.java b/src/main/java/io/kumare/iqr/mod/biz/store/businessworker/BusinessWorkerEntity.java deleted file mode 100644 index 0385a72..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businessworker/BusinessWorkerEntity.java +++ /dev/null @@ -1,201 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businessworker; - -// jakarta -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.Index; -import jakarta.persistence.ManyToOne; -import jakarta.persistence.Table; -// base -import io.kumare.lib.app.api.store.*; -import io.kumare.iqr.app.store.*; -// imports - -// relations -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; - -// annotations -@Entity -@Table( - name = "business_worker", - indexes = { - @Index(name = "idx_business_worker_entity_key", columnList = "entityKey"), - @Index(name = "idx_business_worker_role_value", columnList = "roleValue"), - @Index(name = "idx_business_worker_state_value", columnList = "stateValue"), - @Index(name = "idx_business_worker_email", columnList = "email"), - @Index(name = "idx_business_worker_phone", columnList = "phone"), - @Index(name = "idx_business_worker_name", columnList = "name"), - @Index(name = "idx_business_worker_description", columnList = "description") - } -) -public class BusinessWorkerEntity extends AppEntity implements SupportedEntityKey { - - // ::: vars - // - private String entityKey; - private String roleValue; - private String stateValue; - private String email; - private String phone; - private String name; - private String description; - // relations - @ManyToOne(fetch = FetchType.LAZY) - private BusinessEntity business; - @ManyToOne(fetch = FetchType.LAZY) - private TaxonEntity role; - @ManyToOne(fetch = FetchType.LAZY) - private TaxonEntity state; - - // ::: constructors - // - public BusinessWorkerEntity() { - } - - public BusinessWorkerEntity(String id) { - super(id); - } - - // ::: fields - // - @Override - public String getEntityKey() { - return entityKey; - } - - @Override - public void setEntityKey(String entityKey) { - this.entityKey = entityKey; - } - - public String getRoleValue() { - return roleValue; - } - - public void setRoleValue(String roleValue) { - this.roleValue = roleValue; - } - - public String getStateValue() { - return stateValue; - } - - public void setStateValue(String stateValue) { - this.stateValue = stateValue; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public String getPhone() { - return phone; - } - - public void setPhone(String phone) { - this.phone = phone; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - // relations - public BusinessEntity getBusiness() { - return business; - } - - public void setBusiness(BusinessEntity business) { - this.business = business; - } - - public TaxonEntity getRole() { - return role; - } - - public void setRole(TaxonEntity role) { - this.role = role; - } - - public TaxonEntity getState() { - return state; - } - - public void setState(TaxonEntity state) { - this.state = state; - } - - // ::: fluent - // - public BusinessWorkerEntity entityKey(String entityKey) { - setEntityKey(entityKey); - return this; - } - - public BusinessWorkerEntity roleValue(String roleValue) { - setRoleValue(roleValue); - return this; - } - - public BusinessWorkerEntity stateValue(String stateValue) { - setStateValue(stateValue); - return this; - } - - public BusinessWorkerEntity email(String email) { - setEmail(email); - return this; - } - - public BusinessWorkerEntity phone(String phone) { - setPhone(phone); - return this; - } - - public BusinessWorkerEntity name(String name) { - setName(name); - return this; - } - - public BusinessWorkerEntity description(String description) { - setDescription(description); - return this; - } - - // relations - public BusinessWorkerEntity business(BusinessEntity business) { - setBusiness(business); - return this; - } - - public BusinessWorkerEntity role(TaxonEntity role) { - setRole(role); - return this; - } - - public BusinessWorkerEntity state(TaxonEntity state) { - setState(state); - return this; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businessworker/BusinessWorkerFields.java b/src/main/java/io/kumare/iqr/mod/biz/store/businessworker/BusinessWorkerFields.java deleted file mode 100644 index ef62d73..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businessworker/BusinessWorkerFields.java +++ /dev/null @@ -1,169 +0,0 @@ -/* - */ -package io.kumare.iqr.mod.biz.store.businessworker; - -// java -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -// base -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app -import io.kumare.iqr.mod.biz.store.BizEntities; -import io.kumare.iqr.mod.biz.store.business.BusinessFields; -import io.kumare.iqr.mod.taxonomy.store.TaxonomyEntities; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonFields; - -/** - * - * @author afatecha - */ -public enum BusinessWorkerFields implements EntityFieldDescriptor { - - id(MAIN, FIND, LIST), - entityKey(MAIN, FIND, LIST), - roleValue(MAIN, FIND, LIST), - stateValue(MAIN, FIND, LIST), - email(MAIN, FIND, LIST), - phone(MAIN, FIND, LIST), - name(MAIN, FIND, LIST), - description(MAIN, FIND, LIST), - active(MAIN, FIND, LIST), - inserted(AUDIT, FIND, LIST), - inserter(AUDIT, FIND, LIST), - modified(AUDIT, FIND), - modifier(AUDIT, FIND), - deleted(AUDIT), - removed(AUDIT), - remover(AUDIT), - business(BizEntities.business, BusinessFields.class, FIND, LIST), - role(TaxonomyEntities.taxon, TaxonFields.class, FIND, LIST), - state(TaxonomyEntities.taxon, TaxonFields.class, FIND, LIST); - - // ::: vars - // - private final boolean relation; - private final EntityDescriptor entityDescriptor; - private final Class enumClass; - private final List groups; - - // ::: constructors - // - BusinessWorkerFields(String... groups) { - this(false, null, null, groups); - } - - BusinessWorkerFields(EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this(true, entityDescriptor, enumClass, groups); - } - - BusinessWorkerFields(boolean relation, EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this.relation = relation; - this.entityDescriptor = entityDescriptor; - this.enumClass = enumClass; - this.groups = groups == null ? Collections.EMPTY_LIST : Arrays.asList(groups); - } - - // ::: api - // - @Override - public String getName() { - return name(); - } - - @Override - public boolean isRelation() { - return relation; - } - - @Override - public Class getRelationEnumClass() { - return enumClass; - } - - @Override - public List getGroups() { - return groups; - } - - @Override - public EntityDescriptor getEntityDescriptor() { - return entityDescriptor; - } - - @Override - public Object fetchValue(BusinessWorkerEntity entity) { - if (entity == null) { - return null; - } - - switch (this) { - case null -> { - return null; - } - case id -> { - return entity.getId(); - } - case entityKey ->{ - return entity.getEntityKey(); - } - case roleValue ->{ - return entity.getRoleValue(); - } - case stateValue ->{ - return entity.getStateValue(); - } - case email ->{ - return entity.getEmail(); - } - case phone ->{ - return entity.getPhone(); - } - case name ->{ - return entity.getName(); - } - case description ->{ - return entity.getDescription(); - } - case active -> { - return entity.isActive(); - } - case inserted -> { - return entity.getInserted(); - } - case inserter -> { - return entity.getInserter(); - } - case modified -> { - return entity.getModified(); - } - case modifier -> { - return entity.getModifier(); - } - case deleted -> { - return entity.isDeleted(); - } - case removed -> { - return entity.getRemoved(); - } - case remover -> { - return entity.getRemover(); - } - case business ->{ - return entity.getBusiness(); - } - case role ->{ - return entity.getRole(); - } - case state ->{ - return entity.getState(); - } - default -> { - return null; - } - } - - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businessworker/BusinessWorkerMapBuilder.java b/src/main/java/io/kumare/iqr/mod/biz/store/businessworker/BusinessWorkerMapBuilder.java deleted file mode 100644 index dc6bb17..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businessworker/BusinessWorkerMapBuilder.java +++ /dev/null @@ -1,230 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businessworker; - -// java -import java.util.List; -import java.util.Map; -// base -import io.kumare.lib.app.api.Context; -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.BaseEntityMapBuilder; -// app -import io.kumare.iqr.mod.biz.store.business.BusinessMapBuilder; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonMapBuilder; - -/** - * - * @author afatecha - */ -public class BusinessWorkerMapBuilder extends BaseEntityMapBuilder { - - // ::: vars - // - private BusinessMapBuilder businessBuilder; - private TaxonMapBuilder roleBuilder; - private TaxonMapBuilder stateBuilder; - - - // ::: fields - // - @Override - public BusinessWorkerMapBuilder addGroup(String name, boolean cascade) { - includes.addAll(EntityFieldDescriptor.group(BusinessWorkerFields.values(), name)); - - if(cascade) { - if (includes.contains(BusinessWorkerFields.business)) { - getBusinessBuilder().addGroup(name); - } - if (includes.contains(BusinessWorkerFields.role)) { - getRoleBuilder().addGroup(name); - } - if (includes.contains(BusinessWorkerFields.state)) { - getStateBuilder().addGroup(name); - } - } - return this; - } - - @Override - public BusinessWorkerMapBuilder add(String fieldName) { - includes.add(BusinessWorkerFields.valueOf(fieldName)); - return this; - } - - @Override - public BusinessWorkerMapBuilder addAll(String... names) { - for (var i : names) { - includes.add(BusinessWorkerFields.valueOf(i)); - } - return this; - } - - @Override - public BusinessWorkerMapBuilder remove(String fieldName) { - excludes.add(BusinessWorkerFields.valueOf(fieldName)); - return this; - } - - @Override - public BusinessWorkerMapBuilder removeAll(String... names) { - for (var i : names) { - excludes.add(BusinessWorkerFields.valueOf(i)); - } - return this; - } - - // ::: relations - // - @Override - public BusinessWorkerMapBuilder addPlains(boolean cascade) { - includes.addAll(EntityFieldDescriptor.plains(BusinessWorkerFields.values())); - - if(cascade) { - if (includes.contains(BusinessWorkerFields.business)) { - getBusinessBuilder().addPlains(); - } - if (includes.contains(BusinessWorkerFields.role)) { - getRoleBuilder().addPlains(); - } - if (includes.contains(BusinessWorkerFields.state)) { - getStateBuilder().addPlains(); - } - } - return this; - } - - @Override - public BusinessWorkerMapBuilder addRelations(boolean cascade) { - includes.addAll(EntityFieldDescriptor.relations(BusinessWorkerFields.values())); - - if(cascade) { - if (includes.contains(BusinessWorkerFields.business)) { - getBusinessBuilder().addRelations(); - } - if (includes.contains(BusinessWorkerFields.role)) { - getRoleBuilder().addRelations(); - } - if (includes.contains(BusinessWorkerFields.state)) { - getStateBuilder().addRelations(); - } - } - return this; - } - - // ::: business - // - public BusinessWorkerMapBuilder addBusiness() { - return addBusiness(null); - } - - public BusinessWorkerMapBuilder addBusiness(String group) { - return addBusiness(group, false); - } - - public BusinessWorkerMapBuilder addBusiness(String group, boolean cascade) { - includes.add(BusinessWorkerFields.business); - - if (group != null) { - getBusinessBuilder().addGroup(group); - } - - return this; - } - - public BusinessMapBuilder getBusinessBuilder() { - if(businessBuilder == null) { - businessBuilder = new BusinessMapBuilder(); - } - return businessBuilder; - } - - - // ::: role - // - public BusinessWorkerMapBuilder addRole() { - return addRole(null); - } - - public BusinessWorkerMapBuilder addRole(String group) { - return addRole(group, false); - } - - public BusinessWorkerMapBuilder addRole(String group, boolean cascade) { - includes.add(BusinessWorkerFields.role); - - if (group != null) { - getRoleBuilder().addGroup(group); - } - - return this; - } - - public TaxonMapBuilder getRoleBuilder() { - if(roleBuilder == null) { - roleBuilder = new TaxonMapBuilder(); - } - return roleBuilder; - } - - - // ::: state - // - public BusinessWorkerMapBuilder addState() { - return addState(null); - } - - public BusinessWorkerMapBuilder addState(String group) { - return addState(group, false); - } - - public BusinessWorkerMapBuilder addState(String group, boolean cascade) { - includes.add(BusinessWorkerFields.state); - - if (group != null) { - getStateBuilder().addGroup(group); - } - - return this; - } - - public TaxonMapBuilder getStateBuilder() { - if(stateBuilder == null) { - stateBuilder = new TaxonMapBuilder(); - } - return stateBuilder; - } - - // ::: internals - // - @Override - protected void internalAttachRelations(Context context, - BusinessWorkerEntity entity, - List fields, - Map resultMap) { - - if (fields.contains(BusinessWorkerFields.business)) { - attachRelation(context, - entity, - BusinessWorkerFields.business, - getBusinessBuilder(), - resultMap); - } - if (fields.contains(BusinessWorkerFields.role)) { - attachRelation(context, - entity, - BusinessWorkerFields.role, - getRoleBuilder(), - resultMap); - } - if (fields.contains(BusinessWorkerFields.state)) { - attachRelation(context, - entity, - BusinessWorkerFields.state, - getStateBuilder(), - resultMap); - } - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businessworker/BusinessWorkerRepository.java b/src/main/java/io/kumare/iqr/mod/biz/store/businessworker/BusinessWorkerRepository.java deleted file mode 100644 index ff871d9..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businessworker/BusinessWorkerRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businessworker; - -// spring -import org.springframework.stereotype.Repository; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Repository -public interface BusinessWorkerRepository extends AppKeyEntityRepository{ - -} diff --git a/src/main/java/io/kumare/iqr/mod/biz/store/businessworker/BusinessWorkerStore.java b/src/main/java/io/kumare/iqr/mod/biz/store/businessworker/BusinessWorkerStore.java deleted file mode 100644 index ba5bdcb..0000000 --- a/src/main/java/io/kumare/iqr/mod/biz/store/businessworker/BusinessWorkerStore.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.biz.store.businessworker; - -// spring -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Service -public class BusinessWorkerStore extends AppKeyEntityStore { - - // ::: vars - // - @Autowired - private BusinessWorkerRepository repository; - - // ::: override - // - @Override - public BusinessWorkerRepository getRepository() { - return repository; - } - - // ::: api - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/ClienteleController.java b/src/main/java/io/kumare/iqr/mod/clientele/ClienteleController.java index bbd4eda..dcb3d1a 100644 --- a/src/main/java/io/kumare/iqr/mod/clientele/ClienteleController.java +++ b/src/main/java/io/kumare/iqr/mod/clientele/ClienteleController.java @@ -1,57 +1,44 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele; - -// java -import io.kumare.iqr.mod.clientele.store.ClienteleEntities; -import java.util.Arrays; -import java.util.List; -// base -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app -import io.kumare.iqr.app.module.AppModuleController; -// module -import io.kumare.iqr.mod.clientele.store.client.ClientStore; -import io.kumare.iqr.mod.clientele.store.clientrelation.ClientRelationStore; - -/** - * - * @author afatecha - */ -public class ClienteleController extends AppModuleController { - - // ::: api - // - @Override - public boolean hasStore(String name) { - return ClienteleEntities.hasDescriptor(name); - } - - @Override - public EntityDescriptor getEntityDescriptor(Class entityClass) { - return ClienteleEntities.descriptorOf(entityClass); - } - - @Override - public EntityDescriptor getEntityDescriptor(String name) { - return ClienteleEntities.descriptorOf(name); - } - - @Override - public List getEntityDescriptors() { - return Arrays.asList(ClienteleEntities.values()); - } - - // ::: stores - // - public ClientStore getClientStore() { - return getService(ClientStore.class); - } - - public ClientRelationStore getClientRelationStore() { - return getService(ClientRelationStore.class); - } - - -} +/* + * + */ +package io.kumare.iqr.mod.clientele; + +// java +import java.util.Collections; +import java.util.List; +// base +import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; +// app +import io.kumare.iqr.app.module.AppModuleController; + +/** + * No local entities/stores — the Visma endpoints are stateless passthroughs + * to the adapter, so this controller has nothing to describe. + * + * @author afatecha + */ +public class ClienteleController extends AppModuleController { + + // ::: api + // + @Override + public boolean hasStore(String name) { + return false; + } + + @Override + public EntityDescriptor getEntityDescriptor(Class entityClass) { + return null; + } + + @Override + public EntityDescriptor getEntityDescriptor(String name) { + return null; + } + + @Override + public List getEntityDescriptors() { + return Collections.emptyList(); + } + +} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/ClienteleErrors.java b/src/main/java/io/kumare/iqr/mod/clientele/ClienteleErrors.java deleted file mode 100644 index 4602a32..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/ClienteleErrors.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele; - -// java -import java.util.HashMap; -import java.util.Map; -// lib -import io.kumare.lib.transport.TransportCode; -import static io.kumare.lib.transport.Transports.code; -import io.kumare.lib.v.ExceptionPrototype; -// app -import io.kumare.iqr.app.AppException; -import io.kumare.iqr.app.endpoint.AppTransports; - - -/** - * - * @author afatecha - */ -public enum ClienteleErrors implements ExceptionPrototype { - - - // client - client_notfound(1, code(AppTransports.http, 400)), - client_data_notfound(1, code(AppTransports.http, 400)), - client_preload_empty(1, code(AppTransports.http, 400)), - client_externalid_empty(1, code(AppTransports.http, 400)), - client_entitykey_empty(1, code(AppTransports.http, 400)), - client_alias_empty(1, code(AppTransports.http, 400)), - client_statevalue_empty(1, code(AppTransports.http, 400)), - client_email_empty(1, code(AppTransports.http, 400)), - client_phone_empty(1, code(AppTransports.http, 400)), - client_name_empty(1, code(AppTransports.http, 400)), - client_description_empty(1, code(AppTransports.http, 400)), - client_authuser_notfound(1, code(AppTransports.http, 400)), - client_state_notfound(1, code(AppTransports.http, 400)), - - // client relation - clientrelation_notfound(1, code(AppTransports.http, 400)), - clientrelation_data_notfound(1, code(AppTransports.http, 400)), - clientrelation_preload_empty(1, code(AppTransports.http, 400)), - clientrelation_typevalue_empty(1, code(AppTransports.http, 400)), - clientrelation_statevalue_empty(1, code(AppTransports.http, 400)), - clientrelation_resourcetype_empty(1, code(AppTransports.http, 400)), - clientrelation_resourcekey_empty(1, code(AppTransports.http, 400)), - clientrelation_resourceid_empty(1, code(AppTransports.http, 400)), - clientrelation_type_notfound(1, code(AppTransports.http, 400)), - clientrelation_state_notfound(1, code(AppTransports.http, 400)); - - // ::: vars - // - private final Map transportCodes = new HashMap(); - private final int code; - - // ::: constructors - // - private ClienteleErrors(int code, TransportCode... codes) { - this.code = code; - if (codes != null) { - for (var i : codes) { - if (i != null) { - transportCodes.put(i.getId(), i.getCode()); - } - } - } - } - - // ::: prototype api - // - @Override - public int getCode() { - return code; - } - - @Override - public String getName() { - return name(); - } - - @Override - public Map getTransportCodes() { - return transportCodes; - } - - @Override - public RuntimeException newInstance(String msg, Throwable cause, Map extra) { - var ex = new AppException(this, msg, cause); - ex.setExtra(extra); - return ex; - } - - -} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/ClientelePermissions.java b/src/main/java/io/kumare/iqr/mod/clientele/ClientelePermissions.java deleted file mode 100644 index 473faf4..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/ClientelePermissions.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele; - -// base -import io.kumare.iqr.mod.clientele.store.ClienteleEntities; -import io.kumare.lib.app.api.security.PermissionReference; -// app -import io.kumare.iqr.app.AppErrors; - -/** - * - * @author afatecha - */ -public enum ClientelePermissions { - - // client - //client_add(ClienteleEntities.client), - //client_edit(ClienteleEntities.client), - //client_find(ClienteleEntities.client), - //client_enable(ClienteleEntities.client), - //client_disable(ClienteleEntities.client), - //client_list(ClienteleEntities.client), - //client_delete(ClienteleEntities.client), - //client_preload(ClienteleEntities.client), - // - client_viewer(ClienteleEntities.client), - //client_guest(ClienteleEntities.client), - //client_collab(ClienteleEntities.client), - client_worker(ClienteleEntities.client), - //client_control(ClienteleEntities.client), - client_manager(ClienteleEntities.client), - client_admin(null), - client_system(null), - - // client relation - //client_relation_add(ClienteleEntities.clientRelation), - //client_relation_edit(ClienteleEntities.clientRelation), - //client_relation_find(ClienteleEntities.clientRelation), - //client_relation_enable(ClienteleEntities.clientRelation), - //client_relation_disable(ClienteleEntities.clientRelation), - //client_relation_list(ClienteleEntities.clientRelation), - //client_relation_delete(ClienteleEntities.clientRelation), - //client_relation_preload(ClienteleEntities.clientRelation), - // - client_relation_viewer(ClienteleEntities.clientRelation), - //client_relation_guest(ClienteleEntities.clientRelation), - //client_relation_collab(ClienteleEntities.clientRelation), - client_relation_worker(ClienteleEntities.clientRelation), - //client_relation_control(ClienteleEntities.clientRelation), - client_relation_manager(ClienteleEntities.clientRelation), - client_relation_admin(null), - client_relation_system(null); - - - // ::: - // - private final ClienteleEntities resourceType; - - ClientelePermissions(ClienteleEntities entityRef) { - this.resourceType = entityRef; - } - - // - public PermissionReference toReference() { - return toReference(null); - } - - public PermissionReference toReference(String resourceKey) { - var ref = new PermissionReference() - .module(ClienteleConstants.NAME) - .permission(name()) - .error(AppErrors.action_unauthorized); - - if (resourceType != null && resourceKey != null) { - ref.resourceType(resourceType.name()) - .resourceKey(resourceKey); - } - - return ref; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientActionArgument.java b/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientActionArgument.java deleted file mode 100644 index 4ca4848..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientActionArgument.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.action.client; - -// base -import io.kumare.iqr.app.action.AppEntityActionArgument; -// entity -import io.kumare.iqr.mod.clientele.store.client.ClientEntity; - -/** - * - * @author afatecha - */ -public class ClientActionArgument extends AppEntityActionArgument { - - // ::: constructors - // - public ClientActionArgument() { - } - - public ClientActionArgument(ClientEntity entity) { - super(entity); - } - - // ::: api - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientAddAction.java b/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientAddAction.java deleted file mode 100644 index 252c675..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientAddAction.java +++ /dev/null @@ -1,136 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.action.client; - -// lib -import io.kumare.lib.base.server.spring.action.Actions; -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -import io.kumare.iqr.mod.authentication.action.authuser.AuthUserAddAction; -import io.kumare.iqr.mod.authentication.action.authuser.AuthUserAddArgument; -// module -import io.kumare.iqr.mod.clientele.ClienteleErrors; -// entity -import io.kumare.iqr.mod.clientele.store.client.ClientEntity; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; -import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; - -/** - * - * @author afatecha - */ -public class ClientAddAction extends AppAction> { - - // ::: vars - // - private ClientEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, ClienteleErrors.client_notfound); - - // relations - V.ifNull(model.getAuthUser(), ClienteleErrors.client_authuser_notfound); - V.ifNull(model.getState(), ClienteleErrors.client_state_notfound); - - // fields - //V.ifEmpty(model.getExternalId(), ClienteleErrors.client_externalid_empty); - //V.ifEmpty(model.getEntityKey(), ClienteleErrors.client_entitykey_empty); - V.ifEmpty(model.getAlias(), ClienteleErrors.client_alias_empty); - // V.ifEmpty(model.getStateValue(), ClienteleErrors.client_statevalue_empty); - V.ifEmpty(model.getEmail(), ClienteleErrors.client_email_empty); - //V.ifEmpty(model.getPhone(), ClienteleErrors.client_phone_empty); - V.ifEmpty(model.getName(), ClienteleErrors.client_name_empty); - //V.ifEmpty(model.getDescription(), ClienteleErrors.client_description_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - var taxonomy = AppModules.taxonomy.getController(); - var authentication = AppModules.authentication.getController(); - - //var authUserStore = authentication.getAuthUserStore(); - var taxonStore = taxonomy.getTaxonStore(); - - //var authUser = authUserStore.ensure(getContext(), argModel.getAuthUser(), ClienteleErrors.client_authuser_notfound); - var authUser = createAuthUser(); - var state = taxonStore.ensure(getContext(), argModel.getState(), ClienteleErrors.client_state_notfound); - - // model - var model = makeModel(authUser, state); - - // add - entity = saveEntity(model); - - // add others - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private ClientEntity makeModel(AuthUserEntity authUser, TaxonEntity state) { - - var argModel = getArgument().getEntity(); - var model = new ClientEntity(); - - // relations - model.setAuthUser(authUser); - model.setState(state); - - // fields - model.setExternalId(argModel.getExternalId()); - model.setEntityKey(argModel.getEntityKey()); - model.setAlias(argModel.getAlias()); - model.setStateValue(argModel.getStateValue()); - model.setEmail(argModel.getEmail()); - model.setPhone(argModel.getPhone()); - model.setName(argModel.getName()); - model.setDescription(argModel.getDescription()); - model.setActive(true); - - return model; - } - - // ::: save - // - private ClientEntity saveEntity(ClientEntity model) { - - var store = AppModules.clientele.getController().getClientStore(); - - var saved = store.add(getContext(), model); - getContext().attach(saved.getId(), saved); - return saved; - } - - private AuthUserEntity createAuthUser() { - var arg = new AuthUserAddArgument(); - var ent = new AuthUserEntity(); - arg.setEntity(ent); - arg.setPassword(getArgument().getPassword()); - var action = Actions.perform(getContext(), AuthUserAddAction.class, arg); - return action.getResult().getEntity(); - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientAddArgument.java b/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientAddArgument.java deleted file mode 100644 index 15dd1c1..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientAddArgument.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.action.client; - -// app -import io.kumare.iqr.mod.clientele.store.client.ClientEntity; - -/** - * - * @author afatecha - */ -public class ClientAddArgument extends ClientActionArgument { - - // ::: vars - // - private String password; - - // ::: constructors - // - public ClientAddArgument() { - } - - public ClientAddArgument(ClientEntity entity) { - super(entity); - } - - // ::: fields - // - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientDeleteAction.java b/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientDeleteAction.java deleted file mode 100644 index d526cd2..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientDeleteAction.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.action.client; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.clientele.ClienteleErrors; -// entity -import io.kumare.iqr.mod.clientele.store.client.ClientEntity; - -/** - * - * @author afatecha - */ -public class ClientDeleteAction extends AppAction> { - - // ::: vars - // - private ClientEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), ClienteleErrors.client_notfound); - V.ifNull(getArgument().getEntity().getId(), ClienteleErrors.client_notfound); - } - - @Override - protected void doAction() { - - var argModel = getArgument().getEntity(); - - deleteEntity(argModel); - } - - @Override - protected void setResultOnly() { - } - - // ::: delete - // - private void deleteEntity(ClientEntity model) { - - var store = AppModules.clientele.getController().getClientStore(); - - store.deleteById(getContext(), model.getId()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientEditAction.java b/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientEditAction.java deleted file mode 100644 index e27891c..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientEditAction.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.action.client; - -// lib -import io.kumare.lib.v.V; -// app -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.clientele.ClienteleErrors; -// entity -import io.kumare.iqr.mod.clientele.store.client.ClientEntity; - -/** - * - * @author afatecha - */ -public class ClientEditAction extends AppAction> { - - // ::: vars - // - private ClientEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, ClienteleErrors.client_notfound); - - // fields - V.ifEmpty(model.getExternalId(), ClienteleErrors.client_externalid_empty); - V.ifEmpty(model.getEntityKey(), ClienteleErrors.client_entitykey_empty); - V.ifEmpty(model.getAlias(), ClienteleErrors.client_alias_empty); - V.ifEmpty(model.getStateValue(), ClienteleErrors.client_statevalue_empty); - V.ifEmpty(model.getEmail(), ClienteleErrors.client_email_empty); - V.ifEmpty(model.getPhone(), ClienteleErrors.client_phone_empty); - V.ifEmpty(model.getName(), ClienteleErrors.client_name_empty); - V.ifEmpty(model.getDescription(), ClienteleErrors.client_description_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - - var clientele = AppModules.clientele.getController(); - var clientStore = clientele.getClientStore(); - - // edit - entity = clientStore.ensure(getContext(), argModel, ClienteleErrors.client_notfound); - - editEntity(); - - entity = saveEntity(); - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private void editEntity() { - - var model = getArgument().getEntity(); - - // fields - entity.setExternalId(V.firstNotEmpty(model.getExternalId(), entity.getExternalId())); - entity.setEntityKey(V.firstNotEmpty(model.getEntityKey(), entity.getEntityKey())); - entity.setAlias(V.firstNotEmpty(model.getAlias(), entity.getAlias())); - entity.setStateValue(V.firstNotEmpty(model.getStateValue(), entity.getStateValue())); - entity.setEmail(V.firstNotEmpty(model.getEmail(), entity.getEmail())); - entity.setPhone(V.firstNotEmpty(model.getPhone(), entity.getPhone())); - entity.setName(V.firstNotEmpty(model.getName(), entity.getName())); - entity.setDescription(V.firstNotEmpty(model.getDescription(), entity.getDescription())); - - - } - - // ::: save - // - private ClientEntity saveEntity() { - - var store = AppModules.clientele.getController().getClientStore(); - - var saved = store.edit(getContext(), entity); - getContext().attach(saved.getId(), saved); - return saved; - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientEditArgument.java b/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientEditArgument.java deleted file mode 100644 index 4bc07ce..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientEditArgument.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.action.client; - -// app -import io.kumare.iqr.mod.clientele.store.client.ClientEntity; - -/** - * - * @author afatecha - */ -public class ClientEditArgument extends ClientActionArgument { - - // ::: vars - // - - - // ::: constructors - // - public ClientEditArgument() { - } - - public ClientEditArgument(ClientEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientEnableAction.java b/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientEnableAction.java deleted file mode 100644 index dc2cbe2..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientEnableAction.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.action.client; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.clientele.ClienteleErrors; -// entity -import io.kumare.iqr.mod.clientele.store.client.ClientEntity; - - -/** - * - * @author afatecha - */ -public class ClientEnableAction extends AppAction { - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), ClienteleErrors.client_notfound); - V.ifNull(getArgument().getEntity().getId(), ClienteleErrors.client_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - - enableEntity(model); - } - - @Override - protected void setResultOnly() { - } - - // ::: enable - // - private void enableEntity(ClientEntity model) { - - var store = AppModules.clientele.getController().getClientStore(); - - if (getArgument().getEntity().isActive()) { - store.enableById(getContext(), model.getId()); - } else { - store.disableById(getContext(), model.getId()); - } - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientFindAction.java b/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientFindAction.java deleted file mode 100644 index 1f63381..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientFindAction.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.action.client; - -// java -import java.util.HashMap; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.clientele.ClienteleErrors; -// entity -import io.kumare.iqr.mod.clientele.store.client.ClientEntity; - - -/** - * - * @author afatecha - */ -public class ClientFindAction extends AppAction { - - // ::: vars - // - private ClientEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), ClienteleErrors.client_notfound); - V.ifNull(getArgument().getEntity().getId(), ClienteleErrors.client_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - entity = findEntity(model); - } - - @Override - protected void setResultOnly() { - var result = new HashMap(); - result.put("entity", entity); - setResult(result); - } - - // ::: find - // - private ClientEntity findEntity(ClientEntity model) { - - var store = AppModules.clientele.getController().getClientStore(); - return store.findById(getContext(), model.getId()); - } - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientListAction.java b/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientListAction.java deleted file mode 100644 index b793408..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientListAction.java +++ /dev/null @@ -1,145 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.action.client; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.LinkedList; -import java.util.Map; -// spring -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// entity -import io.kumare.iqr.mod.clientele.store.client.ClientEntity; -import io.kumare.iqr.mod.clientele.store.client.ClientMapBuilder; - -/** - * - * @author afatecha - */ -public class ClientListAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private final List entities = new LinkedList<>(); - - // ::: public api - // - public List getEntities() { - return entities; - } - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - } - - @Override - protected void doAction() { - - result.put("pageable", getArgument().isPageable()); - result.put("wrapped", getArgument().isWrapped()); - - if (getArgument().isPageable()) { - - var page = makePage(); - entities.addAll(page.toList()); - - if (getArgument().isWrapped()) { - result.put("page", makeWrappedPage(page)); - } else { - result.put("page", page); - } - - } else { - - var list = makeList(); - entities.addAll(list); - - if (getArgument().isWrapped()) { - result.put("list", makeWrappedList()); - } else { - result.put("list", list); - } - } - - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: page - // - private Page makePage() { - - var page = getArgument().getPageNumber(); - var size = getArgument().getPageSize(); - //var sort = getArgument().getSort(); - - var pageable = PageRequest.of(page, size); - - var store = AppModules.clientele.getController().getClientStore(); - return store.getRepository().findAll(pageable); - } - - // ::: wrapped page - // - private Map makeWrappedPage(Page found) { - - var page = new HashMap(); - var content = new LinkedList(); - - wrapList(entities, content); - - page.put("size", found.getSize()); - page.put("number", found.getNumber()); - page.put("totalElements", found.getTotalElements()); - page.put("totalPages", found.getTotalPages()); - page.put("content", content); - - return page; - } - - // ::: list - // - private List makeList() { - - var store = AppModules.clientele.getController().getClientStore(); - - return store.listAll(getContext()); - } - - // ::: wrapped list - private List makeWrappedList() { - var list = new LinkedList(); - - wrapList(entities, list); - - return list; - } - - // ::: wrapper - // - private void wrapList(List found, List output) { - - var builder = new ClientMapBuilder().addListGroup(); - builder.getAuthUserBuilder().addMainGroup(); - builder.getStateBuilder().addMainGroup(); - - output.addAll(builder.build(getContext(), found)); - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientPreloadAction.java b/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientPreloadAction.java deleted file mode 100644 index 2e415c5..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientPreloadAction.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.action.client; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.clientele.ClienteleErrors; -// entity -import io.kumare.iqr.mod.clientele.store.client.ClientEntity; -// relations -import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; - -/** - * - * @author afatecha - */ -public class ClientPreloadAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private Map params = new HashMap<>(); - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifEmpty(getArgument().getAction(), ClienteleErrors.client_preload_empty); - } - - @Override - protected void doAction() { - if(getArgument().getParams() != null) { - params = getArgument().getParams(); - } - - switch (getArgument().getAction()) { - case "find" -> - prepareFind(); - case "list" -> - prepareList(); - case "add" -> - prepareAdd(); - case "edit" -> - prepareEdit(); - } - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: preload - // - private void prepareAdd() { - result.put("taxons", listTaxons()); - result.put("authUsers", listAuthUsers()); - } - - private void prepareEdit() { - var entity = findEntity(); - result.put("entity", entity); - result.put("authUser", entity.getAuthUser()); - result.put("state", entity.getState()); - } - - private void prepareList() { - } - - private void prepareFind() { - var entity = findEntity(); - result.put("entity", entity); - result.put("authUser", entity.getAuthUser()); - result.put("state", entity.getState()); - } - - // ::: queries - // - private ClientEntity findEntity() { - var store = AppModules.clientele.getController().getClientStore(); - - var id = (String) params.get("id"); - if(id == null && getArgument().getEntity() != null) { - id = getArgument().getEntity().getId(); - } - return store.findById(getContext(), id); - } - - public List listTaxons() { - var store = AppModules.taxonomy.getController().getTaxonStore(); - - return store.listAll(getContext()); - } - public List listAuthUsers() { - var store = AppModules.authentication.getController().getAuthUserStore(); - - return store.listAll(getContext()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientPreloadArgument.java b/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientPreloadArgument.java deleted file mode 100644 index 6dd4c1c..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientPreloadArgument.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.action.client; - -/** - * - * @author afatecha - */ -public class ClientPreloadArgument extends ClientActionArgument { - - // ::: vars - // - private String action; - - // ::: fields - // - public String getAction() { - return action; - } - - public void setAction(String action) { - this.action = action; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaAddPunchMultipleAction.java b/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaAddPunchMultipleAction.java index 81ade6d..ae952af 100644 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaAddPunchMultipleAction.java +++ b/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaAddPunchMultipleAction.java @@ -46,6 +46,7 @@ public class VismaAddPunchMultipleAction extends AppAction { + + // ::: vars + // + private AttendanceBookResponse response; + + // ::: protected api + // + @Override + protected void checkArgument() { + V.ifNull(getArgument(), AppErrors.action_arg_notfound); + } + + @Override + protected void doAction() { + var vismaAdapter = getContext().getAdapters().getVisma(); + var arg = getArgument(); + var req = new AttendanceBookRequest(); + req.setStartDate(GvTime.formatStartOfDay(arg.getStart())); + req.setEndDate(GvTime.formatEndOfDay(arg.getEnd())); + req.setUserIds(arg.getUserIds()); + + response = vismaAdapter.attendance().attendanceBook(req); + } + + @Override + protected void setResultOnly() { + var result = new HashMap(); + result.put("book", response); + setResult(result); + } + + // ::: find + // +} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientListArgument.java b/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaAttendanceBookArgument.java similarity index 54% rename from src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientListArgument.java rename to src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaAttendanceBookArgument.java index 1e09b25..d507e79 100644 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/client/ClientListArgument.java +++ b/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaAttendanceBookArgument.java @@ -1,50 +1,47 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.action.client; - -// app -import io.kumare.iqr.app.action.AppListActionArgument; -// store -import io.kumare.iqr.mod.clientele.store.client.ClientEntity; -import java.time.LocalDate; - -/** - * - * @author afatecha - */ -public class ClientListArgument extends AppListActionArgument { - - // ::: vars - // - private LocalDate start; - private LocalDate end; - - // ::: constructors - // - public ClientListArgument() { - } - - public ClientListArgument(ClientEntity entity) { - super(entity); - } - - // ::: fields - // - public LocalDate getStart() { - return start; - } - - public void setStart(LocalDate start) { - this.start = start; - } - - public LocalDate getEnd() { - return end; - } - - public void setEnd(LocalDate end) { - this.end = end; - } - -} +/* + * + */ +package io.kumare.iqr.mod.clientele.action.client; + +// java +import java.time.LocalDate; + +/** + * + * @author afatecha + */ +public class VismaAttendanceBookArgument { + + // ::: vars + // + private LocalDate start; + private LocalDate end; + private String userIds; + + // ::: fields + // + public LocalDate getStart() { + return start; + } + + public void setStart(LocalDate start) { + this.start = start; + } + + public LocalDate getEnd() { + return end; + } + + public void setEnd(LocalDate end) { + this.end = end; + } + + public String getUserIds() { + return userIds; + } + + public void setUserIds(String userIds) { + this.userIds = userIds; + } + +} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaEmployeeListAction.java b/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaEmployeeListAction.java index ed0ebec..11d66b0 100644 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaEmployeeListAction.java +++ b/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaEmployeeListAction.java @@ -12,13 +12,13 @@ import io.kumare.lib.v.V; // base import io.kumare.iqr.app.AppErrors; import io.kumare.iqr.app.action.AppAction; -// entity +import io.kumare.iqr.app.action.AppActionArgument; /** * * @author afatecha */ -public class VismaEmployeeListAction extends AppAction { +public class VismaEmployeeListAction extends AppAction { // ::: vars // diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaPunchListArgument.java b/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaPunchListArgument.java index 04fe02e..aad50f6 100644 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaPunchListArgument.java +++ b/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaPunchListArgument.java @@ -4,9 +4,6 @@ package io.kumare.iqr.mod.clientele.action.client; // app -import io.kumare.iqr.app.action.AppListActionArgument; -// store -import io.kumare.iqr.mod.clientele.store.client.ClientEntity; 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/clientele/action/client/VismaPunchListPageAction.java index aea4d64..2ba72a5 100644 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaPunchListPageAction.java +++ b/src/main/java/io/kumare/iqr/mod/clientele/action/client/VismaPunchListPageAction.java @@ -21,7 +21,7 @@ import org.springframework.data.domain.Page; * * @author afatecha */ -public class VismaPunchListPageAction extends AppAction { +public class VismaPunchListPageAction extends AppAction { // ::: vars // diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationActionArgument.java b/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationActionArgument.java deleted file mode 100644 index 418f83c..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationActionArgument.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.action.clientrelation; - -// base -import io.kumare.iqr.app.action.AppEntityActionArgument; -// entity -import io.kumare.iqr.mod.clientele.store.clientrelation.ClientRelationEntity; - -/** - * - * @author afatecha - */ -public class ClientRelationActionArgument extends AppEntityActionArgument { - - // ::: constructors - // - public ClientRelationActionArgument() { - } - - public ClientRelationActionArgument(ClientRelationEntity entity) { - super(entity); - } - - // ::: api - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationAddAction.java b/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationAddAction.java deleted file mode 100644 index c8a37b7..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationAddAction.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.action.clientrelation; - - -// lib -import io.kumare.lib.base.server.spring.action.Actions; -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.clientele.ClienteleErrors; -// entity -import io.kumare.iqr.mod.clientele.store.clientrelation.ClientRelationEntity; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; - - -/** - * - * @author afatecha - */ -public class ClientRelationAddAction extends AppAction> { - - // ::: vars - // - private ClientRelationEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, ClienteleErrors.clientrelation_notfound); - - // relations - V.ifNull(model.getType(), ClienteleErrors.clientrelation_type_notfound); - V.ifNull(model.getState(), ClienteleErrors.clientrelation_state_notfound); - - // fields - V.ifEmpty(model.getTypeValue(), ClienteleErrors.clientrelation_typevalue_empty); - V.ifEmpty(model.getStateValue(), ClienteleErrors.clientrelation_statevalue_empty); - V.ifEmpty(model.getResourceType(), ClienteleErrors.clientrelation_resourcetype_empty); - V.ifEmpty(model.getResourceKey(), ClienteleErrors.clientrelation_resourcekey_empty); - V.ifEmpty(model.getResourceId(), ClienteleErrors.clientrelation_resourceid_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - var taxonomy = AppModules.taxonomy.getController(); - - var taxonStore = taxonomy.getTaxonStore(); - - var type = taxonStore.ensure(getContext(), argModel.getType(), ClienteleErrors.clientrelation_type_notfound); - var state = taxonStore.ensure(getContext(), argModel.getState(), ClienteleErrors.clientrelation_state_notfound); - - // model - var model = makeModel(type, state); - - // add - entity = saveEntity(model); - - // add others - - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private ClientRelationEntity makeModel(TaxonEntity type, TaxonEntity state) { - - var argModel = getArgument().getEntity(); - var model = new ClientRelationEntity(); - - // relations - model.setType(type); - model.setState(state); - - // fields - model.setTypeValue(argModel.getTypeValue()); - model.setStateValue(argModel.getStateValue()); - model.setResourceType(argModel.getResourceType()); - model.setResourceKey(argModel.getResourceKey()); - model.setResourceId(argModel.getResourceId()); - model.setActive(true); - - - - return model; - } - - // ::: save - // - private ClientRelationEntity saveEntity(ClientRelationEntity model) { - - var store = AppModules.clientele.getController().getClientRelationStore(); - - var saved = store.add(getContext(), model); - getContext().attach(saved.getId(), saved); - return saved; - } - - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationAddArgument.java b/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationAddArgument.java deleted file mode 100644 index fdd5e45..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationAddArgument.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.action.clientrelation; - - -// app -import io.kumare.iqr.mod.clientele.store.clientrelation.ClientRelationEntity; - - -/** - * - * @author afatecha - */ -public class ClientRelationAddArgument extends ClientRelationActionArgument { - - // ::: vars - // - - - // ::: constructors - // - public ClientRelationAddArgument() { - } - - public ClientRelationAddArgument(ClientRelationEntity entity) { - super(entity); - } - - // ::: fields - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationDeleteAction.java b/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationDeleteAction.java deleted file mode 100644 index acb8465..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationDeleteAction.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.action.clientrelation; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.clientele.ClienteleErrors; -// entity -import io.kumare.iqr.mod.clientele.store.clientrelation.ClientRelationEntity; - -/** - * - * @author afatecha - */ -public class ClientRelationDeleteAction extends AppAction> { - - // ::: vars - // - private ClientRelationEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), ClienteleErrors.clientrelation_notfound); - V.ifNull(getArgument().getEntity().getId(), ClienteleErrors.clientrelation_notfound); - } - - @Override - protected void doAction() { - - var argModel = getArgument().getEntity(); - - deleteEntity(argModel); - } - - @Override - protected void setResultOnly() { - } - - // ::: delete - // - private void deleteEntity(ClientRelationEntity model) { - - var store = AppModules.clientele.getController().getClientRelationStore(); - - store.deleteById(getContext(), model.getId()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationEditAction.java b/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationEditAction.java deleted file mode 100644 index eed9c35..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationEditAction.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.action.clientrelation; - -// lib -import io.kumare.lib.v.V; -// app -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.clientele.ClienteleErrors; -// entity -import io.kumare.iqr.mod.clientele.store.clientrelation.ClientRelationEntity; - -/** - * - * @author afatecha - */ -public class ClientRelationEditAction extends AppAction> { - - // ::: vars - // - private ClientRelationEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, ClienteleErrors.clientrelation_notfound); - - // fields - V.ifEmpty(model.getTypeValue(), ClienteleErrors.clientrelation_typevalue_empty); - V.ifEmpty(model.getStateValue(), ClienteleErrors.clientrelation_statevalue_empty); - V.ifEmpty(model.getResourceType(), ClienteleErrors.clientrelation_resourcetype_empty); - V.ifEmpty(model.getResourceKey(), ClienteleErrors.clientrelation_resourcekey_empty); - V.ifEmpty(model.getResourceId(), ClienteleErrors.clientrelation_resourceid_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - - var clientele = AppModules.clientele.getController(); - var clientRelationStore = clientele.getClientRelationStore(); - - // edit - entity = clientRelationStore.ensure(getContext(), argModel, ClienteleErrors.clientrelation_notfound); - - editEntity(); - - entity = saveEntity(); - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private void editEntity() { - - var model = getArgument().getEntity(); - - // fields - entity.setTypeValue(V.firstNotEmpty(model.getTypeValue(), entity.getTypeValue())); - entity.setStateValue(V.firstNotEmpty(model.getStateValue(), entity.getStateValue())); - entity.setResourceType(V.firstNotEmpty(model.getResourceType(), entity.getResourceType())); - entity.setResourceKey(V.firstNotEmpty(model.getResourceKey(), entity.getResourceKey())); - entity.setResourceId(V.firstNotEmpty(model.getResourceId(), entity.getResourceId())); - - - } - - // ::: save - // - private ClientRelationEntity saveEntity() { - - var store = AppModules.clientele.getController().getClientRelationStore(); - - var saved = store.edit(getContext(), entity); - getContext().attach(saved.getId(), saved); - return saved; - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationEditArgument.java b/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationEditArgument.java deleted file mode 100644 index b542cfc..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationEditArgument.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.action.clientrelation; - -// app -import io.kumare.iqr.mod.clientele.store.clientrelation.ClientRelationEntity; - -/** - * - * @author afatecha - */ -public class ClientRelationEditArgument extends ClientRelationActionArgument { - - // ::: vars - // - - - // ::: constructors - // - public ClientRelationEditArgument() { - } - - public ClientRelationEditArgument(ClientRelationEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationEnableAction.java b/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationEnableAction.java deleted file mode 100644 index f70fde0..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationEnableAction.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.action.clientrelation; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.clientele.ClienteleErrors; -// entity -import io.kumare.iqr.mod.clientele.store.clientrelation.ClientRelationEntity; - - -/** - * - * @author afatecha - */ -public class ClientRelationEnableAction extends AppAction { - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), ClienteleErrors.clientrelation_notfound); - V.ifNull(getArgument().getEntity().getId(), ClienteleErrors.clientrelation_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - - enableEntity(model); - } - - @Override - protected void setResultOnly() { - } - - // ::: enable - // - private void enableEntity(ClientRelationEntity model) { - - var store = AppModules.clientele.getController().getClientRelationStore(); - - if (getArgument().getEntity().isActive()) { - store.enableById(getContext(), model.getId()); - } else { - store.disableById(getContext(), model.getId()); - } - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationFindAction.java b/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationFindAction.java deleted file mode 100644 index 5c06039..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationFindAction.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.action.clientrelation; - -// java -import java.util.HashMap; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.clientele.ClienteleErrors; -// entity -import io.kumare.iqr.mod.clientele.store.clientrelation.ClientRelationEntity; - - -/** - * - * @author afatecha - */ -public class ClientRelationFindAction extends AppAction { - - // ::: vars - // - private ClientRelationEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), ClienteleErrors.clientrelation_notfound); - V.ifNull(getArgument().getEntity().getId(), ClienteleErrors.clientrelation_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - entity = findEntity(model); - } - - @Override - protected void setResultOnly() { - var result = new HashMap(); - result.put("entity", entity); - setResult(result); - } - - // ::: find - // - private ClientRelationEntity findEntity(ClientRelationEntity model) { - - var store = AppModules.clientele.getController().getClientRelationStore(); - return store.findById(getContext(), model.getId()); - } - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationListAction.java b/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationListAction.java deleted file mode 100644 index 83adfc6..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationListAction.java +++ /dev/null @@ -1,149 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.action.clientrelation; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.LinkedList; -import java.util.Map; -// spring -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// entity -import io.kumare.iqr.mod.clientele.store.clientrelation.ClientRelationEntity; -import io.kumare.iqr.mod.clientele.store.clientrelation.ClientRelationMapBuilder; - - -/** - * - * @author afatecha - */ -public class ClientRelationListAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private final List entities = new LinkedList<>(); - - // ::: public api - // - public List getEntities() { - return entities; - } - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - } - - @Override - protected void doAction() { - - result.put("pageable", getArgument().isPageable()); - result.put("wrapped", getArgument().isWrapped()); - - if (getArgument().isPageable()) { - - var page = makePage(); - entities.addAll(page.toList()); - - if (getArgument().isWrapped()) { - result.put("page", makeWrappedPage(page)); - } else { - result.put("page", page); - } - - } else { - - var list = makeList(); - entities.addAll(list); - - if (getArgument().isWrapped()) { - result.put("list", makeWrappedList()); - } else { - result.put("list", list); - } - } - - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: page - // - private Page makePage() { - - var page = getArgument().getPageNumber(); - var size = getArgument().getPageSize(); - //var sort = getArgument().getSort(); - - var pageable = PageRequest.of(page, size); - - var store = AppModules.clientele.getController().getClientRelationStore(); - return store.getRepository().findAll(pageable); - } - - // ::: wrapped page - // - private Map makeWrappedPage(Page found) { - - var page = new HashMap(); - var content = new LinkedList(); - - wrapList(entities, content); - - page.put("size", found.getSize()); - page.put("number", found.getNumber()); - page.put("totalElements", found.getTotalElements()); - page.put("totalPages", found.getTotalPages()); - page.put("content", content); - - return page; - } - - - // ::: list - // - - private List makeList() { - - var store = AppModules.clientele.getController().getClientRelationStore(); - - return store.listAll(getContext()); - } - - // ::: wrapped list - private List makeWrappedList() { - var list = new LinkedList(); - - wrapList(entities, list); - - return list; - } - - // ::: wrapper - // - private void wrapList(List found, List output) { - - var builder = new ClientRelationMapBuilder().addListGroup(); - builder.getTypeBuilder().addMainGroup(); - builder.getStateBuilder().addMainGroup(); - - output.addAll(builder.build(getContext(), found)); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationListArgument.java b/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationListArgument.java deleted file mode 100644 index 31ccb10..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationListArgument.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.action.clientrelation; - -// app -import io.kumare.iqr.app.action.AppListActionArgument; -// store -import io.kumare.iqr.mod.clientele.store.clientrelation.ClientRelationEntity; - -/** - * - * @author afatecha - */ -public class ClientRelationListArgument extends AppListActionArgument { - - // ::: vars - // - - // ::: constructors - // - public ClientRelationListArgument() { - } - - public ClientRelationListArgument(ClientRelationEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationPreloadAction.java b/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationPreloadAction.java deleted file mode 100644 index bf884b1..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationPreloadAction.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.action.clientrelation; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.clientele.ClienteleErrors; -// entity -import io.kumare.iqr.mod.clientele.store.clientrelation.ClientRelationEntity; -// relations -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; - -/** - * - * @author afatecha - */ -public class ClientRelationPreloadAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private Map params = new HashMap<>(); - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifEmpty(getArgument().getAction(), ClienteleErrors.clientrelation_preload_empty); - } - - @Override - protected void doAction() { - if(getArgument().getParams() != null) { - params = getArgument().getParams(); - } - - switch (getArgument().getAction()) { - case "find" -> - prepareFind(); - case "list" -> - prepareList(); - case "add" -> - prepareAdd(); - case "edit" -> - prepareEdit(); - } - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: preload - // - private void prepareAdd() { - result.put("taxons", listTaxons()); - } - - private void prepareEdit() { - var entity = findEntity(); - result.put("entity", entity); - result.put("type", entity.getType()); - result.put("state", entity.getState()); - } - - private void prepareList() { - } - - private void prepareFind() { - var entity = findEntity(); - result.put("entity", entity); - result.put("type", entity.getType()); - result.put("state", entity.getState()); - } - - // ::: queries - // - private ClientRelationEntity findEntity() { - var store = AppModules.clientele.getController().getClientRelationStore(); - - var id = (String) params.get("id"); - if(id == null && getArgument().getEntity() != null) { - id = getArgument().getEntity().getId(); - } - return store.findById(getContext(), id); - } - - public List listTaxons() { - var store = AppModules.taxonomy.getController().getTaxonStore(); - - return store.listAll(getContext()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationPreloadArgument.java b/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationPreloadArgument.java deleted file mode 100644 index 90de50e..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/action/clientrelation/ClientRelationPreloadArgument.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.action.clientrelation; - -/** - * - * @author afatecha - */ -public class ClientRelationPreloadArgument extends ClientRelationActionArgument { - - // ::: vars - // - private String action; - - // ::: fields - // - public String getAction() { - return action; - } - - public void setAction(String action) { - this.action = action; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/endpoint/rest/AbstractClientRelationRest.java b/src/main/java/io/kumare/iqr/mod/clientele/endpoint/rest/AbstractClientRelationRest.java deleted file mode 100644 index c7574bf..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/endpoint/rest/AbstractClientRelationRest.java +++ /dev/null @@ -1,214 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.endpoint.rest; - -// java -import java.util.Map; -// openapi -import io.swagger.v3.oas.annotations.*; -import io.swagger.v3.oas.annotations.media.*; -import io.swagger.v3.oas.annotations.responses.*; -// spring -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; -// base -import io.kumare.lib.app.api.operation.TransactionType; -import io.kumare.lib.app.api.security.PermissionReference; -// app -import io.kumare.iqr.app.endpoint.rest.AppEndpointRest; -import io.kumare.iqr.app.action.*; -// module -import io.kumare.iqr.mod.clientele.ClientelePermissions; -import io.kumare.iqr.mod.clientele.store.clientrelation.ClientRelationEntity; -import io.kumare.iqr.mod.clientele.action.clientrelation.*; - -/** -* -* @author afatecha -*/ -public abstract class AbstractClientRelationRest extends AppEndpointRest { - - // ::: DEFAULT PERMISSIONS - // - protected PermissionReference getPermission(String action, String ref, Object extra) { - switch (action) { - case null -> { - return null; - } - case "add" -> { - return ClientelePermissions.client_relation_worker.toReference(ref); - } - case "edit" -> { - return ClientelePermissions.client_relation_worker.toReference(ref); - } - case "enable" -> { - return ClientelePermissions.client_relation_manager.toReference(ref); - } - case "disable" -> { - return ClientelePermissions.client_relation_manager.toReference(ref); - } - case "delete" -> { - return ClientelePermissions.client_relation_manager.toReference(ref); - } - case "find" -> { - return ClientelePermissions.client_relation_viewer.toReference(ref); - } - case "list" -> { - return ClientelePermissions.client_relation_viewer.toReference(ref); - } - default -> { - return null; - } - } - } - - - // ::: ADD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "client relation add operation", description = "") - // - @PostMapping - public ResponseEntity add(@RequestBody ClientRelationAddArgument arg) { - - var permission = getPermission("add", null, arg); - return handle(new ClientRelationAddAction(), arg, permission, TransactionType.service); - } - - // ::: EDIT - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "client relation edit operation", description = "") - // - @PutMapping("/{id}") - public ResponseEntity edit(@PathVariable("id") String id, - @RequestBody ClientRelationEditArgument arg) { - - arg.getEntity().id(id); - - var permission = getPermission("edit", id, arg); - return handle(new ClientRelationEditAction(), arg, permission, TransactionType.service); - } - - // ::: FIND - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "client relation find operation", description = "") - // - @GetMapping("/{id}") - public ResponseEntity find(@PathVariable("id") String id, - @ModelAttribute ClientRelationActionArgument arg) { - - - arg = arg == null ? new ClientRelationActionArgument() : arg; - - arg.entity(new ClientRelationEntity(id)); - - var permission = getPermission("find", id, arg); - return handle(new ClientRelationFindAction(), arg, permission); - } - - // ::: ENABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "client relation enable operation", description = "") - // - @PutMapping("/{id}/enable") - public ResponseEntity enable(@PathVariable("id") String id) { - - var arg = new ClientRelationActionArgument(); - arg.setEntity(new ClientRelationEntity(id)); - arg.getEntity().setActive(true); - - var permission = getPermission("disable", id, arg); - return handle(new ClientRelationEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: DISABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "client relation disable operation", description = "") - // - @PutMapping("/{id}/disable") - public ResponseEntity disable(@PathVariable("id") String id) { - - var arg = new ClientRelationActionArgument(); - arg.setEntity(new ClientRelationEntity(id)); - arg.getEntity().setActive(false); - - var permission = getPermission("disable", id, arg); - return handle(new ClientRelationEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: LIST - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "client relation list operation", description = "") - // - @GetMapping - public ResponseEntity list(@ModelAttribute ClientRelationListArgument arg) { - - arg = arg == null ? new ClientRelationListArgument() : arg; - - var permission = getPermission("list", null, arg); - return handle(new ClientRelationListAction(), arg, permission); - } - - // ::: DELETE - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "client relation delete operation", description = "") - // - @DeleteMapping("/{id}") - public ResponseEntity delete(@PathVariable("id") String id) { - - var arg = new ClientRelationActionArgument(); - - arg.setEntity(new ClientRelationEntity(id)); - - var permission = getPermission("delete", id, arg); - return handle(new ClientRelationDeleteAction(), arg, permission, TransactionType.service); - } - - // ::: PRELOAD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "client relation preload operation", description = "") - // - @PostMapping("/preload") - public ResponseEntity preload(@RequestBody ClientRelationPreloadArgument arg) { - - var permission = getPermission(arg.getAction(), null, arg); - return handle(new ClientRelationPreloadAction(), arg, permission); - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/endpoint/rest/AbstractClientRest.java b/src/main/java/io/kumare/iqr/mod/clientele/endpoint/rest/AbstractClientRest.java index b931d18..52f587c 100644 --- a/src/main/java/io/kumare/iqr/mod/clientele/endpoint/rest/AbstractClientRest.java +++ b/src/main/java/io/kumare/iqr/mod/clientele/endpoint/rest/AbstractClientRest.java @@ -1,315 +1,142 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.endpoint.rest; - -// java -import java.util.Map; -// openapi -import io.swagger.v3.oas.annotations.*; -import io.swagger.v3.oas.annotations.media.*; -import io.swagger.v3.oas.annotations.responses.*; -// spring -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; -// base -import io.kumare.lib.app.api.operation.TransactionType; -import io.kumare.lib.app.api.security.PermissionReference; -// app -import io.kumare.iqr.app.endpoint.rest.AppEndpointRest; -import io.kumare.iqr.app.action.*; -// module -import io.kumare.iqr.mod.clientele.ClientelePermissions; -import io.kumare.iqr.mod.clientele.store.client.ClientEntity; -import io.kumare.iqr.mod.clientele.action.client.*; - -/** - * - * @author afatecha - */ -public abstract class AbstractClientRest extends AppEndpointRest { - - // ::: DEFAULT PERMISSIONS - // - protected PermissionReference getPermission(String action, String ref, Object extra) { - switch (action) { - case null -> { - return null; - } - case "add" -> { - return ClientelePermissions.client_worker.toReference(ref); - } - case "edit" -> { - return ClientelePermissions.client_worker.toReference(ref); - } - case "enable" -> { - return ClientelePermissions.client_manager.toReference(ref); - } - case "disable" -> { - return ClientelePermissions.client_manager.toReference(ref); - } - case "delete" -> { - return ClientelePermissions.client_manager.toReference(ref); - } - case "find" -> { - return ClientelePermissions.client_viewer.toReference(ref); - } - case "list" -> { - return ClientelePermissions.client_viewer.toReference(ref); - } - default -> { - return null; - } - } - } - - // ::: ADD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "client add operation", description = "") - // - @PostMapping - public ResponseEntity add(@RequestBody ClientAddArgument arg) { - - var permission = getPermission("add", null, arg); - return handle(new ClientAddAction(), arg, permission, TransactionType.service); - } - - // ::: EDIT - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "client edit operation", description = "") - // - @PutMapping("/{id}") - public ResponseEntity edit(@PathVariable("id") String id, - @RequestBody ClientEditArgument arg) { - - arg.getEntity().id(id); - - var permission = getPermission("edit", id, arg); - return handle(new ClientEditAction(), arg, permission, TransactionType.service); - } - - // ::: FIND - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "client find operation", description = "") - // - @GetMapping("/{id}") - public ResponseEntity find(@PathVariable("id") String id, @ModelAttribute ClientActionArgument arg) { - - arg = arg == null ? new ClientActionArgument() : arg; - - arg.entity(new ClientEntity(id)); - - var permission = getPermission("find", id, arg); - return handle(new ClientFindAction(), arg, permission); - } - - // ::: ENABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "client enable operation", description = "") - // - @PutMapping("/{id}/enable") - public ResponseEntity enable(@PathVariable("id") String id) { - - var arg = new ClientActionArgument(); - arg.setEntity(new ClientEntity(id)); - arg.getEntity().setActive(true); - - var permission = getPermission("disable", id, arg); - return handle(new ClientEnableAction(), arg, permission, TransactionType.service); - } - */ - // ::: DISABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "client disable operation", description = "") - // - @PutMapping("/{id}/disable") - public ResponseEntity disable(@PathVariable("id") String id) { - - var arg = new ClientActionArgument(); - arg.setEntity(new ClientEntity(id)); - arg.getEntity().setActive(false); - - var permission = getPermission("disable", id, arg); - return handle(new ClientEnableAction(), arg, permission, TransactionType.service); - } - */ - // ::: LIST - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "client list operation", description = "") - // - @GetMapping - public ResponseEntity list(@ModelAttribute ClientListArgument arg) { - - arg = arg == null ? new ClientListArgument() : arg; - - var permission = getPermission("list", null, arg); - return handle(new ClientListAction(), arg, permission); - } - - // ::: DELETE - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "client delete operation", description = "") - // - @DeleteMapping("/{id}") - public ResponseEntity delete(@PathVariable("id") String id) { - - var arg = new ClientActionArgument(); - - arg.setEntity(new ClientEntity(id)); - - var permission = getPermission("delete", id, arg); - return handle(new ClientDeleteAction(), arg, permission, TransactionType.service); - } - - // ::: PRELOAD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "client preload operation", description = "") - // - @PostMapping("/preload") - public ResponseEntity preload(@RequestBody ClientPreloadArgument arg) { - - var permission = getPermission(arg.getAction(), null, arg); - return handle(new ClientPreloadAction(), arg, permission); - } - - // ::: FIND EMPLOYEE - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "employee list operation", description = "") - // - @GetMapping("/employee") - public ResponseEntity employee(@ModelAttribute ClientActionArgument arg) { - - arg = arg == null ? new ClientActionArgument() : arg; - - arg.entity(new ClientEntity()); - - var permission = getPermission("list", null, arg); - return handle(new VismaEmployeeListAction(), arg, permission); - } - - // ::: LIST PAGED - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "punch list paged", description = "") - // - @PostMapping("/punch/page") - public ResponseEntity punchPage(@RequestBody ClientListArgument arg) { - - arg = arg == null ? new ClientListArgument() : arg; - - arg.entity(new ClientEntity()); - - var permission = getPermission("", null, arg); - return handle(new VismaPunchListPageAction(), arg, permission); - } - - // ::: LIST - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "punch list", description = "") - // - @PostMapping("/punch/list") - public ResponseEntity punchList(@RequestBody VismaPunchListArgument arg) { - - arg = arg == null ? new VismaPunchListArgument() : arg; - - var permission = getPermission("", null, arg); - return handle(new VismaPunchListAction(), arg, permission); - } - - // ::: ADD PUNCH - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "punch add", description = "") - // - @PostMapping("/punch/add") - public ResponseEntity punchAdd(@RequestBody VismaAddPunchArgument arg) { - - arg = arg == null ? new VismaAddPunchArgument() : arg; - - var permission = getPermission("", null, arg); - return handle(new VismaAddPunchAction(), arg, permission); - } - - // ::: DELETE PUNCH - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "punch delete", description = "") - // - @PostMapping("/punch/delete") - public ResponseEntity punchDelete(@RequestBody VismaDeletePunchArgument arg) { - - arg = arg == null ? new VismaDeletePunchArgument() : arg; - - var permission = getPermission("", null, arg); - return handle(new VismaDeletePunchAction(), arg, permission); - } - - // ::: ADD MULTIPLE PUNCH - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "punch delete", description = "") - // - @PostMapping("/punch/multiple") - public ResponseEntity punchAddMultiple(@RequestBody VismaAddPunchMultipleArgument arg) { - - arg = arg == null ? new VismaAddPunchMultipleArgument() : arg; - - var permission = getPermission("", null, arg); - return handle(new VismaAddPunchMultipleAction(), arg, permission); - } - -} +/* + * + */ +package io.kumare.iqr.mod.clientele.endpoint.rest; + +// java +import java.util.Map; +// openapi +import io.swagger.v3.oas.annotations.*; +import io.swagger.v3.oas.annotations.media.*; +import io.swagger.v3.oas.annotations.responses.*; +// spring +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; +// app +import io.kumare.iqr.app.action.AppActionArgument; +import io.kumare.iqr.app.endpoint.rest.AppEndpointRest; +// module +import io.kumare.iqr.mod.clientele.action.client.*; + +/** + * Stateless passthrough endpoints to the VismaTime adapter — no local + * entities, no permission checks (authorization is a no-op in this + * test harness, see AppContext.ensureAuthorization). + * + * @author afatecha + */ +public abstract class AbstractClientRest extends AppEndpointRest { + + // ::: EMPLOYEE LIST + // + @ApiResponses(value = { + @ApiResponse(content = @Content(mediaType = "application/json", + schema = @Schema(implementation = Map.class))) + }) + @Operation(summary = "employee list operation", description = "") + // + @GetMapping("/employee") + public ResponseEntity employee(@ModelAttribute AppActionArgument arg) { + + arg = arg == null ? new AppActionArgument() : arg; + + return handle(new VismaEmployeeListAction(), arg, null); + } + + // ::: PUNCH LIST PAGED + // + @ApiResponses(value = { + @ApiResponse(content = @Content(mediaType = "application/json", + schema = @Schema(implementation = Map.class))) + }) + @Operation(summary = "punch list paged", description = "") + // + @PostMapping("/punch/page") + public ResponseEntity punchPage(@RequestBody VismaPunchListArgument arg) { + + arg = arg == null ? new VismaPunchListArgument() : arg; + + return handle(new VismaPunchListPageAction(), arg, null); + } + + // ::: PUNCH LIST + // + @ApiResponses(value = { + @ApiResponse(content = @Content(mediaType = "application/json", + schema = @Schema(implementation = Map.class))) + }) + @Operation(summary = "punch list", description = "") + // + @PostMapping("/punch/list") + public ResponseEntity punchList(@RequestBody VismaPunchListArgument arg) { + + arg = arg == null ? new VismaPunchListArgument() : arg; + + return handle(new VismaPunchListAction(), arg, null); + } + + // ::: ADD PUNCH + // + @ApiResponses(value = { + @ApiResponse(content = @Content(mediaType = "application/json", + schema = @Schema(implementation = Map.class))) + }) + @Operation(summary = "punch add", description = "") + // + @PostMapping("/punch/add") + public ResponseEntity punchAdd(@RequestBody VismaAddPunchArgument arg) { + + arg = arg == null ? new VismaAddPunchArgument() : arg; + + return handle(new VismaAddPunchAction(), arg, null); + } + + // ::: DELETE PUNCH + // + @ApiResponses(value = { + @ApiResponse(content = @Content(mediaType = "application/json", + schema = @Schema(implementation = Map.class))) + }) + @Operation(summary = "punch delete", description = "") + // + @PostMapping("/punch/delete") + public ResponseEntity punchDelete(@RequestBody VismaDeletePunchArgument arg) { + + arg = arg == null ? new VismaDeletePunchArgument() : arg; + + return handle(new VismaDeletePunchAction(), arg, null); + } + + // ::: ADD MULTIPLE PUNCH + // + @ApiResponses(value = { + @ApiResponse(content = @Content(mediaType = "application/json", + schema = @Schema(implementation = Map.class))) + }) + @Operation(summary = "punch add multiple", description = "") + // + @PostMapping("/punch/multiple") + public ResponseEntity punchAddMultiple(@RequestBody VismaAddPunchMultipleArgument arg) { + + arg = arg == null ? new VismaAddPunchMultipleArgument() : arg; + + return handle(new VismaAddPunchMultipleAction(), arg, null); + } + + // ::: ATTENDANCE BOOK + // + @ApiResponses(value = { + @ApiResponse(content = @Content(mediaType = "application/json", + schema = @Schema(implementation = Map.class))) + }) + @Operation(summary = "attendance book", description = "") + // + @PostMapping("/attendance/book") + public ResponseEntity attendanceBook(@RequestBody VismaAttendanceBookArgument arg) { + + arg = arg == null ? new VismaAttendanceBookArgument() : arg; + + return handle(new VismaAttendanceBookAction(), arg, null); + } + +} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/endpoint/rest/ClientRelationRest.java b/src/main/java/io/kumare/iqr/mod/clientele/endpoint/rest/ClientRelationRest.java deleted file mode 100644 index effbd30..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/endpoint/rest/ClientRelationRest.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.endpoint.rest; - -// java -import io.swagger.v3.oas.annotations.tags.*; -// spring -import org.springframework.web.bind.annotation.*; - -/** -* -* @author afatecha -*/ - -// openapi -//@Tag(name = "client relation rest endpoint") -// -//@RestController -//@RequestMapping("/clientele/client-relations") -public class ClientRelationRest extends AbstractClientRelationRest { - - -} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/endpoint/rest/ClientRest.java b/src/main/java/io/kumare/iqr/mod/clientele/endpoint/rest/ClientRest.java index 9382aa5..372bfcb 100644 --- a/src/main/java/io/kumare/iqr/mod/clientele/endpoint/rest/ClientRest.java +++ b/src/main/java/io/kumare/iqr/mod/clientele/endpoint/rest/ClientRest.java @@ -1,24 +1,24 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.endpoint.rest; - -// java -import io.swagger.v3.oas.annotations.tags.*; -// spring -import org.springframework.web.bind.annotation.*; - -/** -* -* @author afatecha -*/ - -// openapi -@Tag(name = "client rest endpoint") -// -@RestController -@RequestMapping("/clientele/clients") -public class ClientRest extends AbstractClientRest { - - -} +/* + * + */ +package io.kumare.iqr.mod.clientele.endpoint.rest; + +// java +import io.swagger.v3.oas.annotations.tags.*; +// spring +import org.springframework.web.bind.annotation.*; + +/** +* +* @author afatecha +*/ + +// openapi +@Tag(name = "visma time client rest endpoint") +// +@RestController +@RequestMapping("/clientele/clients") +public class ClientRest extends AbstractClientRest { + + +} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/endpoint/rest/ClienteleTaxonomyRest.java b/src/main/java/io/kumare/iqr/mod/clientele/endpoint/rest/ClienteleTaxonomyRest.java deleted file mode 100644 index e8635c9..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/endpoint/rest/ClienteleTaxonomyRest.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.endpoint.rest; - -// java -import io.kumare.iqr.mod.taxonomy.endpoint.rest.AbstractTaxonRest; -import io.swagger.v3.oas.annotations.tags.*; -// spring -import org.springframework.web.bind.annotation.*; - -/** -* -* @author afatecha -*/ - -// openapi -@Tag(name = "workforce taxonomy rest endpoint") -// -@RestController -@RequestMapping("/clientele/{taxaKey}-taxons") -public class ClienteleTaxonomyRest extends AbstractTaxonRest { - - -} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/store/ClienteleEntities.java b/src/main/java/io/kumare/iqr/mod/clientele/store/ClienteleEntities.java deleted file mode 100644 index b7d3306..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/store/ClienteleEntities.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.store; - -// base -// base -import io.kumare.lib.app.api.module.ServiceModule; -import io.kumare.lib.app.api.store.EntityStore; -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app -import io.kumare.iqr.app.AppEngine; -import io.kumare.iqr.app.module.AppModules; -import io.kumare.iqr.mod.clientele.store.client.ClientEntity; -import io.kumare.iqr.mod.clientele.store.client.ClientStore; -import io.kumare.iqr.mod.clientele.store.clientrelation.ClientRelationEntity; -import io.kumare.iqr.mod.clientele.store.clientrelation.ClientRelationStore; - - -/** - * - * @author afatecha - */ -public enum ClienteleEntities implements EntityDescriptor { - - client(ClientEntity.class, ClientStore.class), - clientRelation(ClientRelationEntity.class, ClientRelationStore.class); - - // ::: vars - // - private final Class entityClass; - private final Class storeClass; - - // ::: constructor - // - ClienteleEntities(Class entityClass, Class storeClass) { - this.entityClass = entityClass; - this.storeClass = storeClass; - } - - // ::: entity descriptor api - // - @Override - public String getName() { - return name(); - } - - @Override - public ServiceModule getModule() { - return AppModules.clientele; - } - - @Override - public Class getEntityClass() { - return entityClass; - } - - @Override - public Class getStoreClass() { - return storeClass; - } - - @Override - public EntityStore getStore() { - return (EntityStore) AppEngine.getEngine().getInnerContext().getBean(storeClass); - } - - // ::: statics - // - public static boolean hasDescriptor(String name) { - try { - var value = valueOf(name); - return value != null; - - } catch (Throwable t) { - return false; - } - } - - public static EntityDescriptor descriptorOf(String name) { - try { - return valueOf(name); - - } catch (Throwable t) { - return null; - } - } - - public static EntityDescriptor descriptorOf(Class entityClass) { - try { - for (var i : values()) { - if (i.entityClass == entityClass) { - return i; - } - } - - } catch (Throwable t) { - } - - return null; - } -} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/store/ClienteleTaxonomies.java b/src/main/java/io/kumare/iqr/mod/clientele/store/ClienteleTaxonomies.java deleted file mode 100644 index ed43545..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/store/ClienteleTaxonomies.java +++ /dev/null @@ -1,116 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.store; - -// base -import io.kumare.lib.app.api.Context; -import io.kumare.lib.v.ExceptionPrototype; -// app -import io.kumare.iqr.app.module.AppModules; -import io.kumare.iqr.mod.clientele.ClienteleErrors; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; -import java.util.List; - -/** - * - * @author administrador - */ -public enum ClienteleTaxonomies { - - clientState("client-state", ClienteleErrors.client_state_notfound), - clientRelationType("client-relation-type", ClienteleErrors.clientrelation_type_notfound), - clientRelationState("client-relation-state", ClienteleErrors.clientrelation_state_notfound); - - // ::: - // - private final String taxaKey; - private final ExceptionPrototype proto; - - // ::: constructor - // - ClienteleTaxonomies(String taxaKey, ExceptionPrototype proto) { - this.taxaKey = taxaKey; - this.proto = proto; - } - - public String getKey() { - return taxaKey; - } - - // ::: ensure - // - public TaxonEntity ensure(Context context, TaxonEntity taxon) { - return AppModules.taxonomy.getController().getTaxonStore() - .ensure(context, taxaKey, taxon, proto); - } - - public TaxonEntity ensureById(Context context, String taxonId) { - return AppModules.taxonomy.getController().getTaxonStore() - .ensureById(context, taxaKey, taxonId, proto); - } - - public TaxonEntity ensureByKey(Context context, String key) { - return AppModules.taxonomy.getController().getTaxonStore() - .ensureByKey(context, taxaKey, key, proto); - } - - public TaxonEntity ensureByValue(Context context, String value) { - return AppModules.taxonomy.getController().getTaxonStore() - .ensureByValue(context, taxaKey, value, proto); - } - - // ::: find - // - public TaxonEntity findById(Context context, String taxonId) { - return AppModules.taxonomy.getController() - .getTaxonStore() - .findById(context, taxaKey, taxonId); - } - - public TaxonEntity findByKey(Context context, String key) { - return AppModules.taxonomy.getController() - .getTaxonStore() - .findByKey(context, taxaKey, key); - } - - public TaxonEntity findByValue(Context context, String value) { - return AppModules.taxonomy.getController() - .getTaxonStore() - .findByValue(context, taxaKey, value); - } - - // ::: list - // - public List list(Context context) { - return AppModules.taxonomy.getController() - .getTaxonStore() - .listByTaxaKey(context, taxaKey); - } - - // ::: default - // - public TaxonEntity ensureDefault(Context context) { - return AppModules.taxonomy.getController() - .getTaxonStore() - .ensureDefault(context, taxaKey, proto); - } - - public TaxonEntity findDefault(Context context) { - return AppModules.taxonomy.getController() - .getTaxonStore() - .findDefault(context, taxaKey); - } - - // ::: statics - // - public static boolean hasTaxaKey(String taxaKey) { - for (var i : values()) { - if (i.getKey().equals(taxaKey)) { - return true; - } - } - - return false; - } -} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/store/client/ClientData.java b/src/main/java/io/kumare/iqr/mod/clientele/store/client/ClientData.java deleted file mode 100644 index 6c4a0b3..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/store/client/ClientData.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.store.client; - -// base -import io.kumare.iqr.app.store.AppExtendedEntityData; -// imports - - -public class ClientData extends AppExtendedEntityData { - - // ::: vars - // - - - // ::: fields - // - - - // ::: fluent - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/store/client/ClientEntity.java b/src/main/java/io/kumare/iqr/mod/clientele/store/client/ClientEntity.java deleted file mode 100644 index 727ae5d..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/store/client/ClientEntity.java +++ /dev/null @@ -1,199 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.store.client; - -// jakarta -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.Index; -import jakarta.persistence.ManyToOne; -import jakarta.persistence.Table; -// base -import io.kumare.lib.app.api.store.*; -import io.kumare.iqr.app.store.*; -// imports - -// relations -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; -import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; - -// annotations -@Entity -@Table( - name = "client", - indexes = { - @Index(name = "idx_client_external_id", columnList = "externalId"), - @Index(name = "idx_client_entity_key", columnList = "entityKey"), - @Index(name = "idx_client_alias", columnList = "alias"), - @Index(name = "idx_client_state_value", columnList = "stateValue"), - @Index(name = "idx_client_email", columnList = "email"), - @Index(name = "idx_client_phone", columnList = "phone"), - @Index(name = "idx_client_name", columnList = "name"), - @Index(name = "idx_client_description", columnList = "description") - } -) -public class ClientEntity extends AppEntity implements SupportedEntityKey { - - // ::: vars - // - private String externalId; - private String entityKey; - private String alias; - private String stateValue; - private String email; - private String phone; - private String name; - private String description; - // relations - @ManyToOne(fetch = FetchType.LAZY) - private AuthUserEntity authUser; - @ManyToOne(fetch = FetchType.LAZY) - private TaxonEntity state; - - // ::: constructors - // - public ClientEntity() { - } - - public ClientEntity(String id) { - super(id); - } - - // ::: fields - // - public String getExternalId() { - return externalId; - } - - public void setExternalId(String externalId) { - this.externalId = externalId; - } - - public String getEntityKey() { - return entityKey; - } - - public void setEntityKey(String entityKey) { - this.entityKey = entityKey; - } - - public String getAlias() { - return alias; - } - - public void setAlias(String alias) { - this.alias = alias; - } - - public String getStateValue() { - return stateValue; - } - - public void setStateValue(String stateValue) { - this.stateValue = stateValue; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public String getPhone() { - return phone; - } - - public void setPhone(String phone) { - this.phone = phone; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - // relations - public AuthUserEntity getAuthUser() { - return authUser; - } - - public void setAuthUser(AuthUserEntity authUser) { - this.authUser = authUser; - } - - public TaxonEntity getState() { - return state; - } - - public void setState(TaxonEntity state) { - this.state = state; - } - - // ::: fluent - // - public ClientEntity externalId(String externalId) { - setExternalId(externalId); - return this; - } - - public ClientEntity entityKey(String entityKey) { - setEntityKey(entityKey); - return this; - } - - public ClientEntity alias(String alias) { - setAlias(alias); - return this; - } - - public ClientEntity stateValue(String stateValue) { - setStateValue(stateValue); - return this; - } - - public ClientEntity email(String email) { - setEmail(email); - return this; - } - - public ClientEntity phone(String phone) { - setPhone(phone); - return this; - } - - public ClientEntity name(String name) { - setName(name); - return this; - } - - public ClientEntity description(String description) { - setDescription(description); - return this; - } - - // relations - public ClientEntity authUser(AuthUserEntity authUser) { - setAuthUser(authUser); - return this; - } - - public ClientEntity state(TaxonEntity state) { - setState(state); - return this; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/store/client/ClientFields.java b/src/main/java/io/kumare/iqr/mod/clientele/store/client/ClientFields.java deleted file mode 100644 index e297b5f..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/store/client/ClientFields.java +++ /dev/null @@ -1,169 +0,0 @@ -/* - */ -package io.kumare.iqr.mod.clientele.store.client; - -// java -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -// base -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app -import io.kumare.iqr.mod.authentication.store.AuthenticationEntities; -import io.kumare.iqr.mod.authentication.store.authuser.AuthUserFields; -import io.kumare.iqr.mod.taxonomy.store.TaxonomyEntities; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonFields; - -/** - * - * @author afatecha - */ -public enum ClientFields implements EntityFieldDescriptor { - - id(MAIN, FIND, LIST), - externalId(MAIN, FIND, LIST), - entityKey(MAIN, FIND, LIST), - alias(MAIN, FIND, LIST), - stateValue(MAIN, FIND, LIST), - email(MAIN, FIND, LIST), - phone(MAIN, FIND, LIST), - name(MAIN, FIND, LIST), - description(MAIN, FIND, LIST), - active(MAIN, FIND, LIST), - inserted(AUDIT, FIND, LIST), - inserter(AUDIT, FIND, LIST), - modified(AUDIT, FIND), - modifier(AUDIT, FIND), - deleted(AUDIT), - removed(AUDIT), - remover(AUDIT), - authUser(AuthenticationEntities.authUser, AuthUserFields.class, FIND, LIST), - state(TaxonomyEntities.taxon, TaxonFields.class, FIND, LIST); - - // ::: vars - // - private final boolean relation; - private final EntityDescriptor entityDescriptor; - private final Class enumClass; - private final List groups; - - // ::: constructors - // - ClientFields(String... groups) { - this(false, null, null, groups); - } - - ClientFields(EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this(true, entityDescriptor, enumClass, groups); - } - - ClientFields(boolean relation, EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this.relation = relation; - this.entityDescriptor = entityDescriptor; - this.enumClass = enumClass; - this.groups = groups == null ? Collections.EMPTY_LIST : Arrays.asList(groups); - } - - // ::: api - // - @Override - public String getName() { - return name(); - } - - @Override - public boolean isRelation() { - return relation; - } - - @Override - public Class getRelationEnumClass() { - return enumClass; - } - - @Override - public List getGroups() { - return groups; - } - - @Override - public EntityDescriptor getEntityDescriptor() { - return entityDescriptor; - } - - @Override - public Object fetchValue(ClientEntity entity) { - if (entity == null) { - return null; - } - - switch (this) { - case null -> { - return null; - } - case id -> { - return entity.getId(); - } - case externalId ->{ - return entity.getExternalId(); - } - case entityKey ->{ - return entity.getEntityKey(); - } - case alias ->{ - return entity.getAlias(); - } - case stateValue ->{ - return entity.getStateValue(); - } - case email ->{ - return entity.getEmail(); - } - case phone ->{ - return entity.getPhone(); - } - case name ->{ - return entity.getName(); - } - case description ->{ - return entity.getDescription(); - } - case active -> { - return entity.isActive(); - } - case inserted -> { - return entity.getInserted(); - } - case inserter -> { - return entity.getInserter(); - } - case modified -> { - return entity.getModified(); - } - case modifier -> { - return entity.getModifier(); - } - case deleted -> { - return entity.isDeleted(); - } - case removed -> { - return entity.getRemoved(); - } - case remover -> { - return entity.getRemover(); - } - case authUser ->{ - return entity.getAuthUser(); - } - case state ->{ - return entity.getState(); - } - default -> { - return null; - } - } - - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/store/client/ClientMapBuilder.java b/src/main/java/io/kumare/iqr/mod/clientele/store/client/ClientMapBuilder.java deleted file mode 100644 index eb26cc3..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/store/client/ClientMapBuilder.java +++ /dev/null @@ -1,185 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.store.client; - -// java -import java.util.List; -import java.util.Map; -// base -import io.kumare.lib.app.api.Context; -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.BaseEntityMapBuilder; -// app -import io.kumare.iqr.mod.authentication.store.authuser.AuthUserMapBuilder; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonMapBuilder; - -/** - * - * @author afatecha - */ -public class ClientMapBuilder extends BaseEntityMapBuilder { - - // ::: vars - // - private AuthUserMapBuilder authUserBuilder; - private TaxonMapBuilder stateBuilder; - - - // ::: fields - // - @Override - public ClientMapBuilder addGroup(String name, boolean cascade) { - includes.addAll(EntityFieldDescriptor.group(ClientFields.values(), name)); - - if(cascade) { - if (includes.contains(ClientFields.authUser)) { - getAuthUserBuilder().addGroup(name); - } - if (includes.contains(ClientFields.state)) { - getStateBuilder().addGroup(name); - } - } - return this; - } - - @Override - public ClientMapBuilder add(String fieldName) { - includes.add(ClientFields.valueOf(fieldName)); - return this; - } - - @Override - public ClientMapBuilder addAll(String... names) { - for (var i : names) { - includes.add(ClientFields.valueOf(i)); - } - return this; - } - - @Override - public ClientMapBuilder remove(String fieldName) { - excludes.add(ClientFields.valueOf(fieldName)); - return this; - } - - @Override - public ClientMapBuilder removeAll(String... names) { - for (var i : names) { - excludes.add(ClientFields.valueOf(i)); - } - return this; - } - - // ::: relations - // - @Override - public ClientMapBuilder addPlains(boolean cascade) { - includes.addAll(EntityFieldDescriptor.plains(ClientFields.values())); - - if(cascade) { - if (includes.contains(ClientFields.authUser)) { - getAuthUserBuilder().addPlains(); - } - if (includes.contains(ClientFields.state)) { - getStateBuilder().addPlains(); - } - } - return this; - } - - @Override - public ClientMapBuilder addRelations(boolean cascade) { - includes.addAll(EntityFieldDescriptor.relations(ClientFields.values())); - - if(cascade) { - if (includes.contains(ClientFields.authUser)) { - getAuthUserBuilder().addRelations(); - } - if (includes.contains(ClientFields.state)) { - getStateBuilder().addRelations(); - } - } - return this; - } - - // ::: auth user - // - public ClientMapBuilder addAuthUser() { - return addAuthUser(null); - } - - public ClientMapBuilder addAuthUser(String group) { - return addAuthUser(group, false); - } - - public ClientMapBuilder addAuthUser(String group, boolean cascade) { - includes.add(ClientFields.authUser); - - if (group != null) { - getAuthUserBuilder().addGroup(group); - } - - return this; - } - - public AuthUserMapBuilder getAuthUserBuilder() { - if(authUserBuilder == null) { - authUserBuilder = new AuthUserMapBuilder(); - } - return authUserBuilder; - } - - - // ::: state - // - public ClientMapBuilder addState() { - return addState(null); - } - - public ClientMapBuilder addState(String group) { - return addState(group, false); - } - - public ClientMapBuilder addState(String group, boolean cascade) { - includes.add(ClientFields.state); - - if (group != null) { - getStateBuilder().addGroup(group); - } - - return this; - } - - public TaxonMapBuilder getStateBuilder() { - if(stateBuilder == null) { - stateBuilder = new TaxonMapBuilder(); - } - return stateBuilder; - } - - // ::: internals - // - @Override - protected void internalAttachRelations(Context context, - ClientEntity entity, - List fields, - Map resultMap) { - - if (fields.contains(ClientFields.authUser)) { - attachRelation(context, - entity, - ClientFields.authUser, - getAuthUserBuilder(), - resultMap); - } - if (fields.contains(ClientFields.state)) { - attachRelation(context, - entity, - ClientFields.state, - getStateBuilder(), - resultMap); - } - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/store/client/ClientRepository.java b/src/main/java/io/kumare/iqr/mod/clientele/store/client/ClientRepository.java deleted file mode 100644 index 53c1dc3..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/store/client/ClientRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.store.client; - -// spring -import org.springframework.stereotype.Repository; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Repository -public interface ClientRepository extends AppKeyEntityRepository{ - -} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/store/client/ClientStore.java b/src/main/java/io/kumare/iqr/mod/clientele/store/client/ClientStore.java deleted file mode 100644 index c46097c..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/store/client/ClientStore.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.store.client; - -// spring -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Service -public class ClientStore extends AppKeyEntityStore { - - // ::: vars - // - @Autowired - private ClientRepository repository; - - // ::: override - // - @Override - public ClientRepository getRepository() { - return repository; - } - - // ::: api - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/store/clientrelation/ClientRelationData.java b/src/main/java/io/kumare/iqr/mod/clientele/store/clientrelation/ClientRelationData.java deleted file mode 100644 index 8340e86..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/store/clientrelation/ClientRelationData.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.store.clientrelation; - -// base -import io.kumare.iqr.app.store.AppExtendedEntityData; -// imports - - -public class ClientRelationData extends AppExtendedEntityData { - - // ::: vars - // - - - // ::: fields - // - - - // ::: fluent - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/store/clientrelation/ClientRelationEntity.java b/src/main/java/io/kumare/iqr/mod/clientele/store/clientrelation/ClientRelationEntity.java deleted file mode 100644 index eb00f6f..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/store/clientrelation/ClientRelationEntity.java +++ /dev/null @@ -1,152 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.store.clientrelation; - -// jakarta -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.Index; -import jakarta.persistence.ManyToOne; -import jakarta.persistence.Table; -// base -import io.kumare.iqr.app.store.*; -// imports - -// relations -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; - -// annotations -@Entity -@Table( - name = "client_relation", - indexes = { - @Index(name = "idx_client_relation_type_value", columnList = "typeValue"), - @Index(name = "idx_client_relation_state_value", columnList = "stateValue"), - @Index(name = "idx_client_relation_resource_type", columnList = "resourceType"), - @Index(name = "idx_client_relation_resource_key", columnList = "resourceKey"), - @Index(name = "idx_client_relation_resource_id", columnList = "resourceId") - } -) -public class ClientRelationEntity extends AppEntity { - - // ::: vars - // - private String typeValue; - private String stateValue; - private String resourceType; - private String resourceKey; - private String resourceId; - // relations - @ManyToOne(fetch = FetchType.LAZY) - private TaxonEntity type; - @ManyToOne(fetch = FetchType.LAZY) - private TaxonEntity state; - - // ::: constructors - // - public ClientRelationEntity() { - } - - public ClientRelationEntity(String id) { - super(id); - } - - // ::: fields - // - public String getTypeValue() { - return typeValue; - } - - public void setTypeValue(String typeValue) { - this.typeValue = typeValue; - } - - public String getStateValue() { - return stateValue; - } - - public void setStateValue(String stateValue) { - this.stateValue = stateValue; - } - - public String getResourceType() { - return resourceType; - } - - public void setResourceType(String resourceType) { - this.resourceType = resourceType; - } - - public String getResourceKey() { - return resourceKey; - } - - public void setResourceKey(String resourceKey) { - this.resourceKey = resourceKey; - } - - public String getResourceId() { - return resourceId; - } - - public void setResourceId(String resourceId) { - this.resourceId = resourceId; - } - - // relations - public TaxonEntity getType() { - return type; - } - - public void setType(TaxonEntity type) { - this.type = type; - } - - public TaxonEntity getState() { - return state; - } - - public void setState(TaxonEntity state) { - this.state = state; - } - - // ::: fluent - // - public ClientRelationEntity typeValue(String typeValue) { - setTypeValue(typeValue); - return this; - } - - public ClientRelationEntity stateValue(String stateValue) { - setStateValue(stateValue); - return this; - } - - public ClientRelationEntity resourceType(String resourceType) { - setResourceType(resourceType); - return this; - } - - public ClientRelationEntity resourceKey(String resourceKey) { - setResourceKey(resourceKey); - return this; - } - - public ClientRelationEntity resourceId(String resourceId) { - setResourceId(resourceId); - return this; - } - - // relations - public ClientRelationEntity type(TaxonEntity type) { - setType(type); - return this; - } - - public ClientRelationEntity state(TaxonEntity state) { - setState(state); - return this; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/store/clientrelation/ClientRelationFields.java b/src/main/java/io/kumare/iqr/mod/clientele/store/clientrelation/ClientRelationFields.java deleted file mode 100644 index b2f2ba5..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/store/clientrelation/ClientRelationFields.java +++ /dev/null @@ -1,157 +0,0 @@ -/* - */ -package io.kumare.iqr.mod.clientele.store.clientrelation; - -// java -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -// base -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app -import io.kumare.iqr.mod.taxonomy.store.TaxonomyEntities; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonFields; -import io.kumare.iqr.mod.taxonomy.store.TaxonomyEntities; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonFields; - -/** - * - * @author afatecha - */ -public enum ClientRelationFields implements EntityFieldDescriptor { - - id(MAIN, FIND, LIST), - typeValue(MAIN, FIND, LIST), - stateValue(MAIN, FIND, LIST), - resourceType(MAIN, FIND, LIST), - resourceKey(MAIN, FIND, LIST), - resourceId(MAIN, FIND, LIST), - active(MAIN, FIND, LIST), - inserted(AUDIT, FIND, LIST), - inserter(AUDIT, FIND, LIST), - modified(AUDIT, FIND), - modifier(AUDIT, FIND), - deleted(AUDIT), - removed(AUDIT), - remover(AUDIT), - type(TaxonomyEntities.taxon, TaxonFields.class, FIND, LIST), - state(TaxonomyEntities.taxon, TaxonFields.class, FIND, LIST); - - // ::: vars - // - private final boolean relation; - private final EntityDescriptor entityDescriptor; - private final Class enumClass; - private final List groups; - - // ::: constructors - // - ClientRelationFields(String... groups) { - this(false, null, null, groups); - } - - ClientRelationFields(EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this(true, entityDescriptor, enumClass, groups); - } - - ClientRelationFields(boolean relation, EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this.relation = relation; - this.entityDescriptor = entityDescriptor; - this.enumClass = enumClass; - this.groups = groups == null ? Collections.EMPTY_LIST : Arrays.asList(groups); - } - - // ::: api - // - @Override - public String getName() { - return name(); - } - - @Override - public boolean isRelation() { - return relation; - } - - @Override - public Class getRelationEnumClass() { - return enumClass; - } - - @Override - public List getGroups() { - return groups; - } - - @Override - public EntityDescriptor getEntityDescriptor() { - return entityDescriptor; - } - - @Override - public Object fetchValue(ClientRelationEntity entity) { - if (entity == null) { - return null; - } - - switch (this) { - case null -> { - return null; - } - case id -> { - return entity.getId(); - } - case typeValue ->{ - return entity.getTypeValue(); - } - case stateValue ->{ - return entity.getStateValue(); - } - case resourceType ->{ - return entity.getResourceType(); - } - case resourceKey ->{ - return entity.getResourceKey(); - } - case resourceId ->{ - return entity.getResourceId(); - } - case active -> { - return entity.isActive(); - } - case inserted -> { - return entity.getInserted(); - } - case inserter -> { - return entity.getInserter(); - } - case modified -> { - return entity.getModified(); - } - case modifier -> { - return entity.getModifier(); - } - case deleted -> { - return entity.isDeleted(); - } - case removed -> { - return entity.getRemoved(); - } - case remover -> { - return entity.getRemover(); - } - case type ->{ - return entity.getType(); - } - case state ->{ - return entity.getState(); - } - default -> { - return null; - } - } - - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/store/clientrelation/ClientRelationMapBuilder.java b/src/main/java/io/kumare/iqr/mod/clientele/store/clientrelation/ClientRelationMapBuilder.java deleted file mode 100644 index 0a1890f..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/store/clientrelation/ClientRelationMapBuilder.java +++ /dev/null @@ -1,184 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.store.clientrelation; - -// java -import java.util.List; -import java.util.Map; -// base -import io.kumare.lib.app.api.Context; -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.BaseEntityMapBuilder; -// app -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonMapBuilder; - -/** - * - * @author afatecha - */ -public class ClientRelationMapBuilder extends BaseEntityMapBuilder { - - // ::: vars - // - private TaxonMapBuilder typeBuilder; - private TaxonMapBuilder stateBuilder; - - - // ::: fields - // - @Override - public ClientRelationMapBuilder addGroup(String name, boolean cascade) { - includes.addAll(EntityFieldDescriptor.group(ClientRelationFields.values(), name)); - - if(cascade) { - if (includes.contains(ClientRelationFields.type)) { - getTypeBuilder().addGroup(name); - } - if (includes.contains(ClientRelationFields.state)) { - getStateBuilder().addGroup(name); - } - } - return this; - } - - @Override - public ClientRelationMapBuilder add(String fieldName) { - includes.add(ClientRelationFields.valueOf(fieldName)); - return this; - } - - @Override - public ClientRelationMapBuilder addAll(String... names) { - for (var i : names) { - includes.add(ClientRelationFields.valueOf(i)); - } - return this; - } - - @Override - public ClientRelationMapBuilder remove(String fieldName) { - excludes.add(ClientRelationFields.valueOf(fieldName)); - return this; - } - - @Override - public ClientRelationMapBuilder removeAll(String... names) { - for (var i : names) { - excludes.add(ClientRelationFields.valueOf(i)); - } - return this; - } - - // ::: relations - // - @Override - public ClientRelationMapBuilder addPlains(boolean cascade) { - includes.addAll(EntityFieldDescriptor.plains(ClientRelationFields.values())); - - if(cascade) { - if (includes.contains(ClientRelationFields.type)) { - getTypeBuilder().addPlains(); - } - if (includes.contains(ClientRelationFields.state)) { - getStateBuilder().addPlains(); - } - } - return this; - } - - @Override - public ClientRelationMapBuilder addRelations(boolean cascade) { - includes.addAll(EntityFieldDescriptor.relations(ClientRelationFields.values())); - - if(cascade) { - if (includes.contains(ClientRelationFields.type)) { - getTypeBuilder().addRelations(); - } - if (includes.contains(ClientRelationFields.state)) { - getStateBuilder().addRelations(); - } - } - return this; - } - - // ::: type - // - public ClientRelationMapBuilder addType() { - return addType(null); - } - - public ClientRelationMapBuilder addType(String group) { - return addType(group, false); - } - - public ClientRelationMapBuilder addType(String group, boolean cascade) { - includes.add(ClientRelationFields.type); - - if (group != null) { - getTypeBuilder().addGroup(group); - } - - return this; - } - - public TaxonMapBuilder getTypeBuilder() { - if(typeBuilder == null) { - typeBuilder = new TaxonMapBuilder(); - } - return typeBuilder; - } - - - // ::: state - // - public ClientRelationMapBuilder addState() { - return addState(null); - } - - public ClientRelationMapBuilder addState(String group) { - return addState(group, false); - } - - public ClientRelationMapBuilder addState(String group, boolean cascade) { - includes.add(ClientRelationFields.state); - - if (group != null) { - getStateBuilder().addGroup(group); - } - - return this; - } - - public TaxonMapBuilder getStateBuilder() { - if(stateBuilder == null) { - stateBuilder = new TaxonMapBuilder(); - } - return stateBuilder; - } - - // ::: internals - // - @Override - protected void internalAttachRelations(Context context, - ClientRelationEntity entity, - List fields, - Map resultMap) { - - if (fields.contains(ClientRelationFields.type)) { - attachRelation(context, - entity, - ClientRelationFields.type, - getTypeBuilder(), - resultMap); - } - if (fields.contains(ClientRelationFields.state)) { - attachRelation(context, - entity, - ClientRelationFields.state, - getStateBuilder(), - resultMap); - } - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/store/clientrelation/ClientRelationRepository.java b/src/main/java/io/kumare/iqr/mod/clientele/store/clientrelation/ClientRelationRepository.java deleted file mode 100644 index 7241c82..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/store/clientrelation/ClientRelationRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.store.clientrelation; - -// spring -import org.springframework.stereotype.Repository; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Repository -public interface ClientRelationRepository extends AppEntityRepository{ - -} diff --git a/src/main/java/io/kumare/iqr/mod/clientele/store/clientrelation/ClientRelationStore.java b/src/main/java/io/kumare/iqr/mod/clientele/store/clientrelation/ClientRelationStore.java deleted file mode 100644 index 4bbf8b3..0000000 --- a/src/main/java/io/kumare/iqr/mod/clientele/store/clientrelation/ClientRelationStore.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.clientele.store.clientrelation; - -// spring -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Service -public class ClientRelationStore extends AppEntityStore { - - // ::: vars - // - @Autowired - private ClientRelationRepository repository; - - // ::: override - // - @Override - public ClientRelationRepository getRepository() { - return repository; - } - - // ::: api - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/LoyaltyConstants.java b/src/main/java/io/kumare/iqr/mod/loyalty/LoyaltyConstants.java deleted file mode 100644 index ff36ce1..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/LoyaltyConstants.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty; - -// base -import io.kumare.iqr.app.AppConstants; - -/** - * - * @author afatecha - */ -public class LoyaltyConstants { - - // ::: codes - // - public static final int CODE = AppConstants.LOYALTY_CODE; - public static final String NAME = "loyalty"; - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/LoyaltyController.java b/src/main/java/io/kumare/iqr/mod/loyalty/LoyaltyController.java deleted file mode 100644 index 2e7b3f6..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/LoyaltyController.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty; - -// java -import io.kumare.iqr.mod.loyalty.store.LoyaltyEntities; -import java.util.Arrays; -import java.util.List; -// base -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app -import io.kumare.iqr.app.module.AppModuleController; -// module -import io.kumare.iqr.mod.loyalty.store.subscription.SubscriptionStore; -import io.kumare.iqr.mod.loyalty.store.subscriptiontx.SubscriptionTxStore; -import io.kumare.iqr.mod.loyalty.store.subscriptiontxtag.SubscriptionTxTagStore; - -/** - * - * @author afatecha - */ -public class LoyaltyController extends AppModuleController { - - // ::: api - // - @Override - public boolean hasStore(String name) { - return LoyaltyEntities.hasDescriptor(name); - } - - @Override - public EntityDescriptor getEntityDescriptor(Class entityClass) { - return LoyaltyEntities.descriptorOf(entityClass); - } - - @Override - public EntityDescriptor getEntityDescriptor(String name) { - return LoyaltyEntities.descriptorOf(name); - } - - @Override - public List getEntityDescriptors() { - return Arrays.asList(LoyaltyEntities.values()); - } - - // ::: stores - // - public SubscriptionStore getSubscriptionStore() { - return getService(SubscriptionStore.class); - } - - public SubscriptionTxStore getSubscriptionTxStore() { - return getService(SubscriptionTxStore.class); - } - - public SubscriptionTxTagStore getSubscriptionTxTagStore() { - return getService(SubscriptionTxTagStore.class); - } - - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/LoyaltyErrors.java b/src/main/java/io/kumare/iqr/mod/loyalty/LoyaltyErrors.java deleted file mode 100644 index a74aad5..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/LoyaltyErrors.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty; - -// java -import java.util.HashMap; -import java.util.Map; -// lib -import io.kumare.lib.transport.TransportCode; -import static io.kumare.lib.transport.Transports.code; -import io.kumare.lib.v.ExceptionPrototype; -// app -import io.kumare.iqr.app.AppException; -import io.kumare.iqr.app.endpoint.AppTransports; - - -/** - * - * @author afatecha - */ -public enum LoyaltyErrors implements ExceptionPrototype { - - - // subscription - subscription_notfound(1, code(AppTransports.http, 400)), - subscription_data_notfound(1, code(AppTransports.http, 400)), - subscription_preload_empty(1, code(AppTransports.http, 400)), - subscription_entitykey_empty(1, code(AppTransports.http, 400)), - subscription_statevalue_empty(1, code(AppTransports.http, 400)), - subscription_business_notfound(1, code(AppTransports.http, 400)), - subscription_client_notfound(1, code(AppTransports.http, 400)), - subscription_walletslot_notfound(1, code(AppTransports.http, 400)), - subscription_state_notfound(1, code(AppTransports.http, 400)), - - // subscription tx - subscriptiontx_notfound(1, code(AppTransports.http, 400)), - subscriptiontx_data_notfound(1, code(AppTransports.http, 400)), - subscriptiontx_preload_empty(1, code(AppTransports.http, 400)), - subscriptiontx_typevalue_empty(1, code(AppTransports.http, 400)), - subscriptiontx_statevalue_empty(1, code(AppTransports.http, 400)), - subscriptiontx_points_empty(1, code(AppTransports.http, 400)), - subscriptiontx_subscription_notfound(1, code(AppTransports.http, 400)), - subscriptiontx_promo_notfound(1, code(AppTransports.http, 400)), - subscriptiontx_worker_notfound(1, code(AppTransports.http, 400)), - subscriptiontx_type_notfound(1, code(AppTransports.http, 400)), - subscriptiontx_state_notfound(1, code(AppTransports.http, 400)), - subscriptiontx_capturer_notfound(1, code(AppTransports.http, 400)), - - // subscription tx tag - subscriptiontxtag_notfound(1, code(AppTransports.http, 400)), - subscriptiontxtag_data_notfound(1, code(AppTransports.http, 400)), - subscriptiontxtag_preload_empty(1, code(AppTransports.http, 400)), - subscriptiontxtag_tagkey_empty(1, code(AppTransports.http, 400)), - subscriptiontxtag_subscription_notfound(1, code(AppTransports.http, 400)), - subscriptiontxtag_transaction_notfound(1, code(AppTransports.http, 400)), - subscriptiontxtag_tag_notfound(1, code(AppTransports.http, 400)); - - // ::: vars - // - private final Map transportCodes = new HashMap(); - private final int code; - - // ::: constructors - // - private LoyaltyErrors(int code, TransportCode... codes) { - this.code = code; - if (codes != null) { - for (var i : codes) { - if (i != null) { - transportCodes.put(i.getId(), i.getCode()); - } - } - } - } - - // ::: prototype api - // - @Override - public int getCode() { - return code; - } - - @Override - public String getName() { - return name(); - } - - @Override - public Map getTransportCodes() { - return transportCodes; - } - - @Override - public RuntimeException newInstance(String msg, Throwable cause, Map extra) { - var ex = new AppException(this, msg, cause); - ex.setExtra(extra); - return ex; - } - - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/LoyaltyModule.java b/src/main/java/io/kumare/iqr/mod/loyalty/LoyaltyModule.java deleted file mode 100644 index 614e99f..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/LoyaltyModule.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty; - -// java -import io.kumare.lib.base.server.spring.module.BaseModule; - - -/** - * - * @author afatecha - */ -public class LoyaltyModule extends BaseModule { - - // ::: - // - public static final LoyaltyController controller = new LoyaltyController(); - - // ::: api - // - @Override - public int getId() { - return LoyaltyConstants.CODE; - } - - @Override - public String getName() { - return LoyaltyConstants.NAME; - } - - @Override - public LoyaltyController getController() { - return controller; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/LoyaltyPermissions.java b/src/main/java/io/kumare/iqr/mod/loyalty/LoyaltyPermissions.java deleted file mode 100644 index 873ce97..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/LoyaltyPermissions.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty; - -// base -import io.kumare.iqr.mod.loyalty.store.LoyaltyEntities; -import io.kumare.lib.app.api.security.PermissionReference; -// app -import io.kumare.iqr.app.AppErrors; - -/** - * - * @author afatecha - */ -public enum LoyaltyPermissions { - - // subscription - //subscription_add(LoyaltyEntities.subscription), - //subscription_edit(LoyaltyEntities.subscription), - //subscription_find(LoyaltyEntities.subscription), - //subscription_enable(LoyaltyEntities.subscription), - //subscription_disable(LoyaltyEntities.subscription), - //subscription_list(LoyaltyEntities.subscription), - //subscription_delete(LoyaltyEntities.subscription), - //subscription_preload(LoyaltyEntities.subscription), - // - subscription_viewer(LoyaltyEntities.subscription), - //subscription_guest(LoyaltyEntities.subscription), - //subscription_collab(LoyaltyEntities.subscription), - subscription_worker(LoyaltyEntities.subscription), - //subscription_control(LoyaltyEntities.subscription), - subscription_manager(LoyaltyEntities.subscription), - subscription_admin(null), - subscription_system(null), - - // subscription tx - //subscription_tx_add(LoyaltyEntities.subscriptionTx), - //subscription_tx_edit(LoyaltyEntities.subscriptionTx), - //subscription_tx_find(LoyaltyEntities.subscriptionTx), - //subscription_tx_enable(LoyaltyEntities.subscriptionTx), - //subscription_tx_disable(LoyaltyEntities.subscriptionTx), - //subscription_tx_list(LoyaltyEntities.subscriptionTx), - //subscription_tx_delete(LoyaltyEntities.subscriptionTx), - //subscription_tx_preload(LoyaltyEntities.subscriptionTx), - // - subscription_tx_viewer(LoyaltyEntities.subscriptionTx), - //subscription_tx_guest(LoyaltyEntities.subscriptionTx), - //subscription_tx_collab(LoyaltyEntities.subscriptionTx), - subscription_tx_worker(LoyaltyEntities.subscriptionTx), - //subscription_tx_control(LoyaltyEntities.subscriptionTx), - subscription_tx_manager(LoyaltyEntities.subscriptionTx), - subscription_tx_admin(null), - subscription_tx_system(null), - - // subscription tx tag - //subscription_tx_tag_add(LoyaltyEntities.subscriptionTxTag), - //subscription_tx_tag_edit(LoyaltyEntities.subscriptionTxTag), - //subscription_tx_tag_find(LoyaltyEntities.subscriptionTxTag), - //subscription_tx_tag_enable(LoyaltyEntities.subscriptionTxTag), - //subscription_tx_tag_disable(LoyaltyEntities.subscriptionTxTag), - //subscription_tx_tag_list(LoyaltyEntities.subscriptionTxTag), - //subscription_tx_tag_delete(LoyaltyEntities.subscriptionTxTag), - //subscription_tx_tag_preload(LoyaltyEntities.subscriptionTxTag), - // - subscription_tx_tag_viewer(LoyaltyEntities.subscriptionTxTag), - //subscription_tx_tag_guest(LoyaltyEntities.subscriptionTxTag), - //subscription_tx_tag_collab(LoyaltyEntities.subscriptionTxTag), - subscription_tx_tag_worker(LoyaltyEntities.subscriptionTxTag), - //subscription_tx_tag_control(LoyaltyEntities.subscriptionTxTag), - subscription_tx_tag_manager(LoyaltyEntities.subscriptionTxTag), - subscription_tx_tag_admin(null), - subscription_tx_tag_system(null); - - - // ::: - // - private final LoyaltyEntities resourceType; - - LoyaltyPermissions(LoyaltyEntities entityRef) { - this.resourceType = entityRef; - } - - // - public PermissionReference toReference() { - return toReference(null); - } - - public PermissionReference toReference(String resourceKey) { - var ref = new PermissionReference() - .module(LoyaltyConstants.NAME) - .permission(name()) - .error(AppErrors.action_unauthorized); - - if (resourceType != null && resourceKey != null) { - ref.resourceType(resourceType.name()) - .resourceKey(resourceKey); - } - - return ref; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionActionArgument.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionActionArgument.java deleted file mode 100644 index f3719dc..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionActionArgument.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscription; - -// base -import io.kumare.iqr.app.action.AppEntityActionArgument; -// entity -import io.kumare.iqr.mod.loyalty.store.subscription.SubscriptionEntity; - -/** - * - * @author afatecha - */ -public class SubscriptionActionArgument extends AppEntityActionArgument { - - // ::: constructors - // - public SubscriptionActionArgument() { - } - - public SubscriptionActionArgument(SubscriptionEntity entity) { - super(entity); - } - - // ::: api - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionAddAction.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionAddAction.java deleted file mode 100644 index 76dc5e5..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionAddAction.java +++ /dev/null @@ -1,144 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscription; - -// java -import java.util.List; -// lib -import io.kumare.lib.base.server.spring.action.Actions; -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.loyalty.LoyaltyErrors; -// entity -import io.kumare.iqr.mod.loyalty.store.subscription.SubscriptionEntity; -import io.kumare.iqr.mod.clientele.store.client.ClientEntity; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; -import io.kumare.iqr.mod.pocket.store.walletslot.WalletSlotEntity; -import io.kumare.iqr.mod.loyalty.action.subscriptiontx.SubscriptionTxAddAction; -import io.kumare.iqr.mod.loyalty.action.subscriptiontx.SubscriptionTxAddArgument; - -/** - * - * @author afatecha - */ -public class SubscriptionAddAction extends AppAction> { - - // ::: vars - // - private SubscriptionEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, LoyaltyErrors.subscription_notfound); - - // relations - V.ifNull(model.getBusiness(), LoyaltyErrors.subscription_business_notfound); - V.ifNull(model.getClient(), LoyaltyErrors.subscription_client_notfound); - V.ifNull(model.getWalletSlot(), LoyaltyErrors.subscription_walletslot_notfound); - V.ifNull(model.getState(), LoyaltyErrors.subscription_state_notfound); - - // fields - V.ifEmpty(model.getEntityKey(), LoyaltyErrors.subscription_entitykey_empty); - V.ifEmpty(model.getStateValue(), LoyaltyErrors.subscription_statevalue_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - var biz = AppModules.biz.getController(); - var clientele = AppModules.clientele.getController(); - var taxonomy = AppModules.taxonomy.getController(); - var pocket = AppModules.pocket.getController(); - - var businessStore = biz.getBusinessStore(); - var clientStore = clientele.getClientStore(); - var taxonStore = taxonomy.getTaxonStore(); - var walletSlotStore = pocket.getWalletSlotStore(); - - var business = businessStore.ensure(getContext(), argModel.getBusiness(), LoyaltyErrors.subscription_business_notfound); - var client = clientStore.ensure(getContext(), argModel.getClient(), LoyaltyErrors.subscription_client_notfound); - var walletSlot = walletSlotStore.ensure(getContext(), argModel.getWalletSlot(), LoyaltyErrors.subscription_walletslot_notfound); - var state = taxonStore.ensure(getContext(), argModel.getState(), LoyaltyErrors.subscription_state_notfound); - - // model - var model = makeModel(business, client, walletSlot, state); - - // add - entity = saveEntity(model); - - // add others - addTransactions(getArgument().getTransactions()); - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private SubscriptionEntity makeModel(BusinessEntity business, ClientEntity client, WalletSlotEntity walletSlot, TaxonEntity state) { - - var argModel = getArgument().getEntity(); - var model = new SubscriptionEntity(); - - // relations - model.setBusiness(business); - model.setClient(client); - model.setWalletSlot(walletSlot); - model.setState(state); - - // fields - model.setEntityKey(argModel.getEntityKey()); - model.setStateValue(argModel.getStateValue()); - model.setActive(true); - - - - return model; - } - - // ::: save - // - private SubscriptionEntity saveEntity(SubscriptionEntity model) { - - var store = AppModules.loyalty.getController().getSubscriptionStore(); - - var saved = store.add(getContext(), model); - getContext().attach(saved.getId(), saved); - return saved; - } - - // ::: add transactions - // - private void addTransactions(List list) { - if(list != null) { - list.forEach(i->{ - i.getEntity().subscription(entity); - Actions.perform(getContext(), new SubscriptionTxAddAction(), i); - }); - } - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionAddArgument.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionAddArgument.java deleted file mode 100644 index 04cd5ae..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionAddArgument.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscription; - -// java -import java.util.List; -// app -import io.kumare.iqr.mod.loyalty.store.subscription.SubscriptionEntity; -import io.kumare.iqr.mod.loyalty.action.subscriptiontx.SubscriptionTxAddArgument; - -/** - * - * @author afatecha - */ -public class SubscriptionAddArgument extends SubscriptionActionArgument { - - // ::: vars - // - private List transactions; - - // ::: constructors - // - public SubscriptionAddArgument() { - } - - public SubscriptionAddArgument(SubscriptionEntity entity) { - super(entity); - } - - // ::: fields - // - public List getTransactions() { - return transactions; - } - - public void setTransactions(List list) { - this.transactions = list; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionDeleteAction.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionDeleteAction.java deleted file mode 100644 index 4e534fd..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionDeleteAction.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscription; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.loyalty.LoyaltyErrors; -// entity -import io.kumare.iqr.mod.loyalty.store.subscription.SubscriptionEntity; - -/** - * - * @author afatecha - */ -public class SubscriptionDeleteAction extends AppAction> { - - // ::: vars - // - private SubscriptionEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), LoyaltyErrors.subscription_notfound); - V.ifNull(getArgument().getEntity().getId(), LoyaltyErrors.subscription_notfound); - } - - @Override - protected void doAction() { - - var argModel = getArgument().getEntity(); - - deleteEntity(argModel); - } - - @Override - protected void setResultOnly() { - } - - // ::: delete - // - private void deleteEntity(SubscriptionEntity model) { - - var store = AppModules.loyalty.getController().getSubscriptionStore(); - - store.deleteById(getContext(), model.getId()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionEditAction.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionEditAction.java deleted file mode 100644 index 9da1e06..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionEditAction.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscription; - -// lib -import io.kumare.lib.v.V; -// app -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.loyalty.LoyaltyErrors; -// entity -import io.kumare.iqr.mod.loyalty.store.subscription.SubscriptionEntity; - -/** - * - * @author afatecha - */ -public class SubscriptionEditAction extends AppAction> { - - // ::: vars - // - private SubscriptionEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, LoyaltyErrors.subscription_notfound); - - // fields - V.ifEmpty(model.getEntityKey(), LoyaltyErrors.subscription_entitykey_empty); - V.ifEmpty(model.getStateValue(), LoyaltyErrors.subscription_statevalue_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - - var loyalty = AppModules.loyalty.getController(); - var subscriptionStore = loyalty.getSubscriptionStore(); - - // edit - entity = subscriptionStore.ensure(getContext(), argModel, LoyaltyErrors.subscription_notfound); - - editEntity(); - - entity = saveEntity(); - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private void editEntity() { - - var model = getArgument().getEntity(); - - // fields - entity.setEntityKey(V.firstNotEmpty(model.getEntityKey(), entity.getEntityKey())); - entity.setStateValue(V.firstNotEmpty(model.getStateValue(), entity.getStateValue())); - - - } - - // ::: save - // - private SubscriptionEntity saveEntity() { - - var store = AppModules.loyalty.getController().getSubscriptionStore(); - - var saved = store.edit(getContext(), entity); - getContext().attach(saved.getId(), saved); - return saved; - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionEditArgument.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionEditArgument.java deleted file mode 100644 index 6b1d296..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionEditArgument.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscription; - -// app -import io.kumare.iqr.mod.loyalty.store.subscription.SubscriptionEntity; - -/** - * - * @author afatecha - */ -public class SubscriptionEditArgument extends SubscriptionActionArgument { - - // ::: vars - // - - - // ::: constructors - // - public SubscriptionEditArgument() { - } - - public SubscriptionEditArgument(SubscriptionEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionEnableAction.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionEnableAction.java deleted file mode 100644 index fc58c6b..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionEnableAction.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscription; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.loyalty.LoyaltyErrors; -// entity -import io.kumare.iqr.mod.loyalty.store.subscription.SubscriptionEntity; - - -/** - * - * @author afatecha - */ -public class SubscriptionEnableAction extends AppAction { - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), LoyaltyErrors.subscription_notfound); - V.ifNull(getArgument().getEntity().getId(), LoyaltyErrors.subscription_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - - enableEntity(model); - } - - @Override - protected void setResultOnly() { - } - - // ::: enable - // - private void enableEntity(SubscriptionEntity model) { - - var store = AppModules.loyalty.getController().getSubscriptionStore(); - - if (getArgument().getEntity().isActive()) { - store.enableById(getContext(), model.getId()); - } else { - store.disableById(getContext(), model.getId()); - } - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionFindAction.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionFindAction.java deleted file mode 100644 index 4269ea4..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionFindAction.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscription; - -// java -import java.util.HashMap; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.loyalty.LoyaltyErrors; -// entity -import io.kumare.iqr.mod.loyalty.store.subscription.SubscriptionEntity; - - -/** - * - * @author afatecha - */ -public class SubscriptionFindAction extends AppAction { - - // ::: vars - // - private SubscriptionEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), LoyaltyErrors.subscription_notfound); - V.ifNull(getArgument().getEntity().getId(), LoyaltyErrors.subscription_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - entity = findEntity(model); - } - - @Override - protected void setResultOnly() { - var result = new HashMap(); - result.put("entity", entity); - setResult(result); - } - - // ::: find - // - private SubscriptionEntity findEntity(SubscriptionEntity model) { - - var store = AppModules.loyalty.getController().getSubscriptionStore(); - return store.findById(getContext(), model.getId()); - } - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionListAction.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionListAction.java deleted file mode 100644 index 1c96118..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionListAction.java +++ /dev/null @@ -1,151 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscription; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.LinkedList; -import java.util.Map; -// spring -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// entity -import io.kumare.iqr.mod.loyalty.store.subscription.SubscriptionEntity; -import io.kumare.iqr.mod.loyalty.store.subscription.SubscriptionMapBuilder; - - -/** - * - * @author afatecha - */ -public class SubscriptionListAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private final List entities = new LinkedList<>(); - - // ::: public api - // - public List getEntities() { - return entities; - } - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - } - - @Override - protected void doAction() { - - result.put("pageable", getArgument().isPageable()); - result.put("wrapped", getArgument().isWrapped()); - - if (getArgument().isPageable()) { - - var page = makePage(); - entities.addAll(page.toList()); - - if (getArgument().isWrapped()) { - result.put("page", makeWrappedPage(page)); - } else { - result.put("page", page); - } - - } else { - - var list = makeList(); - entities.addAll(list); - - if (getArgument().isWrapped()) { - result.put("list", makeWrappedList()); - } else { - result.put("list", list); - } - } - - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: page - // - private Page makePage() { - - var page = getArgument().getPageNumber(); - var size = getArgument().getPageSize(); - //var sort = getArgument().getSort(); - - var pageable = PageRequest.of(page, size); - - var store = AppModules.loyalty.getController().getSubscriptionStore(); - return store.getRepository().findAll(pageable); - } - - // ::: wrapped page - // - private Map makeWrappedPage(Page found) { - - var page = new HashMap(); - var content = new LinkedList(); - - wrapList(entities, content); - - page.put("size", found.getSize()); - page.put("number", found.getNumber()); - page.put("totalElements", found.getTotalElements()); - page.put("totalPages", found.getTotalPages()); - page.put("content", content); - - return page; - } - - - // ::: list - // - - private List makeList() { - - var store = AppModules.loyalty.getController().getSubscriptionStore(); - - return store.listAll(getContext()); - } - - // ::: wrapped list - private List makeWrappedList() { - var list = new LinkedList(); - - wrapList(entities, list); - - return list; - } - - // ::: wrapper - // - private void wrapList(List found, List output) { - - var builder = new SubscriptionMapBuilder().addListGroup(); - builder.getBusinessBuilder().addMainGroup(); - builder.getClientBuilder().addMainGroup(); - builder.getWalletSlotBuilder().addMainGroup(); - builder.getStateBuilder().addMainGroup(); - - output.addAll(builder.build(getContext(), found)); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionListArgument.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionListArgument.java deleted file mode 100644 index e5a536b..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionListArgument.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscription; - -// app -import io.kumare.iqr.app.action.AppListActionArgument; -// store -import io.kumare.iqr.mod.loyalty.store.subscription.SubscriptionEntity; - -/** - * - * @author afatecha - */ -public class SubscriptionListArgument extends AppListActionArgument { - - // ::: vars - // - - // ::: constructors - // - public SubscriptionListArgument() { - } - - public SubscriptionListArgument(SubscriptionEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionPreloadAction.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionPreloadAction.java deleted file mode 100644 index 0cda21e..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionPreloadAction.java +++ /dev/null @@ -1,132 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscription; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.loyalty.LoyaltyErrors; -// entity -import io.kumare.iqr.mod.loyalty.store.subscription.SubscriptionEntity; -// relations -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; -import io.kumare.iqr.mod.clientele.store.client.ClientEntity; -import io.kumare.iqr.mod.pocket.store.walletslot.WalletSlotEntity; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; - -/** - * - * @author afatecha - */ -public class SubscriptionPreloadAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private Map params = new HashMap<>(); - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifEmpty(getArgument().getAction(), LoyaltyErrors.subscription_preload_empty); - } - - @Override - protected void doAction() { - if(getArgument().getParams() != null) { - params = getArgument().getParams(); - } - - switch (getArgument().getAction()) { - case "find" -> - prepareFind(); - case "list" -> - prepareList(); - case "add" -> - prepareAdd(); - case "edit" -> - prepareEdit(); - } - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: preload - // - private void prepareAdd() { - result.put("taxons", listTaxons()); - result.put("walletSlots", listWalletSlots()); - result.put("clients", listClients()); - result.put("businesss", listBusinesss()); - } - - private void prepareEdit() { - var entity = findEntity(); - result.put("entity", entity); - result.put("business", entity.getBusiness()); - result.put("client", entity.getClient()); - result.put("walletSlot", entity.getWalletSlot()); - result.put("state", entity.getState()); - } - - private void prepareList() { - } - - private void prepareFind() { - var entity = findEntity(); - result.put("entity", entity); - result.put("business", entity.getBusiness()); - result.put("client", entity.getClient()); - result.put("walletSlot", entity.getWalletSlot()); - result.put("state", entity.getState()); - } - - // ::: queries - // - private SubscriptionEntity findEntity() { - var store = AppModules.loyalty.getController().getSubscriptionStore(); - - var id = (String) params.get("id"); - if(id == null && getArgument().getEntity() != null) { - id = getArgument().getEntity().getId(); - } - return store.findById(getContext(), id); - } - - public List listClients() { - var store = AppModules.clientele.getController().getClientStore(); - - return store.listAll(getContext()); - } - public List listBusinesss() { - var store = AppModules.biz.getController().getBusinessStore(); - - return store.listAll(getContext()); - } - public List listWalletSlots() { - var store = AppModules.pocket.getController().getWalletSlotStore(); - - return store.listAll(getContext()); - } - public List listTaxons() { - var store = AppModules.taxonomy.getController().getTaxonStore(); - - return store.listAll(getContext()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionPreloadArgument.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionPreloadArgument.java deleted file mode 100644 index 6384d5c..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscription/SubscriptionPreloadArgument.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscription; - -/** - * - * @author afatecha - */ -public class SubscriptionPreloadArgument extends SubscriptionActionArgument { - - // ::: vars - // - private String action; - - // ::: fields - // - public String getAction() { - return action; - } - - public void setAction(String action) { - this.action = action; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxActionArgument.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxActionArgument.java deleted file mode 100644 index 6008b65..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxActionArgument.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscriptiontx; - -// base -import io.kumare.iqr.app.action.AppEntityActionArgument; -// entity -import io.kumare.iqr.mod.loyalty.store.subscriptiontx.SubscriptionTxEntity; - -/** - * - * @author afatecha - */ -public class SubscriptionTxActionArgument extends AppEntityActionArgument { - - // ::: constructors - // - public SubscriptionTxActionArgument() { - } - - public SubscriptionTxActionArgument(SubscriptionTxEntity entity) { - super(entity); - } - - // ::: api - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxAddAction.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxAddAction.java deleted file mode 100644 index 71a2e77..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxAddAction.java +++ /dev/null @@ -1,154 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscriptiontx; - -// java -import java.util.List; -// lib -import io.kumare.lib.base.server.spring.action.Actions; -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.loyalty.LoyaltyErrors; -// entity -import io.kumare.iqr.mod.loyalty.store.subscriptiontx.SubscriptionTxEntity; -import io.kumare.iqr.mod.biz.store.businesspromo.BusinessPromoEntity; -import io.kumare.iqr.mod.clientele.store.client.ClientEntity; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; -import io.kumare.iqr.mod.loyalty.store.subscription.SubscriptionEntity; -import io.kumare.iqr.mod.biz.store.businessworker.BusinessWorkerEntity; -import io.kumare.iqr.mod.loyalty.action.subscriptiontxtag.SubscriptionTxTagAddAction; -import io.kumare.iqr.mod.loyalty.action.subscriptiontxtag.SubscriptionTxTagAddArgument; - -/** - * - * @author afatecha - */ -public class SubscriptionTxAddAction extends AppAction> { - - // ::: vars - // - private SubscriptionTxEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, LoyaltyErrors.subscriptiontx_notfound); - - // relations - V.ifNull(model.getSubscription(), LoyaltyErrors.subscriptiontx_subscription_notfound); - V.ifNull(model.getPromo(), LoyaltyErrors.subscriptiontx_promo_notfound); - V.ifNull(model.getWorker(), LoyaltyErrors.subscriptiontx_worker_notfound); - V.ifNull(model.getType(), LoyaltyErrors.subscriptiontx_type_notfound); - V.ifNull(model.getState(), LoyaltyErrors.subscriptiontx_state_notfound); - V.ifNull(model.getCapturer(), LoyaltyErrors.subscriptiontx_capturer_notfound); - - // fields - V.ifEmpty(model.getTypeValue(), LoyaltyErrors.subscriptiontx_typevalue_empty); - V.ifEmpty(model.getStateValue(), LoyaltyErrors.subscriptiontx_statevalue_empty); - V.ifEmpty(model.getPoints(), LoyaltyErrors.subscriptiontx_points_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - var biz = AppModules.biz.getController(); - var clientele = AppModules.clientele.getController(); - var loyalty = AppModules.loyalty.getController(); - var taxonomy = AppModules.taxonomy.getController(); - - var businessPromoStore = biz.getBusinessPromoStore(); - var businessWorkerStore = biz.getBusinessWorkerStore(); - var subscriptionStore = loyalty.getSubscriptionStore(); - var clientStore = clientele.getClientStore(); - var taxonStore = taxonomy.getTaxonStore(); - - var subscription = subscriptionStore.ensure(getContext(), argModel.getSubscription(), LoyaltyErrors.subscriptiontx_subscription_notfound); - var promo = businessPromoStore.ensure(getContext(), argModel.getPromo(), LoyaltyErrors.subscriptiontx_promo_notfound); - var worker = businessWorkerStore.ensure(getContext(), argModel.getWorker(), LoyaltyErrors.subscriptiontx_worker_notfound); - var type = taxonStore.ensure(getContext(), argModel.getType(), LoyaltyErrors.subscriptiontx_type_notfound); - var state = taxonStore.ensure(getContext(), argModel.getState(), LoyaltyErrors.subscriptiontx_state_notfound); - var capturer = clientStore.ensure(getContext(), argModel.getCapturer(), LoyaltyErrors.subscriptiontx_capturer_notfound); - - // model - var model = makeModel(subscription, promo, worker, type, state, capturer); - - // add - entity = saveEntity(model); - - // add others - addTags(getArgument().getTags()); - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private SubscriptionTxEntity makeModel(SubscriptionEntity subscription, BusinessPromoEntity promo, BusinessWorkerEntity worker, TaxonEntity type, TaxonEntity state, ClientEntity capturer) { - - var argModel = getArgument().getEntity(); - var model = new SubscriptionTxEntity(); - - // relations - model.setSubscription(subscription); - model.setPromo(promo); - model.setWorker(worker); - model.setType(type); - model.setState(state); - model.setCapturer(capturer); - - // fields - model.setTypeValue(argModel.getTypeValue()); - model.setStateValue(argModel.getStateValue()); - model.setPoints(argModel.getPoints()); - model.setActive(true); - - - - return model; - } - - // ::: save - // - private SubscriptionTxEntity saveEntity(SubscriptionTxEntity model) { - - var store = AppModules.loyalty.getController().getSubscriptionTxStore(); - - var saved = store.add(getContext(), model); - getContext().attach(saved.getId(), saved); - return saved; - } - - // ::: add tags - // - private void addTags(List list) { - if(list != null) { - list.forEach(i->{ - i.getEntity().transaction(entity); - Actions.perform(getContext(), new SubscriptionTxTagAddAction(), i); - }); - } - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxAddArgument.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxAddArgument.java deleted file mode 100644 index fa1fcc1..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxAddArgument.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscriptiontx; - -// java -import java.util.List; -// app -import io.kumare.iqr.mod.loyalty.store.subscriptiontx.SubscriptionTxEntity; -import io.kumare.iqr.mod.loyalty.action.subscriptiontxtag.SubscriptionTxTagAddArgument; - -/** - * - * @author afatecha - */ -public class SubscriptionTxAddArgument extends SubscriptionTxActionArgument { - - // ::: vars - // - private List tags; - - // ::: constructors - // - public SubscriptionTxAddArgument() { - } - - public SubscriptionTxAddArgument(SubscriptionTxEntity entity) { - super(entity); - } - - // ::: fields - // - public List getTags() { - return tags; - } - - public void setTags(List list) { - this.tags = list; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxDeleteAction.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxDeleteAction.java deleted file mode 100644 index c7896db..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxDeleteAction.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscriptiontx; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.loyalty.LoyaltyErrors; -// entity -import io.kumare.iqr.mod.loyalty.store.subscriptiontx.SubscriptionTxEntity; - -/** - * - * @author afatecha - */ -public class SubscriptionTxDeleteAction extends AppAction> { - - // ::: vars - // - private SubscriptionTxEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), LoyaltyErrors.subscriptiontx_notfound); - V.ifNull(getArgument().getEntity().getId(), LoyaltyErrors.subscriptiontx_notfound); - } - - @Override - protected void doAction() { - - var argModel = getArgument().getEntity(); - - deleteEntity(argModel); - } - - @Override - protected void setResultOnly() { - } - - // ::: delete - // - private void deleteEntity(SubscriptionTxEntity model) { - - var store = AppModules.loyalty.getController().getSubscriptionTxStore(); - - store.deleteById(getContext(), model.getId()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxEditAction.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxEditAction.java deleted file mode 100644 index bfc38bf..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxEditAction.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscriptiontx; - -// lib -import io.kumare.lib.v.V; -// app -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.loyalty.LoyaltyErrors; -// entity -import io.kumare.iqr.mod.loyalty.store.subscriptiontx.SubscriptionTxEntity; - -/** - * - * @author afatecha - */ -public class SubscriptionTxEditAction extends AppAction> { - - // ::: vars - // - private SubscriptionTxEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, LoyaltyErrors.subscriptiontx_notfound); - - // fields - V.ifEmpty(model.getTypeValue(), LoyaltyErrors.subscriptiontx_typevalue_empty); - V.ifEmpty(model.getStateValue(), LoyaltyErrors.subscriptiontx_statevalue_empty); - V.ifEmpty(model.getPoints(), LoyaltyErrors.subscriptiontx_points_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - - var loyalty = AppModules.loyalty.getController(); - var subscriptionTxStore = loyalty.getSubscriptionTxStore(); - - // edit - entity = subscriptionTxStore.ensure(getContext(), argModel, LoyaltyErrors.subscriptiontx_notfound); - - editEntity(); - - entity = saveEntity(); - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private void editEntity() { - - var model = getArgument().getEntity(); - - // fields - entity.setTypeValue(V.firstNotEmpty(model.getTypeValue(), entity.getTypeValue())); - entity.setStateValue(V.firstNotEmpty(model.getStateValue(), entity.getStateValue())); - entity.setPoints(V.firstNotEmpty(model.getPoints(), entity.getPoints())); - - - } - - // ::: save - // - private SubscriptionTxEntity saveEntity() { - - var store = AppModules.loyalty.getController().getSubscriptionTxStore(); - - var saved = store.edit(getContext(), entity); - getContext().attach(saved.getId(), saved); - return saved; - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxEditArgument.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxEditArgument.java deleted file mode 100644 index ae15d15..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxEditArgument.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscriptiontx; - -// app -import io.kumare.iqr.mod.loyalty.store.subscriptiontx.SubscriptionTxEntity; - -/** - * - * @author afatecha - */ -public class SubscriptionTxEditArgument extends SubscriptionTxActionArgument { - - // ::: vars - // - - - // ::: constructors - // - public SubscriptionTxEditArgument() { - } - - public SubscriptionTxEditArgument(SubscriptionTxEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxEnableAction.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxEnableAction.java deleted file mode 100644 index d59d4c1..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxEnableAction.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscriptiontx; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.loyalty.LoyaltyErrors; -// entity -import io.kumare.iqr.mod.loyalty.store.subscriptiontx.SubscriptionTxEntity; - - -/** - * - * @author afatecha - */ -public class SubscriptionTxEnableAction extends AppAction { - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), LoyaltyErrors.subscriptiontx_notfound); - V.ifNull(getArgument().getEntity().getId(), LoyaltyErrors.subscriptiontx_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - - enableEntity(model); - } - - @Override - protected void setResultOnly() { - } - - // ::: enable - // - private void enableEntity(SubscriptionTxEntity model) { - - var store = AppModules.loyalty.getController().getSubscriptionTxStore(); - - if (getArgument().getEntity().isActive()) { - store.enableById(getContext(), model.getId()); - } else { - store.disableById(getContext(), model.getId()); - } - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxFindAction.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxFindAction.java deleted file mode 100644 index 622beef..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxFindAction.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscriptiontx; - -// java -import java.util.HashMap; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.loyalty.LoyaltyErrors; -// entity -import io.kumare.iqr.mod.loyalty.store.subscriptiontx.SubscriptionTxEntity; - - -/** - * - * @author afatecha - */ -public class SubscriptionTxFindAction extends AppAction { - - // ::: vars - // - private SubscriptionTxEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), LoyaltyErrors.subscriptiontx_notfound); - V.ifNull(getArgument().getEntity().getId(), LoyaltyErrors.subscriptiontx_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - entity = findEntity(model); - } - - @Override - protected void setResultOnly() { - var result = new HashMap(); - result.put("entity", entity); - setResult(result); - } - - // ::: find - // - private SubscriptionTxEntity findEntity(SubscriptionTxEntity model) { - - var store = AppModules.loyalty.getController().getSubscriptionTxStore(); - return store.findById(getContext(), model.getId()); - } - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxListAction.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxListAction.java deleted file mode 100644 index 8d9828f..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxListAction.java +++ /dev/null @@ -1,153 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscriptiontx; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.LinkedList; -import java.util.Map; -// spring -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// entity -import io.kumare.iqr.mod.loyalty.store.subscriptiontx.SubscriptionTxEntity; -import io.kumare.iqr.mod.loyalty.store.subscriptiontx.SubscriptionTxMapBuilder; - - -/** - * - * @author afatecha - */ -public class SubscriptionTxListAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private final List entities = new LinkedList<>(); - - // ::: public api - // - public List getEntities() { - return entities; - } - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - } - - @Override - protected void doAction() { - - result.put("pageable", getArgument().isPageable()); - result.put("wrapped", getArgument().isWrapped()); - - if (getArgument().isPageable()) { - - var page = makePage(); - entities.addAll(page.toList()); - - if (getArgument().isWrapped()) { - result.put("page", makeWrappedPage(page)); - } else { - result.put("page", page); - } - - } else { - - var list = makeList(); - entities.addAll(list); - - if (getArgument().isWrapped()) { - result.put("list", makeWrappedList()); - } else { - result.put("list", list); - } - } - - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: page - // - private Page makePage() { - - var page = getArgument().getPageNumber(); - var size = getArgument().getPageSize(); - //var sort = getArgument().getSort(); - - var pageable = PageRequest.of(page, size); - - var store = AppModules.loyalty.getController().getSubscriptionTxStore(); - return store.getRepository().findAll(pageable); - } - - // ::: wrapped page - // - private Map makeWrappedPage(Page found) { - - var page = new HashMap(); - var content = new LinkedList(); - - wrapList(entities, content); - - page.put("size", found.getSize()); - page.put("number", found.getNumber()); - page.put("totalElements", found.getTotalElements()); - page.put("totalPages", found.getTotalPages()); - page.put("content", content); - - return page; - } - - - // ::: list - // - - private List makeList() { - - var store = AppModules.loyalty.getController().getSubscriptionTxStore(); - - return store.listAll(getContext()); - } - - // ::: wrapped list - private List makeWrappedList() { - var list = new LinkedList(); - - wrapList(entities, list); - - return list; - } - - // ::: wrapper - // - private void wrapList(List found, List output) { - - var builder = new SubscriptionTxMapBuilder().addListGroup(); - builder.getSubscriptionBuilder().addMainGroup(); - builder.getPromoBuilder().addMainGroup(); - builder.getWorkerBuilder().addMainGroup(); - builder.getTypeBuilder().addMainGroup(); - builder.getStateBuilder().addMainGroup(); - builder.getCapturerBuilder().addMainGroup(); - - output.addAll(builder.build(getContext(), found)); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxListArgument.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxListArgument.java deleted file mode 100644 index fa94ec6..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxListArgument.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscriptiontx; - -// app -import io.kumare.iqr.app.action.AppListActionArgument; -// store -import io.kumare.iqr.mod.loyalty.store.subscriptiontx.SubscriptionTxEntity; - -/** - * - * @author afatecha - */ -public class SubscriptionTxListArgument extends AppListActionArgument { - - // ::: vars - // - - // ::: constructors - // - public SubscriptionTxListArgument() { - } - - public SubscriptionTxListArgument(SubscriptionTxEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxPreloadAction.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxPreloadAction.java deleted file mode 100644 index e977af0..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxPreloadAction.java +++ /dev/null @@ -1,143 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscriptiontx; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.loyalty.LoyaltyErrors; -// entity -import io.kumare.iqr.mod.loyalty.store.subscriptiontx.SubscriptionTxEntity; -// relations -import io.kumare.iqr.mod.loyalty.store.subscription.SubscriptionEntity; -import io.kumare.iqr.mod.biz.store.businesspromo.BusinessPromoEntity; -import io.kumare.iqr.mod.biz.store.businessworker.BusinessWorkerEntity; -import io.kumare.iqr.mod.clientele.store.client.ClientEntity; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; - -/** - * - * @author afatecha - */ -public class SubscriptionTxPreloadAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private Map params = new HashMap<>(); - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifEmpty(getArgument().getAction(), LoyaltyErrors.subscriptiontx_preload_empty); - } - - @Override - protected void doAction() { - if(getArgument().getParams() != null) { - params = getArgument().getParams(); - } - - switch (getArgument().getAction()) { - case "find" -> - prepareFind(); - case "list" -> - prepareList(); - case "add" -> - prepareAdd(); - case "edit" -> - prepareEdit(); - } - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: preload - // - private void prepareAdd() { - result.put("taxons", listTaxons()); - result.put("businessPromos", listBusinessPromos()); - result.put("businessWorkers", listBusinessWorkers()); - result.put("clients", listClients()); - result.put("subscriptions", listSubscriptions()); - } - - private void prepareEdit() { - var entity = findEntity(); - result.put("entity", entity); - result.put("subscription", entity.getSubscription()); - result.put("promo", entity.getPromo()); - result.put("worker", entity.getWorker()); - result.put("type", entity.getType()); - result.put("state", entity.getState()); - result.put("capturer", entity.getCapturer()); - } - - private void prepareList() { - } - - private void prepareFind() { - var entity = findEntity(); - result.put("entity", entity); - result.put("subscription", entity.getSubscription()); - result.put("promo", entity.getPromo()); - result.put("worker", entity.getWorker()); - result.put("type", entity.getType()); - result.put("state", entity.getState()); - result.put("capturer", entity.getCapturer()); - } - - // ::: queries - // - private SubscriptionTxEntity findEntity() { - var store = AppModules.loyalty.getController().getSubscriptionTxStore(); - - var id = (String) params.get("id"); - if(id == null && getArgument().getEntity() != null) { - id = getArgument().getEntity().getId(); - } - return store.findById(getContext(), id); - } - - public List listBusinessPromos() { - var store = AppModules.biz.getController().getBusinessPromoStore(); - - return store.listAll(getContext()); - } - public List listClients() { - var store = AppModules.clientele.getController().getClientStore(); - - return store.listAll(getContext()); - } - public List listBusinessWorkers() { - var store = AppModules.biz.getController().getBusinessWorkerStore(); - - return store.listAll(getContext()); - } - public List listTaxons() { - var store = AppModules.taxonomy.getController().getTaxonStore(); - - return store.listAll(getContext()); - } - public List listSubscriptions() { - var store = AppModules.loyalty.getController().getSubscriptionStore(); - - return store.listAll(getContext()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxPreloadArgument.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxPreloadArgument.java deleted file mode 100644 index 79bcebd..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontx/SubscriptionTxPreloadArgument.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscriptiontx; - -/** - * - * @author afatecha - */ -public class SubscriptionTxPreloadArgument extends SubscriptionTxActionArgument { - - // ::: vars - // - private String action; - - // ::: fields - // - public String getAction() { - return action; - } - - public void setAction(String action) { - this.action = action; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagActionArgument.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagActionArgument.java deleted file mode 100644 index 6eddf3d..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagActionArgument.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscriptiontxtag; - -// base -import io.kumare.iqr.app.action.AppEntityActionArgument; -// entity -import io.kumare.iqr.mod.loyalty.store.subscriptiontxtag.SubscriptionTxTagEntity; - -/** - * - * @author afatecha - */ -public class SubscriptionTxTagActionArgument extends AppEntityActionArgument { - - // ::: constructors - // - public SubscriptionTxTagActionArgument() { - } - - public SubscriptionTxTagActionArgument(SubscriptionTxTagEntity entity) { - super(entity); - } - - // ::: api - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagAddAction.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagAddAction.java deleted file mode 100644 index 66e902a..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagAddAction.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscriptiontxtag; - - -// lib -import io.kumare.lib.base.server.spring.action.Actions; -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.loyalty.LoyaltyErrors; -// entity -import io.kumare.iqr.mod.loyalty.store.subscriptiontxtag.SubscriptionTxTagEntity; -import io.kumare.iqr.mod.biz.store.businesstag.BusinessTagEntity; -import io.kumare.iqr.mod.loyalty.store.subscriptiontx.SubscriptionTxEntity; -import io.kumare.iqr.mod.loyalty.store.subscription.SubscriptionEntity; - - -/** - * - * @author afatecha - */ -public class SubscriptionTxTagAddAction extends AppAction> { - - // ::: vars - // - private SubscriptionTxTagEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, LoyaltyErrors.subscriptiontxtag_notfound); - - // relations - V.ifNull(model.getSubscription(), LoyaltyErrors.subscriptiontxtag_subscription_notfound); - V.ifNull(model.getTransaction(), LoyaltyErrors.subscriptiontxtag_transaction_notfound); - V.ifNull(model.getTag(), LoyaltyErrors.subscriptiontxtag_tag_notfound); - - // fields - V.ifEmpty(model.getTagKey(), LoyaltyErrors.subscriptiontxtag_tagkey_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - var biz = AppModules.biz.getController(); - var loyalty = AppModules.loyalty.getController(); - - var businessTagStore = biz.getBusinessTagStore(); - var subscriptionStore = loyalty.getSubscriptionStore(); - var subscriptionTxStore = loyalty.getSubscriptionTxStore(); - - var subscription = subscriptionStore.ensure(getContext(), argModel.getSubscription(), LoyaltyErrors.subscriptiontxtag_subscription_notfound); - var transaction = subscriptionTxStore.ensure(getContext(), argModel.getTransaction(), LoyaltyErrors.subscriptiontxtag_transaction_notfound); - var tag = businessTagStore.ensure(getContext(), argModel.getTag(), LoyaltyErrors.subscriptiontxtag_tag_notfound); - - // model - var model = makeModel(subscription, transaction, tag); - - // add - entity = saveEntity(model); - - // add others - - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private SubscriptionTxTagEntity makeModel(SubscriptionEntity subscription, SubscriptionTxEntity transaction, BusinessTagEntity tag) { - - var argModel = getArgument().getEntity(); - var model = new SubscriptionTxTagEntity(); - - // relations - model.setSubscription(subscription); - model.setTransaction(transaction); - model.setTag(tag); - - // fields - model.setTagKey(argModel.getTagKey()); - model.setActive(true); - - - - return model; - } - - // ::: save - // - private SubscriptionTxTagEntity saveEntity(SubscriptionTxTagEntity model) { - - var store = AppModules.loyalty.getController().getSubscriptionTxTagStore(); - - var saved = store.add(getContext(), model); - getContext().attach(saved.getId(), saved); - return saved; - } - - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagAddArgument.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagAddArgument.java deleted file mode 100644 index c7af9a0..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagAddArgument.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscriptiontxtag; - - -// app -import io.kumare.iqr.mod.loyalty.store.subscriptiontxtag.SubscriptionTxTagEntity; - - -/** - * - * @author afatecha - */ -public class SubscriptionTxTagAddArgument extends SubscriptionTxTagActionArgument { - - // ::: vars - // - - - // ::: constructors - // - public SubscriptionTxTagAddArgument() { - } - - public SubscriptionTxTagAddArgument(SubscriptionTxTagEntity entity) { - super(entity); - } - - // ::: fields - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagDeleteAction.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagDeleteAction.java deleted file mode 100644 index 2c524fd..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagDeleteAction.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscriptiontxtag; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.loyalty.LoyaltyErrors; -// entity -import io.kumare.iqr.mod.loyalty.store.subscriptiontxtag.SubscriptionTxTagEntity; - -/** - * - * @author afatecha - */ -public class SubscriptionTxTagDeleteAction extends AppAction> { - - // ::: vars - // - private SubscriptionTxTagEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), LoyaltyErrors.subscriptiontxtag_notfound); - V.ifNull(getArgument().getEntity().getId(), LoyaltyErrors.subscriptiontxtag_notfound); - } - - @Override - protected void doAction() { - - var argModel = getArgument().getEntity(); - - deleteEntity(argModel); - } - - @Override - protected void setResultOnly() { - } - - // ::: delete - // - private void deleteEntity(SubscriptionTxTagEntity model) { - - var store = AppModules.loyalty.getController().getSubscriptionTxTagStore(); - - store.deleteById(getContext(), model.getId()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagEditAction.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagEditAction.java deleted file mode 100644 index 00000fa..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagEditAction.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscriptiontxtag; - -// lib -import io.kumare.lib.v.V; -// app -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.loyalty.LoyaltyErrors; -// entity -import io.kumare.iqr.mod.loyalty.store.subscriptiontxtag.SubscriptionTxTagEntity; - -/** - * - * @author afatecha - */ -public class SubscriptionTxTagEditAction extends AppAction> { - - // ::: vars - // - private SubscriptionTxTagEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, LoyaltyErrors.subscriptiontxtag_notfound); - - // fields - V.ifEmpty(model.getTagKey(), LoyaltyErrors.subscriptiontxtag_tagkey_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - - var loyalty = AppModules.loyalty.getController(); - var subscriptionTxTagStore = loyalty.getSubscriptionTxTagStore(); - - // edit - entity = subscriptionTxTagStore.ensure(getContext(), argModel, LoyaltyErrors.subscriptiontxtag_notfound); - - editEntity(); - - entity = saveEntity(); - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private void editEntity() { - - var model = getArgument().getEntity(); - - // fields - entity.setTagKey(V.firstNotEmpty(model.getTagKey(), entity.getTagKey())); - - - } - - // ::: save - // - private SubscriptionTxTagEntity saveEntity() { - - var store = AppModules.loyalty.getController().getSubscriptionTxTagStore(); - - var saved = store.edit(getContext(), entity); - getContext().attach(saved.getId(), saved); - return saved; - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagEditArgument.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagEditArgument.java deleted file mode 100644 index 3a449ee..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagEditArgument.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscriptiontxtag; - -// app -import io.kumare.iqr.mod.loyalty.store.subscriptiontxtag.SubscriptionTxTagEntity; - -/** - * - * @author afatecha - */ -public class SubscriptionTxTagEditArgument extends SubscriptionTxTagActionArgument { - - // ::: vars - // - - - // ::: constructors - // - public SubscriptionTxTagEditArgument() { - } - - public SubscriptionTxTagEditArgument(SubscriptionTxTagEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagEnableAction.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagEnableAction.java deleted file mode 100644 index 6e1c9e3..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagEnableAction.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscriptiontxtag; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.loyalty.LoyaltyErrors; -// entity -import io.kumare.iqr.mod.loyalty.store.subscriptiontxtag.SubscriptionTxTagEntity; - - -/** - * - * @author afatecha - */ -public class SubscriptionTxTagEnableAction extends AppAction { - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), LoyaltyErrors.subscriptiontxtag_notfound); - V.ifNull(getArgument().getEntity().getId(), LoyaltyErrors.subscriptiontxtag_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - - enableEntity(model); - } - - @Override - protected void setResultOnly() { - } - - // ::: enable - // - private void enableEntity(SubscriptionTxTagEntity model) { - - var store = AppModules.loyalty.getController().getSubscriptionTxTagStore(); - - if (getArgument().getEntity().isActive()) { - store.enableById(getContext(), model.getId()); - } else { - store.disableById(getContext(), model.getId()); - } - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagFindAction.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagFindAction.java deleted file mode 100644 index 86f5d82..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagFindAction.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscriptiontxtag; - -// java -import java.util.HashMap; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.loyalty.LoyaltyErrors; -// entity -import io.kumare.iqr.mod.loyalty.store.subscriptiontxtag.SubscriptionTxTagEntity; - - -/** - * - * @author afatecha - */ -public class SubscriptionTxTagFindAction extends AppAction { - - // ::: vars - // - private SubscriptionTxTagEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), LoyaltyErrors.subscriptiontxtag_notfound); - V.ifNull(getArgument().getEntity().getId(), LoyaltyErrors.subscriptiontxtag_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - entity = findEntity(model); - } - - @Override - protected void setResultOnly() { - var result = new HashMap(); - result.put("entity", entity); - setResult(result); - } - - // ::: find - // - private SubscriptionTxTagEntity findEntity(SubscriptionTxTagEntity model) { - - var store = AppModules.loyalty.getController().getSubscriptionTxTagStore(); - return store.findById(getContext(), model.getId()); - } - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagListAction.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagListAction.java deleted file mode 100644 index 819ca6f..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagListAction.java +++ /dev/null @@ -1,150 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscriptiontxtag; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.LinkedList; -import java.util.Map; -// spring -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// entity -import io.kumare.iqr.mod.loyalty.store.subscriptiontxtag.SubscriptionTxTagEntity; -import io.kumare.iqr.mod.loyalty.store.subscriptiontxtag.SubscriptionTxTagMapBuilder; - - -/** - * - * @author afatecha - */ -public class SubscriptionTxTagListAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private final List entities = new LinkedList<>(); - - // ::: public api - // - public List getEntities() { - return entities; - } - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - } - - @Override - protected void doAction() { - - result.put("pageable", getArgument().isPageable()); - result.put("wrapped", getArgument().isWrapped()); - - if (getArgument().isPageable()) { - - var page = makePage(); - entities.addAll(page.toList()); - - if (getArgument().isWrapped()) { - result.put("page", makeWrappedPage(page)); - } else { - result.put("page", page); - } - - } else { - - var list = makeList(); - entities.addAll(list); - - if (getArgument().isWrapped()) { - result.put("list", makeWrappedList()); - } else { - result.put("list", list); - } - } - - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: page - // - private Page makePage() { - - var page = getArgument().getPageNumber(); - var size = getArgument().getPageSize(); - //var sort = getArgument().getSort(); - - var pageable = PageRequest.of(page, size); - - var store = AppModules.loyalty.getController().getSubscriptionTxTagStore(); - return store.getRepository().findAll(pageable); - } - - // ::: wrapped page - // - private Map makeWrappedPage(Page found) { - - var page = new HashMap(); - var content = new LinkedList(); - - wrapList(entities, content); - - page.put("size", found.getSize()); - page.put("number", found.getNumber()); - page.put("totalElements", found.getTotalElements()); - page.put("totalPages", found.getTotalPages()); - page.put("content", content); - - return page; - } - - - // ::: list - // - - private List makeList() { - - var store = AppModules.loyalty.getController().getSubscriptionTxTagStore(); - - return store.listAll(getContext()); - } - - // ::: wrapped list - private List makeWrappedList() { - var list = new LinkedList(); - - wrapList(entities, list); - - return list; - } - - // ::: wrapper - // - private void wrapList(List found, List output) { - - var builder = new SubscriptionTxTagMapBuilder().addListGroup(); - builder.getSubscriptionBuilder().addMainGroup(); - builder.getTransactionBuilder().addMainGroup(); - builder.getTagBuilder().addMainGroup(); - - output.addAll(builder.build(getContext(), found)); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagListArgument.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagListArgument.java deleted file mode 100644 index 265f422..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagListArgument.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscriptiontxtag; - -// app -import io.kumare.iqr.app.action.AppListActionArgument; -// store -import io.kumare.iqr.mod.loyalty.store.subscriptiontxtag.SubscriptionTxTagEntity; - -/** - * - * @author afatecha - */ -public class SubscriptionTxTagListArgument extends AppListActionArgument { - - // ::: vars - // - - // ::: constructors - // - public SubscriptionTxTagListArgument() { - } - - public SubscriptionTxTagListArgument(SubscriptionTxTagEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagPreloadAction.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagPreloadAction.java deleted file mode 100644 index 098e3d0..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagPreloadAction.java +++ /dev/null @@ -1,123 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscriptiontxtag; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.loyalty.LoyaltyErrors; -// entity -import io.kumare.iqr.mod.loyalty.store.subscriptiontxtag.SubscriptionTxTagEntity; -// relations -import io.kumare.iqr.mod.loyalty.store.subscription.SubscriptionEntity; -import io.kumare.iqr.mod.biz.store.businesstag.BusinessTagEntity; -import io.kumare.iqr.mod.loyalty.store.subscriptiontx.SubscriptionTxEntity; - -/** - * - * @author afatecha - */ -public class SubscriptionTxTagPreloadAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private Map params = new HashMap<>(); - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifEmpty(getArgument().getAction(), LoyaltyErrors.subscriptiontxtag_preload_empty); - } - - @Override - protected void doAction() { - if(getArgument().getParams() != null) { - params = getArgument().getParams(); - } - - switch (getArgument().getAction()) { - case "find" -> - prepareFind(); - case "list" -> - prepareList(); - case "add" -> - prepareAdd(); - case "edit" -> - prepareEdit(); - } - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: preload - // - private void prepareAdd() { - result.put("subscriptionTxs", listSubscriptionTxs()); - result.put("businessTags", listBusinessTags()); - result.put("subscriptions", listSubscriptions()); - } - - private void prepareEdit() { - var entity = findEntity(); - result.put("entity", entity); - result.put("subscription", entity.getSubscription()); - result.put("transaction", entity.getTransaction()); - result.put("tag", entity.getTag()); - } - - private void prepareList() { - } - - private void prepareFind() { - var entity = findEntity(); - result.put("entity", entity); - result.put("subscription", entity.getSubscription()); - result.put("transaction", entity.getTransaction()); - result.put("tag", entity.getTag()); - } - - // ::: queries - // - private SubscriptionTxTagEntity findEntity() { - var store = AppModules.loyalty.getController().getSubscriptionTxTagStore(); - - var id = (String) params.get("id"); - if(id == null && getArgument().getEntity() != null) { - id = getArgument().getEntity().getId(); - } - return store.findById(getContext(), id); - } - - public List listBusinessTags() { - var store = AppModules.biz.getController().getBusinessTagStore(); - - return store.listAll(getContext()); - } - public List listSubscriptionTxs() { - var store = AppModules.loyalty.getController().getSubscriptionTxStore(); - - return store.listAll(getContext()); - } - public List listSubscriptions() { - var store = AppModules.loyalty.getController().getSubscriptionStore(); - - return store.listAll(getContext()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagPreloadArgument.java b/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagPreloadArgument.java deleted file mode 100644 index 316d858..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/action/subscriptiontxtag/SubscriptionTxTagPreloadArgument.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.action.subscriptiontxtag; - -/** - * - * @author afatecha - */ -public class SubscriptionTxTagPreloadArgument extends SubscriptionTxTagActionArgument { - - // ::: vars - // - private String action; - - // ::: fields - // - public String getAction() { - return action; - } - - public void setAction(String action) { - this.action = action; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/endpoint/rest/AbstractSubscriptionRest.java b/src/main/java/io/kumare/iqr/mod/loyalty/endpoint/rest/AbstractSubscriptionRest.java deleted file mode 100644 index 4ca0f83..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/endpoint/rest/AbstractSubscriptionRest.java +++ /dev/null @@ -1,214 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.endpoint.rest; - -// java -import java.util.Map; -// openapi -import io.swagger.v3.oas.annotations.*; -import io.swagger.v3.oas.annotations.media.*; -import io.swagger.v3.oas.annotations.responses.*; -// spring -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; -// base -import io.kumare.lib.app.api.operation.TransactionType; -import io.kumare.lib.app.api.security.PermissionReference; -// app -import io.kumare.iqr.app.endpoint.rest.AppEndpointRest; -import io.kumare.iqr.app.action.*; -// module -import io.kumare.iqr.mod.loyalty.LoyaltyPermissions; -import io.kumare.iqr.mod.loyalty.store.subscription.SubscriptionEntity; -import io.kumare.iqr.mod.loyalty.action.subscription.*; - -/** -* -* @author afatecha -*/ -public abstract class AbstractSubscriptionRest extends AppEndpointRest { - - // ::: DEFAULT PERMISSIONS - // - protected PermissionReference getPermission(String action, String ref, Object extra) { - switch (action) { - case null -> { - return null; - } - case "add" -> { - return LoyaltyPermissions.subscription_worker.toReference(ref); - } - case "edit" -> { - return LoyaltyPermissions.subscription_worker.toReference(ref); - } - case "enable" -> { - return LoyaltyPermissions.subscription_manager.toReference(ref); - } - case "disable" -> { - return LoyaltyPermissions.subscription_manager.toReference(ref); - } - case "delete" -> { - return LoyaltyPermissions.subscription_manager.toReference(ref); - } - case "find" -> { - return LoyaltyPermissions.subscription_viewer.toReference(ref); - } - case "list" -> { - return LoyaltyPermissions.subscription_viewer.toReference(ref); - } - default -> { - return null; - } - } - } - - - // ::: ADD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "subscription add operation", description = "") - // - @PostMapping - public ResponseEntity add(@RequestBody SubscriptionAddArgument arg) { - - var permission = getPermission("add", null, arg); - return handle(new SubscriptionAddAction(), arg, permission, TransactionType.service); - } - - // ::: EDIT - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "subscription edit operation", description = "") - // - @PutMapping("/{id}") - public ResponseEntity edit(@PathVariable("id") String id, - @RequestBody SubscriptionEditArgument arg) { - - arg.getEntity().id(id); - - var permission = getPermission("edit", id, arg); - return handle(new SubscriptionEditAction(), arg, permission, TransactionType.service); - } - - // ::: FIND - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "subscription find operation", description = "") - // - @GetMapping("/{id}") - public ResponseEntity find(@PathVariable("id") String id, - @ModelAttribute SubscriptionActionArgument arg) { - - - arg = arg == null ? new SubscriptionActionArgument() : arg; - - arg.entity(new SubscriptionEntity(id)); - - var permission = getPermission("find", id, arg); - return handle(new SubscriptionFindAction(), arg, permission); - } - - // ::: ENABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "subscription enable operation", description = "") - // - @PutMapping("/{id}/enable") - public ResponseEntity enable(@PathVariable("id") String id) { - - var arg = new SubscriptionActionArgument(); - arg.setEntity(new SubscriptionEntity(id)); - arg.getEntity().setActive(true); - - var permission = getPermission("disable", id, arg); - return handle(new SubscriptionEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: DISABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "subscription disable operation", description = "") - // - @PutMapping("/{id}/disable") - public ResponseEntity disable(@PathVariable("id") String id) { - - var arg = new SubscriptionActionArgument(); - arg.setEntity(new SubscriptionEntity(id)); - arg.getEntity().setActive(false); - - var permission = getPermission("disable", id, arg); - return handle(new SubscriptionEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: LIST - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "subscription list operation", description = "") - // - @GetMapping - public ResponseEntity list(@ModelAttribute SubscriptionListArgument arg) { - - arg = arg == null ? new SubscriptionListArgument() : arg; - - var permission = getPermission("list", null, arg); - return handle(new SubscriptionListAction(), arg, permission); - } - - // ::: DELETE - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "subscription delete operation", description = "") - // - @DeleteMapping("/{id}") - public ResponseEntity delete(@PathVariable("id") String id) { - - var arg = new SubscriptionActionArgument(); - - arg.setEntity(new SubscriptionEntity(id)); - - var permission = getPermission("delete", id, arg); - return handle(new SubscriptionDeleteAction(), arg, permission, TransactionType.service); - } - - // ::: PRELOAD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "subscription preload operation", description = "") - // - @PostMapping("/preload") - public ResponseEntity preload(@RequestBody SubscriptionPreloadArgument arg) { - - var permission = getPermission(arg.getAction(), null, arg); - return handle(new SubscriptionPreloadAction(), arg, permission); - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/endpoint/rest/AbstractSubscriptionTxRest.java b/src/main/java/io/kumare/iqr/mod/loyalty/endpoint/rest/AbstractSubscriptionTxRest.java deleted file mode 100644 index c9bbaa5..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/endpoint/rest/AbstractSubscriptionTxRest.java +++ /dev/null @@ -1,214 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.endpoint.rest; - -// java -import java.util.Map; -// openapi -import io.swagger.v3.oas.annotations.*; -import io.swagger.v3.oas.annotations.media.*; -import io.swagger.v3.oas.annotations.responses.*; -// spring -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; -// base -import io.kumare.lib.app.api.operation.TransactionType; -import io.kumare.lib.app.api.security.PermissionReference; -// app -import io.kumare.iqr.app.endpoint.rest.AppEndpointRest; -import io.kumare.iqr.app.action.*; -// module -import io.kumare.iqr.mod.loyalty.LoyaltyPermissions; -import io.kumare.iqr.mod.loyalty.store.subscriptiontx.SubscriptionTxEntity; -import io.kumare.iqr.mod.loyalty.action.subscriptiontx.*; - -/** -* -* @author afatecha -*/ -public abstract class AbstractSubscriptionTxRest extends AppEndpointRest { - - // ::: DEFAULT PERMISSIONS - // - protected PermissionReference getPermission(String action, String ref, Object extra) { - switch (action) { - case null -> { - return null; - } - case "add" -> { - return LoyaltyPermissions.subscription_tx_worker.toReference(ref); - } - case "edit" -> { - return LoyaltyPermissions.subscription_tx_worker.toReference(ref); - } - case "enable" -> { - return LoyaltyPermissions.subscription_tx_manager.toReference(ref); - } - case "disable" -> { - return LoyaltyPermissions.subscription_tx_manager.toReference(ref); - } - case "delete" -> { - return LoyaltyPermissions.subscription_tx_manager.toReference(ref); - } - case "find" -> { - return LoyaltyPermissions.subscription_tx_viewer.toReference(ref); - } - case "list" -> { - return LoyaltyPermissions.subscription_tx_viewer.toReference(ref); - } - default -> { - return null; - } - } - } - - - // ::: ADD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "subscription tx add operation", description = "") - // - @PostMapping - public ResponseEntity add(@RequestBody SubscriptionTxAddArgument arg) { - - var permission = getPermission("add", null, arg); - return handle(new SubscriptionTxAddAction(), arg, permission, TransactionType.service); - } - - // ::: EDIT - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "subscription tx edit operation", description = "") - // - @PutMapping("/{id}") - public ResponseEntity edit(@PathVariable("id") String id, - @RequestBody SubscriptionTxEditArgument arg) { - - arg.getEntity().id(id); - - var permission = getPermission("edit", id, arg); - return handle(new SubscriptionTxEditAction(), arg, permission, TransactionType.service); - } - - // ::: FIND - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "subscription tx find operation", description = "") - // - @GetMapping("/{id}") - public ResponseEntity find(@PathVariable("id") String id, - @ModelAttribute SubscriptionTxActionArgument arg) { - - - arg = arg == null ? new SubscriptionTxActionArgument() : arg; - - arg.entity(new SubscriptionTxEntity(id)); - - var permission = getPermission("find", id, arg); - return handle(new SubscriptionTxFindAction(), arg, permission); - } - - // ::: ENABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "subscription tx enable operation", description = "") - // - @PutMapping("/{id}/enable") - public ResponseEntity enable(@PathVariable("id") String id) { - - var arg = new SubscriptionTxActionArgument(); - arg.setEntity(new SubscriptionTxEntity(id)); - arg.getEntity().setActive(true); - - var permission = getPermission("disable", id, arg); - return handle(new SubscriptionTxEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: DISABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "subscription tx disable operation", description = "") - // - @PutMapping("/{id}/disable") - public ResponseEntity disable(@PathVariable("id") String id) { - - var arg = new SubscriptionTxActionArgument(); - arg.setEntity(new SubscriptionTxEntity(id)); - arg.getEntity().setActive(false); - - var permission = getPermission("disable", id, arg); - return handle(new SubscriptionTxEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: LIST - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "subscription tx list operation", description = "") - // - @GetMapping - public ResponseEntity list(@ModelAttribute SubscriptionTxListArgument arg) { - - arg = arg == null ? new SubscriptionTxListArgument() : arg; - - var permission = getPermission("list", null, arg); - return handle(new SubscriptionTxListAction(), arg, permission); - } - - // ::: DELETE - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "subscription tx delete operation", description = "") - // - @DeleteMapping("/{id}") - public ResponseEntity delete(@PathVariable("id") String id) { - - var arg = new SubscriptionTxActionArgument(); - - arg.setEntity(new SubscriptionTxEntity(id)); - - var permission = getPermission("delete", id, arg); - return handle(new SubscriptionTxDeleteAction(), arg, permission, TransactionType.service); - } - - // ::: PRELOAD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "subscription tx preload operation", description = "") - // - @PostMapping("/preload") - public ResponseEntity preload(@RequestBody SubscriptionTxPreloadArgument arg) { - - var permission = getPermission(arg.getAction(), null, arg); - return handle(new SubscriptionTxPreloadAction(), arg, permission); - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/endpoint/rest/AbstractSubscriptionTxTagRest.java b/src/main/java/io/kumare/iqr/mod/loyalty/endpoint/rest/AbstractSubscriptionTxTagRest.java deleted file mode 100644 index 47e884d..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/endpoint/rest/AbstractSubscriptionTxTagRest.java +++ /dev/null @@ -1,214 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.endpoint.rest; - -// java -import java.util.Map; -// openapi -import io.swagger.v3.oas.annotations.*; -import io.swagger.v3.oas.annotations.media.*; -import io.swagger.v3.oas.annotations.responses.*; -// spring -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; -// base -import io.kumare.lib.app.api.operation.TransactionType; -import io.kumare.lib.app.api.security.PermissionReference; -// app -import io.kumare.iqr.app.endpoint.rest.AppEndpointRest; -import io.kumare.iqr.app.action.*; -// module -import io.kumare.iqr.mod.loyalty.LoyaltyPermissions; -import io.kumare.iqr.mod.loyalty.store.subscriptiontxtag.SubscriptionTxTagEntity; -import io.kumare.iqr.mod.loyalty.action.subscriptiontxtag.*; - -/** -* -* @author afatecha -*/ -public abstract class AbstractSubscriptionTxTagRest extends AppEndpointRest { - - // ::: DEFAULT PERMISSIONS - // - protected PermissionReference getPermission(String action, String ref, Object extra) { - switch (action) { - case null -> { - return null; - } - case "add" -> { - return LoyaltyPermissions.subscription_tx_tag_worker.toReference(ref); - } - case "edit" -> { - return LoyaltyPermissions.subscription_tx_tag_worker.toReference(ref); - } - case "enable" -> { - return LoyaltyPermissions.subscription_tx_tag_manager.toReference(ref); - } - case "disable" -> { - return LoyaltyPermissions.subscription_tx_tag_manager.toReference(ref); - } - case "delete" -> { - return LoyaltyPermissions.subscription_tx_tag_manager.toReference(ref); - } - case "find" -> { - return LoyaltyPermissions.subscription_tx_tag_viewer.toReference(ref); - } - case "list" -> { - return LoyaltyPermissions.subscription_tx_tag_viewer.toReference(ref); - } - default -> { - return null; - } - } - } - - - // ::: ADD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "subscription tx tag add operation", description = "") - // - @PostMapping - public ResponseEntity add(@RequestBody SubscriptionTxTagAddArgument arg) { - - var permission = getPermission("add", null, arg); - return handle(new SubscriptionTxTagAddAction(), arg, permission, TransactionType.service); - } - - // ::: EDIT - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "subscription tx tag edit operation", description = "") - // - @PutMapping("/{id}") - public ResponseEntity edit(@PathVariable("id") String id, - @RequestBody SubscriptionTxTagEditArgument arg) { - - arg.getEntity().id(id); - - var permission = getPermission("edit", id, arg); - return handle(new SubscriptionTxTagEditAction(), arg, permission, TransactionType.service); - } - - // ::: FIND - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "subscription tx tag find operation", description = "") - // - @GetMapping("/{id}") - public ResponseEntity find(@PathVariable("id") String id, - @ModelAttribute SubscriptionTxTagActionArgument arg) { - - - arg = arg == null ? new SubscriptionTxTagActionArgument() : arg; - - arg.entity(new SubscriptionTxTagEntity(id)); - - var permission = getPermission("find", id, arg); - return handle(new SubscriptionTxTagFindAction(), arg, permission); - } - - // ::: ENABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "subscription tx tag enable operation", description = "") - // - @PutMapping("/{id}/enable") - public ResponseEntity enable(@PathVariable("id") String id) { - - var arg = new SubscriptionTxTagActionArgument(); - arg.setEntity(new SubscriptionTxTagEntity(id)); - arg.getEntity().setActive(true); - - var permission = getPermission("disable", id, arg); - return handle(new SubscriptionTxTagEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: DISABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "subscription tx tag disable operation", description = "") - // - @PutMapping("/{id}/disable") - public ResponseEntity disable(@PathVariable("id") String id) { - - var arg = new SubscriptionTxTagActionArgument(); - arg.setEntity(new SubscriptionTxTagEntity(id)); - arg.getEntity().setActive(false); - - var permission = getPermission("disable", id, arg); - return handle(new SubscriptionTxTagEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: LIST - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "subscription tx tag list operation", description = "") - // - @GetMapping - public ResponseEntity list(@ModelAttribute SubscriptionTxTagListArgument arg) { - - arg = arg == null ? new SubscriptionTxTagListArgument() : arg; - - var permission = getPermission("list", null, arg); - return handle(new SubscriptionTxTagListAction(), arg, permission); - } - - // ::: DELETE - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "subscription tx tag delete operation", description = "") - // - @DeleteMapping("/{id}") - public ResponseEntity delete(@PathVariable("id") String id) { - - var arg = new SubscriptionTxTagActionArgument(); - - arg.setEntity(new SubscriptionTxTagEntity(id)); - - var permission = getPermission("delete", id, arg); - return handle(new SubscriptionTxTagDeleteAction(), arg, permission, TransactionType.service); - } - - // ::: PRELOAD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "subscription tx tag preload operation", description = "") - // - @PostMapping("/preload") - public ResponseEntity preload(@RequestBody SubscriptionTxTagPreloadArgument arg) { - - var permission = getPermission(arg.getAction(), null, arg); - return handle(new SubscriptionTxTagPreloadAction(), arg, permission); - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/endpoint/rest/LoyaltyTaxonomyRest.java b/src/main/java/io/kumare/iqr/mod/loyalty/endpoint/rest/LoyaltyTaxonomyRest.java deleted file mode 100644 index 6f2e3ab..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/endpoint/rest/LoyaltyTaxonomyRest.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.endpoint.rest; - -// java -import io.kumare.iqr.mod.taxonomy.endpoint.rest.AbstractTaxonRest; -import io.swagger.v3.oas.annotations.tags.*; -// spring -import org.springframework.web.bind.annotation.*; - -/** -* -* @author afatecha -*/ - -// openapi -@Tag(name = "workforce taxonomy rest endpoint") -// -@RestController -@RequestMapping("/loyalty/{taxaKey}-taxons") -public class LoyaltyTaxonomyRest extends AbstractTaxonRest { - - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/endpoint/rest/SubscriptionRest.java b/src/main/java/io/kumare/iqr/mod/loyalty/endpoint/rest/SubscriptionRest.java deleted file mode 100644 index ccfabfd..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/endpoint/rest/SubscriptionRest.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.endpoint.rest; - -// java -import io.swagger.v3.oas.annotations.tags.*; -// spring -import org.springframework.web.bind.annotation.*; - -/** -* -* @author afatecha -*/ - -// openapi -//@Tag(name = "subscription rest endpoint") -// -//@RestController -//@RequestMapping("/loyalty/subscriptions") -public class SubscriptionRest extends AbstractSubscriptionRest { - - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/endpoint/rest/SubscriptionTxRest.java b/src/main/java/io/kumare/iqr/mod/loyalty/endpoint/rest/SubscriptionTxRest.java deleted file mode 100644 index 0627c38..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/endpoint/rest/SubscriptionTxRest.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.endpoint.rest; - -// java -import io.swagger.v3.oas.annotations.tags.*; -// spring -import org.springframework.web.bind.annotation.*; - -/** -* -* @author afatecha -*/ - -// openapi -//@Tag(name = "subscription tx rest endpoint") -// -//@RestController -//@RequestMapping("/loyalty/subscription-txs") -public class SubscriptionTxRest extends AbstractSubscriptionTxRest { - - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/endpoint/rest/SubscriptionTxTagRest.java b/src/main/java/io/kumare/iqr/mod/loyalty/endpoint/rest/SubscriptionTxTagRest.java deleted file mode 100644 index 8b66ecc..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/endpoint/rest/SubscriptionTxTagRest.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.endpoint.rest; - -// java -import io.swagger.v3.oas.annotations.tags.*; -// spring -import org.springframework.web.bind.annotation.*; - -/** -* -* @author afatecha -*/ - -// openapi -//@Tag(name = "subscription tx tag rest endpoint") -// -//@RestController -//@RequestMapping("/loyalty/subscription-tx-tags") -public class SubscriptionTxTagRest extends AbstractSubscriptionTxTagRest { - - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/store/LoyaltyEntities.java b/src/main/java/io/kumare/iqr/mod/loyalty/store/LoyaltyEntities.java deleted file mode 100644 index f3e6e1b..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/store/LoyaltyEntities.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.store; - -// base -// base -import io.kumare.lib.app.api.module.ServiceModule; -import io.kumare.lib.app.api.store.EntityStore; -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app -import io.kumare.iqr.app.AppEngine; -import io.kumare.iqr.app.module.AppModules; -import io.kumare.iqr.mod.loyalty.store.subscription.SubscriptionEntity; -import io.kumare.iqr.mod.loyalty.store.subscription.SubscriptionStore; -import io.kumare.iqr.mod.loyalty.store.subscriptiontx.SubscriptionTxEntity; -import io.kumare.iqr.mod.loyalty.store.subscriptiontx.SubscriptionTxStore; -import io.kumare.iqr.mod.loyalty.store.subscriptiontxtag.SubscriptionTxTagEntity; -import io.kumare.iqr.mod.loyalty.store.subscriptiontxtag.SubscriptionTxTagStore; - - -/** - * - * @author afatecha - */ -public enum LoyaltyEntities implements EntityDescriptor { - - subscription(SubscriptionEntity.class, SubscriptionStore.class), - subscriptionTx(SubscriptionTxEntity.class, SubscriptionTxStore.class), - subscriptionTxTag(SubscriptionTxTagEntity.class, SubscriptionTxTagStore.class); - - // ::: vars - // - private final Class entityClass; - private final Class storeClass; - - // ::: constructor - // - LoyaltyEntities(Class entityClass, Class storeClass) { - this.entityClass = entityClass; - this.storeClass = storeClass; - } - - // ::: entity descriptor api - // - @Override - public String getName() { - return name(); - } - - @Override - public ServiceModule getModule() { - return AppModules.loyalty; - } - - @Override - public Class getEntityClass() { - return entityClass; - } - - @Override - public Class getStoreClass() { - return storeClass; - } - - @Override - public EntityStore getStore() { - return (EntityStore) AppEngine.getEngine().getInnerContext().getBean(storeClass); - } - - // ::: statics - // - public static boolean hasDescriptor(String name) { - try { - var value = valueOf(name); - return value != null; - - } catch (Throwable t) { - return false; - } - } - - public static EntityDescriptor descriptorOf(String name) { - try { - return valueOf(name); - - } catch (Throwable t) { - return null; - } - } - - public static EntityDescriptor descriptorOf(Class entityClass) { - try { - for (var i : values()) { - if (i.entityClass == entityClass) { - return i; - } - } - - } catch (Throwable t) { - } - - return null; - } -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/store/LoyaltyTaxonomies.java b/src/main/java/io/kumare/iqr/mod/loyalty/store/LoyaltyTaxonomies.java deleted file mode 100644 index 3b57643..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/store/LoyaltyTaxonomies.java +++ /dev/null @@ -1,116 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.store; - -// base -import io.kumare.lib.app.api.Context; -import io.kumare.lib.v.ExceptionPrototype; -// app -import io.kumare.iqr.app.module.AppModules; -import io.kumare.iqr.mod.loyalty.LoyaltyErrors; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; -import java.util.List; - -/** - * - * @author administrador - */ -public enum LoyaltyTaxonomies { - - susbcriptionState("subscription-state", LoyaltyErrors.subscription_state_notfound), - susbcriptionTxType("subscription-tx-type", LoyaltyErrors.subscriptiontx_type_notfound), - susbcriptionTxState("subscription-tx-state", LoyaltyErrors.subscriptiontx_state_notfound); - - // ::: - // - private final String taxaKey; - private final ExceptionPrototype proto; - - // ::: constructor - // - LoyaltyTaxonomies(String taxaKey, ExceptionPrototype proto) { - this.taxaKey = taxaKey; - this.proto = proto; - } - - public String getKey() { - return taxaKey; - } - - // ::: ensure - // - public TaxonEntity ensure(Context context, TaxonEntity taxon) { - return AppModules.taxonomy.getController().getTaxonStore() - .ensure(context, taxaKey, taxon, proto); - } - - public TaxonEntity ensureById(Context context, String taxonId) { - return AppModules.taxonomy.getController().getTaxonStore() - .ensureById(context, taxaKey, taxonId, proto); - } - - public TaxonEntity ensureByKey(Context context, String key) { - return AppModules.taxonomy.getController().getTaxonStore() - .ensureByKey(context, taxaKey, key, proto); - } - - public TaxonEntity ensureByValue(Context context, String value) { - return AppModules.taxonomy.getController().getTaxonStore() - .ensureByValue(context, taxaKey, value, proto); - } - - // ::: find - // - public TaxonEntity findById(Context context, String taxonId) { - return AppModules.taxonomy.getController() - .getTaxonStore() - .findById(context, taxaKey, taxonId); - } - - public TaxonEntity findByKey(Context context, String key) { - return AppModules.taxonomy.getController() - .getTaxonStore() - .findByKey(context, taxaKey, key); - } - - public TaxonEntity findByValue(Context context, String value) { - return AppModules.taxonomy.getController() - .getTaxonStore() - .findByValue(context, taxaKey, value); - } - - // ::: list - // - public List list(Context context) { - return AppModules.taxonomy.getController() - .getTaxonStore() - .listByTaxaKey(context, taxaKey); - } - - // ::: default - // - public TaxonEntity ensureDefault(Context context) { - return AppModules.taxonomy.getController() - .getTaxonStore() - .ensureDefault(context, taxaKey, proto); - } - - public TaxonEntity findDefault(Context context) { - return AppModules.taxonomy.getController() - .getTaxonStore() - .findDefault(context, taxaKey); - } - - // ::: statics - // - public static boolean hasTaxaKey(String taxaKey) { - for (var i : values()) { - if (i.getKey().equals(taxaKey)) { - return true; - } - } - - return false; - } -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscription/SubscriptionData.java b/src/main/java/io/kumare/iqr/mod/loyalty/store/subscription/SubscriptionData.java deleted file mode 100644 index 87ecb15..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscription/SubscriptionData.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.store.subscription; - -// base -import io.kumare.iqr.app.store.AppExtendedEntityData; -// imports - - -public class SubscriptionData extends AppExtendedEntityData { - - // ::: vars - // - - - // ::: fields - // - - - // ::: fluent - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscription/SubscriptionEntity.java b/src/main/java/io/kumare/iqr/mod/loyalty/store/subscription/SubscriptionEntity.java deleted file mode 100644 index 4e4aa0b..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscription/SubscriptionEntity.java +++ /dev/null @@ -1,141 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.store.subscription; - -// jakarta -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.Index; -import jakarta.persistence.ManyToOne; -import jakarta.persistence.Table; -// base -import io.kumare.lib.app.api.store.*; -import io.kumare.iqr.app.store.*; -// imports - -// relations -import io.kumare.iqr.mod.clientele.store.client.ClientEntity; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; -import io.kumare.iqr.mod.biz.store.business.BusinessEntity; -import io.kumare.iqr.mod.pocket.store.walletslot.WalletSlotEntity; - -// annotations -@Entity -@Table( - name = "subscription", - indexes = { - @Index(name = "idx_subscription_entity_key", columnList = "entityKey"), - @Index(name = "idx_subscription_state_value", columnList = "stateValue") - } -) -public class SubscriptionEntity extends AppEntity implements SupportedEntityKey { - - // ::: vars - // - private String entityKey; - private String stateValue; - // relations - @ManyToOne(fetch = FetchType.LAZY) - private BusinessEntity business; - @ManyToOne(fetch = FetchType.LAZY) - private ClientEntity client; - @ManyToOne(fetch = FetchType.LAZY) - private WalletSlotEntity walletSlot; - @ManyToOne(fetch = FetchType.LAZY) - private TaxonEntity state; - - // ::: constructors - // - public SubscriptionEntity() { - } - - public SubscriptionEntity(String id) { - super(id); - } - - // ::: fields - // - public String getEntityKey() { - return entityKey; - } - - public void setEntityKey(String entityKey) { - this.entityKey = entityKey; - } - - public String getStateValue() { - return stateValue; - } - - public void setStateValue(String stateValue) { - this.stateValue = stateValue; - } - - // relations - public BusinessEntity getBusiness() { - return business; - } - - public void setBusiness(BusinessEntity business) { - this.business = business; - } - - public ClientEntity getClient() { - return client; - } - - public void setClient(ClientEntity client) { - this.client = client; - } - - public WalletSlotEntity getWalletSlot() { - return walletSlot; - } - - public void setWalletSlot(WalletSlotEntity walletSlot) { - this.walletSlot = walletSlot; - } - - public TaxonEntity getState() { - return state; - } - - public void setState(TaxonEntity state) { - this.state = state; - } - - // ::: fluent - // - public SubscriptionEntity entityKey(String entityKey) { - setEntityKey(entityKey); - return this; - } - - public SubscriptionEntity stateValue(String stateValue) { - setStateValue(stateValue); - return this; - } - - // relations - public SubscriptionEntity business(BusinessEntity business) { - setBusiness(business); - return this; - } - - public SubscriptionEntity client(ClientEntity client) { - setClient(client); - return this; - } - - public SubscriptionEntity walletSlot(WalletSlotEntity walletSlot) { - setWalletSlot(walletSlot); - return this; - } - - public SubscriptionEntity state(TaxonEntity state) { - setState(state); - return this; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscription/SubscriptionFields.java b/src/main/java/io/kumare/iqr/mod/loyalty/store/subscription/SubscriptionFields.java deleted file mode 100644 index 2931134..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscription/SubscriptionFields.java +++ /dev/null @@ -1,157 +0,0 @@ -/* - */ -package io.kumare.iqr.mod.loyalty.store.subscription; - -// java -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -// base -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app -import io.kumare.iqr.mod.biz.store.BizEntities; -import io.kumare.iqr.mod.biz.store.business.BusinessFields; -import io.kumare.iqr.mod.clientele.store.ClienteleEntities; -import io.kumare.iqr.mod.clientele.store.client.ClientFields; -import io.kumare.iqr.mod.pocket.store.PocketEntities; -import io.kumare.iqr.mod.pocket.store.walletslot.WalletSlotFields; -import io.kumare.iqr.mod.taxonomy.store.TaxonomyEntities; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonFields; - -/** - * - * @author afatecha - */ -public enum SubscriptionFields implements EntityFieldDescriptor { - - id(MAIN, FIND, LIST), - entityKey(MAIN, FIND, LIST), - stateValue(MAIN, FIND, LIST), - active(MAIN, FIND, LIST), - inserted(AUDIT, FIND, LIST), - inserter(AUDIT, FIND, LIST), - modified(AUDIT, FIND), - modifier(AUDIT, FIND), - deleted(AUDIT), - removed(AUDIT), - remover(AUDIT), - business(BizEntities.business, BusinessFields.class, FIND, LIST), - client(ClienteleEntities.client, ClientFields.class, FIND, LIST), - walletSlot(PocketEntities.walletSlot, WalletSlotFields.class, FIND, LIST), - state(TaxonomyEntities.taxon, TaxonFields.class, FIND, LIST); - - // ::: vars - // - private final boolean relation; - private final EntityDescriptor entityDescriptor; - private final Class enumClass; - private final List groups; - - // ::: constructors - // - SubscriptionFields(String... groups) { - this(false, null, null, groups); - } - - SubscriptionFields(EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this(true, entityDescriptor, enumClass, groups); - } - - SubscriptionFields(boolean relation, EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this.relation = relation; - this.entityDescriptor = entityDescriptor; - this.enumClass = enumClass; - this.groups = groups == null ? Collections.EMPTY_LIST : Arrays.asList(groups); - } - - // ::: api - // - @Override - public String getName() { - return name(); - } - - @Override - public boolean isRelation() { - return relation; - } - - @Override - public Class getRelationEnumClass() { - return enumClass; - } - - @Override - public List getGroups() { - return groups; - } - - @Override - public EntityDescriptor getEntityDescriptor() { - return entityDescriptor; - } - - @Override - public Object fetchValue(SubscriptionEntity entity) { - if (entity == null) { - return null; - } - - switch (this) { - case null -> { - return null; - } - case id -> { - return entity.getId(); - } - case entityKey ->{ - return entity.getEntityKey(); - } - case stateValue ->{ - return entity.getStateValue(); - } - case active -> { - return entity.isActive(); - } - case inserted -> { - return entity.getInserted(); - } - case inserter -> { - return entity.getInserter(); - } - case modified -> { - return entity.getModified(); - } - case modifier -> { - return entity.getModifier(); - } - case deleted -> { - return entity.isDeleted(); - } - case removed -> { - return entity.getRemoved(); - } - case remover -> { - return entity.getRemover(); - } - case business ->{ - return entity.getBusiness(); - } - case client ->{ - return entity.getClient(); - } - case walletSlot ->{ - return entity.getWalletSlot(); - } - case state ->{ - return entity.getState(); - } - default -> { - return null; - } - } - - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscription/SubscriptionMapBuilder.java b/src/main/java/io/kumare/iqr/mod/loyalty/store/subscription/SubscriptionMapBuilder.java deleted file mode 100644 index 6b5deb8..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscription/SubscriptionMapBuilder.java +++ /dev/null @@ -1,277 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.store.subscription; - -// java -import java.util.List; -import java.util.Map; -// base -import io.kumare.lib.app.api.Context; -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.BaseEntityMapBuilder; -// app -import io.kumare.iqr.mod.pocket.store.walletslot.WalletSlotMapBuilder; -import io.kumare.iqr.mod.biz.store.business.BusinessMapBuilder; -import io.kumare.iqr.mod.clientele.store.client.ClientMapBuilder; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonMapBuilder; - -/** - * - * @author afatecha - */ -public class SubscriptionMapBuilder extends BaseEntityMapBuilder { - - // ::: vars - // - private BusinessMapBuilder businessBuilder; - private ClientMapBuilder clientBuilder; - private WalletSlotMapBuilder walletSlotBuilder; - private TaxonMapBuilder stateBuilder; - - - // ::: fields - // - @Override - public SubscriptionMapBuilder addGroup(String name, boolean cascade) { - includes.addAll(EntityFieldDescriptor.group(SubscriptionFields.values(), name)); - - if(cascade) { - if (includes.contains(SubscriptionFields.business)) { - getBusinessBuilder().addGroup(name); - } - if (includes.contains(SubscriptionFields.client)) { - getClientBuilder().addGroup(name); - } - if (includes.contains(SubscriptionFields.walletSlot)) { - getWalletSlotBuilder().addGroup(name); - } - if (includes.contains(SubscriptionFields.state)) { - getStateBuilder().addGroup(name); - } - } - return this; - } - - @Override - public SubscriptionMapBuilder add(String fieldName) { - includes.add(SubscriptionFields.valueOf(fieldName)); - return this; - } - - @Override - public SubscriptionMapBuilder addAll(String... names) { - for (var i : names) { - includes.add(SubscriptionFields.valueOf(i)); - } - return this; - } - - @Override - public SubscriptionMapBuilder remove(String fieldName) { - excludes.add(SubscriptionFields.valueOf(fieldName)); - return this; - } - - @Override - public SubscriptionMapBuilder removeAll(String... names) { - for (var i : names) { - excludes.add(SubscriptionFields.valueOf(i)); - } - return this; - } - - // ::: relations - // - @Override - public SubscriptionMapBuilder addPlains(boolean cascade) { - includes.addAll(EntityFieldDescriptor.plains(SubscriptionFields.values())); - - if(cascade) { - if (includes.contains(SubscriptionFields.business)) { - getBusinessBuilder().addPlains(); - } - if (includes.contains(SubscriptionFields.client)) { - getClientBuilder().addPlains(); - } - if (includes.contains(SubscriptionFields.walletSlot)) { - getWalletSlotBuilder().addPlains(); - } - if (includes.contains(SubscriptionFields.state)) { - getStateBuilder().addPlains(); - } - } - return this; - } - - @Override - public SubscriptionMapBuilder addRelations(boolean cascade) { - includes.addAll(EntityFieldDescriptor.relations(SubscriptionFields.values())); - - if(cascade) { - if (includes.contains(SubscriptionFields.business)) { - getBusinessBuilder().addRelations(); - } - if (includes.contains(SubscriptionFields.client)) { - getClientBuilder().addRelations(); - } - if (includes.contains(SubscriptionFields.walletSlot)) { - getWalletSlotBuilder().addRelations(); - } - if (includes.contains(SubscriptionFields.state)) { - getStateBuilder().addRelations(); - } - } - return this; - } - - // ::: business - // - public SubscriptionMapBuilder addBusiness() { - return addBusiness(null); - } - - public SubscriptionMapBuilder addBusiness(String group) { - return addBusiness(group, false); - } - - public SubscriptionMapBuilder addBusiness(String group, boolean cascade) { - includes.add(SubscriptionFields.business); - - if (group != null) { - getBusinessBuilder().addGroup(group); - } - - return this; - } - - public BusinessMapBuilder getBusinessBuilder() { - if(businessBuilder == null) { - businessBuilder = new BusinessMapBuilder(); - } - return businessBuilder; - } - - - // ::: client - // - public SubscriptionMapBuilder addClient() { - return addClient(null); - } - - public SubscriptionMapBuilder addClient(String group) { - return addClient(group, false); - } - - public SubscriptionMapBuilder addClient(String group, boolean cascade) { - includes.add(SubscriptionFields.client); - - if (group != null) { - getClientBuilder().addGroup(group); - } - - return this; - } - - public ClientMapBuilder getClientBuilder() { - if(clientBuilder == null) { - clientBuilder = new ClientMapBuilder(); - } - return clientBuilder; - } - - - // ::: wallet slot - // - public SubscriptionMapBuilder addWalletSlot() { - return addWalletSlot(null); - } - - public SubscriptionMapBuilder addWalletSlot(String group) { - return addWalletSlot(group, false); - } - - public SubscriptionMapBuilder addWalletSlot(String group, boolean cascade) { - includes.add(SubscriptionFields.walletSlot); - - if (group != null) { - getWalletSlotBuilder().addGroup(group); - } - - return this; - } - - public WalletSlotMapBuilder getWalletSlotBuilder() { - if(walletSlotBuilder == null) { - walletSlotBuilder = new WalletSlotMapBuilder(); - } - return walletSlotBuilder; - } - - - // ::: state - // - public SubscriptionMapBuilder addState() { - return addState(null); - } - - public SubscriptionMapBuilder addState(String group) { - return addState(group, false); - } - - public SubscriptionMapBuilder addState(String group, boolean cascade) { - includes.add(SubscriptionFields.state); - - if (group != null) { - getStateBuilder().addGroup(group); - } - - return this; - } - - public TaxonMapBuilder getStateBuilder() { - if(stateBuilder == null) { - stateBuilder = new TaxonMapBuilder(); - } - return stateBuilder; - } - - // ::: internals - // - @Override - protected void internalAttachRelations(Context context, - SubscriptionEntity entity, - List fields, - Map resultMap) { - - if (fields.contains(SubscriptionFields.business)) { - attachRelation(context, - entity, - SubscriptionFields.business, - getBusinessBuilder(), - resultMap); - } - if (fields.contains(SubscriptionFields.client)) { - attachRelation(context, - entity, - SubscriptionFields.client, - getClientBuilder(), - resultMap); - } - if (fields.contains(SubscriptionFields.walletSlot)) { - attachRelation(context, - entity, - SubscriptionFields.walletSlot, - getWalletSlotBuilder(), - resultMap); - } - if (fields.contains(SubscriptionFields.state)) { - attachRelation(context, - entity, - SubscriptionFields.state, - getStateBuilder(), - resultMap); - } - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscription/SubscriptionRepository.java b/src/main/java/io/kumare/iqr/mod/loyalty/store/subscription/SubscriptionRepository.java deleted file mode 100644 index 006195d..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscription/SubscriptionRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.store.subscription; - -// spring -import org.springframework.stereotype.Repository; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Repository -public interface SubscriptionRepository extends AppKeyEntityRepository{ - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscription/SubscriptionStore.java b/src/main/java/io/kumare/iqr/mod/loyalty/store/subscription/SubscriptionStore.java deleted file mode 100644 index 383d70c..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscription/SubscriptionStore.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.store.subscription; - -// spring -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Service -public class SubscriptionStore extends AppKeyEntityStore { - - // ::: vars - // - @Autowired - private SubscriptionRepository repository; - - // ::: override - // - @Override - public SubscriptionRepository getRepository() { - return repository; - } - - // ::: api - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontx/SubscriptionTxData.java b/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontx/SubscriptionTxData.java deleted file mode 100644 index 1233085..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontx/SubscriptionTxData.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.store.subscriptiontx; - -// base -import io.kumare.iqr.app.store.AppExtendedEntityData; -// imports - - -public class SubscriptionTxData extends AppExtendedEntityData { - - // ::: vars - // - - - // ::: fields - // - - - // ::: fluent - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontx/SubscriptionTxEntity.java b/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontx/SubscriptionTxEntity.java deleted file mode 100644 index 1e207b7..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontx/SubscriptionTxEntity.java +++ /dev/null @@ -1,187 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.store.subscriptiontx; - -// jakarta -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.Index; -import jakarta.persistence.ManyToOne; -import jakarta.persistence.Table; -// base -import io.kumare.lib.app.api.store.*; -import io.kumare.iqr.app.store.*; -// imports - -// relations -import io.kumare.iqr.mod.biz.store.businesspromo.BusinessPromoEntity; -import io.kumare.iqr.mod.clientele.store.client.ClientEntity; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; -import io.kumare.iqr.mod.loyalty.store.subscription.SubscriptionEntity; -import io.kumare.iqr.mod.biz.store.businessworker.BusinessWorkerEntity; - -// annotations -@Entity -@Table( - name = "subscription_tx", - indexes = { - @Index(name = "idx_subscription_tx_type_value", columnList = "typeValue"), - @Index(name = "idx_subscription_tx_state_value", columnList = "stateValue"), - @Index(name = "idx_subscription_tx_points", columnList = "points") - } -) -public class SubscriptionTxEntity extends AppEntity { - - // ::: vars - // - private String typeValue; - private String stateValue; - private int points; - // relations - @ManyToOne(fetch = FetchType.LAZY) - private SubscriptionEntity subscription; - @ManyToOne(fetch = FetchType.LAZY) - private BusinessPromoEntity promo; - @ManyToOne(fetch = FetchType.LAZY) - private BusinessWorkerEntity worker; - @ManyToOne(fetch = FetchType.LAZY) - private TaxonEntity type; - @ManyToOne(fetch = FetchType.LAZY) - private TaxonEntity state; - @ManyToOne(fetch = FetchType.LAZY) - private ClientEntity capturer; - - // ::: constructors - // - public SubscriptionTxEntity() { - } - - public SubscriptionTxEntity(String id) { - super(id); - } - - // ::: fields - // - public String getTypeValue() { - return typeValue; - } - - public void setTypeValue(String typeValue) { - this.typeValue = typeValue; - } - - public String getStateValue() { - return stateValue; - } - - public void setStateValue(String stateValue) { - this.stateValue = stateValue; - } - - public int getPoints() { - return points; - } - - public void setPoints(int points) { - this.points = points; - } - - // relations - public SubscriptionEntity getSubscription() { - return subscription; - } - - public void setSubscription(SubscriptionEntity subscription) { - this.subscription = subscription; - } - - public BusinessPromoEntity getPromo() { - return promo; - } - - public void setPromo(BusinessPromoEntity promo) { - this.promo = promo; - } - - public BusinessWorkerEntity getWorker() { - return worker; - } - - public void setWorker(BusinessWorkerEntity worker) { - this.worker = worker; - } - - public TaxonEntity getType() { - return type; - } - - public void setType(TaxonEntity type) { - this.type = type; - } - - public TaxonEntity getState() { - return state; - } - - public void setState(TaxonEntity state) { - this.state = state; - } - - public ClientEntity getCapturer() { - return capturer; - } - - public void setCapturer(ClientEntity capturer) { - this.capturer = capturer; - } - - // ::: fluent - // - public SubscriptionTxEntity typeValue(String typeValue) { - setTypeValue(typeValue); - return this; - } - - public SubscriptionTxEntity stateValue(String stateValue) { - setStateValue(stateValue); - return this; - } - - public SubscriptionTxEntity points(int points) { - setPoints(points); - return this; - } - - // relations - public SubscriptionTxEntity subscription(SubscriptionEntity subscription) { - setSubscription(subscription); - return this; - } - - public SubscriptionTxEntity promo(BusinessPromoEntity promo) { - setPromo(promo); - return this; - } - - public SubscriptionTxEntity worker(BusinessWorkerEntity worker) { - setWorker(worker); - return this; - } - - public SubscriptionTxEntity type(TaxonEntity type) { - setType(type); - return this; - } - - public SubscriptionTxEntity state(TaxonEntity state) { - setState(state); - return this; - } - - public SubscriptionTxEntity capturer(ClientEntity capturer) { - setCapturer(capturer); - return this; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontx/SubscriptionTxFields.java b/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontx/SubscriptionTxFields.java deleted file mode 100644 index 816902e..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontx/SubscriptionTxFields.java +++ /dev/null @@ -1,173 +0,0 @@ -/* - */ -package io.kumare.iqr.mod.loyalty.store.subscriptiontx; - -// java -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -// base -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app -import io.kumare.iqr.mod.loyalty.store.LoyaltyEntities; -import io.kumare.iqr.mod.loyalty.store.subscription.SubscriptionFields; -import io.kumare.iqr.mod.biz.store.BizEntities; -import io.kumare.iqr.mod.biz.store.businesspromo.BusinessPromoFields; -import io.kumare.iqr.mod.biz.store.BizEntities; -import io.kumare.iqr.mod.biz.store.businessworker.BusinessWorkerFields; -import io.kumare.iqr.mod.taxonomy.store.TaxonomyEntities; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonFields; -import io.kumare.iqr.mod.taxonomy.store.TaxonomyEntities; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonFields; -import io.kumare.iqr.mod.clientele.store.ClienteleEntities; -import io.kumare.iqr.mod.clientele.store.client.ClientFields; - -/** - * - * @author afatecha - */ -public enum SubscriptionTxFields implements EntityFieldDescriptor { - - id(MAIN, FIND, LIST), - typeValue(MAIN, FIND, LIST), - stateValue(MAIN, FIND, LIST), - points(MAIN, FIND, LIST), - active(MAIN, FIND, LIST), - inserted(AUDIT, FIND, LIST), - inserter(AUDIT, FIND, LIST), - modified(AUDIT, FIND), - modifier(AUDIT, FIND), - deleted(AUDIT), - removed(AUDIT), - remover(AUDIT), - subscription(LoyaltyEntities.subscription, SubscriptionFields.class, FIND, LIST), - promo(BizEntities.businessPromo, BusinessPromoFields.class, FIND, LIST), - worker(BizEntities.businessWorker, BusinessWorkerFields.class, FIND, LIST), - type(TaxonomyEntities.taxon, TaxonFields.class, FIND, LIST), - state(TaxonomyEntities.taxon, TaxonFields.class, FIND, LIST), - capturer(ClienteleEntities.client, ClientFields.class, FIND, LIST); - - // ::: vars - // - private final boolean relation; - private final EntityDescriptor entityDescriptor; - private final Class enumClass; - private final List groups; - - // ::: constructors - // - SubscriptionTxFields(String... groups) { - this(false, null, null, groups); - } - - SubscriptionTxFields(EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this(true, entityDescriptor, enumClass, groups); - } - - SubscriptionTxFields(boolean relation, EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this.relation = relation; - this.entityDescriptor = entityDescriptor; - this.enumClass = enumClass; - this.groups = groups == null ? Collections.EMPTY_LIST : Arrays.asList(groups); - } - - // ::: api - // - @Override - public String getName() { - return name(); - } - - @Override - public boolean isRelation() { - return relation; - } - - @Override - public Class getRelationEnumClass() { - return enumClass; - } - - @Override - public List getGroups() { - return groups; - } - - @Override - public EntityDescriptor getEntityDescriptor() { - return entityDescriptor; - } - - @Override - public Object fetchValue(SubscriptionTxEntity entity) { - if (entity == null) { - return null; - } - - switch (this) { - case null -> { - return null; - } - case id -> { - return entity.getId(); - } - case typeValue ->{ - return entity.getTypeValue(); - } - case stateValue ->{ - return entity.getStateValue(); - } - case points ->{ - return entity.getPoints(); - } - case active -> { - return entity.isActive(); - } - case inserted -> { - return entity.getInserted(); - } - case inserter -> { - return entity.getInserter(); - } - case modified -> { - return entity.getModified(); - } - case modifier -> { - return entity.getModifier(); - } - case deleted -> { - return entity.isDeleted(); - } - case removed -> { - return entity.getRemoved(); - } - case remover -> { - return entity.getRemover(); - } - case subscription ->{ - return entity.getSubscription(); - } - case promo ->{ - return entity.getPromo(); - } - case worker ->{ - return entity.getWorker(); - } - case type ->{ - return entity.getType(); - } - case state ->{ - return entity.getState(); - } - case capturer ->{ - return entity.getCapturer(); - } - default -> { - return null; - } - } - - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontx/SubscriptionTxMapBuilder.java b/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontx/SubscriptionTxMapBuilder.java deleted file mode 100644 index 01867fb..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontx/SubscriptionTxMapBuilder.java +++ /dev/null @@ -1,368 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.store.subscriptiontx; - -// java -import java.util.List; -import java.util.Map; -// base -import io.kumare.lib.app.api.Context; -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.BaseEntityMapBuilder; -// app -import io.kumare.iqr.mod.biz.store.businesspromo.BusinessPromoMapBuilder; -import io.kumare.iqr.mod.loyalty.store.subscription.SubscriptionMapBuilder; -import io.kumare.iqr.mod.biz.store.businessworker.BusinessWorkerMapBuilder; -import io.kumare.iqr.mod.clientele.store.client.ClientMapBuilder; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonMapBuilder; - -/** - * - * @author afatecha - */ -public class SubscriptionTxMapBuilder extends BaseEntityMapBuilder { - - // ::: vars - // - private SubscriptionMapBuilder subscriptionBuilder; - private BusinessPromoMapBuilder promoBuilder; - private BusinessWorkerMapBuilder workerBuilder; - private TaxonMapBuilder typeBuilder; - private TaxonMapBuilder stateBuilder; - private ClientMapBuilder capturerBuilder; - - - // ::: fields - // - @Override - public SubscriptionTxMapBuilder addGroup(String name, boolean cascade) { - includes.addAll(EntityFieldDescriptor.group(SubscriptionTxFields.values(), name)); - - if(cascade) { - if (includes.contains(SubscriptionTxFields.subscription)) { - getSubscriptionBuilder().addGroup(name); - } - if (includes.contains(SubscriptionTxFields.promo)) { - getPromoBuilder().addGroup(name); - } - if (includes.contains(SubscriptionTxFields.worker)) { - getWorkerBuilder().addGroup(name); - } - if (includes.contains(SubscriptionTxFields.type)) { - getTypeBuilder().addGroup(name); - } - if (includes.contains(SubscriptionTxFields.state)) { - getStateBuilder().addGroup(name); - } - if (includes.contains(SubscriptionTxFields.capturer)) { - getCapturerBuilder().addGroup(name); - } - } - return this; - } - - @Override - public SubscriptionTxMapBuilder add(String fieldName) { - includes.add(SubscriptionTxFields.valueOf(fieldName)); - return this; - } - - @Override - public SubscriptionTxMapBuilder addAll(String... names) { - for (var i : names) { - includes.add(SubscriptionTxFields.valueOf(i)); - } - return this; - } - - @Override - public SubscriptionTxMapBuilder remove(String fieldName) { - excludes.add(SubscriptionTxFields.valueOf(fieldName)); - return this; - } - - @Override - public SubscriptionTxMapBuilder removeAll(String... names) { - for (var i : names) { - excludes.add(SubscriptionTxFields.valueOf(i)); - } - return this; - } - - // ::: relations - // - @Override - public SubscriptionTxMapBuilder addPlains(boolean cascade) { - includes.addAll(EntityFieldDescriptor.plains(SubscriptionTxFields.values())); - - if(cascade) { - if (includes.contains(SubscriptionTxFields.subscription)) { - getSubscriptionBuilder().addPlains(); - } - if (includes.contains(SubscriptionTxFields.promo)) { - getPromoBuilder().addPlains(); - } - if (includes.contains(SubscriptionTxFields.worker)) { - getWorkerBuilder().addPlains(); - } - if (includes.contains(SubscriptionTxFields.type)) { - getTypeBuilder().addPlains(); - } - if (includes.contains(SubscriptionTxFields.state)) { - getStateBuilder().addPlains(); - } - if (includes.contains(SubscriptionTxFields.capturer)) { - getCapturerBuilder().addPlains(); - } - } - return this; - } - - @Override - public SubscriptionTxMapBuilder addRelations(boolean cascade) { - includes.addAll(EntityFieldDescriptor.relations(SubscriptionTxFields.values())); - - if(cascade) { - if (includes.contains(SubscriptionTxFields.subscription)) { - getSubscriptionBuilder().addRelations(); - } - if (includes.contains(SubscriptionTxFields.promo)) { - getPromoBuilder().addRelations(); - } - if (includes.contains(SubscriptionTxFields.worker)) { - getWorkerBuilder().addRelations(); - } - if (includes.contains(SubscriptionTxFields.type)) { - getTypeBuilder().addRelations(); - } - if (includes.contains(SubscriptionTxFields.state)) { - getStateBuilder().addRelations(); - } - if (includes.contains(SubscriptionTxFields.capturer)) { - getCapturerBuilder().addRelations(); - } - } - return this; - } - - // ::: subscription - // - public SubscriptionTxMapBuilder addSubscription() { - return addSubscription(null); - } - - public SubscriptionTxMapBuilder addSubscription(String group) { - return addSubscription(group, false); - } - - public SubscriptionTxMapBuilder addSubscription(String group, boolean cascade) { - includes.add(SubscriptionTxFields.subscription); - - if (group != null) { - getSubscriptionBuilder().addGroup(group); - } - - return this; - } - - public SubscriptionMapBuilder getSubscriptionBuilder() { - if(subscriptionBuilder == null) { - subscriptionBuilder = new SubscriptionMapBuilder(); - } - return subscriptionBuilder; - } - - - // ::: promo - // - public SubscriptionTxMapBuilder addPromo() { - return addPromo(null); - } - - public SubscriptionTxMapBuilder addPromo(String group) { - return addPromo(group, false); - } - - public SubscriptionTxMapBuilder addPromo(String group, boolean cascade) { - includes.add(SubscriptionTxFields.promo); - - if (group != null) { - getPromoBuilder().addGroup(group); - } - - return this; - } - - public BusinessPromoMapBuilder getPromoBuilder() { - if(promoBuilder == null) { - promoBuilder = new BusinessPromoMapBuilder(); - } - return promoBuilder; - } - - - // ::: worker - // - public SubscriptionTxMapBuilder addWorker() { - return addWorker(null); - } - - public SubscriptionTxMapBuilder addWorker(String group) { - return addWorker(group, false); - } - - public SubscriptionTxMapBuilder addWorker(String group, boolean cascade) { - includes.add(SubscriptionTxFields.worker); - - if (group != null) { - getWorkerBuilder().addGroup(group); - } - - return this; - } - - public BusinessWorkerMapBuilder getWorkerBuilder() { - if(workerBuilder == null) { - workerBuilder = new BusinessWorkerMapBuilder(); - } - return workerBuilder; - } - - - // ::: type - // - public SubscriptionTxMapBuilder addType() { - return addType(null); - } - - public SubscriptionTxMapBuilder addType(String group) { - return addType(group, false); - } - - public SubscriptionTxMapBuilder addType(String group, boolean cascade) { - includes.add(SubscriptionTxFields.type); - - if (group != null) { - getTypeBuilder().addGroup(group); - } - - return this; - } - - public TaxonMapBuilder getTypeBuilder() { - if(typeBuilder == null) { - typeBuilder = new TaxonMapBuilder(); - } - return typeBuilder; - } - - - // ::: state - // - public SubscriptionTxMapBuilder addState() { - return addState(null); - } - - public SubscriptionTxMapBuilder addState(String group) { - return addState(group, false); - } - - public SubscriptionTxMapBuilder addState(String group, boolean cascade) { - includes.add(SubscriptionTxFields.state); - - if (group != null) { - getStateBuilder().addGroup(group); - } - - return this; - } - - public TaxonMapBuilder getStateBuilder() { - if(stateBuilder == null) { - stateBuilder = new TaxonMapBuilder(); - } - return stateBuilder; - } - - - // ::: capturer - // - public SubscriptionTxMapBuilder addCapturer() { - return addCapturer(null); - } - - public SubscriptionTxMapBuilder addCapturer(String group) { - return addCapturer(group, false); - } - - public SubscriptionTxMapBuilder addCapturer(String group, boolean cascade) { - includes.add(SubscriptionTxFields.capturer); - - if (group != null) { - getCapturerBuilder().addGroup(group); - } - - return this; - } - - public ClientMapBuilder getCapturerBuilder() { - if(capturerBuilder == null) { - capturerBuilder = new ClientMapBuilder(); - } - return capturerBuilder; - } - - // ::: internals - // - @Override - protected void internalAttachRelations(Context context, - SubscriptionTxEntity entity, - List fields, - Map resultMap) { - - if (fields.contains(SubscriptionTxFields.subscription)) { - attachRelation(context, - entity, - SubscriptionTxFields.subscription, - getSubscriptionBuilder(), - resultMap); - } - if (fields.contains(SubscriptionTxFields.promo)) { - attachRelation(context, - entity, - SubscriptionTxFields.promo, - getPromoBuilder(), - resultMap); - } - if (fields.contains(SubscriptionTxFields.worker)) { - attachRelation(context, - entity, - SubscriptionTxFields.worker, - getWorkerBuilder(), - resultMap); - } - if (fields.contains(SubscriptionTxFields.type)) { - attachRelation(context, - entity, - SubscriptionTxFields.type, - getTypeBuilder(), - resultMap); - } - if (fields.contains(SubscriptionTxFields.state)) { - attachRelation(context, - entity, - SubscriptionTxFields.state, - getStateBuilder(), - resultMap); - } - if (fields.contains(SubscriptionTxFields.capturer)) { - attachRelation(context, - entity, - SubscriptionTxFields.capturer, - getCapturerBuilder(), - resultMap); - } - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontx/SubscriptionTxRepository.java b/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontx/SubscriptionTxRepository.java deleted file mode 100644 index 4dcb8ca..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontx/SubscriptionTxRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.store.subscriptiontx; - -// spring -import org.springframework.stereotype.Repository; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Repository -public interface SubscriptionTxRepository extends AppEntityRepository{ - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontx/SubscriptionTxStore.java b/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontx/SubscriptionTxStore.java deleted file mode 100644 index c4952ef..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontx/SubscriptionTxStore.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.store.subscriptiontx; - -// spring -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Service -public class SubscriptionTxStore extends AppEntityStore { - - // ::: vars - // - @Autowired - private SubscriptionTxRepository repository; - - // ::: override - // - @Override - public SubscriptionTxRepository getRepository() { - return repository; - } - - // ::: api - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontxtag/SubscriptionTxTagData.java b/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontxtag/SubscriptionTxTagData.java deleted file mode 100644 index e55edeb..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontxtag/SubscriptionTxTagData.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.store.subscriptiontxtag; - -// base -import io.kumare.iqr.app.store.AppExtendedEntityData; -// imports - - -public class SubscriptionTxTagData extends AppExtendedEntityData { - - // ::: vars - // - - - // ::: fields - // - - - // ::: fluent - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontxtag/SubscriptionTxTagEntity.java b/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontxtag/SubscriptionTxTagEntity.java deleted file mode 100644 index 14d1b34..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontxtag/SubscriptionTxTagEntity.java +++ /dev/null @@ -1,110 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.store.subscriptiontxtag; - -// jakarta -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.Index; -import jakarta.persistence.ManyToOne; -import jakarta.persistence.Table; -// base -import io.kumare.lib.app.api.store.*; -import io.kumare.iqr.app.store.*; -// imports - -// relations -import io.kumare.iqr.mod.biz.store.businesstag.BusinessTagEntity; -import io.kumare.iqr.mod.loyalty.store.subscriptiontx.SubscriptionTxEntity; -import io.kumare.iqr.mod.loyalty.store.subscription.SubscriptionEntity; - -// annotations -@Entity -@Table( - name = "subscription_tx_tag", - indexes = { - @Index(name = "idx_subscription_tx_tag_tag_key", columnList = "tagKey") - } -) -public class SubscriptionTxTagEntity extends AppEntity { - - // ::: vars - // - private String tagKey; - // relations - @ManyToOne(fetch = FetchType.LAZY) - private SubscriptionEntity subscription; - @ManyToOne(fetch = FetchType.LAZY) - private SubscriptionTxEntity transaction; - @ManyToOne(fetch = FetchType.LAZY) - private BusinessTagEntity tag; - - // ::: constructors - // - public SubscriptionTxTagEntity() { - } - - public SubscriptionTxTagEntity(String id) { - super(id); - } - - // ::: fields - // - public String getTagKey() { - return tagKey; - } - - public void setTagKey(String tagKey) { - this.tagKey = tagKey; - } - - // relations - public SubscriptionEntity getSubscription() { - return subscription; - } - - public void setSubscription(SubscriptionEntity subscription) { - this.subscription = subscription; - } - - public SubscriptionTxEntity getTransaction() { - return transaction; - } - - public void setTransaction(SubscriptionTxEntity transaction) { - this.transaction = transaction; - } - - public BusinessTagEntity getTag() { - return tag; - } - - public void setTag(BusinessTagEntity tag) { - this.tag = tag; - } - - // ::: fluent - // - public SubscriptionTxTagEntity tagKey(String tagKey) { - setTagKey(tagKey); - return this; - } - - // relations - public SubscriptionTxTagEntity subscription(SubscriptionEntity subscription) { - setSubscription(subscription); - return this; - } - - public SubscriptionTxTagEntity transaction(SubscriptionTxEntity transaction) { - setTransaction(transaction); - return this; - } - - public SubscriptionTxTagEntity tag(BusinessTagEntity tag) { - setTag(tag); - return this; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontxtag/SubscriptionTxTagFields.java b/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontxtag/SubscriptionTxTagFields.java deleted file mode 100644 index 747e467..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontxtag/SubscriptionTxTagFields.java +++ /dev/null @@ -1,147 +0,0 @@ -/* - */ -package io.kumare.iqr.mod.loyalty.store.subscriptiontxtag; - -// java -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -// base -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app -import io.kumare.iqr.mod.loyalty.store.LoyaltyEntities; -import io.kumare.iqr.mod.loyalty.store.subscription.SubscriptionFields; -import io.kumare.iqr.mod.loyalty.store.LoyaltyEntities; -import io.kumare.iqr.mod.loyalty.store.subscriptiontx.SubscriptionTxFields; -import io.kumare.iqr.mod.biz.store.BizEntities; -import io.kumare.iqr.mod.biz.store.businesstag.BusinessTagFields; - -/** - * - * @author afatecha - */ -public enum SubscriptionTxTagFields implements EntityFieldDescriptor { - - id(MAIN, FIND, LIST), - tagKey(MAIN, FIND, LIST), - active(MAIN, FIND, LIST), - inserted(AUDIT, FIND, LIST), - inserter(AUDIT, FIND, LIST), - modified(AUDIT, FIND), - modifier(AUDIT, FIND), - deleted(AUDIT), - removed(AUDIT), - remover(AUDIT), - subscription(LoyaltyEntities.subscription, SubscriptionFields.class, FIND, LIST), - transaction(LoyaltyEntities.subscriptionTx, SubscriptionTxFields.class, FIND, LIST), - tag(BizEntities.businessTag, BusinessTagFields.class, FIND, LIST); - - // ::: vars - // - private final boolean relation; - private final EntityDescriptor entityDescriptor; - private final Class enumClass; - private final List groups; - - // ::: constructors - // - SubscriptionTxTagFields(String... groups) { - this(false, null, null, groups); - } - - SubscriptionTxTagFields(EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this(true, entityDescriptor, enumClass, groups); - } - - SubscriptionTxTagFields(boolean relation, EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this.relation = relation; - this.entityDescriptor = entityDescriptor; - this.enumClass = enumClass; - this.groups = groups == null ? Collections.EMPTY_LIST : Arrays.asList(groups); - } - - // ::: api - // - @Override - public String getName() { - return name(); - } - - @Override - public boolean isRelation() { - return relation; - } - - @Override - public Class getRelationEnumClass() { - return enumClass; - } - - @Override - public List getGroups() { - return groups; - } - - @Override - public EntityDescriptor getEntityDescriptor() { - return entityDescriptor; - } - - @Override - public Object fetchValue(SubscriptionTxTagEntity entity) { - if (entity == null) { - return null; - } - - switch (this) { - case null -> { - return null; - } - case id -> { - return entity.getId(); - } - case tagKey ->{ - return entity.getTagKey(); - } - case active -> { - return entity.isActive(); - } - case inserted -> { - return entity.getInserted(); - } - case inserter -> { - return entity.getInserter(); - } - case modified -> { - return entity.getModified(); - } - case modifier -> { - return entity.getModifier(); - } - case deleted -> { - return entity.isDeleted(); - } - case removed -> { - return entity.getRemoved(); - } - case remover -> { - return entity.getRemover(); - } - case subscription ->{ - return entity.getSubscription(); - } - case transaction ->{ - return entity.getTransaction(); - } - case tag ->{ - return entity.getTag(); - } - default -> { - return null; - } - } - - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontxtag/SubscriptionTxTagMapBuilder.java b/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontxtag/SubscriptionTxTagMapBuilder.java deleted file mode 100644 index c329f42..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontxtag/SubscriptionTxTagMapBuilder.java +++ /dev/null @@ -1,231 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.store.subscriptiontxtag; - -// java -import java.util.List; -import java.util.Map; -// base -import io.kumare.lib.app.api.Context; -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.BaseEntityMapBuilder; -// app -import io.kumare.iqr.mod.biz.store.businesstag.BusinessTagMapBuilder; -import io.kumare.iqr.mod.loyalty.store.subscription.SubscriptionMapBuilder; -import io.kumare.iqr.mod.loyalty.store.subscriptiontx.SubscriptionTxMapBuilder; - -/** - * - * @author afatecha - */ -public class SubscriptionTxTagMapBuilder extends BaseEntityMapBuilder { - - // ::: vars - // - private SubscriptionMapBuilder subscriptionBuilder; - private SubscriptionTxMapBuilder transactionBuilder; - private BusinessTagMapBuilder tagBuilder; - - - // ::: fields - // - @Override - public SubscriptionTxTagMapBuilder addGroup(String name, boolean cascade) { - includes.addAll(EntityFieldDescriptor.group(SubscriptionTxTagFields.values(), name)); - - if(cascade) { - if (includes.contains(SubscriptionTxTagFields.subscription)) { - getSubscriptionBuilder().addGroup(name); - } - if (includes.contains(SubscriptionTxTagFields.transaction)) { - getTransactionBuilder().addGroup(name); - } - if (includes.contains(SubscriptionTxTagFields.tag)) { - getTagBuilder().addGroup(name); - } - } - return this; - } - - @Override - public SubscriptionTxTagMapBuilder add(String fieldName) { - includes.add(SubscriptionTxTagFields.valueOf(fieldName)); - return this; - } - - @Override - public SubscriptionTxTagMapBuilder addAll(String... names) { - for (var i : names) { - includes.add(SubscriptionTxTagFields.valueOf(i)); - } - return this; - } - - @Override - public SubscriptionTxTagMapBuilder remove(String fieldName) { - excludes.add(SubscriptionTxTagFields.valueOf(fieldName)); - return this; - } - - @Override - public SubscriptionTxTagMapBuilder removeAll(String... names) { - for (var i : names) { - excludes.add(SubscriptionTxTagFields.valueOf(i)); - } - return this; - } - - // ::: relations - // - @Override - public SubscriptionTxTagMapBuilder addPlains(boolean cascade) { - includes.addAll(EntityFieldDescriptor.plains(SubscriptionTxTagFields.values())); - - if(cascade) { - if (includes.contains(SubscriptionTxTagFields.subscription)) { - getSubscriptionBuilder().addPlains(); - } - if (includes.contains(SubscriptionTxTagFields.transaction)) { - getTransactionBuilder().addPlains(); - } - if (includes.contains(SubscriptionTxTagFields.tag)) { - getTagBuilder().addPlains(); - } - } - return this; - } - - @Override - public SubscriptionTxTagMapBuilder addRelations(boolean cascade) { - includes.addAll(EntityFieldDescriptor.relations(SubscriptionTxTagFields.values())); - - if(cascade) { - if (includes.contains(SubscriptionTxTagFields.subscription)) { - getSubscriptionBuilder().addRelations(); - } - if (includes.contains(SubscriptionTxTagFields.transaction)) { - getTransactionBuilder().addRelations(); - } - if (includes.contains(SubscriptionTxTagFields.tag)) { - getTagBuilder().addRelations(); - } - } - return this; - } - - // ::: subscription - // - public SubscriptionTxTagMapBuilder addSubscription() { - return addSubscription(null); - } - - public SubscriptionTxTagMapBuilder addSubscription(String group) { - return addSubscription(group, false); - } - - public SubscriptionTxTagMapBuilder addSubscription(String group, boolean cascade) { - includes.add(SubscriptionTxTagFields.subscription); - - if (group != null) { - getSubscriptionBuilder().addGroup(group); - } - - return this; - } - - public SubscriptionMapBuilder getSubscriptionBuilder() { - if(subscriptionBuilder == null) { - subscriptionBuilder = new SubscriptionMapBuilder(); - } - return subscriptionBuilder; - } - - - // ::: transaction - // - public SubscriptionTxTagMapBuilder addTransaction() { - return addTransaction(null); - } - - public SubscriptionTxTagMapBuilder addTransaction(String group) { - return addTransaction(group, false); - } - - public SubscriptionTxTagMapBuilder addTransaction(String group, boolean cascade) { - includes.add(SubscriptionTxTagFields.transaction); - - if (group != null) { - getTransactionBuilder().addGroup(group); - } - - return this; - } - - public SubscriptionTxMapBuilder getTransactionBuilder() { - if(transactionBuilder == null) { - transactionBuilder = new SubscriptionTxMapBuilder(); - } - return transactionBuilder; - } - - - // ::: tag - // - public SubscriptionTxTagMapBuilder addTag() { - return addTag(null); - } - - public SubscriptionTxTagMapBuilder addTag(String group) { - return addTag(group, false); - } - - public SubscriptionTxTagMapBuilder addTag(String group, boolean cascade) { - includes.add(SubscriptionTxTagFields.tag); - - if (group != null) { - getTagBuilder().addGroup(group); - } - - return this; - } - - public BusinessTagMapBuilder getTagBuilder() { - if(tagBuilder == null) { - tagBuilder = new BusinessTagMapBuilder(); - } - return tagBuilder; - } - - // ::: internals - // - @Override - protected void internalAttachRelations(Context context, - SubscriptionTxTagEntity entity, - List fields, - Map resultMap) { - - if (fields.contains(SubscriptionTxTagFields.subscription)) { - attachRelation(context, - entity, - SubscriptionTxTagFields.subscription, - getSubscriptionBuilder(), - resultMap); - } - if (fields.contains(SubscriptionTxTagFields.transaction)) { - attachRelation(context, - entity, - SubscriptionTxTagFields.transaction, - getTransactionBuilder(), - resultMap); - } - if (fields.contains(SubscriptionTxTagFields.tag)) { - attachRelation(context, - entity, - SubscriptionTxTagFields.tag, - getTagBuilder(), - resultMap); - } - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontxtag/SubscriptionTxTagRepository.java b/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontxtag/SubscriptionTxTagRepository.java deleted file mode 100644 index 987a47c..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontxtag/SubscriptionTxTagRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.store.subscriptiontxtag; - -// spring -import org.springframework.stereotype.Repository; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Repository -public interface SubscriptionTxTagRepository extends AppEntityRepository{ - -} diff --git a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontxtag/SubscriptionTxTagStore.java b/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontxtag/SubscriptionTxTagStore.java deleted file mode 100644 index c54a835..0000000 --- a/src/main/java/io/kumare/iqr/mod/loyalty/store/subscriptiontxtag/SubscriptionTxTagStore.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.loyalty.store.subscriptiontxtag; - -// spring -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Service -public class SubscriptionTxTagStore extends AppEntityStore { - - // ::: vars - // - @Autowired - private SubscriptionTxTagRepository repository; - - // ::: override - // - @Override - public SubscriptionTxTagRepository getRepository() { - return repository; - } - - // ::: api - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/PocketConstants.java b/src/main/java/io/kumare/iqr/mod/pocket/PocketConstants.java deleted file mode 100644 index 8ff33ad..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/PocketConstants.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket; - -// base -import io.kumare.iqr.app.AppConstants; - -/** - * - * @author afatecha - */ -public class PocketConstants { - - // ::: codes - // - public static final int CODE = AppConstants.POCKET_CODE; - public static final String NAME = "pocket"; - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/PocketController.java b/src/main/java/io/kumare/iqr/mod/pocket/PocketController.java deleted file mode 100644 index 4004b62..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/PocketController.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket; - -// java -import io.kumare.iqr.mod.pocket.store.PocketEntities; -import java.util.Arrays; -import java.util.List; -// base -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app -import io.kumare.iqr.app.module.AppModuleController; -// module -import io.kumare.iqr.mod.pocket.store.wallet.WalletStore; -import io.kumare.iqr.mod.pocket.store.walletslot.WalletSlotStore; -import io.kumare.iqr.mod.pocket.store.walletmovement.WalletMovementStore; - -/** - * - * @author afatecha - */ -public class PocketController extends AppModuleController { - - // ::: api - // - @Override - public boolean hasStore(String name) { - return PocketEntities.hasDescriptor(name); - } - - @Override - public EntityDescriptor getEntityDescriptor(Class entityClass) { - return PocketEntities.descriptorOf(entityClass); - } - - @Override - public EntityDescriptor getEntityDescriptor(String name) { - return PocketEntities.descriptorOf(name); - } - - @Override - public List getEntityDescriptors() { - return Arrays.asList(PocketEntities.values()); - } - - // ::: stores - // - public WalletStore getWalletStore() { - return getService(WalletStore.class); - } - - public WalletSlotStore getWalletSlotStore() { - return getService(WalletSlotStore.class); - } - - public WalletMovementStore getWalletMovementStore() { - return getService(WalletMovementStore.class); - } - - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/PocketErrors.java b/src/main/java/io/kumare/iqr/mod/pocket/PocketErrors.java deleted file mode 100644 index 02cc201..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/PocketErrors.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket; - -// java -import java.util.HashMap; -import java.util.Map; -// lib -import io.kumare.lib.transport.TransportCode; -import static io.kumare.lib.transport.Transports.code; -import io.kumare.lib.v.ExceptionPrototype; -// app -import io.kumare.iqr.app.AppException; -import io.kumare.iqr.app.endpoint.AppTransports; - - -/** - * - * @author afatecha - */ -public enum PocketErrors implements ExceptionPrototype { - - - // wallet - wallet_notfound(1, code(AppTransports.http, 400)), - wallet_data_notfound(1, code(AppTransports.http, 400)), - wallet_preload_empty(1, code(AppTransports.http, 400)), - wallet_externalid_empty(1, code(AppTransports.http, 400)), - wallet_entitykey_empty(1, code(AppTransports.http, 400)), - - // wallet slot - walletslot_notfound(1, code(AppTransports.http, 400)), - walletslot_data_notfound(1, code(AppTransports.http, 400)), - walletslot_preload_empty(1, code(AppTransports.http, 400)), - walletslot_entitykey_empty(1, code(AppTransports.http, 400)), - walletslot_conceptkey_empty(1, code(AppTransports.http, 400)), - walletslot_points_empty(1, code(AppTransports.http, 400)), - walletslot_wallet_notfound(1, code(AppTransports.http, 400)), - - // wallet movement - walletmovement_notfound(1, code(AppTransports.http, 400)), - walletmovement_data_notfound(1, code(AppTransports.http, 400)), - walletmovement_preload_empty(1, code(AppTransports.http, 400)), - walletmovement_externalid_empty(1, code(AppTransports.http, 400)), - walletmovement_typevalue_empty(1, code(AppTransports.http, 400)), - walletmovement_statevalue_empty(1, code(AppTransports.http, 400)), - walletmovement_donedate_empty(1, code(AppTransports.http, 400)), - walletmovement_value_empty(1, code(AppTransports.http, 400)), - walletmovement_unsignedvalue_empty(1, code(AppTransports.http, 400)), - walletmovement_wallet_notfound(1, code(AppTransports.http, 400)), - walletmovement_walletslot_notfound(1, code(AppTransports.http, 400)), - walletmovement_type_notfound(1, code(AppTransports.http, 400)), - walletmovement_state_notfound(1, code(AppTransports.http, 400)); - - // ::: vars - // - private final Map transportCodes = new HashMap(); - private final int code; - - // ::: constructors - // - private PocketErrors(int code, TransportCode... codes) { - this.code = code; - if (codes != null) { - for (var i : codes) { - if (i != null) { - transportCodes.put(i.getId(), i.getCode()); - } - } - } - } - - // ::: prototype api - // - @Override - public int getCode() { - return code; - } - - @Override - public String getName() { - return name(); - } - - @Override - public Map getTransportCodes() { - return transportCodes; - } - - @Override - public RuntimeException newInstance(String msg, Throwable cause, Map extra) { - var ex = new AppException(this, msg, cause); - ex.setExtra(extra); - return ex; - } - - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/PocketModule.java b/src/main/java/io/kumare/iqr/mod/pocket/PocketModule.java deleted file mode 100644 index 41703f5..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/PocketModule.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket; - -// java -import io.kumare.lib.base.server.spring.module.BaseModule; - - -/** - * - * @author afatecha - */ -public class PocketModule extends BaseModule { - - // ::: - // - public static final PocketController controller = new PocketController(); - - // ::: api - // - @Override - public int getId() { - return PocketConstants.CODE; - } - - @Override - public String getName() { - return PocketConstants.NAME; - } - - @Override - public PocketController getController() { - return controller; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/PocketPermissions.java b/src/main/java/io/kumare/iqr/mod/pocket/PocketPermissions.java deleted file mode 100644 index 71545cf..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/PocketPermissions.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket; - -// base -import io.kumare.iqr.mod.pocket.store.PocketEntities; -import io.kumare.lib.app.api.security.PermissionReference; -// app -import io.kumare.iqr.app.AppErrors; - -/** - * - * @author afatecha - */ -public enum PocketPermissions { - - // wallet - //wallet_add(PocketEntities.wallet), - //wallet_edit(PocketEntities.wallet), - //wallet_find(PocketEntities.wallet), - //wallet_enable(PocketEntities.wallet), - //wallet_disable(PocketEntities.wallet), - //wallet_list(PocketEntities.wallet), - //wallet_delete(PocketEntities.wallet), - //wallet_preload(PocketEntities.wallet), - // - wallet_viewer(PocketEntities.wallet), - //wallet_guest(PocketEntities.wallet), - //wallet_collab(PocketEntities.wallet), - wallet_worker(PocketEntities.wallet), - //wallet_control(PocketEntities.wallet), - wallet_manager(PocketEntities.wallet), - wallet_admin(null), - wallet_system(null), - - // wallet slot - //wallet_slot_add(PocketEntities.walletSlot), - //wallet_slot_edit(PocketEntities.walletSlot), - //wallet_slot_find(PocketEntities.walletSlot), - //wallet_slot_enable(PocketEntities.walletSlot), - //wallet_slot_disable(PocketEntities.walletSlot), - //wallet_slot_list(PocketEntities.walletSlot), - //wallet_slot_delete(PocketEntities.walletSlot), - //wallet_slot_preload(PocketEntities.walletSlot), - // - wallet_slot_viewer(PocketEntities.walletSlot), - //wallet_slot_guest(PocketEntities.walletSlot), - //wallet_slot_collab(PocketEntities.walletSlot), - wallet_slot_worker(PocketEntities.walletSlot), - //wallet_slot_control(PocketEntities.walletSlot), - wallet_slot_manager(PocketEntities.walletSlot), - wallet_slot_admin(null), - wallet_slot_system(null), - - // wallet movement - //wallet_movement_add(PocketEntities.walletMovement), - //wallet_movement_edit(PocketEntities.walletMovement), - //wallet_movement_find(PocketEntities.walletMovement), - //wallet_movement_enable(PocketEntities.walletMovement), - //wallet_movement_disable(PocketEntities.walletMovement), - //wallet_movement_list(PocketEntities.walletMovement), - //wallet_movement_delete(PocketEntities.walletMovement), - //wallet_movement_preload(PocketEntities.walletMovement), - // - wallet_movement_viewer(PocketEntities.walletMovement), - //wallet_movement_guest(PocketEntities.walletMovement), - //wallet_movement_collab(PocketEntities.walletMovement), - wallet_movement_worker(PocketEntities.walletMovement), - //wallet_movement_control(PocketEntities.walletMovement), - wallet_movement_manager(PocketEntities.walletMovement), - wallet_movement_admin(null), - wallet_movement_system(null); - - - // ::: - // - private final PocketEntities resourceType; - - PocketPermissions(PocketEntities entityRef) { - this.resourceType = entityRef; - } - - // - public PermissionReference toReference() { - return toReference(null); - } - - public PermissionReference toReference(String resourceKey) { - var ref = new PermissionReference() - .module(PocketConstants.NAME) - .permission(name()) - .error(AppErrors.action_unauthorized); - - if (resourceType != null && resourceKey != null) { - ref.resourceType(resourceType.name()) - .resourceKey(resourceKey); - } - - return ref; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletActionArgument.java b/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletActionArgument.java deleted file mode 100644 index 30809d1..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletActionArgument.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.wallet; - -// base -import io.kumare.iqr.app.action.AppEntityActionArgument; -// entity -import io.kumare.iqr.mod.pocket.store.wallet.WalletEntity; - -/** - * - * @author afatecha - */ -public class WalletActionArgument extends AppEntityActionArgument { - - // ::: constructors - // - public WalletActionArgument() { - } - - public WalletActionArgument(WalletEntity entity) { - super(entity); - } - - // ::: api - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletAddAction.java b/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletAddAction.java deleted file mode 100644 index b04badd..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletAddAction.java +++ /dev/null @@ -1,125 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.wallet; - -// java -import java.util.List; -// lib -import io.kumare.lib.base.server.spring.action.Actions; -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.pocket.PocketErrors; -// entity -import io.kumare.iqr.mod.pocket.store.wallet.WalletEntity; - -import io.kumare.iqr.mod.pocket.action.walletslot.WalletSlotAddAction; -import io.kumare.iqr.mod.pocket.action.walletslot.WalletSlotAddArgument; - -/** - * - * @author afatecha - */ -public class WalletAddAction extends AppAction> { - - // ::: vars - // - private WalletEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, PocketErrors.wallet_notfound); - - // relations - - // fields - V.ifEmpty(model.getExternalId(), PocketErrors.wallet_externalid_empty); - V.ifEmpty(model.getEntityKey(), PocketErrors.wallet_entitykey_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - - - - - - - // model - var model = makeModel(); - - // add - entity = saveEntity(model); - - // add others - addSlots(getArgument().getSlots()); - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private WalletEntity makeModel() { - - var argModel = getArgument().getEntity(); - var model = new WalletEntity(); - - // relations - - - // fields - model.setExternalId(argModel.getExternalId()); - model.setEntityKey(argModel.getEntityKey()); - model.setActive(true); - - - - return model; - } - - // ::: save - // - private WalletEntity saveEntity(WalletEntity model) { - - var store = AppModules.pocket.getController().getWalletStore(); - - var saved = store.add(getContext(), model); - getContext().attach(saved.getId(), saved); - return saved; - } - - // ::: add slots - // - private void addSlots(List list) { - if(list != null) { - list.forEach(i->{ - i.getEntity().wallet(entity); - Actions.perform(getContext(), new WalletSlotAddAction(), i); - }); - } - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletAddArgument.java b/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletAddArgument.java deleted file mode 100644 index 5d99fde..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletAddArgument.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.wallet; - -// java -import java.util.List; -// app -import io.kumare.iqr.mod.pocket.store.wallet.WalletEntity; -import io.kumare.iqr.mod.pocket.action.walletslot.WalletSlotAddArgument; - -/** - * - * @author afatecha - */ -public class WalletAddArgument extends WalletActionArgument { - - // ::: vars - // - private List slots; - - // ::: constructors - // - public WalletAddArgument() { - } - - public WalletAddArgument(WalletEntity entity) { - super(entity); - } - - // ::: fields - // - public List getSlots() { - return slots; - } - - public void setSlots(List list) { - this.slots = list; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletDeleteAction.java b/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletDeleteAction.java deleted file mode 100644 index b32dd9c..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletDeleteAction.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.wallet; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.pocket.PocketErrors; -// entity -import io.kumare.iqr.mod.pocket.store.wallet.WalletEntity; - -/** - * - * @author afatecha - */ -public class WalletDeleteAction extends AppAction> { - - // ::: vars - // - private WalletEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), PocketErrors.wallet_notfound); - V.ifNull(getArgument().getEntity().getId(), PocketErrors.wallet_notfound); - } - - @Override - protected void doAction() { - - var argModel = getArgument().getEntity(); - - deleteEntity(argModel); - } - - @Override - protected void setResultOnly() { - } - - // ::: delete - // - private void deleteEntity(WalletEntity model) { - - var store = AppModules.pocket.getController().getWalletStore(); - - store.deleteById(getContext(), model.getId()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletEditAction.java b/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletEditAction.java deleted file mode 100644 index c343a1c..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletEditAction.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.wallet; - -// lib -import io.kumare.lib.v.V; -// app -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.pocket.PocketErrors; -// entity -import io.kumare.iqr.mod.pocket.store.wallet.WalletEntity; - -/** - * - * @author afatecha - */ -public class WalletEditAction extends AppAction> { - - // ::: vars - // - private WalletEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, PocketErrors.wallet_notfound); - - // fields - V.ifEmpty(model.getExternalId(), PocketErrors.wallet_externalid_empty); - V.ifEmpty(model.getEntityKey(), PocketErrors.wallet_entitykey_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - - var pocket = AppModules.pocket.getController(); - var walletStore = pocket.getWalletStore(); - - // edit - entity = walletStore.ensure(getContext(), argModel, PocketErrors.wallet_notfound); - - editEntity(); - - entity = saveEntity(); - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private void editEntity() { - - var model = getArgument().getEntity(); - - // fields - entity.setExternalId(V.firstNotEmpty(model.getExternalId(), entity.getExternalId())); - entity.setEntityKey(V.firstNotEmpty(model.getEntityKey(), entity.getEntityKey())); - - - } - - // ::: save - // - private WalletEntity saveEntity() { - - var store = AppModules.pocket.getController().getWalletStore(); - - var saved = store.edit(getContext(), entity); - getContext().attach(saved.getId(), saved); - return saved; - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletEditArgument.java b/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletEditArgument.java deleted file mode 100644 index f685481..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletEditArgument.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.wallet; - -// app -import io.kumare.iqr.mod.pocket.store.wallet.WalletEntity; - -/** - * - * @author afatecha - */ -public class WalletEditArgument extends WalletActionArgument { - - // ::: vars - // - - - // ::: constructors - // - public WalletEditArgument() { - } - - public WalletEditArgument(WalletEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletEnableAction.java b/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletEnableAction.java deleted file mode 100644 index 34392cf..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletEnableAction.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.wallet; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.pocket.PocketErrors; -// entity -import io.kumare.iqr.mod.pocket.store.wallet.WalletEntity; - - -/** - * - * @author afatecha - */ -public class WalletEnableAction extends AppAction { - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), PocketErrors.wallet_notfound); - V.ifNull(getArgument().getEntity().getId(), PocketErrors.wallet_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - - enableEntity(model); - } - - @Override - protected void setResultOnly() { - } - - // ::: enable - // - private void enableEntity(WalletEntity model) { - - var store = AppModules.pocket.getController().getWalletStore(); - - if (getArgument().getEntity().isActive()) { - store.enableById(getContext(), model.getId()); - } else { - store.disableById(getContext(), model.getId()); - } - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletFindAction.java b/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletFindAction.java deleted file mode 100644 index 42fa7b8..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletFindAction.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.wallet; - -// java -import java.util.HashMap; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.pocket.PocketErrors; -// entity -import io.kumare.iqr.mod.pocket.store.wallet.WalletEntity; - - -/** - * - * @author afatecha - */ -public class WalletFindAction extends AppAction { - - // ::: vars - // - private WalletEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), PocketErrors.wallet_notfound); - V.ifNull(getArgument().getEntity().getId(), PocketErrors.wallet_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - entity = findEntity(model); - } - - @Override - protected void setResultOnly() { - var result = new HashMap(); - result.put("entity", entity); - setResult(result); - } - - // ::: find - // - private WalletEntity findEntity(WalletEntity model) { - - var store = AppModules.pocket.getController().getWalletStore(); - return store.findById(getContext(), model.getId()); - } - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletListAction.java b/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletListAction.java deleted file mode 100644 index b254bad..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletListAction.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.wallet; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.LinkedList; -import java.util.Map; -// spring -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// entity -import io.kumare.iqr.mod.pocket.store.wallet.WalletEntity; -import io.kumare.iqr.mod.pocket.store.wallet.WalletMapBuilder; - - -/** - * - * @author afatecha - */ -public class WalletListAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private final List entities = new LinkedList<>(); - - // ::: public api - // - public List getEntities() { - return entities; - } - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - } - - @Override - protected void doAction() { - - result.put("pageable", getArgument().isPageable()); - result.put("wrapped", getArgument().isWrapped()); - - if (getArgument().isPageable()) { - - var page = makePage(); - entities.addAll(page.toList()); - - if (getArgument().isWrapped()) { - result.put("page", makeWrappedPage(page)); - } else { - result.put("page", page); - } - - } else { - - var list = makeList(); - entities.addAll(list); - - if (getArgument().isWrapped()) { - result.put("list", makeWrappedList()); - } else { - result.put("list", list); - } - } - - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: page - // - private Page makePage() { - - var page = getArgument().getPageNumber(); - var size = getArgument().getPageSize(); - //var sort = getArgument().getSort(); - - var pageable = PageRequest.of(page, size); - - var store = AppModules.pocket.getController().getWalletStore(); - return store.getRepository().findAll(pageable); - } - - // ::: wrapped page - // - private Map makeWrappedPage(Page found) { - - var page = new HashMap(); - var content = new LinkedList(); - - wrapList(entities, content); - - page.put("size", found.getSize()); - page.put("number", found.getNumber()); - page.put("totalElements", found.getTotalElements()); - page.put("totalPages", found.getTotalPages()); - page.put("content", content); - - return page; - } - - - // ::: list - // - - private List makeList() { - - var store = AppModules.pocket.getController().getWalletStore(); - - return store.listAll(getContext()); - } - - // ::: wrapped list - private List makeWrappedList() { - var list = new LinkedList(); - - wrapList(entities, list); - - return list; - } - - // ::: wrapper - // - private void wrapList(List found, List output) { - - var builder = new WalletMapBuilder().addListGroup(); - - - output.addAll(builder.build(getContext(), found)); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletListArgument.java b/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletListArgument.java deleted file mode 100644 index ade6d8a..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletListArgument.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.wallet; - -// app -import io.kumare.iqr.app.action.AppListActionArgument; -// store -import io.kumare.iqr.mod.pocket.store.wallet.WalletEntity; - -/** - * - * @author afatecha - */ -public class WalletListArgument extends AppListActionArgument { - - // ::: vars - // - - // ::: constructors - // - public WalletListArgument() { - } - - public WalletListArgument(WalletEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletPreloadAction.java b/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletPreloadAction.java deleted file mode 100644 index 1f04f0d..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletPreloadAction.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.wallet; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.pocket.PocketErrors; -// entity -import io.kumare.iqr.mod.pocket.store.wallet.WalletEntity; -// relations - - -/** - * - * @author afatecha - */ -public class WalletPreloadAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private Map params = new HashMap<>(); - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifEmpty(getArgument().getAction(), PocketErrors.wallet_preload_empty); - } - - @Override - protected void doAction() { - if(getArgument().getParams() != null) { - params = getArgument().getParams(); - } - - switch (getArgument().getAction()) { - case "find" -> - prepareFind(); - case "list" -> - prepareList(); - case "add" -> - prepareAdd(); - case "edit" -> - prepareEdit(); - } - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: preload - // - private void prepareAdd() { - - } - - private void prepareEdit() { - var entity = findEntity(); - result.put("entity", entity); - - } - - private void prepareList() { - } - - private void prepareFind() { - var entity = findEntity(); - result.put("entity", entity); - - } - - // ::: queries - // - private WalletEntity findEntity() { - var store = AppModules.pocket.getController().getWalletStore(); - - var id = (String) params.get("id"); - if(id == null && getArgument().getEntity() != null) { - id = getArgument().getEntity().getId(); - } - return store.findById(getContext(), id); - } - - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletPreloadArgument.java b/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletPreloadArgument.java deleted file mode 100644 index 59c5805..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/wallet/WalletPreloadArgument.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.wallet; - -/** - * - * @author afatecha - */ -public class WalletPreloadArgument extends WalletActionArgument { - - // ::: vars - // - private String action; - - // ::: fields - // - public String getAction() { - return action; - } - - public void setAction(String action) { - this.action = action; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementActionArgument.java b/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementActionArgument.java deleted file mode 100644 index 915ed02..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementActionArgument.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.walletmovement; - -// base -import io.kumare.iqr.app.action.AppEntityActionArgument; -// entity -import io.kumare.iqr.mod.pocket.store.walletmovement.WalletMovementEntity; - -/** - * - * @author afatecha - */ -public class WalletMovementActionArgument extends AppEntityActionArgument { - - // ::: constructors - // - public WalletMovementActionArgument() { - } - - public WalletMovementActionArgument(WalletMovementEntity entity) { - super(entity); - } - - // ::: api - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementAddAction.java b/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementAddAction.java deleted file mode 100644 index 407aaa8..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementAddAction.java +++ /dev/null @@ -1,137 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.walletmovement; - - -// lib -import io.kumare.lib.base.server.spring.action.Actions; -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.pocket.PocketErrors; -// entity -import io.kumare.iqr.mod.pocket.store.walletmovement.WalletMovementEntity; -import io.kumare.iqr.mod.pocket.store.wallet.WalletEntity; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; -import io.kumare.iqr.mod.pocket.store.walletslot.WalletSlotEntity; - - -/** - * - * @author afatecha - */ -public class WalletMovementAddAction extends AppAction> { - - // ::: vars - // - private WalletMovementEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, PocketErrors.walletmovement_notfound); - - // relations - V.ifNull(model.getWallet(), PocketErrors.walletmovement_wallet_notfound); - V.ifNull(model.getWalletSlot(), PocketErrors.walletmovement_walletslot_notfound); - V.ifNull(model.getType(), PocketErrors.walletmovement_type_notfound); - V.ifNull(model.getState(), PocketErrors.walletmovement_state_notfound); - - // fields - V.ifEmpty(model.getExternalId(), PocketErrors.walletmovement_externalid_empty); - V.ifEmpty(model.getTypeValue(), PocketErrors.walletmovement_typevalue_empty); - V.ifEmpty(model.getStateValue(), PocketErrors.walletmovement_statevalue_empty); - V.ifEmpty(model.getDoneDate(), PocketErrors.walletmovement_donedate_empty); - V.ifEmpty(model.getValue(), PocketErrors.walletmovement_value_empty); - V.ifEmpty(model.getUnsignedValue(), PocketErrors.walletmovement_unsignedvalue_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - var taxonomy = AppModules.taxonomy.getController(); - var pocket = AppModules.pocket.getController(); - - var walletStore = pocket.getWalletStore(); - var taxonStore = taxonomy.getTaxonStore(); - var walletSlotStore = pocket.getWalletSlotStore(); - - var wallet = walletStore.ensure(getContext(), argModel.getWallet(), PocketErrors.walletmovement_wallet_notfound); - var walletSlot = walletSlotStore.ensure(getContext(), argModel.getWalletSlot(), PocketErrors.walletmovement_walletslot_notfound); - var type = taxonStore.ensure(getContext(), argModel.getType(), PocketErrors.walletmovement_type_notfound); - var state = taxonStore.ensure(getContext(), argModel.getState(), PocketErrors.walletmovement_state_notfound); - - // model - var model = makeModel(wallet, walletSlot, type, state); - - // add - entity = saveEntity(model); - - // add others - - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private WalletMovementEntity makeModel(WalletEntity wallet, WalletSlotEntity walletSlot, TaxonEntity type, TaxonEntity state) { - - var argModel = getArgument().getEntity(); - var model = new WalletMovementEntity(); - - // relations - model.setWallet(wallet); - model.setWalletSlot(walletSlot); - model.setType(type); - model.setState(state); - - // fields - model.setExternalId(argModel.getExternalId()); - model.setTypeValue(argModel.getTypeValue()); - model.setStateValue(argModel.getStateValue()); - model.setDoneDate(argModel.getDoneDate()); - model.setValue(argModel.getValue()); - model.setUnsignedValue(argModel.getUnsignedValue()); - model.setActive(true); - - - - return model; - } - - // ::: save - // - private WalletMovementEntity saveEntity(WalletMovementEntity model) { - - var store = AppModules.pocket.getController().getWalletMovementStore(); - - var saved = store.add(getContext(), model); - getContext().attach(saved.getId(), saved); - return saved; - } - - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementAddArgument.java b/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementAddArgument.java deleted file mode 100644 index 72b011a..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementAddArgument.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.walletmovement; - - -// app -import io.kumare.iqr.mod.pocket.store.walletmovement.WalletMovementEntity; - - -/** - * - * @author afatecha - */ -public class WalletMovementAddArgument extends WalletMovementActionArgument { - - // ::: vars - // - - - // ::: constructors - // - public WalletMovementAddArgument() { - } - - public WalletMovementAddArgument(WalletMovementEntity entity) { - super(entity); - } - - // ::: fields - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementDeleteAction.java b/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementDeleteAction.java deleted file mode 100644 index eb3d277..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementDeleteAction.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.walletmovement; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.pocket.PocketErrors; -// entity -import io.kumare.iqr.mod.pocket.store.walletmovement.WalletMovementEntity; - -/** - * - * @author afatecha - */ -public class WalletMovementDeleteAction extends AppAction> { - - // ::: vars - // - private WalletMovementEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), PocketErrors.walletmovement_notfound); - V.ifNull(getArgument().getEntity().getId(), PocketErrors.walletmovement_notfound); - } - - @Override - protected void doAction() { - - var argModel = getArgument().getEntity(); - - deleteEntity(argModel); - } - - @Override - protected void setResultOnly() { - } - - // ::: delete - // - private void deleteEntity(WalletMovementEntity model) { - - var store = AppModules.pocket.getController().getWalletMovementStore(); - - store.deleteById(getContext(), model.getId()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementEditAction.java b/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementEditAction.java deleted file mode 100644 index e212fd0..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementEditAction.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.walletmovement; - -// lib -import io.kumare.lib.v.V; -// app -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.pocket.PocketErrors; -// entity -import io.kumare.iqr.mod.pocket.store.walletmovement.WalletMovementEntity; - -/** - * - * @author afatecha - */ -public class WalletMovementEditAction extends AppAction> { - - // ::: vars - // - private WalletMovementEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, PocketErrors.walletmovement_notfound); - - // fields - V.ifEmpty(model.getExternalId(), PocketErrors.walletmovement_externalid_empty); - V.ifEmpty(model.getTypeValue(), PocketErrors.walletmovement_typevalue_empty); - V.ifEmpty(model.getStateValue(), PocketErrors.walletmovement_statevalue_empty); - V.ifEmpty(model.getDoneDate(), PocketErrors.walletmovement_donedate_empty); - V.ifEmpty(model.getValue(), PocketErrors.walletmovement_value_empty); - V.ifEmpty(model.getUnsignedValue(), PocketErrors.walletmovement_unsignedvalue_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - - var pocket = AppModules.pocket.getController(); - var walletMovementStore = pocket.getWalletMovementStore(); - - // edit - entity = walletMovementStore.ensure(getContext(), argModel, PocketErrors.walletmovement_notfound); - - editEntity(); - - entity = saveEntity(); - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private void editEntity() { - - var model = getArgument().getEntity(); - - // fields - entity.setExternalId(V.firstNotEmpty(model.getExternalId(), entity.getExternalId())); - entity.setTypeValue(V.firstNotEmpty(model.getTypeValue(), entity.getTypeValue())); - entity.setStateValue(V.firstNotEmpty(model.getStateValue(), entity.getStateValue())); - entity.setDoneDate(V.firstNotEmpty(model.getDoneDate(), entity.getDoneDate())); - entity.setValue(V.firstNotEmpty(model.getValue(), entity.getValue())); - entity.setUnsignedValue(V.firstNotEmpty(model.getUnsignedValue(), entity.getUnsignedValue())); - - - } - - // ::: save - // - private WalletMovementEntity saveEntity() { - - var store = AppModules.pocket.getController().getWalletMovementStore(); - - var saved = store.edit(getContext(), entity); - getContext().attach(saved.getId(), saved); - return saved; - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementEditArgument.java b/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementEditArgument.java deleted file mode 100644 index f6979ae..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementEditArgument.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.walletmovement; - -// app -import io.kumare.iqr.mod.pocket.store.walletmovement.WalletMovementEntity; - -/** - * - * @author afatecha - */ -public class WalletMovementEditArgument extends WalletMovementActionArgument { - - // ::: vars - // - - - // ::: constructors - // - public WalletMovementEditArgument() { - } - - public WalletMovementEditArgument(WalletMovementEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementEnableAction.java b/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementEnableAction.java deleted file mode 100644 index 80b52da..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementEnableAction.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.walletmovement; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.pocket.PocketErrors; -// entity -import io.kumare.iqr.mod.pocket.store.walletmovement.WalletMovementEntity; - - -/** - * - * @author afatecha - */ -public class WalletMovementEnableAction extends AppAction { - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), PocketErrors.walletmovement_notfound); - V.ifNull(getArgument().getEntity().getId(), PocketErrors.walletmovement_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - - enableEntity(model); - } - - @Override - protected void setResultOnly() { - } - - // ::: enable - // - private void enableEntity(WalletMovementEntity model) { - - var store = AppModules.pocket.getController().getWalletMovementStore(); - - if (getArgument().getEntity().isActive()) { - store.enableById(getContext(), model.getId()); - } else { - store.disableById(getContext(), model.getId()); - } - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementFindAction.java b/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementFindAction.java deleted file mode 100644 index b3b0be2..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementFindAction.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.walletmovement; - -// java -import java.util.HashMap; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.pocket.PocketErrors; -// entity -import io.kumare.iqr.mod.pocket.store.walletmovement.WalletMovementEntity; - - -/** - * - * @author afatecha - */ -public class WalletMovementFindAction extends AppAction { - - // ::: vars - // - private WalletMovementEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), PocketErrors.walletmovement_notfound); - V.ifNull(getArgument().getEntity().getId(), PocketErrors.walletmovement_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - entity = findEntity(model); - } - - @Override - protected void setResultOnly() { - var result = new HashMap(); - result.put("entity", entity); - setResult(result); - } - - // ::: find - // - private WalletMovementEntity findEntity(WalletMovementEntity model) { - - var store = AppModules.pocket.getController().getWalletMovementStore(); - return store.findById(getContext(), model.getId()); - } - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementListAction.java b/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementListAction.java deleted file mode 100644 index a38bb77..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementListAction.java +++ /dev/null @@ -1,151 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.walletmovement; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.LinkedList; -import java.util.Map; -// spring -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// entity -import io.kumare.iqr.mod.pocket.store.walletmovement.WalletMovementEntity; -import io.kumare.iqr.mod.pocket.store.walletmovement.WalletMovementMapBuilder; - - -/** - * - * @author afatecha - */ -public class WalletMovementListAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private final List entities = new LinkedList<>(); - - // ::: public api - // - public List getEntities() { - return entities; - } - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - } - - @Override - protected void doAction() { - - result.put("pageable", getArgument().isPageable()); - result.put("wrapped", getArgument().isWrapped()); - - if (getArgument().isPageable()) { - - var page = makePage(); - entities.addAll(page.toList()); - - if (getArgument().isWrapped()) { - result.put("page", makeWrappedPage(page)); - } else { - result.put("page", page); - } - - } else { - - var list = makeList(); - entities.addAll(list); - - if (getArgument().isWrapped()) { - result.put("list", makeWrappedList()); - } else { - result.put("list", list); - } - } - - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: page - // - private Page makePage() { - - var page = getArgument().getPageNumber(); - var size = getArgument().getPageSize(); - //var sort = getArgument().getSort(); - - var pageable = PageRequest.of(page, size); - - var store = AppModules.pocket.getController().getWalletMovementStore(); - return store.getRepository().findAll(pageable); - } - - // ::: wrapped page - // - private Map makeWrappedPage(Page found) { - - var page = new HashMap(); - var content = new LinkedList(); - - wrapList(entities, content); - - page.put("size", found.getSize()); - page.put("number", found.getNumber()); - page.put("totalElements", found.getTotalElements()); - page.put("totalPages", found.getTotalPages()); - page.put("content", content); - - return page; - } - - - // ::: list - // - - private List makeList() { - - var store = AppModules.pocket.getController().getWalletMovementStore(); - - return store.listAll(getContext()); - } - - // ::: wrapped list - private List makeWrappedList() { - var list = new LinkedList(); - - wrapList(entities, list); - - return list; - } - - // ::: wrapper - // - private void wrapList(List found, List output) { - - var builder = new WalletMovementMapBuilder().addListGroup(); - builder.getWalletBuilder().addMainGroup(); - builder.getWalletSlotBuilder().addMainGroup(); - builder.getTypeBuilder().addMainGroup(); - builder.getStateBuilder().addMainGroup(); - - output.addAll(builder.build(getContext(), found)); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementListArgument.java b/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementListArgument.java deleted file mode 100644 index df604fa..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementListArgument.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.walletmovement; - -// app -import io.kumare.iqr.app.action.AppListActionArgument; -// store -import io.kumare.iqr.mod.pocket.store.walletmovement.WalletMovementEntity; - -/** - * - * @author afatecha - */ -public class WalletMovementListArgument extends AppListActionArgument { - - // ::: vars - // - - // ::: constructors - // - public WalletMovementListArgument() { - } - - public WalletMovementListArgument(WalletMovementEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementPreloadAction.java b/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementPreloadAction.java deleted file mode 100644 index e2d9955..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementPreloadAction.java +++ /dev/null @@ -1,125 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.walletmovement; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.pocket.PocketErrors; -// entity -import io.kumare.iqr.mod.pocket.store.walletmovement.WalletMovementEntity; -// relations -import io.kumare.iqr.mod.pocket.store.wallet.WalletEntity; -import io.kumare.iqr.mod.pocket.store.walletslot.WalletSlotEntity; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; - -/** - * - * @author afatecha - */ -public class WalletMovementPreloadAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private Map params = new HashMap<>(); - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifEmpty(getArgument().getAction(), PocketErrors.walletmovement_preload_empty); - } - - @Override - protected void doAction() { - if(getArgument().getParams() != null) { - params = getArgument().getParams(); - } - - switch (getArgument().getAction()) { - case "find" -> - prepareFind(); - case "list" -> - prepareList(); - case "add" -> - prepareAdd(); - case "edit" -> - prepareEdit(); - } - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: preload - // - private void prepareAdd() { - result.put("taxons", listTaxons()); - result.put("walletSlots", listWalletSlots()); - result.put("wallets", listWallets()); - } - - private void prepareEdit() { - var entity = findEntity(); - result.put("entity", entity); - result.put("wallet", entity.getWallet()); - result.put("walletSlot", entity.getWalletSlot()); - result.put("type", entity.getType()); - result.put("state", entity.getState()); - } - - private void prepareList() { - } - - private void prepareFind() { - var entity = findEntity(); - result.put("entity", entity); - result.put("wallet", entity.getWallet()); - result.put("walletSlot", entity.getWalletSlot()); - result.put("type", entity.getType()); - result.put("state", entity.getState()); - } - - // ::: queries - // - private WalletMovementEntity findEntity() { - var store = AppModules.pocket.getController().getWalletMovementStore(); - - var id = (String) params.get("id"); - if(id == null && getArgument().getEntity() != null) { - id = getArgument().getEntity().getId(); - } - return store.findById(getContext(), id); - } - - public List listWalletSlots() { - var store = AppModules.pocket.getController().getWalletSlotStore(); - - return store.listAll(getContext()); - } - public List listTaxons() { - var store = AppModules.taxonomy.getController().getTaxonStore(); - - return store.listAll(getContext()); - } - public List listWallets() { - var store = AppModules.pocket.getController().getWalletStore(); - - return store.listAll(getContext()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementPreloadArgument.java b/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementPreloadArgument.java deleted file mode 100644 index 449f599..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/walletmovement/WalletMovementPreloadArgument.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.walletmovement; - -/** - * - * @author afatecha - */ -public class WalletMovementPreloadArgument extends WalletMovementActionArgument { - - // ::: vars - // - private String action; - - // ::: fields - // - public String getAction() { - return action; - } - - public void setAction(String action) { - this.action = action; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotActionArgument.java b/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotActionArgument.java deleted file mode 100644 index 4b52b47..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotActionArgument.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.walletslot; - -// base -import io.kumare.iqr.app.action.AppEntityActionArgument; -// entity -import io.kumare.iqr.mod.pocket.store.walletslot.WalletSlotEntity; - -/** - * - * @author afatecha - */ -public class WalletSlotActionArgument extends AppEntityActionArgument { - - // ::: constructors - // - public WalletSlotActionArgument() { - } - - public WalletSlotActionArgument(WalletSlotEntity entity) { - super(entity); - } - - // ::: api - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotAddAction.java b/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotAddAction.java deleted file mode 100644 index dac4d30..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotAddAction.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.walletslot; - - -// lib -import io.kumare.lib.base.server.spring.action.Actions; -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.pocket.PocketErrors; -// entity -import io.kumare.iqr.mod.pocket.store.walletslot.WalletSlotEntity; -import io.kumare.iqr.mod.pocket.store.wallet.WalletEntity; - - -/** - * - * @author afatecha - */ -public class WalletSlotAddAction extends AppAction> { - - // ::: vars - // - private WalletSlotEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, PocketErrors.walletslot_notfound); - - // relations - V.ifNull(model.getWallet(), PocketErrors.walletslot_wallet_notfound); - - // fields - V.ifEmpty(model.getEntityKey(), PocketErrors.walletslot_entitykey_empty); - V.ifEmpty(model.getConceptKey(), PocketErrors.walletslot_conceptkey_empty); - V.ifEmpty(model.getPoints(), PocketErrors.walletslot_points_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - var pocket = AppModules.pocket.getController(); - - var walletStore = pocket.getWalletStore(); - - var wallet = walletStore.ensure(getContext(), argModel.getWallet(), PocketErrors.walletslot_wallet_notfound); - - // model - var model = makeModel(wallet); - - // add - entity = saveEntity(model); - - // add others - - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private WalletSlotEntity makeModel(WalletEntity wallet) { - - var argModel = getArgument().getEntity(); - var model = new WalletSlotEntity(); - - // relations - model.setWallet(wallet); - - // fields - model.setEntityKey(argModel.getEntityKey()); - model.setConceptKey(argModel.getConceptKey()); - model.setPoints(argModel.getPoints()); - model.setActive(true); - - - - return model; - } - - // ::: save - // - private WalletSlotEntity saveEntity(WalletSlotEntity model) { - - var store = AppModules.pocket.getController().getWalletSlotStore(); - - var saved = store.add(getContext(), model); - getContext().attach(saved.getId(), saved); - return saved; - } - - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotAddArgument.java b/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotAddArgument.java deleted file mode 100644 index 8641cc7..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotAddArgument.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.walletslot; - - -// app -import io.kumare.iqr.mod.pocket.store.walletslot.WalletSlotEntity; - - -/** - * - * @author afatecha - */ -public class WalletSlotAddArgument extends WalletSlotActionArgument { - - // ::: vars - // - - - // ::: constructors - // - public WalletSlotAddArgument() { - } - - public WalletSlotAddArgument(WalletSlotEntity entity) { - super(entity); - } - - // ::: fields - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotDeleteAction.java b/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotDeleteAction.java deleted file mode 100644 index 3154bd4..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotDeleteAction.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.walletslot; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.pocket.PocketErrors; -// entity -import io.kumare.iqr.mod.pocket.store.walletslot.WalletSlotEntity; - -/** - * - * @author afatecha - */ -public class WalletSlotDeleteAction extends AppAction> { - - // ::: vars - // - private WalletSlotEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), PocketErrors.walletslot_notfound); - V.ifNull(getArgument().getEntity().getId(), PocketErrors.walletslot_notfound); - } - - @Override - protected void doAction() { - - var argModel = getArgument().getEntity(); - - deleteEntity(argModel); - } - - @Override - protected void setResultOnly() { - } - - // ::: delete - // - private void deleteEntity(WalletSlotEntity model) { - - var store = AppModules.pocket.getController().getWalletSlotStore(); - - store.deleteById(getContext(), model.getId()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotEditAction.java b/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotEditAction.java deleted file mode 100644 index 38aa8fb..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotEditAction.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.walletslot; - -// lib -import io.kumare.lib.v.V; -// app -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.pocket.PocketErrors; -// entity -import io.kumare.iqr.mod.pocket.store.walletslot.WalletSlotEntity; - -/** - * - * @author afatecha - */ -public class WalletSlotEditAction extends AppAction> { - - // ::: vars - // - private WalletSlotEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, PocketErrors.walletslot_notfound); - - // fields - V.ifEmpty(model.getEntityKey(), PocketErrors.walletslot_entitykey_empty); - V.ifEmpty(model.getConceptKey(), PocketErrors.walletslot_conceptkey_empty); - V.ifEmpty(model.getPoints(), PocketErrors.walletslot_points_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - - var pocket = AppModules.pocket.getController(); - var walletSlotStore = pocket.getWalletSlotStore(); - - // edit - entity = walletSlotStore.ensure(getContext(), argModel, PocketErrors.walletslot_notfound); - - editEntity(); - - entity = saveEntity(); - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private void editEntity() { - - var model = getArgument().getEntity(); - - // fields - entity.setEntityKey(V.firstNotEmpty(model.getEntityKey(), entity.getEntityKey())); - entity.setConceptKey(V.firstNotEmpty(model.getConceptKey(), entity.getConceptKey())); - entity.setPoints(V.firstNotEmpty(model.getPoints(), entity.getPoints())); - - - } - - // ::: save - // - private WalletSlotEntity saveEntity() { - - var store = AppModules.pocket.getController().getWalletSlotStore(); - - var saved = store.edit(getContext(), entity); - getContext().attach(saved.getId(), saved); - return saved; - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotEditArgument.java b/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotEditArgument.java deleted file mode 100644 index 211f6cd..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotEditArgument.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.walletslot; - -// app -import io.kumare.iqr.mod.pocket.store.walletslot.WalletSlotEntity; - -/** - * - * @author afatecha - */ -public class WalletSlotEditArgument extends WalletSlotActionArgument { - - // ::: vars - // - - - // ::: constructors - // - public WalletSlotEditArgument() { - } - - public WalletSlotEditArgument(WalletSlotEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotEnableAction.java b/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotEnableAction.java deleted file mode 100644 index 128a9e4..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotEnableAction.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.walletslot; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.pocket.PocketErrors; -// entity -import io.kumare.iqr.mod.pocket.store.walletslot.WalletSlotEntity; - - -/** - * - * @author afatecha - */ -public class WalletSlotEnableAction extends AppAction { - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), PocketErrors.walletslot_notfound); - V.ifNull(getArgument().getEntity().getId(), PocketErrors.walletslot_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - - enableEntity(model); - } - - @Override - protected void setResultOnly() { - } - - // ::: enable - // - private void enableEntity(WalletSlotEntity model) { - - var store = AppModules.pocket.getController().getWalletSlotStore(); - - if (getArgument().getEntity().isActive()) { - store.enableById(getContext(), model.getId()); - } else { - store.disableById(getContext(), model.getId()); - } - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotFindAction.java b/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotFindAction.java deleted file mode 100644 index 23f5900..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotFindAction.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.walletslot; - -// java -import java.util.HashMap; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.pocket.PocketErrors; -// entity -import io.kumare.iqr.mod.pocket.store.walletslot.WalletSlotEntity; - - -/** - * - * @author afatecha - */ -public class WalletSlotFindAction extends AppAction { - - // ::: vars - // - private WalletSlotEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), PocketErrors.walletslot_notfound); - V.ifNull(getArgument().getEntity().getId(), PocketErrors.walletslot_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - entity = findEntity(model); - } - - @Override - protected void setResultOnly() { - var result = new HashMap(); - result.put("entity", entity); - setResult(result); - } - - // ::: find - // - private WalletSlotEntity findEntity(WalletSlotEntity model) { - - var store = AppModules.pocket.getController().getWalletSlotStore(); - return store.findById(getContext(), model.getId()); - } - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotListAction.java b/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotListAction.java deleted file mode 100644 index 3aaad29..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotListAction.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.walletslot; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.LinkedList; -import java.util.Map; -// spring -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// entity -import io.kumare.iqr.mod.pocket.store.walletslot.WalletSlotEntity; -import io.kumare.iqr.mod.pocket.store.walletslot.WalletSlotMapBuilder; - - -/** - * - * @author afatecha - */ -public class WalletSlotListAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private final List entities = new LinkedList<>(); - - // ::: public api - // - public List getEntities() { - return entities; - } - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - } - - @Override - protected void doAction() { - - result.put("pageable", getArgument().isPageable()); - result.put("wrapped", getArgument().isWrapped()); - - if (getArgument().isPageable()) { - - var page = makePage(); - entities.addAll(page.toList()); - - if (getArgument().isWrapped()) { - result.put("page", makeWrappedPage(page)); - } else { - result.put("page", page); - } - - } else { - - var list = makeList(); - entities.addAll(list); - - if (getArgument().isWrapped()) { - result.put("list", makeWrappedList()); - } else { - result.put("list", list); - } - } - - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: page - // - private Page makePage() { - - var page = getArgument().getPageNumber(); - var size = getArgument().getPageSize(); - //var sort = getArgument().getSort(); - - var pageable = PageRequest.of(page, size); - - var store = AppModules.pocket.getController().getWalletSlotStore(); - return store.getRepository().findAll(pageable); - } - - // ::: wrapped page - // - private Map makeWrappedPage(Page found) { - - var page = new HashMap(); - var content = new LinkedList(); - - wrapList(entities, content); - - page.put("size", found.getSize()); - page.put("number", found.getNumber()); - page.put("totalElements", found.getTotalElements()); - page.put("totalPages", found.getTotalPages()); - page.put("content", content); - - return page; - } - - - // ::: list - // - - private List makeList() { - - var store = AppModules.pocket.getController().getWalletSlotStore(); - - return store.listAll(getContext()); - } - - // ::: wrapped list - private List makeWrappedList() { - var list = new LinkedList(); - - wrapList(entities, list); - - return list; - } - - // ::: wrapper - // - private void wrapList(List found, List output) { - - var builder = new WalletSlotMapBuilder().addListGroup(); - builder.getWalletBuilder().addMainGroup(); - - output.addAll(builder.build(getContext(), found)); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotListArgument.java b/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotListArgument.java deleted file mode 100644 index dccd29f..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotListArgument.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.walletslot; - -// app -import io.kumare.iqr.app.action.AppListActionArgument; -// store -import io.kumare.iqr.mod.pocket.store.walletslot.WalletSlotEntity; - -/** - * - * @author afatecha - */ -public class WalletSlotListArgument extends AppListActionArgument { - - // ::: vars - // - - // ::: constructors - // - public WalletSlotListArgument() { - } - - public WalletSlotListArgument(WalletSlotEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotPreloadAction.java b/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotPreloadAction.java deleted file mode 100644 index 02fc0b5..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotPreloadAction.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.walletslot; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.pocket.PocketErrors; -// entity -import io.kumare.iqr.mod.pocket.store.walletslot.WalletSlotEntity; -// relations -import io.kumare.iqr.mod.pocket.store.wallet.WalletEntity; - -/** - * - * @author afatecha - */ -public class WalletSlotPreloadAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private Map params = new HashMap<>(); - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifEmpty(getArgument().getAction(), PocketErrors.walletslot_preload_empty); - } - - @Override - protected void doAction() { - if(getArgument().getParams() != null) { - params = getArgument().getParams(); - } - - switch (getArgument().getAction()) { - case "find" -> - prepareFind(); - case "list" -> - prepareList(); - case "add" -> - prepareAdd(); - case "edit" -> - prepareEdit(); - } - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: preload - // - private void prepareAdd() { - result.put("wallets", listWallets()); - } - - private void prepareEdit() { - var entity = findEntity(); - result.put("entity", entity); - result.put("wallet", entity.getWallet()); - } - - private void prepareList() { - } - - private void prepareFind() { - var entity = findEntity(); - result.put("entity", entity); - result.put("wallet", entity.getWallet()); - } - - // ::: queries - // - private WalletSlotEntity findEntity() { - var store = AppModules.pocket.getController().getWalletSlotStore(); - - var id = (String) params.get("id"); - if(id == null && getArgument().getEntity() != null) { - id = getArgument().getEntity().getId(); - } - return store.findById(getContext(), id); - } - - public List listWallets() { - var store = AppModules.pocket.getController().getWalletStore(); - - return store.listAll(getContext()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotPreloadArgument.java b/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotPreloadArgument.java deleted file mode 100644 index 6b09f4f..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/action/walletslot/WalletSlotPreloadArgument.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.action.walletslot; - -/** - * - * @author afatecha - */ -public class WalletSlotPreloadArgument extends WalletSlotActionArgument { - - // ::: vars - // - private String action; - - // ::: fields - // - public String getAction() { - return action; - } - - public void setAction(String action) { - this.action = action; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/endpoint/rest/AbstractWalletMovementRest.java b/src/main/java/io/kumare/iqr/mod/pocket/endpoint/rest/AbstractWalletMovementRest.java deleted file mode 100644 index ab531ef..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/endpoint/rest/AbstractWalletMovementRest.java +++ /dev/null @@ -1,214 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.endpoint.rest; - -// java -import java.util.Map; -// openapi -import io.swagger.v3.oas.annotations.*; -import io.swagger.v3.oas.annotations.media.*; -import io.swagger.v3.oas.annotations.responses.*; -// spring -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; -// base -import io.kumare.lib.app.api.operation.TransactionType; -import io.kumare.lib.app.api.security.PermissionReference; -// app -import io.kumare.iqr.app.endpoint.rest.AppEndpointRest; -import io.kumare.iqr.app.action.*; -// module -import io.kumare.iqr.mod.pocket.PocketPermissions; -import io.kumare.iqr.mod.pocket.store.walletmovement.WalletMovementEntity; -import io.kumare.iqr.mod.pocket.action.walletmovement.*; - -/** -* -* @author afatecha -*/ -public abstract class AbstractWalletMovementRest extends AppEndpointRest { - - // ::: DEFAULT PERMISSIONS - // - protected PermissionReference getPermission(String action, String ref, Object extra) { - switch (action) { - case null -> { - return null; - } - case "add" -> { - return PocketPermissions.wallet_movement_worker.toReference(ref); - } - case "edit" -> { - return PocketPermissions.wallet_movement_worker.toReference(ref); - } - case "enable" -> { - return PocketPermissions.wallet_movement_manager.toReference(ref); - } - case "disable" -> { - return PocketPermissions.wallet_movement_manager.toReference(ref); - } - case "delete" -> { - return PocketPermissions.wallet_movement_manager.toReference(ref); - } - case "find" -> { - return PocketPermissions.wallet_movement_viewer.toReference(ref); - } - case "list" -> { - return PocketPermissions.wallet_movement_viewer.toReference(ref); - } - default -> { - return null; - } - } - } - - - // ::: ADD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "wallet movement add operation", description = "") - // - @PostMapping - public ResponseEntity add(@RequestBody WalletMovementAddArgument arg) { - - var permission = getPermission("add", null, arg); - return handle(new WalletMovementAddAction(), arg, permission, TransactionType.service); - } - - // ::: EDIT - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "wallet movement edit operation", description = "") - // - @PutMapping("/{id}") - public ResponseEntity edit(@PathVariable("id") String id, - @RequestBody WalletMovementEditArgument arg) { - - arg.getEntity().id(id); - - var permission = getPermission("edit", id, arg); - return handle(new WalletMovementEditAction(), arg, permission, TransactionType.service); - } - - // ::: FIND - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "wallet movement find operation", description = "") - // - @GetMapping("/{id}") - public ResponseEntity find(@PathVariable("id") String id, - @ModelAttribute WalletMovementActionArgument arg) { - - - arg = arg == null ? new WalletMovementActionArgument() : arg; - - arg.entity(new WalletMovementEntity(id)); - - var permission = getPermission("find", id, arg); - return handle(new WalletMovementFindAction(), arg, permission); - } - - // ::: ENABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "wallet movement enable operation", description = "") - // - @PutMapping("/{id}/enable") - public ResponseEntity enable(@PathVariable("id") String id) { - - var arg = new WalletMovementActionArgument(); - arg.setEntity(new WalletMovementEntity(id)); - arg.getEntity().setActive(true); - - var permission = getPermission("disable", id, arg); - return handle(new WalletMovementEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: DISABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "wallet movement disable operation", description = "") - // - @PutMapping("/{id}/disable") - public ResponseEntity disable(@PathVariable("id") String id) { - - var arg = new WalletMovementActionArgument(); - arg.setEntity(new WalletMovementEntity(id)); - arg.getEntity().setActive(false); - - var permission = getPermission("disable", id, arg); - return handle(new WalletMovementEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: LIST - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "wallet movement list operation", description = "") - // - @GetMapping - public ResponseEntity list(@ModelAttribute WalletMovementListArgument arg) { - - arg = arg == null ? new WalletMovementListArgument() : arg; - - var permission = getPermission("list", null, arg); - return handle(new WalletMovementListAction(), arg, permission); - } - - // ::: DELETE - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "wallet movement delete operation", description = "") - // - @DeleteMapping("/{id}") - public ResponseEntity delete(@PathVariable("id") String id) { - - var arg = new WalletMovementActionArgument(); - - arg.setEntity(new WalletMovementEntity(id)); - - var permission = getPermission("delete", id, arg); - return handle(new WalletMovementDeleteAction(), arg, permission, TransactionType.service); - } - - // ::: PRELOAD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "wallet movement preload operation", description = "") - // - @PostMapping("/preload") - public ResponseEntity preload(@RequestBody WalletMovementPreloadArgument arg) { - - var permission = getPermission(arg.getAction(), null, arg); - return handle(new WalletMovementPreloadAction(), arg, permission); - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/endpoint/rest/AbstractWalletRest.java b/src/main/java/io/kumare/iqr/mod/pocket/endpoint/rest/AbstractWalletRest.java deleted file mode 100644 index 0647338..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/endpoint/rest/AbstractWalletRest.java +++ /dev/null @@ -1,214 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.endpoint.rest; - -// java -import java.util.Map; -// openapi -import io.swagger.v3.oas.annotations.*; -import io.swagger.v3.oas.annotations.media.*; -import io.swagger.v3.oas.annotations.responses.*; -// spring -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; -// base -import io.kumare.lib.app.api.operation.TransactionType; -import io.kumare.lib.app.api.security.PermissionReference; -// app -import io.kumare.iqr.app.endpoint.rest.AppEndpointRest; -import io.kumare.iqr.app.action.*; -// module -import io.kumare.iqr.mod.pocket.PocketPermissions; -import io.kumare.iqr.mod.pocket.store.wallet.WalletEntity; -import io.kumare.iqr.mod.pocket.action.wallet.*; - -/** -* -* @author afatecha -*/ -public abstract class AbstractWalletRest extends AppEndpointRest { - - // ::: DEFAULT PERMISSIONS - // - protected PermissionReference getPermission(String action, String ref, Object extra) { - switch (action) { - case null -> { - return null; - } - case "add" -> { - return PocketPermissions.wallet_worker.toReference(ref); - } - case "edit" -> { - return PocketPermissions.wallet_worker.toReference(ref); - } - case "enable" -> { - return PocketPermissions.wallet_manager.toReference(ref); - } - case "disable" -> { - return PocketPermissions.wallet_manager.toReference(ref); - } - case "delete" -> { - return PocketPermissions.wallet_manager.toReference(ref); - } - case "find" -> { - return PocketPermissions.wallet_viewer.toReference(ref); - } - case "list" -> { - return PocketPermissions.wallet_viewer.toReference(ref); - } - default -> { - return null; - } - } - } - - - // ::: ADD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "wallet add operation", description = "") - // - @PostMapping - public ResponseEntity add(@RequestBody WalletAddArgument arg) { - - var permission = getPermission("add", null, arg); - return handle(new WalletAddAction(), arg, permission, TransactionType.service); - } - - // ::: EDIT - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "wallet edit operation", description = "") - // - @PutMapping("/{id}") - public ResponseEntity edit(@PathVariable("id") String id, - @RequestBody WalletEditArgument arg) { - - arg.getEntity().id(id); - - var permission = getPermission("edit", id, arg); - return handle(new WalletEditAction(), arg, permission, TransactionType.service); - } - - // ::: FIND - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "wallet find operation", description = "") - // - @GetMapping("/{id}") - public ResponseEntity find(@PathVariable("id") String id, - @ModelAttribute WalletActionArgument arg) { - - - arg = arg == null ? new WalletActionArgument() : arg; - - arg.entity(new WalletEntity(id)); - - var permission = getPermission("find", id, arg); - return handle(new WalletFindAction(), arg, permission); - } - - // ::: ENABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "wallet enable operation", description = "") - // - @PutMapping("/{id}/enable") - public ResponseEntity enable(@PathVariable("id") String id) { - - var arg = new WalletActionArgument(); - arg.setEntity(new WalletEntity(id)); - arg.getEntity().setActive(true); - - var permission = getPermission("disable", id, arg); - return handle(new WalletEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: DISABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "wallet disable operation", description = "") - // - @PutMapping("/{id}/disable") - public ResponseEntity disable(@PathVariable("id") String id) { - - var arg = new WalletActionArgument(); - arg.setEntity(new WalletEntity(id)); - arg.getEntity().setActive(false); - - var permission = getPermission("disable", id, arg); - return handle(new WalletEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: LIST - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "wallet list operation", description = "") - // - @GetMapping - public ResponseEntity list(@ModelAttribute WalletListArgument arg) { - - arg = arg == null ? new WalletListArgument() : arg; - - var permission = getPermission("list", null, arg); - return handle(new WalletListAction(), arg, permission); - } - - // ::: DELETE - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "wallet delete operation", description = "") - // - @DeleteMapping("/{id}") - public ResponseEntity delete(@PathVariable("id") String id) { - - var arg = new WalletActionArgument(); - - arg.setEntity(new WalletEntity(id)); - - var permission = getPermission("delete", id, arg); - return handle(new WalletDeleteAction(), arg, permission, TransactionType.service); - } - - // ::: PRELOAD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "wallet preload operation", description = "") - // - @PostMapping("/preload") - public ResponseEntity preload(@RequestBody WalletPreloadArgument arg) { - - var permission = getPermission(arg.getAction(), null, arg); - return handle(new WalletPreloadAction(), arg, permission); - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/endpoint/rest/AbstractWalletSlotRest.java b/src/main/java/io/kumare/iqr/mod/pocket/endpoint/rest/AbstractWalletSlotRest.java deleted file mode 100644 index 0034789..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/endpoint/rest/AbstractWalletSlotRest.java +++ /dev/null @@ -1,214 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.endpoint.rest; - -// java -import java.util.Map; -// openapi -import io.swagger.v3.oas.annotations.*; -import io.swagger.v3.oas.annotations.media.*; -import io.swagger.v3.oas.annotations.responses.*; -// spring -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; -// base -import io.kumare.lib.app.api.operation.TransactionType; -import io.kumare.lib.app.api.security.PermissionReference; -// app -import io.kumare.iqr.app.endpoint.rest.AppEndpointRest; -import io.kumare.iqr.app.action.*; -// module -import io.kumare.iqr.mod.pocket.PocketPermissions; -import io.kumare.iqr.mod.pocket.store.walletslot.WalletSlotEntity; -import io.kumare.iqr.mod.pocket.action.walletslot.*; - -/** -* -* @author afatecha -*/ -public abstract class AbstractWalletSlotRest extends AppEndpointRest { - - // ::: DEFAULT PERMISSIONS - // - protected PermissionReference getPermission(String action, String ref, Object extra) { - switch (action) { - case null -> { - return null; - } - case "add" -> { - return PocketPermissions.wallet_slot_worker.toReference(ref); - } - case "edit" -> { - return PocketPermissions.wallet_slot_worker.toReference(ref); - } - case "enable" -> { - return PocketPermissions.wallet_slot_manager.toReference(ref); - } - case "disable" -> { - return PocketPermissions.wallet_slot_manager.toReference(ref); - } - case "delete" -> { - return PocketPermissions.wallet_slot_manager.toReference(ref); - } - case "find" -> { - return PocketPermissions.wallet_slot_viewer.toReference(ref); - } - case "list" -> { - return PocketPermissions.wallet_slot_viewer.toReference(ref); - } - default -> { - return null; - } - } - } - - - // ::: ADD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "wallet slot add operation", description = "") - // - @PostMapping - public ResponseEntity add(@RequestBody WalletSlotAddArgument arg) { - - var permission = getPermission("add", null, arg); - return handle(new WalletSlotAddAction(), arg, permission, TransactionType.service); - } - - // ::: EDIT - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "wallet slot edit operation", description = "") - // - @PutMapping("/{id}") - public ResponseEntity edit(@PathVariable("id") String id, - @RequestBody WalletSlotEditArgument arg) { - - arg.getEntity().id(id); - - var permission = getPermission("edit", id, arg); - return handle(new WalletSlotEditAction(), arg, permission, TransactionType.service); - } - - // ::: FIND - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "wallet slot find operation", description = "") - // - @GetMapping("/{id}") - public ResponseEntity find(@PathVariable("id") String id, - @ModelAttribute WalletSlotActionArgument arg) { - - - arg = arg == null ? new WalletSlotActionArgument() : arg; - - arg.entity(new WalletSlotEntity(id)); - - var permission = getPermission("find", id, arg); - return handle(new WalletSlotFindAction(), arg, permission); - } - - // ::: ENABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "wallet slot enable operation", description = "") - // - @PutMapping("/{id}/enable") - public ResponseEntity enable(@PathVariable("id") String id) { - - var arg = new WalletSlotActionArgument(); - arg.setEntity(new WalletSlotEntity(id)); - arg.getEntity().setActive(true); - - var permission = getPermission("disable", id, arg); - return handle(new WalletSlotEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: DISABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "wallet slot disable operation", description = "") - // - @PutMapping("/{id}/disable") - public ResponseEntity disable(@PathVariable("id") String id) { - - var arg = new WalletSlotActionArgument(); - arg.setEntity(new WalletSlotEntity(id)); - arg.getEntity().setActive(false); - - var permission = getPermission("disable", id, arg); - return handle(new WalletSlotEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: LIST - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "wallet slot list operation", description = "") - // - @GetMapping - public ResponseEntity list(@ModelAttribute WalletSlotListArgument arg) { - - arg = arg == null ? new WalletSlotListArgument() : arg; - - var permission = getPermission("list", null, arg); - return handle(new WalletSlotListAction(), arg, permission); - } - - // ::: DELETE - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "wallet slot delete operation", description = "") - // - @DeleteMapping("/{id}") - public ResponseEntity delete(@PathVariable("id") String id) { - - var arg = new WalletSlotActionArgument(); - - arg.setEntity(new WalletSlotEntity(id)); - - var permission = getPermission("delete", id, arg); - return handle(new WalletSlotDeleteAction(), arg, permission, TransactionType.service); - } - - // ::: PRELOAD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "wallet slot preload operation", description = "") - // - @PostMapping("/preload") - public ResponseEntity preload(@RequestBody WalletSlotPreloadArgument arg) { - - var permission = getPermission(arg.getAction(), null, arg); - return handle(new WalletSlotPreloadAction(), arg, permission); - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/endpoint/rest/PocketTaxonomyRest.java b/src/main/java/io/kumare/iqr/mod/pocket/endpoint/rest/PocketTaxonomyRest.java deleted file mode 100644 index a3bb94e..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/endpoint/rest/PocketTaxonomyRest.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.endpoint.rest; - -// java -import io.kumare.iqr.mod.taxonomy.endpoint.rest.AbstractTaxonRest; -import io.swagger.v3.oas.annotations.tags.*; -// spring -import org.springframework.web.bind.annotation.*; - -/** -* -* @author afatecha -*/ - -// openapi -@Tag(name = "workforce taxonomy rest endpoint") -// -@RestController -@RequestMapping("/pocket/{taxaKey}-taxons") -public class PocketTaxonomyRest extends AbstractTaxonRest { - - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/endpoint/rest/WalletMovementRest.java b/src/main/java/io/kumare/iqr/mod/pocket/endpoint/rest/WalletMovementRest.java deleted file mode 100644 index e604d3d..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/endpoint/rest/WalletMovementRest.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.endpoint.rest; - -// java -import io.swagger.v3.oas.annotations.tags.*; -// spring -import org.springframework.web.bind.annotation.*; - -/** -* -* @author afatecha -*/ - -// openapi -//@Tag(name = "wallet movement rest endpoint") -// -//@RestController -//@RequestMapping("/pocket/wallet-movements") -public class WalletMovementRest extends AbstractWalletMovementRest { - - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/endpoint/rest/WalletRest.java b/src/main/java/io/kumare/iqr/mod/pocket/endpoint/rest/WalletRest.java deleted file mode 100644 index 676185d..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/endpoint/rest/WalletRest.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.endpoint.rest; - -// java -import io.swagger.v3.oas.annotations.tags.*; -// spring -import org.springframework.web.bind.annotation.*; - -/** -* -* @author afatecha -*/ - -// openapi -//@Tag(name = "wallet rest endpoint") -// -//@RestController -//@RequestMapping("/pocket/wallets") -public class WalletRest extends AbstractWalletRest { - - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/endpoint/rest/WalletSlotRest.java b/src/main/java/io/kumare/iqr/mod/pocket/endpoint/rest/WalletSlotRest.java deleted file mode 100644 index d0fcdd1..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/endpoint/rest/WalletSlotRest.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.endpoint.rest; - -// java -import io.swagger.v3.oas.annotations.tags.*; -// spring -import org.springframework.web.bind.annotation.*; - -/** -* -* @author afatecha -*/ - -// openapi -//@Tag(name = "wallet slot rest endpoint") -// -//@RestController -//@RequestMapping("/pocket/wallet-slots") -public class WalletSlotRest extends AbstractWalletSlotRest { - - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/store/PocketEntities.java b/src/main/java/io/kumare/iqr/mod/pocket/store/PocketEntities.java deleted file mode 100644 index 37d35e0..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/store/PocketEntities.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.store; - -// base -// base -import io.kumare.lib.app.api.module.ServiceModule; -import io.kumare.lib.app.api.store.EntityStore; -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app -import io.kumare.iqr.app.AppEngine; -import io.kumare.iqr.app.module.AppModules; -import io.kumare.iqr.mod.pocket.store.wallet.WalletEntity; -import io.kumare.iqr.mod.pocket.store.wallet.WalletStore; -import io.kumare.iqr.mod.pocket.store.walletslot.WalletSlotEntity; -import io.kumare.iqr.mod.pocket.store.walletslot.WalletSlotStore; -import io.kumare.iqr.mod.pocket.store.walletmovement.WalletMovementEntity; -import io.kumare.iqr.mod.pocket.store.walletmovement.WalletMovementStore; - - -/** - * - * @author afatecha - */ -public enum PocketEntities implements EntityDescriptor { - - wallet(WalletEntity.class, WalletStore.class), - walletSlot(WalletSlotEntity.class, WalletSlotStore.class), - walletMovement(WalletMovementEntity.class, WalletMovementStore.class); - - // ::: vars - // - private final Class entityClass; - private final Class storeClass; - - // ::: constructor - // - PocketEntities(Class entityClass, Class storeClass) { - this.entityClass = entityClass; - this.storeClass = storeClass; - } - - // ::: entity descriptor api - // - @Override - public String getName() { - return name(); - } - - @Override - public ServiceModule getModule() { - return AppModules.pocket; - } - - @Override - public Class getEntityClass() { - return entityClass; - } - - @Override - public Class getStoreClass() { - return storeClass; - } - - @Override - public EntityStore getStore() { - return (EntityStore) AppEngine.getEngine().getInnerContext().getBean(storeClass); - } - - // ::: statics - // - public static boolean hasDescriptor(String name) { - try { - var value = valueOf(name); - return value != null; - - } catch (Throwable t) { - return false; - } - } - - public static EntityDescriptor descriptorOf(String name) { - try { - return valueOf(name); - - } catch (Throwable t) { - return null; - } - } - - public static EntityDescriptor descriptorOf(Class entityClass) { - try { - for (var i : values()) { - if (i.entityClass == entityClass) { - return i; - } - } - - } catch (Throwable t) { - } - - return null; - } -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/store/PocketTaxonomies.java b/src/main/java/io/kumare/iqr/mod/pocket/store/PocketTaxonomies.java deleted file mode 100644 index 425c06f..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/store/PocketTaxonomies.java +++ /dev/null @@ -1,115 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.store; - -// base -import io.kumare.lib.app.api.Context; -import io.kumare.lib.v.ExceptionPrototype; -// app -import io.kumare.iqr.app.module.AppModules; -import io.kumare.iqr.mod.pocket.PocketErrors; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; -import java.util.List; - -/** - * - * @author administrador - */ -public enum PocketTaxonomies { - - walletMovementType("wallet-movement-type", PocketErrors.walletmovement_type_notfound), - walletMovementState("wallet-movement-state", PocketErrors.walletmovement_state_notfound); - - // ::: - // - private final String taxaKey; - private final ExceptionPrototype proto; - - // ::: constructor - // - PocketTaxonomies(String taxaKey, ExceptionPrototype proto) { - this.taxaKey = taxaKey; - this.proto = proto; - } - - public String getKey() { - return taxaKey; - } - - // ::: ensure - // - public TaxonEntity ensure(Context context, TaxonEntity taxon) { - return AppModules.taxonomy.getController().getTaxonStore() - .ensure(context, taxaKey, taxon, proto); - } - - public TaxonEntity ensureById(Context context, String taxonId) { - return AppModules.taxonomy.getController().getTaxonStore() - .ensureById(context, taxaKey, taxonId, proto); - } - - public TaxonEntity ensureByKey(Context context, String key) { - return AppModules.taxonomy.getController().getTaxonStore() - .ensureByKey(context, taxaKey, key, proto); - } - - public TaxonEntity ensureByValue(Context context, String value) { - return AppModules.taxonomy.getController().getTaxonStore() - .ensureByValue(context, taxaKey, value, proto); - } - - // ::: find - // - public TaxonEntity findById(Context context, String taxonId) { - return AppModules.taxonomy.getController() - .getTaxonStore() - .findById(context, taxaKey, taxonId); - } - - public TaxonEntity findByKey(Context context, String key) { - return AppModules.taxonomy.getController() - .getTaxonStore() - .findByKey(context, taxaKey, key); - } - - public TaxonEntity findByValue(Context context, String value) { - return AppModules.taxonomy.getController() - .getTaxonStore() - .findByValue(context, taxaKey, value); - } - - // ::: list - // - public List list(Context context) { - return AppModules.taxonomy.getController() - .getTaxonStore() - .listByTaxaKey(context, taxaKey); - } - - // ::: default - // - public TaxonEntity ensureDefault(Context context) { - return AppModules.taxonomy.getController() - .getTaxonStore() - .ensureDefault(context, taxaKey, proto); - } - - public TaxonEntity findDefault(Context context) { - return AppModules.taxonomy.getController() - .getTaxonStore() - .findDefault(context, taxaKey); - } - - // ::: statics - // - public static boolean hasTaxaKey(String taxaKey) { - for (var i : values()) { - if (i.getKey().equals(taxaKey)) { - return true; - } - } - - return false; - } -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/store/wallet/WalletData.java b/src/main/java/io/kumare/iqr/mod/pocket/store/wallet/WalletData.java deleted file mode 100644 index 9040cc0..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/store/wallet/WalletData.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.store.wallet; - -// base -import io.kumare.iqr.app.store.AppExtendedEntityData; -// imports - - -public class WalletData extends AppExtendedEntityData { - - // ::: vars - // - - - // ::: fields - // - - - // ::: fluent - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/store/wallet/WalletEntity.java b/src/main/java/io/kumare/iqr/mod/pocket/store/wallet/WalletEntity.java deleted file mode 100644 index 2412799..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/store/wallet/WalletEntity.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.store.wallet; - -// jakarta -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.Index; -import jakarta.persistence.ManyToOne; -import jakarta.persistence.Table; -// base -import io.kumare.lib.app.api.store.*; -import io.kumare.iqr.app.store.*; -// imports - -// relations - - -// annotations -@Entity -@Table( - name = "wallet", - indexes = { - @Index(name = "idx_wallet_external_id", columnList = "externalId"), - @Index(name = "idx_wallet_entity_key", columnList = "entityKey") - } -) -public class WalletEntity extends AppEntity implements SupportedEntityKey { - - // ::: vars - // - private String externalId; - private String entityKey; - // relations - - - // ::: constructors - // - public WalletEntity() { - } - - public WalletEntity(String id) { - super(id); - } - - // ::: fields - // - public String getExternalId() { - return externalId; - } - - public void setExternalId(String externalId) { - this.externalId = externalId; - } - - public String getEntityKey() { - return entityKey; - } - - public void setEntityKey(String entityKey) { - this.entityKey = entityKey; - } - - // relations - - - // ::: fluent - // - public WalletEntity externalId(String externalId) { - setExternalId(externalId); - return this; - } - - public WalletEntity entityKey(String entityKey) { - setEntityKey(entityKey); - return this; - } - - // relations - - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/store/wallet/WalletFields.java b/src/main/java/io/kumare/iqr/mod/pocket/store/wallet/WalletFields.java deleted file mode 100644 index 8ccbc3e..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/store/wallet/WalletFields.java +++ /dev/null @@ -1,135 +0,0 @@ -/* - */ -package io.kumare.iqr.mod.pocket.store.wallet; - -// java -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -// base -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app - - -/** - * - * @author afatecha - */ -public enum WalletFields implements EntityFieldDescriptor { - - id(MAIN, FIND, LIST), - externalId(MAIN, FIND, LIST), - entityKey(MAIN, FIND, LIST), - active(MAIN, FIND, LIST), - inserted(AUDIT, FIND, LIST), - inserter(AUDIT, FIND, LIST), - modified(AUDIT, FIND), - modifier(AUDIT, FIND), - deleted(AUDIT), - removed(AUDIT), - remover(AUDIT); - - // ::: vars - // - private final boolean relation; - private final EntityDescriptor entityDescriptor; - private final Class enumClass; - private final List groups; - - // ::: constructors - // - WalletFields(String... groups) { - this(false, null, null, groups); - } - - WalletFields(EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this(true, entityDescriptor, enumClass, groups); - } - - WalletFields(boolean relation, EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this.relation = relation; - this.entityDescriptor = entityDescriptor; - this.enumClass = enumClass; - this.groups = groups == null ? Collections.EMPTY_LIST : Arrays.asList(groups); - } - - // ::: api - // - @Override - public String getName() { - return name(); - } - - @Override - public boolean isRelation() { - return relation; - } - - @Override - public Class getRelationEnumClass() { - return enumClass; - } - - @Override - public List getGroups() { - return groups; - } - - @Override - public EntityDescriptor getEntityDescriptor() { - return entityDescriptor; - } - - @Override - public Object fetchValue(WalletEntity entity) { - if (entity == null) { - return null; - } - - switch (this) { - case null -> { - return null; - } - case id -> { - return entity.getId(); - } - case externalId ->{ - return entity.getExternalId(); - } - case entityKey ->{ - return entity.getEntityKey(); - } - case active -> { - return entity.isActive(); - } - case inserted -> { - return entity.getInserted(); - } - case inserter -> { - return entity.getInserter(); - } - case modified -> { - return entity.getModified(); - } - case modifier -> { - return entity.getModifier(); - } - case deleted -> { - return entity.isDeleted(); - } - case removed -> { - return entity.getRemoved(); - } - case remover -> { - return entity.getRemover(); - } - - default -> { - return null; - } - } - - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/store/wallet/WalletMapBuilder.java b/src/main/java/io/kumare/iqr/mod/pocket/store/wallet/WalletMapBuilder.java deleted file mode 100644 index 8027b6e..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/store/wallet/WalletMapBuilder.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.store.wallet; - -// java -import java.util.List; -import java.util.Map; -// base -import io.kumare.lib.app.api.Context; -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.BaseEntityMapBuilder; -// app - - -/** - * - * @author afatecha - */ -public class WalletMapBuilder extends BaseEntityMapBuilder { - - // ::: vars - // - - - - // ::: fields - // - @Override - public WalletMapBuilder addGroup(String name, boolean cascade) { - includes.addAll(EntityFieldDescriptor.group(WalletFields.values(), name)); - - return this; - } - - @Override - public WalletMapBuilder add(String fieldName) { - includes.add(WalletFields.valueOf(fieldName)); - return this; - } - - @Override - public WalletMapBuilder addAll(String... names) { - for (var i : names) { - includes.add(WalletFields.valueOf(i)); - } - return this; - } - - @Override - public WalletMapBuilder remove(String fieldName) { - excludes.add(WalletFields.valueOf(fieldName)); - return this; - } - - @Override - public WalletMapBuilder removeAll(String... names) { - for (var i : names) { - excludes.add(WalletFields.valueOf(i)); - } - return this; - } - - // ::: relations - // - @Override - public WalletMapBuilder addPlains(boolean cascade) { - includes.addAll(EntityFieldDescriptor.plains(WalletFields.values())); - - return this; - } - - @Override - public WalletMapBuilder addRelations(boolean cascade) { - includes.addAll(EntityFieldDescriptor.relations(WalletFields.values())); - - return this; - } - - - - // ::: internals - // - @Override - protected void internalAttachRelations(Context context, - WalletEntity entity, - List fields, - Map resultMap) { - - - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/store/wallet/WalletRepository.java b/src/main/java/io/kumare/iqr/mod/pocket/store/wallet/WalletRepository.java deleted file mode 100644 index e5387cf..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/store/wallet/WalletRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.store.wallet; - -// spring -import org.springframework.stereotype.Repository; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Repository -public interface WalletRepository extends AppKeyEntityRepository{ - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/store/wallet/WalletStore.java b/src/main/java/io/kumare/iqr/mod/pocket/store/wallet/WalletStore.java deleted file mode 100644 index 332ca37..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/store/wallet/WalletStore.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.store.wallet; - -// spring -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Service -public class WalletStore extends AppKeyEntityStore { - - // ::: vars - // - @Autowired - private WalletRepository repository; - - // ::: override - // - @Override - public WalletRepository getRepository() { - return repository; - } - - // ::: api - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/store/walletmovement/WalletMovementData.java b/src/main/java/io/kumare/iqr/mod/pocket/store/walletmovement/WalletMovementData.java deleted file mode 100644 index 2b65d3a..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/store/walletmovement/WalletMovementData.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.store.walletmovement; - -// base -import io.kumare.iqr.app.store.AppExtendedEntityData; -// imports - - -public class WalletMovementData extends AppExtendedEntityData { - - // ::: vars - // - - - // ::: fields - // - - - // ::: fluent - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/store/walletmovement/WalletMovementEntity.java b/src/main/java/io/kumare/iqr/mod/pocket/store/walletmovement/WalletMovementEntity.java deleted file mode 100644 index 0bfe402..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/store/walletmovement/WalletMovementEntity.java +++ /dev/null @@ -1,200 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.store.walletmovement; - -// jakarta -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.Index; -import jakarta.persistence.ManyToOne; -import jakarta.persistence.Table; -// base -import io.kumare.lib.app.api.store.*; -import io.kumare.iqr.app.store.*; -// imports -import java.util.Date; -// relations -import io.kumare.iqr.mod.pocket.store.wallet.WalletEntity; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; -import io.kumare.iqr.mod.pocket.store.walletslot.WalletSlotEntity; - -// annotations -@Entity -@Table( - name = "wallet_movement", - indexes = { - @Index(name = "idx_wallet_movement_external_id", columnList = "externalId"), - @Index(name = "idx_wallet_movement_type_value", columnList = "typeValue"), - @Index(name = "idx_wallet_movement_state_value", columnList = "stateValue"), - @Index(name = "idx_wallet_movement_done_date", columnList = "doneDate"), - @Index(name = "idx_wallet_movement_value", columnList = "value"), - @Index(name = "idx_wallet_movement_unsigned_value", columnList = "unsignedValue") - } -) -public class WalletMovementEntity extends AppEntity { - - // ::: vars - // - private String externalId; - private String typeValue; - private String stateValue; - private Date doneDate; - private int value; - private int unsignedValue; - // relations - @ManyToOne(fetch = FetchType.LAZY) - private WalletEntity wallet; - @ManyToOne(fetch = FetchType.LAZY) - private WalletSlotEntity walletSlot; - @ManyToOne(fetch = FetchType.LAZY) - private TaxonEntity type; - @ManyToOne(fetch = FetchType.LAZY) - private TaxonEntity state; - - // ::: constructors - // - public WalletMovementEntity() { - } - - public WalletMovementEntity(String id) { - super(id); - } - - // ::: fields - // - public String getExternalId() { - return externalId; - } - - public void setExternalId(String externalId) { - this.externalId = externalId; - } - - public String getTypeValue() { - return typeValue; - } - - public void setTypeValue(String typeValue) { - this.typeValue = typeValue; - } - - public String getStateValue() { - return stateValue; - } - - public void setStateValue(String stateValue) { - this.stateValue = stateValue; - } - - public Date getDoneDate() { - return doneDate; - } - - public void setDoneDate(Date doneDate) { - this.doneDate = doneDate; - } - - public int getValue() { - return value; - } - - public void setValue(int value) { - this.value = value; - } - - public int getUnsignedValue() { - return unsignedValue; - } - - public void setUnsignedValue(int unsignedValue) { - this.unsignedValue = unsignedValue; - } - - // relations - public WalletEntity getWallet() { - return wallet; - } - - public void setWallet(WalletEntity wallet) { - this.wallet = wallet; - } - - public WalletSlotEntity getWalletSlot() { - return walletSlot; - } - - public void setWalletSlot(WalletSlotEntity walletSlot) { - this.walletSlot = walletSlot; - } - - public TaxonEntity getType() { - return type; - } - - public void setType(TaxonEntity type) { - this.type = type; - } - - public TaxonEntity getState() { - return state; - } - - public void setState(TaxonEntity state) { - this.state = state; - } - - // ::: fluent - // - public WalletMovementEntity externalId(String externalId) { - setExternalId(externalId); - return this; - } - - public WalletMovementEntity typeValue(String typeValue) { - setTypeValue(typeValue); - return this; - } - - public WalletMovementEntity stateValue(String stateValue) { - setStateValue(stateValue); - return this; - } - - public WalletMovementEntity doneDate(Date doneDate) { - setDoneDate(doneDate); - return this; - } - - public WalletMovementEntity value(int value) { - setValue(value); - return this; - } - - public WalletMovementEntity unsignedValue(int unsignedValue) { - setUnsignedValue(unsignedValue); - return this; - } - - // relations - public WalletMovementEntity wallet(WalletEntity wallet) { - setWallet(wallet); - return this; - } - - public WalletMovementEntity walletSlot(WalletSlotEntity walletSlot) { - setWalletSlot(walletSlot); - return this; - } - - public WalletMovementEntity type(TaxonEntity type) { - setType(type); - return this; - } - - public WalletMovementEntity state(TaxonEntity state) { - setState(state); - return this; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/store/walletmovement/WalletMovementFields.java b/src/main/java/io/kumare/iqr/mod/pocket/store/walletmovement/WalletMovementFields.java deleted file mode 100644 index d5ca16e..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/store/walletmovement/WalletMovementFields.java +++ /dev/null @@ -1,173 +0,0 @@ -/* - */ -package io.kumare.iqr.mod.pocket.store.walletmovement; - -// java -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -// base -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app -import io.kumare.iqr.mod.pocket.store.PocketEntities; -import io.kumare.iqr.mod.pocket.store.wallet.WalletFields; -import io.kumare.iqr.mod.pocket.store.PocketEntities; -import io.kumare.iqr.mod.pocket.store.walletslot.WalletSlotFields; -import io.kumare.iqr.mod.taxonomy.store.TaxonomyEntities; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonFields; -import io.kumare.iqr.mod.taxonomy.store.TaxonomyEntities; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonFields; - -/** - * - * @author afatecha - */ -public enum WalletMovementFields implements EntityFieldDescriptor { - - id(MAIN, FIND, LIST), - externalId(MAIN, FIND, LIST), - typeValue(MAIN, FIND, LIST), - stateValue(MAIN, FIND, LIST), - doneDate(MAIN, FIND, LIST), - value(MAIN, FIND, LIST), - unsignedValue(MAIN, FIND, LIST), - active(MAIN, FIND, LIST), - inserted(AUDIT, FIND, LIST), - inserter(AUDIT, FIND, LIST), - modified(AUDIT, FIND), - modifier(AUDIT, FIND), - deleted(AUDIT), - removed(AUDIT), - remover(AUDIT), - wallet(PocketEntities.wallet, WalletFields.class, FIND, LIST), - walletSlot(PocketEntities.walletSlot, WalletSlotFields.class, FIND, LIST), - type(TaxonomyEntities.taxon, TaxonFields.class, FIND, LIST), - state(TaxonomyEntities.taxon, TaxonFields.class, FIND, LIST); - - // ::: vars - // - private final boolean relation; - private final EntityDescriptor entityDescriptor; - private final Class enumClass; - private final List groups; - - // ::: constructors - // - WalletMovementFields(String... groups) { - this(false, null, null, groups); - } - - WalletMovementFields(EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this(true, entityDescriptor, enumClass, groups); - } - - WalletMovementFields(boolean relation, EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this.relation = relation; - this.entityDescriptor = entityDescriptor; - this.enumClass = enumClass; - this.groups = groups == null ? Collections.EMPTY_LIST : Arrays.asList(groups); - } - - // ::: api - // - @Override - public String getName() { - return name(); - } - - @Override - public boolean isRelation() { - return relation; - } - - @Override - public Class getRelationEnumClass() { - return enumClass; - } - - @Override - public List getGroups() { - return groups; - } - - @Override - public EntityDescriptor getEntityDescriptor() { - return entityDescriptor; - } - - @Override - public Object fetchValue(WalletMovementEntity entity) { - if (entity == null) { - return null; - } - - switch (this) { - case null -> { - return null; - } - case id -> { - return entity.getId(); - } - case externalId ->{ - return entity.getExternalId(); - } - case typeValue ->{ - return entity.getTypeValue(); - } - case stateValue ->{ - return entity.getStateValue(); - } - case doneDate ->{ - return entity.getDoneDate(); - } - case value ->{ - return entity.getValue(); - } - case unsignedValue ->{ - return entity.getUnsignedValue(); - } - case active -> { - return entity.isActive(); - } - case inserted -> { - return entity.getInserted(); - } - case inserter -> { - return entity.getInserter(); - } - case modified -> { - return entity.getModified(); - } - case modifier -> { - return entity.getModifier(); - } - case deleted -> { - return entity.isDeleted(); - } - case removed -> { - return entity.getRemoved(); - } - case remover -> { - return entity.getRemover(); - } - case wallet ->{ - return entity.getWallet(); - } - case walletSlot ->{ - return entity.getWalletSlot(); - } - case type ->{ - return entity.getType(); - } - case state ->{ - return entity.getState(); - } - default -> { - return null; - } - } - - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/store/walletmovement/WalletMovementMapBuilder.java b/src/main/java/io/kumare/iqr/mod/pocket/store/walletmovement/WalletMovementMapBuilder.java deleted file mode 100644 index 37ec1ac..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/store/walletmovement/WalletMovementMapBuilder.java +++ /dev/null @@ -1,276 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.store.walletmovement; - -// java -import java.util.List; -import java.util.Map; -// base -import io.kumare.lib.app.api.Context; -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.BaseEntityMapBuilder; -// app -import io.kumare.iqr.mod.pocket.store.wallet.WalletMapBuilder; -import io.kumare.iqr.mod.pocket.store.walletslot.WalletSlotMapBuilder; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonMapBuilder; - -/** - * - * @author afatecha - */ -public class WalletMovementMapBuilder extends BaseEntityMapBuilder { - - // ::: vars - // - private WalletMapBuilder walletBuilder; - private WalletSlotMapBuilder walletSlotBuilder; - private TaxonMapBuilder typeBuilder; - private TaxonMapBuilder stateBuilder; - - - // ::: fields - // - @Override - public WalletMovementMapBuilder addGroup(String name, boolean cascade) { - includes.addAll(EntityFieldDescriptor.group(WalletMovementFields.values(), name)); - - if(cascade) { - if (includes.contains(WalletMovementFields.wallet)) { - getWalletBuilder().addGroup(name); - } - if (includes.contains(WalletMovementFields.walletSlot)) { - getWalletSlotBuilder().addGroup(name); - } - if (includes.contains(WalletMovementFields.type)) { - getTypeBuilder().addGroup(name); - } - if (includes.contains(WalletMovementFields.state)) { - getStateBuilder().addGroup(name); - } - } - return this; - } - - @Override - public WalletMovementMapBuilder add(String fieldName) { - includes.add(WalletMovementFields.valueOf(fieldName)); - return this; - } - - @Override - public WalletMovementMapBuilder addAll(String... names) { - for (var i : names) { - includes.add(WalletMovementFields.valueOf(i)); - } - return this; - } - - @Override - public WalletMovementMapBuilder remove(String fieldName) { - excludes.add(WalletMovementFields.valueOf(fieldName)); - return this; - } - - @Override - public WalletMovementMapBuilder removeAll(String... names) { - for (var i : names) { - excludes.add(WalletMovementFields.valueOf(i)); - } - return this; - } - - // ::: relations - // - @Override - public WalletMovementMapBuilder addPlains(boolean cascade) { - includes.addAll(EntityFieldDescriptor.plains(WalletMovementFields.values())); - - if(cascade) { - if (includes.contains(WalletMovementFields.wallet)) { - getWalletBuilder().addPlains(); - } - if (includes.contains(WalletMovementFields.walletSlot)) { - getWalletSlotBuilder().addPlains(); - } - if (includes.contains(WalletMovementFields.type)) { - getTypeBuilder().addPlains(); - } - if (includes.contains(WalletMovementFields.state)) { - getStateBuilder().addPlains(); - } - } - return this; - } - - @Override - public WalletMovementMapBuilder addRelations(boolean cascade) { - includes.addAll(EntityFieldDescriptor.relations(WalletMovementFields.values())); - - if(cascade) { - if (includes.contains(WalletMovementFields.wallet)) { - getWalletBuilder().addRelations(); - } - if (includes.contains(WalletMovementFields.walletSlot)) { - getWalletSlotBuilder().addRelations(); - } - if (includes.contains(WalletMovementFields.type)) { - getTypeBuilder().addRelations(); - } - if (includes.contains(WalletMovementFields.state)) { - getStateBuilder().addRelations(); - } - } - return this; - } - - // ::: wallet - // - public WalletMovementMapBuilder addWallet() { - return addWallet(null); - } - - public WalletMovementMapBuilder addWallet(String group) { - return addWallet(group, false); - } - - public WalletMovementMapBuilder addWallet(String group, boolean cascade) { - includes.add(WalletMovementFields.wallet); - - if (group != null) { - getWalletBuilder().addGroup(group); - } - - return this; - } - - public WalletMapBuilder getWalletBuilder() { - if(walletBuilder == null) { - walletBuilder = new WalletMapBuilder(); - } - return walletBuilder; - } - - - // ::: wallet slot - // - public WalletMovementMapBuilder addWalletSlot() { - return addWalletSlot(null); - } - - public WalletMovementMapBuilder addWalletSlot(String group) { - return addWalletSlot(group, false); - } - - public WalletMovementMapBuilder addWalletSlot(String group, boolean cascade) { - includes.add(WalletMovementFields.walletSlot); - - if (group != null) { - getWalletSlotBuilder().addGroup(group); - } - - return this; - } - - public WalletSlotMapBuilder getWalletSlotBuilder() { - if(walletSlotBuilder == null) { - walletSlotBuilder = new WalletSlotMapBuilder(); - } - return walletSlotBuilder; - } - - - // ::: type - // - public WalletMovementMapBuilder addType() { - return addType(null); - } - - public WalletMovementMapBuilder addType(String group) { - return addType(group, false); - } - - public WalletMovementMapBuilder addType(String group, boolean cascade) { - includes.add(WalletMovementFields.type); - - if (group != null) { - getTypeBuilder().addGroup(group); - } - - return this; - } - - public TaxonMapBuilder getTypeBuilder() { - if(typeBuilder == null) { - typeBuilder = new TaxonMapBuilder(); - } - return typeBuilder; - } - - - // ::: state - // - public WalletMovementMapBuilder addState() { - return addState(null); - } - - public WalletMovementMapBuilder addState(String group) { - return addState(group, false); - } - - public WalletMovementMapBuilder addState(String group, boolean cascade) { - includes.add(WalletMovementFields.state); - - if (group != null) { - getStateBuilder().addGroup(group); - } - - return this; - } - - public TaxonMapBuilder getStateBuilder() { - if(stateBuilder == null) { - stateBuilder = new TaxonMapBuilder(); - } - return stateBuilder; - } - - // ::: internals - // - @Override - protected void internalAttachRelations(Context context, - WalletMovementEntity entity, - List fields, - Map resultMap) { - - if (fields.contains(WalletMovementFields.wallet)) { - attachRelation(context, - entity, - WalletMovementFields.wallet, - getWalletBuilder(), - resultMap); - } - if (fields.contains(WalletMovementFields.walletSlot)) { - attachRelation(context, - entity, - WalletMovementFields.walletSlot, - getWalletSlotBuilder(), - resultMap); - } - if (fields.contains(WalletMovementFields.type)) { - attachRelation(context, - entity, - WalletMovementFields.type, - getTypeBuilder(), - resultMap); - } - if (fields.contains(WalletMovementFields.state)) { - attachRelation(context, - entity, - WalletMovementFields.state, - getStateBuilder(), - resultMap); - } - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/store/walletmovement/WalletMovementRepository.java b/src/main/java/io/kumare/iqr/mod/pocket/store/walletmovement/WalletMovementRepository.java deleted file mode 100644 index 76c1d8c..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/store/walletmovement/WalletMovementRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.store.walletmovement; - -// spring -import org.springframework.stereotype.Repository; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Repository -public interface WalletMovementRepository extends AppEntityRepository{ - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/store/walletmovement/WalletMovementStore.java b/src/main/java/io/kumare/iqr/mod/pocket/store/walletmovement/WalletMovementStore.java deleted file mode 100644 index d38ff40..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/store/walletmovement/WalletMovementStore.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.store.walletmovement; - -// spring -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Service -public class WalletMovementStore extends AppEntityStore { - - // ::: vars - // - @Autowired - private WalletMovementRepository repository; - - // ::: override - // - @Override - public WalletMovementRepository getRepository() { - return repository; - } - - // ::: api - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/store/walletslot/WalletSlotData.java b/src/main/java/io/kumare/iqr/mod/pocket/store/walletslot/WalletSlotData.java deleted file mode 100644 index ee660cd..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/store/walletslot/WalletSlotData.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.store.walletslot; - -// base -import io.kumare.iqr.app.store.AppExtendedEntityData; -// imports - - -public class WalletSlotData extends AppExtendedEntityData { - - // ::: vars - // - - - // ::: fields - // - - - // ::: fluent - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/store/walletslot/WalletSlotEntity.java b/src/main/java/io/kumare/iqr/mod/pocket/store/walletslot/WalletSlotEntity.java deleted file mode 100644 index f0160fb..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/store/walletslot/WalletSlotEntity.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.store.walletslot; - -// jakarta -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.Index; -import jakarta.persistence.ManyToOne; -import jakarta.persistence.Table; -// base -import io.kumare.lib.app.api.store.*; -import io.kumare.iqr.app.store.*; -// imports - -// relations -import io.kumare.iqr.mod.pocket.store.wallet.WalletEntity; - -// annotations -@Entity -@Table( - name = "wallet_slot", - indexes = { - @Index(name = "idx_wallet_slot_entity_key", columnList = "entityKey"), - @Index(name = "idx_wallet_slot_concept_key", columnList = "conceptKey"), - @Index(name = "idx_wallet_slot_points", columnList = "points") - } -) -public class WalletSlotEntity extends AppEntity implements SupportedEntityKey { - - // ::: vars - // - private String entityKey; - private String conceptKey; - private int points; - // relations - @ManyToOne(fetch = FetchType.LAZY) - private WalletEntity wallet; - - // ::: constructors - // - public WalletSlotEntity() { - } - - public WalletSlotEntity(String id) { - super(id); - } - - // ::: fields - // - public String getEntityKey() { - return entityKey; - } - - public void setEntityKey(String entityKey) { - this.entityKey = entityKey; - } - - public String getConceptKey() { - return conceptKey; - } - - public void setConceptKey(String conceptKey) { - this.conceptKey = conceptKey; - } - - public int getPoints() { - return points; - } - - public void setPoints(int points) { - this.points = points; - } - - // relations - public WalletEntity getWallet() { - return wallet; - } - - public void setWallet(WalletEntity wallet) { - this.wallet = wallet; - } - - // ::: fluent - // - public WalletSlotEntity entityKey(String entityKey) { - setEntityKey(entityKey); - return this; - } - - public WalletSlotEntity conceptKey(String conceptKey) { - setConceptKey(conceptKey); - return this; - } - - public WalletSlotEntity points(int points) { - setPoints(points); - return this; - } - - // relations - public WalletSlotEntity wallet(WalletEntity wallet) { - setWallet(wallet); - return this; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/store/walletslot/WalletSlotFields.java b/src/main/java/io/kumare/iqr/mod/pocket/store/walletslot/WalletSlotFields.java deleted file mode 100644 index 9aebf27..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/store/walletslot/WalletSlotFields.java +++ /dev/null @@ -1,143 +0,0 @@ -/* - */ -package io.kumare.iqr.mod.pocket.store.walletslot; - -// java -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -// base -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app -import io.kumare.iqr.mod.pocket.store.PocketEntities; -import io.kumare.iqr.mod.pocket.store.wallet.WalletFields; - -/** - * - * @author afatecha - */ -public enum WalletSlotFields implements EntityFieldDescriptor { - - id(MAIN, FIND, LIST), - entityKey(MAIN, FIND, LIST), - conceptKey(MAIN, FIND, LIST), - points(MAIN, FIND, LIST), - active(MAIN, FIND, LIST), - inserted(AUDIT, FIND, LIST), - inserter(AUDIT, FIND, LIST), - modified(AUDIT, FIND), - modifier(AUDIT, FIND), - deleted(AUDIT), - removed(AUDIT), - remover(AUDIT), - wallet(PocketEntities.wallet, WalletFields.class, FIND, LIST); - - // ::: vars - // - private final boolean relation; - private final EntityDescriptor entityDescriptor; - private final Class enumClass; - private final List groups; - - // ::: constructors - // - WalletSlotFields(String... groups) { - this(false, null, null, groups); - } - - WalletSlotFields(EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this(true, entityDescriptor, enumClass, groups); - } - - WalletSlotFields(boolean relation, EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this.relation = relation; - this.entityDescriptor = entityDescriptor; - this.enumClass = enumClass; - this.groups = groups == null ? Collections.EMPTY_LIST : Arrays.asList(groups); - } - - // ::: api - // - @Override - public String getName() { - return name(); - } - - @Override - public boolean isRelation() { - return relation; - } - - @Override - public Class getRelationEnumClass() { - return enumClass; - } - - @Override - public List getGroups() { - return groups; - } - - @Override - public EntityDescriptor getEntityDescriptor() { - return entityDescriptor; - } - - @Override - public Object fetchValue(WalletSlotEntity entity) { - if (entity == null) { - return null; - } - - switch (this) { - case null -> { - return null; - } - case id -> { - return entity.getId(); - } - case entityKey ->{ - return entity.getEntityKey(); - } - case conceptKey ->{ - return entity.getConceptKey(); - } - case points ->{ - return entity.getPoints(); - } - case active -> { - return entity.isActive(); - } - case inserted -> { - return entity.getInserted(); - } - case inserter -> { - return entity.getInserter(); - } - case modified -> { - return entity.getModified(); - } - case modifier -> { - return entity.getModifier(); - } - case deleted -> { - return entity.isDeleted(); - } - case removed -> { - return entity.getRemoved(); - } - case remover -> { - return entity.getRemover(); - } - case wallet ->{ - return entity.getWallet(); - } - default -> { - return null; - } - } - - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/store/walletslot/WalletSlotMapBuilder.java b/src/main/java/io/kumare/iqr/mod/pocket/store/walletslot/WalletSlotMapBuilder.java deleted file mode 100644 index f0c8eb7..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/store/walletslot/WalletSlotMapBuilder.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.store.walletslot; - -// java -import java.util.List; -import java.util.Map; -// base -import io.kumare.lib.app.api.Context; -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.BaseEntityMapBuilder; -// app -import io.kumare.iqr.mod.pocket.store.wallet.WalletMapBuilder; - -/** - * - * @author afatecha - */ -public class WalletSlotMapBuilder extends BaseEntityMapBuilder { - - // ::: vars - // - private WalletMapBuilder walletBuilder; - - - // ::: fields - // - @Override - public WalletSlotMapBuilder addGroup(String name, boolean cascade) { - includes.addAll(EntityFieldDescriptor.group(WalletSlotFields.values(), name)); - - if(cascade) { - if (includes.contains(WalletSlotFields.wallet)) { - getWalletBuilder().addGroup(name); - } - } - return this; - } - - @Override - public WalletSlotMapBuilder add(String fieldName) { - includes.add(WalletSlotFields.valueOf(fieldName)); - return this; - } - - @Override - public WalletSlotMapBuilder addAll(String... names) { - for (var i : names) { - includes.add(WalletSlotFields.valueOf(i)); - } - return this; - } - - @Override - public WalletSlotMapBuilder remove(String fieldName) { - excludes.add(WalletSlotFields.valueOf(fieldName)); - return this; - } - - @Override - public WalletSlotMapBuilder removeAll(String... names) { - for (var i : names) { - excludes.add(WalletSlotFields.valueOf(i)); - } - return this; - } - - // ::: relations - // - @Override - public WalletSlotMapBuilder addPlains(boolean cascade) { - includes.addAll(EntityFieldDescriptor.plains(WalletSlotFields.values())); - - if(cascade) { - if (includes.contains(WalletSlotFields.wallet)) { - getWalletBuilder().addPlains(); - } - } - return this; - } - - @Override - public WalletSlotMapBuilder addRelations(boolean cascade) { - includes.addAll(EntityFieldDescriptor.relations(WalletSlotFields.values())); - - if(cascade) { - if (includes.contains(WalletSlotFields.wallet)) { - getWalletBuilder().addRelations(); - } - } - return this; - } - - // ::: wallet - // - public WalletSlotMapBuilder addWallet() { - return addWallet(null); - } - - public WalletSlotMapBuilder addWallet(String group) { - return addWallet(group, false); - } - - public WalletSlotMapBuilder addWallet(String group, boolean cascade) { - includes.add(WalletSlotFields.wallet); - - if (group != null) { - getWalletBuilder().addGroup(group); - } - - return this; - } - - public WalletMapBuilder getWalletBuilder() { - if(walletBuilder == null) { - walletBuilder = new WalletMapBuilder(); - } - return walletBuilder; - } - - // ::: internals - // - @Override - protected void internalAttachRelations(Context context, - WalletSlotEntity entity, - List fields, - Map resultMap) { - - if (fields.contains(WalletSlotFields.wallet)) { - attachRelation(context, - entity, - WalletSlotFields.wallet, - getWalletBuilder(), - resultMap); - } - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/store/walletslot/WalletSlotRepository.java b/src/main/java/io/kumare/iqr/mod/pocket/store/walletslot/WalletSlotRepository.java deleted file mode 100644 index 1b41cbd..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/store/walletslot/WalletSlotRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.store.walletslot; - -// spring -import org.springframework.stereotype.Repository; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Repository -public interface WalletSlotRepository extends AppKeyEntityRepository{ - -} diff --git a/src/main/java/io/kumare/iqr/mod/pocket/store/walletslot/WalletSlotStore.java b/src/main/java/io/kumare/iqr/mod/pocket/store/walletslot/WalletSlotStore.java deleted file mode 100644 index 9893216..0000000 --- a/src/main/java/io/kumare/iqr/mod/pocket/store/walletslot/WalletSlotStore.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.pocket.store.walletslot; - -// spring -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Service -public class WalletSlotStore extends AppKeyEntityStore { - - // ::: vars - // - @Autowired - private WalletSlotRepository repository; - - // ::: override - // - @Override - public WalletSlotRepository getRepository() { - return repository; - } - - // ::: api - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/TaxonomyConstants.java b/src/main/java/io/kumare/iqr/mod/taxonomy/TaxonomyConstants.java deleted file mode 100644 index 6401590..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/TaxonomyConstants.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy; - -// base -import io.kumare.iqr.app.AppConstants; - -/** - * - * @author afatecha - */ -public class TaxonomyConstants { - - // ::: codes - // - public static final int CODE = AppConstants.TAXONOMY_CODE; - public static final String NAME = "taxonomy"; - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/TaxonomyController.java b/src/main/java/io/kumare/iqr/mod/taxonomy/TaxonomyController.java deleted file mode 100644 index 7c777e5..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/TaxonomyController.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy; - -// java -import io.kumare.iqr.mod.taxonomy.store.TaxonomyEntities; -import java.util.Arrays; -import java.util.List; -// base -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app -import io.kumare.iqr.app.module.AppModuleController; -// module -import io.kumare.iqr.mod.taxonomy.store.taxa.TaxaStore; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonStore; -import io.kumare.iqr.mod.taxonomy.store.taxonrelation.TaxonRelationStore; - -/** - * - * @author afatecha - */ -public class TaxonomyController extends AppModuleController { - - // ::: api - // - @Override - public boolean hasStore(String name) { - return TaxonomyEntities.hasDescriptor(name); - } - - @Override - public EntityDescriptor getEntityDescriptor(Class entityClass) { - return TaxonomyEntities.descriptorOf(entityClass); - } - - @Override - public EntityDescriptor getEntityDescriptor(String name) { - return TaxonomyEntities.descriptorOf(name); - } - - @Override - public List getEntityDescriptors() { - return Arrays.asList(TaxonomyEntities.values()); - } - - // ::: stores - // - public TaxaStore getTaxaStore() { - return getService(TaxaStore.class); - } - - public TaxonStore getTaxonStore() { - return getService(TaxonStore.class); - } - - public TaxonRelationStore getTaxonRelationStore() { - return getService(TaxonRelationStore.class); - } - - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/TaxonomyErrors.java b/src/main/java/io/kumare/iqr/mod/taxonomy/TaxonomyErrors.java deleted file mode 100644 index 2503e92..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/TaxonomyErrors.java +++ /dev/null @@ -1,118 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy; - -// java -import java.util.HashMap; -import java.util.Map; -// lib -import io.kumare.lib.transport.TransportCode; -import static io.kumare.lib.transport.Transports.code; -import io.kumare.lib.v.ExceptionPrototype; -// app -import io.kumare.iqr.app.AppException; -import io.kumare.iqr.app.endpoint.AppTransports; - - -/** - * - * @author afatecha - */ -public enum TaxonomyErrors implements ExceptionPrototype { - - - // taxa - taxa_notfound(1, code(AppTransports.http, 400)), - taxa_data_notfound(1, code(AppTransports.http, 400)), - taxa_preload_empty(1, code(AppTransports.http, 400)), - taxa_data_schema_empty(1, code(AppTransports.http, 400)), - taxa_data_attributes_empty(1, code(AppTransports.http, 400)), - taxa_externalid_empty(1, code(AppTransports.http, 400)), - taxa_entitykey_empty(1, code(AppTransports.http, 400)), - taxa_space_empty(1, code(AppTransports.http, 400)), - taxa_modeltype_empty(1, code(AppTransports.http, 400)), - taxa_custom_empty(1, code(AppTransports.http, 400)), - taxa_name_empty(1, code(AppTransports.http, 400)), - taxa_description_empty(1, code(AppTransports.http, 400)), - - // taxon - taxon_notfound(1, code(AppTransports.http, 400)), - taxon_data_notfound(1, code(AppTransports.http, 400)), - taxon_preload_empty(1, code(AppTransports.http, 400)), - taxon_data_attributes_empty(1, code(AppTransports.http, 400)), - taxon_externalid_empty(1, code(AppTransports.http, 400)), - taxon_entitykey_empty(1, code(AppTransports.http, 400)), - taxon_space_empty(1, code(AppTransports.http, 400)), - taxon_taxakey_empty(1, code(AppTransports.http, 400)), - taxon_typekey_empty(1, code(AppTransports.http, 400)), - taxon_typevalue_empty(1, code(AppTransports.http, 400)), - taxon_parentkey_empty(1, code(AppTransports.http, 400)), - taxon_parentvalue_empty(1, code(AppTransports.http, 400)), - taxon_level_empty(1, code(AppTransports.http, 400)), - taxon_ordinal_empty(1, code(AppTransports.http, 400)), - taxon_value_empty(1, code(AppTransports.http, 400)), - taxon_name_empty(1, code(AppTransports.http, 400)), - taxon_main_empty(1, code(AppTransports.http, 400)), - taxon_description_empty(1, code(AppTransports.http, 400)), - taxon_taxa_notfound(1, code(AppTransports.http, 400)), - taxon_type_notfound(1, code(AppTransports.http, 400)), - taxon_parent_notfound(1, code(AppTransports.http, 400)), - - // taxon relation - taxonrelation_notfound(1, code(AppTransports.http, 400)), - taxonrelation_data_notfound(1, code(AppTransports.http, 400)), - taxonrelation_preload_empty(1, code(AppTransports.http, 400)), - taxonrelation_data_note_empty(1, code(AppTransports.http, 400)), - taxonrelation_data_attributes_empty(1, code(AppTransports.http, 400)), - taxonrelation_externalid_empty(1, code(AppTransports.http, 400)), - taxonrelation_space_empty(1, code(AppTransports.http, 400)), - taxonrelation_literal_empty(1, code(AppTransports.http, 400)), - taxonrelation_subject_notfound(1, code(AppTransports.http, 400)), - taxonrelation_predicate_notfound(1, code(AppTransports.http, 400)), - taxonrelation_object_notfound(1, code(AppTransports.http, 400)); - - // ::: vars - // - private final Map transportCodes = new HashMap(); - private final int code; - - // ::: constructors - // - private TaxonomyErrors(int code, TransportCode... codes) { - this.code = code; - if (codes != null) { - for (var i : codes) { - if (i != null) { - transportCodes.put(i.getId(), i.getCode()); - } - } - } - } - - // ::: prototype api - // - @Override - public int getCode() { - return code; - } - - @Override - public String getName() { - return name(); - } - - @Override - public Map getTransportCodes() { - return transportCodes; - } - - @Override - public RuntimeException newInstance(String msg, Throwable cause, Map extra) { - var ex = new AppException(this, msg, cause); - ex.setExtra(extra); - return ex; - } - - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/TaxonomyModule.java b/src/main/java/io/kumare/iqr/mod/taxonomy/TaxonomyModule.java deleted file mode 100644 index 11a0a80..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/TaxonomyModule.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy; - -// java -import io.kumare.lib.base.server.spring.module.BaseModule; - - -/** - * - * @author afatecha - */ -public class TaxonomyModule extends BaseModule { - - // ::: - // - public static final TaxonomyController controller = new TaxonomyController(); - - // ::: api - // - @Override - public int getId() { - return TaxonomyConstants.CODE; - } - - @Override - public String getName() { - return TaxonomyConstants.NAME; - } - - @Override - public TaxonomyController getController() { - return controller; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/TaxonomyPermissions.java b/src/main/java/io/kumare/iqr/mod/taxonomy/TaxonomyPermissions.java deleted file mode 100644 index 0ad9fbb..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/TaxonomyPermissions.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy; - -// base -import io.kumare.iqr.mod.taxonomy.store.TaxonomyEntities; -import io.kumare.lib.app.api.security.PermissionReference; -// app -import io.kumare.iqr.app.AppErrors; - -/** - * - * @author afatecha - */ -public enum TaxonomyPermissions { - - // taxa - //taxa_add(TaxonomyEntities.taxa), - //taxa_edit(TaxonomyEntities.taxa), - //taxa_find(TaxonomyEntities.taxa), - //taxa_enable(TaxonomyEntities.taxa), - //taxa_disable(TaxonomyEntities.taxa), - //taxa_list(TaxonomyEntities.taxa), - //taxa_delete(TaxonomyEntities.taxa), - //taxa_preload(TaxonomyEntities.taxa), - // - taxa_viewer(TaxonomyEntities.taxa), - //taxa_guest(TaxonomyEntities.taxa), - //taxa_collab(TaxonomyEntities.taxa), - taxa_worker(TaxonomyEntities.taxa), - //taxa_control(TaxonomyEntities.taxa), - taxa_manager(TaxonomyEntities.taxa), - taxa_admin(null), - taxa_system(null), - - // taxon - //taxon_add(TaxonomyEntities.taxon), - //taxon_edit(TaxonomyEntities.taxon), - //taxon_find(TaxonomyEntities.taxon), - //taxon_enable(TaxonomyEntities.taxon), - //taxon_disable(TaxonomyEntities.taxon), - //taxon_list(TaxonomyEntities.taxon), - //taxon_delete(TaxonomyEntities.taxon), - //taxon_preload(TaxonomyEntities.taxon), - // - taxon_viewer(TaxonomyEntities.taxon), - //taxon_guest(TaxonomyEntities.taxon), - //taxon_collab(TaxonomyEntities.taxon), - taxon_worker(TaxonomyEntities.taxon), - //taxon_control(TaxonomyEntities.taxon), - taxon_manager(TaxonomyEntities.taxon), - taxon_admin(null), - taxon_system(null), - - // taxon relation - //taxon_relation_add(TaxonomyEntities.taxonRelation), - //taxon_relation_edit(TaxonomyEntities.taxonRelation), - //taxon_relation_find(TaxonomyEntities.taxonRelation), - //taxon_relation_enable(TaxonomyEntities.taxonRelation), - //taxon_relation_disable(TaxonomyEntities.taxonRelation), - //taxon_relation_list(TaxonomyEntities.taxonRelation), - //taxon_relation_delete(TaxonomyEntities.taxonRelation), - //taxon_relation_preload(TaxonomyEntities.taxonRelation), - // - taxon_relation_viewer(TaxonomyEntities.taxonRelation), - //taxon_relation_guest(TaxonomyEntities.taxonRelation), - //taxon_relation_collab(TaxonomyEntities.taxonRelation), - taxon_relation_worker(TaxonomyEntities.taxonRelation), - //taxon_relation_control(TaxonomyEntities.taxonRelation), - taxon_relation_manager(TaxonomyEntities.taxonRelation), - taxon_relation_admin(null), - taxon_relation_system(null); - - - // ::: - // - private final TaxonomyEntities resourceType; - - TaxonomyPermissions(TaxonomyEntities entityRef) { - this.resourceType = entityRef; - } - - // - public PermissionReference toReference() { - return toReference(null); - } - - public PermissionReference toReference(String resourceKey) { - var ref = new PermissionReference() - .module(TaxonomyConstants.NAME) - .permission(name()) - .error(AppErrors.action_unauthorized); - - if (resourceType != null && resourceKey != null) { - ref.resourceType(resourceType.name()) - .resourceKey(resourceKey); - } - - return ref; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaActionArgument.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaActionArgument.java deleted file mode 100644 index b1cecfb..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaActionArgument.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxa; - -// base -import io.kumare.iqr.app.action.AppEntityActionArgument; -// entity -import io.kumare.iqr.mod.taxonomy.store.taxa.TaxaEntity; - -/** - * - * @author afatecha - */ -public class TaxaActionArgument extends AppEntityActionArgument { - - // ::: constructors - // - public TaxaActionArgument() { - } - - public TaxaActionArgument(TaxaEntity entity) { - super(entity); - } - - // ::: api - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaAddAction.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaAddAction.java deleted file mode 100644 index e437357..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaAddAction.java +++ /dev/null @@ -1,128 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxa; - -// java -import java.util.List; -// lib -import io.kumare.lib.base.server.spring.action.Actions; -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.taxonomy.TaxonomyErrors; -// entity -import io.kumare.iqr.mod.taxonomy.store.taxa.TaxaEntity; - -import io.kumare.iqr.mod.taxonomy.action.taxon.TaxonAddAction; -import io.kumare.iqr.mod.taxonomy.action.taxon.TaxonAddArgument; - -/** - * - * @author afatecha - */ -public class TaxaAddAction extends AppAction> { - - // ::: vars - // - private TaxaEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, TaxonomyErrors.taxa_notfound); - - // relations - - // fields - //V.ifEmpty(model.getExternalId(), TaxonomyErrors.taxa_externalid_empty); - V.ifEmpty(model.getEntityKey(), TaxonomyErrors.taxa_entitykey_empty); - //V.ifEmpty(model.getSpace(), TaxonomyErrors.taxa_space_empty); - V.ifEmpty(model.getModelType(), TaxonomyErrors.taxa_modeltype_empty); - //V.ifEmpty(model.isCustom(), TaxonomyErrors.taxa_custom_empty); - V.ifEmpty(model.getName(), TaxonomyErrors.taxa_name_empty); - //V.ifEmpty(model.getDescription(), TaxonomyErrors.taxa_description_empty); - // data - //V.ifNull(model.getData(), TaxonomyErrors.taxa_data_notfound); - //V.ifEmpty(model.getData().getSchema(), TaxonomyErrors.taxa_data_schema_empty); - //V.ifEmpty(model.getData().getAttributes(), TaxonomyErrors.taxa_data_attributes_empty); - } - - @Override - protected void doAction() { - - // model - var model = makeModel(); - - // add - entity = saveEntity(model); - - // add others - addTaxons(getArgument().getTaxons()); - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private TaxaEntity makeModel() { - - var argModel = getArgument().getEntity(); - var model = new TaxaEntity(); - - // fields - model.setExternalId(argModel.getExternalId()); - model.setEntityKey(argModel.getEntityKey()); - model.setSpace(argModel.getSpace()); - model.setModelType(argModel.getModelType()); - model.setCustom(argModel.isCustom()); - model.setName(argModel.getName()); - model.setDescription(argModel.getDescription()); - model.setActive(true); - - // data - model.setData(argModel.getData()); - - return model; - } - - // ::: save - // - private TaxaEntity saveEntity(TaxaEntity model) { - - var store = AppModules.taxonomy.getController().getTaxaStore(); - - var saved = store.add(getContext(), model); - getContext().attach(saved.getId(), saved); - return saved; - } - - // ::: add taxons - // - private void addTaxons(List list) { - if(list != null) { - list.forEach(i->{ - i.getEntity().taxa(entity); - Actions.perform(getContext(), new TaxonAddAction(), i); - }); - } - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaAddArgument.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaAddArgument.java deleted file mode 100644 index ca5809a..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaAddArgument.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxa; - -// java -import java.util.List; -// app -import io.kumare.iqr.mod.taxonomy.store.taxa.TaxaEntity; -import io.kumare.iqr.mod.taxonomy.action.taxon.TaxonAddArgument; - -/** - * - * @author afatecha - */ -public class TaxaAddArgument extends TaxaActionArgument { - - // ::: vars - // - private List taxons; - - // ::: constructors - // - public TaxaAddArgument() { - } - - public TaxaAddArgument(TaxaEntity entity) { - super(entity); - } - - // ::: fields - // - public List getTaxons() { - return taxons; - } - - public void setTaxons(List list) { - this.taxons = list; - } - - // ::: fluent api - // - public TaxaAddArgument taxons(List taxons) { - setTaxons(taxons); - return this; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaDeleteAction.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaDeleteAction.java deleted file mode 100644 index 2682923..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaDeleteAction.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxa; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.taxonomy.TaxonomyErrors; -// entity -import io.kumare.iqr.mod.taxonomy.store.taxa.TaxaEntity; - -/** - * - * @author afatecha - */ -public class TaxaDeleteAction extends AppAction> { - - // ::: vars - // - private TaxaEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), TaxonomyErrors.taxa_notfound); - V.ifNull(getArgument().getEntity().getId(), TaxonomyErrors.taxa_notfound); - } - - @Override - protected void doAction() { - - var argModel = getArgument().getEntity(); - - deleteEntity(argModel); - } - - @Override - protected void setResultOnly() { - } - - // ::: delete - // - private void deleteEntity(TaxaEntity model) { - - var store = AppModules.taxonomy.getController().getTaxaStore(); - - store.deleteById(getContext(), model.getId()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaEditAction.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaEditAction.java deleted file mode 100644 index 895ed56..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaEditAction.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxa; - -// lib -import io.kumare.lib.v.V; -// app -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.taxonomy.TaxonomyErrors; -// entity -import io.kumare.iqr.mod.taxonomy.store.taxa.TaxaEntity; - -/** - * - * @author afatecha - */ -public class TaxaEditAction extends AppAction> { - - // ::: vars - // - private TaxaEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, TaxonomyErrors.taxa_notfound); - - // fields - //V.ifEmpty(model.getExternalId(), TaxonomyErrors.taxa_externalid_empty); - //V.ifEmpty(model.getEntityKey(), TaxonomyErrors.taxa_entitykey_empty); - //V.ifEmpty(model.getSpace(), TaxonomyErrors.taxa_space_empty); - //V.ifEmpty(model.getModelType(), TaxonomyErrors.taxa_modeltype_empty); - //V.ifEmpty(model.isCustom(), TaxonomyErrors.taxa_custom_empty); - //V.ifEmpty(model.getName(), TaxonomyErrors.taxa_name_empty); - //V.ifEmpty(model.getDescription(), TaxonomyErrors.taxa_description_empty); - // data - //V.ifNull(model.getData(), TaxonomyErrors.taxa_data_notfound); - //V.ifEmpty(model.getData().getSchema(), TaxonomyErrors.taxa_data_schema_empty); - //V.ifEmpty(model.getData().getAttributes(), TaxonomyErrors.taxa_data_attributes_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - var taxonomy = AppModules.taxonomy.getController(); - var taxaStore = taxonomy.getTaxaStore(); - - // edit - entity = taxaStore.ensure(getContext(), argModel, TaxonomyErrors.taxa_notfound); - - editEntity(); - - entity = saveEntity(); - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private void editEntity() { - - var model = getArgument().getEntity(); - - // fields - entity.setExternalId(V.firstNotEmpty(model.getExternalId(), entity.getExternalId())); - entity.setEntityKey(V.firstNotEmpty(model.getEntityKey(), entity.getEntityKey())); - entity.setSpace(V.firstNotEmpty(model.getSpace(), entity.getSpace())); - //entity.setModelType(V.firstNotEmpty(model.getModelType(), entity.getModelType())); - //entity.setCustom(V.firstNotEmpty(model.isCustom(), entity.isCustom())); - entity.setName(V.firstNotEmpty(model.getName(), entity.getName())); - entity.setDescription(V.firstNotEmpty(model.getDescription(), entity.getDescription())); - - // data - if (model.getData() != null) { - entity.setData(model.getData()); - } - - } - - // ::: save - // - private TaxaEntity saveEntity() { - - var store = AppModules.taxonomy.getController().getTaxaStore(); - - var saved = store.edit(getContext(), entity); - getContext().attach(saved.getId(), saved); - return saved; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaEditArgument.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaEditArgument.java deleted file mode 100644 index 5e620a5..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaEditArgument.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxa; - -// app -import io.kumare.iqr.mod.taxonomy.store.taxa.TaxaEntity; - -/** - * - * @author afatecha - */ -public class TaxaEditArgument extends TaxaActionArgument { - - // ::: vars - // - - - // ::: constructors - // - public TaxaEditArgument() { - } - - public TaxaEditArgument(TaxaEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaEnableAction.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaEnableAction.java deleted file mode 100644 index db9ed5f..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaEnableAction.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxa; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.taxonomy.TaxonomyErrors; -// entity -import io.kumare.iqr.mod.taxonomy.store.taxa.TaxaEntity; - - -/** - * - * @author afatecha - */ -public class TaxaEnableAction extends AppAction { - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), TaxonomyErrors.taxa_notfound); - V.ifNull(getArgument().getEntity().getId(), TaxonomyErrors.taxa_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - - enableEntity(model); - } - - @Override - protected void setResultOnly() { - } - - // ::: enable - // - private void enableEntity(TaxaEntity model) { - - var store = AppModules.taxonomy.getController().getTaxaStore(); - - if (getArgument().getEntity().isActive()) { - store.enableById(getContext(), model.getId()); - } else { - store.disableById(getContext(), model.getId()); - } - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaExportAction.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaExportAction.java deleted file mode 100644 index 2434e5c..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaExportAction.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxa; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.LinkedList; -import java.util.Map; -// spring -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// entity -import io.kumare.iqr.mod.taxonomy.store.taxa.TaxaEntity; -import io.kumare.iqr.mod.taxonomy.store.taxa.TaxaMapBuilder; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonMapBuilder; -import static io.kumare.lib.app.api.store.EntityFieldDescriptor.MAIN; - -/** - * - * @author afatecha - */ -public class TaxaExportAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - } - - @Override - protected void doAction() { - exportTaxas(); - exportTaxons(); - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: taxas - // - private void exportTaxas() { - - var output = new LinkedList(); - - var store = AppModules.taxonomy.getController().getTaxaStore(); - var found = store.listAll(getContext()); - - var builder = new TaxaMapBuilder().addMainGroup(); - output.addAll(builder.build(getContext(), found)); - - result.put("taxas", output); - } - - private void exportTaxons() { - - var output = new LinkedList(); - - var store = AppModules.taxonomy.getController().getTaxonStore(); - var found = store.listAll(getContext()); - - var builder = new TaxonMapBuilder() - .addMainGroup() - .add("taxa").add("parent").add("type"); - - output.addAll(builder.build(getContext(), found)); - - result.put("taxons", output); - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaFindAction.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaFindAction.java deleted file mode 100644 index 06fbf83..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaFindAction.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxa; - -// java -import java.util.HashMap; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.taxonomy.TaxonomyErrors; -// entity -import io.kumare.iqr.mod.taxonomy.store.taxa.TaxaEntity; - - -/** - * - * @author afatecha - */ -public class TaxaFindAction extends AppAction { - - // ::: vars - // - private TaxaEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), TaxonomyErrors.taxa_notfound); - V.ifNull(getArgument().getEntity().getId(), TaxonomyErrors.taxa_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - entity = findEntity(model); - } - - @Override - protected void setResultOnly() { - var result = new HashMap(); - result.put("entity", entity); - setResult(result); - } - - // ::: find - // - private TaxaEntity findEntity(TaxaEntity model) { - - var store = AppModules.taxonomy.getController().getTaxaStore(); - return store.findById(getContext(), model.getId()); - } - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaImportAction.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaImportAction.java deleted file mode 100644 index 54b988c..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaImportAction.java +++ /dev/null @@ -1,100 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxa; - -// java -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -// lib -import io.kumare.lib.base.server.spring.action.Actions; -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -// entity -import io.kumare.iqr.mod.taxonomy.store.taxa.TaxaEntity; -import io.kumare.iqr.mod.taxonomy.action.taxon.TaxonAddArgument; - -/** - * - * @author afatecha - */ -public class TaxaImportAction extends AppAction> { - - // ::: vars - // - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifEmpty(getArgument().getTaxas(), AppErrors.action_arg_notfound); - } - - @Override - protected void doAction() { - var arguments = readInput(); - V.ifEmpty(arguments, AppErrors.action_arg_notfound); - - clearAll(); - - addTaxas(arguments); - } - - @Override - protected void setResultOnly() { - } - - // ::: model - // - private List readInput() { - - var list = new LinkedList(); - var taxonMap = makeTaxonMapByTaxaKey(); - - getArgument().getTaxas().forEach(i -> { - var taxons = taxonMap.get(i.getEntity().getEntityKey()); - list.add(i.taxons(taxons)); - }); - - return list; - } - - private Map> makeTaxonMapByTaxaKey() { - var map = new HashMap>(); - - getArgument().getTaxons().forEach(i->{ - var key = i.getEntity().getTaxaKey(); - map.putIfAbsent(key, new LinkedList<>()); - map.get(key).add(i); - }); - - return map; - } - - // ::: clear - // - private void clearAll() { - var controller = AppModules.taxonomy.getController(); - controller.getTaxonStore().getRepository().deleteAll(); - controller.getTaxaStore().getRepository().deleteAll(); - } - - // ::: add taxas - // - private void addTaxas(List list) { - if (list != null) { - list.forEach(i -> { - Actions.perform(getContext(), new TaxaAddAction(), i); - }); - } - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaImportArgument.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaImportArgument.java deleted file mode 100644 index 802b340..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaImportArgument.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxa; - -// base -import io.kumare.iqr.app.action.AppActionArgument; -import io.kumare.iqr.mod.taxonomy.action.taxon.TaxonAddArgument; -import java.util.List; - -/** - * - * @author afatecha - */ -public class TaxaImportArgument extends AppActionArgument { - - // ::: vars - // - private List taxas; - private List taxons; - - // ::: constructors - // - public TaxaImportArgument() { - } - - // ::: api - // - public List getTaxas() { - return taxas; - } - - public void setTaxas(List taxas) { - this.taxas = taxas; - } - - public List getTaxons() { - return taxons; - } - - public void setTaxons(List taxons) { - this.taxons = taxons; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaListAction.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaListAction.java deleted file mode 100644 index 89bbd90..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaListAction.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxa; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.LinkedList; -import java.util.Map; -// spring -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// entity -import io.kumare.iqr.mod.taxonomy.store.taxa.TaxaEntity; -import io.kumare.iqr.mod.taxonomy.store.taxa.TaxaMapBuilder; - - -/** - * - * @author afatecha - */ -public class TaxaListAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private final List entities = new LinkedList<>(); - - // ::: public api - // - public List getEntities() { - return entities; - } - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - } - - @Override - protected void doAction() { - - result.put("pageable", getArgument().isPageable()); - result.put("wrapped", getArgument().isWrapped()); - - if (getArgument().isPageable()) { - - var page = makePage(); - entities.addAll(page.toList()); - - if (getArgument().isWrapped()) { - result.put("page", makeWrappedPage(page)); - } else { - result.put("page", page); - } - - } else { - - var list = makeList(); - entities.addAll(list); - - if (getArgument().isWrapped()) { - result.put("list", makeWrappedList()); - } else { - result.put("list", list); - } - } - - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: page - // - private Page makePage() { - - var page = getArgument().getPageNumber(); - var size = getArgument().getPageSize(); - //var sort = getArgument().getSort(); - - var pageable = PageRequest.of(page, size); - - var store = AppModules.taxonomy.getController().getTaxaStore(); - return store.getRepository().findAll(pageable); - } - - // ::: wrapped page - // - private Map makeWrappedPage(Page found) { - - var page = new HashMap(); - var content = new LinkedList(); - - wrapList(entities, content); - - page.put("size", found.getSize()); - page.put("number", found.getNumber()); - page.put("totalElements", found.getTotalElements()); - page.put("totalPages", found.getTotalPages()); - page.put("content", content); - - return page; - } - - - // ::: list - // - - private List makeList() { - - var store = AppModules.taxonomy.getController().getTaxaStore(); - - return store.listAll(getContext()); - } - - // ::: wrapped list - private List makeWrappedList() { - var list = new LinkedList(); - - wrapList(entities, list); - - return list; - } - - // ::: wrapper - // - private void wrapList(List found, List output) { - - var builder = new TaxaMapBuilder().addListGroup(); - - - output.addAll(builder.build(getContext(), found)); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaListArgument.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaListArgument.java deleted file mode 100644 index 77de73f..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaListArgument.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxa; - -// app -import io.kumare.iqr.app.action.AppListActionArgument; -// store -import io.kumare.iqr.mod.taxonomy.store.taxa.TaxaEntity; - -/** - * - * @author afatecha - */ -public class TaxaListArgument extends AppListActionArgument { - - // ::: vars - // - - // ::: constructors - // - public TaxaListArgument() { - } - - public TaxaListArgument(TaxaEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaPreloadAction.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaPreloadAction.java deleted file mode 100644 index 14f07ef..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaPreloadAction.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxa; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.taxonomy.TaxonomyErrors; -// entity -import io.kumare.iqr.mod.taxonomy.store.taxa.TaxaEntity; -// relations - - -/** - * - * @author afatecha - */ -public class TaxaPreloadAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private Map params = new HashMap<>(); - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifEmpty(getArgument().getAction(), TaxonomyErrors.taxa_preload_empty); - } - - @Override - protected void doAction() { - if(getArgument().getParams() != null) { - params = getArgument().getParams(); - } - - switch (getArgument().getAction()) { - case "find" -> - prepareFind(); - case "list" -> - prepareList(); - case "add" -> - prepareAdd(); - case "edit" -> - prepareEdit(); - } - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: preload - // - private void prepareAdd() { - - } - - private void prepareEdit() { - var entity = findEntity(); - result.put("entity", entity); - - } - - private void prepareList() { - } - - private void prepareFind() { - var entity = findEntity(); - result.put("entity", entity); - - } - - // ::: queries - // - private TaxaEntity findEntity() { - var store = AppModules.taxonomy.getController().getTaxaStore(); - - var id = (String) params.get("id"); - if(id == null && getArgument().getEntity() != null) { - id = getArgument().getEntity().getId(); - } - return store.findById(getContext(), id); - } - - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaPreloadArgument.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaPreloadArgument.java deleted file mode 100644 index efebb6a..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxa/TaxaPreloadArgument.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxa; - -/** - * - * @author afatecha - */ -public class TaxaPreloadArgument extends TaxaActionArgument { - - // ::: vars - // - private String action; - - // ::: fields - // - public String getAction() { - return action; - } - - public void setAction(String action) { - this.action = action; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonActionArgument.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonActionArgument.java deleted file mode 100644 index 5c46864..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonActionArgument.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxon; - -// base -import io.kumare.iqr.app.action.AppEntityActionArgument; -// entity -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; - -/** - * - * @author afatecha - */ -public class TaxonActionArgument extends AppEntityActionArgument { - - // ::: constructors - // - public TaxonActionArgument() { - } - - public TaxonActionArgument(TaxonEntity entity) { - super(entity); - } - - // ::: api - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonActionUtils.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonActionUtils.java deleted file mode 100644 index b02b763..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonActionUtils.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - */ -package io.kumare.iqr.mod.taxonomy.action.taxon; - -// base -import io.kumare.lib.javax.maps.SmartMap; -import io.kumare.lib.javax.types.Types; -import io.kumare.lib.v.ExceptionPrototype; -import io.kumare.lib.v.V; -// app -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonFieldSchema; - -/** - * - * @author afatecha - */ -public class TaxonActionUtils { - - public static T value(SmartMap schema, - String fieldName, - T fieldValue, - ExceptionPrototype proto) { - return value(schema, fieldName, fieldValue, null, proto); - } - - public static T value(SmartMap schema, - String fieldName, - T fieldValue, - T previousValue, - ExceptionPrototype proto) { - if (schema == null || !schema.exists(fieldName)) { - return fieldValue; - } - - var fieldSchema = schema.toSmartMap(fieldName); - var enabled = fieldSchema.getBoolean(TaxonFieldSchema.enabled.name(), true); - var required = fieldSchema.getBoolean(TaxonFieldSchema.required.name()); - - if(enabled && required && fieldValue == null && previousValue != null) { - return previousValue; - } - - var defval = fieldSchema.find(TaxonFieldSchema.value.name()); - if (enabled && required && defval != null && V.isEmpty(fieldValue)) { - return (T) defval; - } - - if (enabled && required) { - V.ifEmpty(fieldValue, proto); - } - - var options = fieldSchema.toSmartMapList(TaxonFieldSchema.options.name()); - if (!options.isEmpty()) { - var s = Types.toString(fieldValue); - for (var i : options) { - if (s.equals(i.getString(TaxonFieldSchema.value.name()))) { - return fieldValue; - } - } - } - - return fieldValue; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonAddAction.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonAddAction.java deleted file mode 100644 index 2c1af06..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonAddAction.java +++ /dev/null @@ -1,204 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxon; - -// java -import java.util.List; -// lib -import io.kumare.lib.base.server.spring.action.Actions; -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// app -import io.kumare.iqr.mod.taxonomy.TaxonomyErrors; -import static io.kumare.iqr.mod.taxonomy.action.taxon.TaxonActionUtils.value; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; -import io.kumare.iqr.mod.taxonomy.store.taxa.TaxaEntity; -import io.kumare.iqr.mod.taxonomy.action.taxonrelation.TaxonRelationAddAction; -import io.kumare.iqr.mod.taxonomy.action.taxonrelation.TaxonRelationAddArgument; -import io.kumare.lib.javax.maps.SmartMap; - -/** - * - * @author afatecha - */ -public class TaxonAddAction extends AppAction> { - - // ::: vars - // - private TaxonEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, TaxonomyErrors.taxon_notfound); - - // relations - //V.ifNull(model.getTaxa(), TaxonomyErrors.taxon_taxa_notfound); - //V.ifNull(model.getType(), TaxonomyErrors.taxon_type_notfound); - //V.ifNull(model.getParent(), TaxonomyErrors.taxon_parent_notfound); - // fields - //V.ifEmpty(model.getExternalId(), TaxonomyErrors.taxon_externalid_empty); - //V.ifEmpty(model.getEntityKey(), TaxonomyErrors.taxon_entitykey_empty); - //V.ifEmpty(model.getSpace(), TaxonomyErrors.taxon_space_empty); - V.ifEmpty(model.getTaxaKey(), TaxonomyErrors.taxon_taxakey_empty); - //V.ifEmpty(model.getTypeKey(), TaxonomyErrors.taxon_typekey_empty); - //V.ifEmpty(model.getTypeValue(), TaxonomyErrors.taxon_typevalue_empty); - //V.ifEmpty(model.getParentKey(), TaxonomyErrors.taxon_parentkey_empty); - //V.ifEmpty(model.getParentValue(), TaxonomyErrors.taxon_parentvalue_empty); - //V.ifEmpty(model.getLevel(), TaxonomyErrors.taxon_level_empty); - //V.ifEmpty(model.getOrdinal(), TaxonomyErrors.taxon_ordinal_empty); - //V.ifEmpty(model.getValue(), TaxonomyErrors.taxon_value_empty); - V.ifEmpty(model.getName(), TaxonomyErrors.taxon_name_empty); - //V.ifEmpty(model.isMain(), TaxonomyErrors.taxon_main_empty); - //V.ifEmpty(model.getDescription(), TaxonomyErrors.taxon_description_empty); - // data - //V.ifNull(model.getData(), TaxonomyErrors.taxon_data_notfound); - //V.ifEmpty(model.getData().getAttributes(), TaxonomyErrors.taxon_data_attributes_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - var taxonomy = AppModules.taxonomy.getController(); - - var taxaStore = taxonomy.getTaxaStore(); - var taxonStore = taxonomy.getTaxonStore(); - - var taxa = taxaStore.find(getContext(), argModel.getTaxa()); - if (taxa == null) { - taxa = taxaStore.ensureByKey(getContext(), argModel.getTaxaKey(), TaxonomyErrors.taxon_taxa_notfound); - } - - var type = taxonStore.find(getContext(), argModel.getType()); - var parent = taxonStore.find(getContext(), argModel.getParent()); - - // model - var model = makeModel(taxa, type, parent); - - // add - entity = saveEntity(model); - - // main - if (entity.isMain()) { - taxonomy.getTaxonStore().setAsDefault(getContext(), entity); - } - - // add others - addChildren(getArgument().getChildren()); - addRelations(getArgument().getRelations()); - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private TaxonEntity makeModel(TaxaEntity taxa, TaxonEntity type, TaxonEntity parent) { - // schema - var taxaSchema = taxa.getData() == null ? null : taxa.getData().getSchema(); - var schema = taxaSchema == null ? null : new SmartMap(taxaSchema); - - // model - var argModel = getArgument().getEntity(); - var model = new TaxonEntity(); - - model.setActive(true); - model.setLevel(1); - - // relations - model.setTaxa(taxa); - model.setTaxaKey(argModel.getTaxaKey()); - - if (type != null) { - model.setType(type); - model.setTypeKey(argModel.getTypeKey()); - model.setTypeValue(argModel.getTypeValue()); - } - - if (parent != null) { - model.setParent(parent); - model.setParentKey(argModel.getParentKey()); - model.setParentValue(argModel.getParentValue()); - model.setLevel(parent.getLevel() + 1); - } - - // fields - // space : temporalmente deshabilitado - - model.setExternalId(value(schema, "externalId", - argModel.getExternalId(), - TaxonomyErrors.taxon_externalid_empty)); - - model.setEntityKey(value(schema, "entityKey", - argModel.getEntityKey(), - TaxonomyErrors.taxon_entitykey_empty)); - - model.setValue(value(schema, "value", - argModel.getValue(), - TaxonomyErrors.taxon_value_empty)); - - model.setName(argModel.getName()); - - model.setMain(argModel.isMain()); - model.setDescription(argModel.getDescription()); - - // XXX FIX-IT - model.setOrdinal(argModel.getOrdinal()); - - return model; - } - - // ::: save - // - private TaxonEntity saveEntity(TaxonEntity model) { - - var store = AppModules.taxonomy.getController().getTaxonStore(); - - var saved = store.add(getContext(), model); - getContext().attach(saved.getId(), saved); - return saved; - } - - // ::: add children - // - private void addChildren(List list) { - if (list != null) { - list.forEach(i -> { - i.getEntity().parent(entity).taxa(entity.getTaxa()).taxaKey(entity.getTaxaKey()); - Actions.perform(getContext(), new TaxonAddAction(), i); - }); - } - } - - // ::: add relations - // - private void addRelations(List list) { - - if (list != null) { - list.forEach(i -> { - i.getEntity().subject(entity); - Actions.perform(getContext(), new TaxonRelationAddAction(), i); - }); - } - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonAddArgument.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonAddArgument.java deleted file mode 100644 index 72e34fa..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonAddArgument.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxon; - -// java -import java.util.List; -// app -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; -import io.kumare.iqr.mod.taxonomy.action.taxonrelation.TaxonRelationAddArgument; - - -/** - * - * @author afatecha - */ -public class TaxonAddArgument extends TaxonActionArgument { - - // ::: vars - // - private List children; - private List relations; - - // ::: constructors - // - public TaxonAddArgument() { - } - - public TaxonAddArgument(TaxonEntity entity) { - super(entity); - } - - // ::: fields - // - public List getChildren() { - return children; - } - - public void setChildren(List children) { - this.children = children; - } - - public List getRelations() { - return relations; - } - - public void setRelations(List relations) { - this.relations = relations; - } - - - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonDeleteAction.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonDeleteAction.java deleted file mode 100644 index de2fa27..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonDeleteAction.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxon; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.taxonomy.TaxonomyErrors; -// entity -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; - -/** - * - * @author afatecha - */ -public class TaxonDeleteAction extends AppAction> { - - // ::: vars - // - private TaxonEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), TaxonomyErrors.taxon_notfound); - V.ifNull(getArgument().getEntity().getId(), TaxonomyErrors.taxon_notfound); - } - - @Override - protected void doAction() { - - var argModel = getArgument().getEntity(); - - deleteEntity(argModel); - } - - @Override - protected void setResultOnly() { - } - - // ::: delete - // - private void deleteEntity(TaxonEntity model) { - - var store = AppModules.taxonomy.getController().getTaxonStore(); - - store.deleteById(getContext(), model.getId()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonEditAction.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonEditAction.java deleted file mode 100644 index 1186b17..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonEditAction.java +++ /dev/null @@ -1,133 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxon; - -// lib -import io.kumare.lib.v.V; -// app -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.taxonomy.TaxonomyErrors; -import static io.kumare.iqr.mod.taxonomy.action.taxon.TaxonActionUtils.value; -// entity -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; -import io.kumare.lib.javax.maps.SmartMap; - -/** - * - * @author afatecha - */ -public class TaxonEditAction extends AppAction> { - - // ::: vars - // - private TaxonEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, TaxonomyErrors.taxon_notfound); - - // fields - //V.ifEmpty(model.getExternalId(), TaxonomyErrors.taxon_externalid_empty); - //V.ifEmpty(model.getEntityKey(), TaxonomyErrors.taxon_entitykey_empty); - //V.ifEmpty(model.getSpace(), TaxonomyErrors.taxon_space_empty); - //V.ifEmpty(model.getTaxaKey(), TaxonomyErrors.taxon_taxakey_empty); - //V.ifEmpty(model.getTypeKey(), TaxonomyErrors.taxon_typekey_empty); - //V.ifEmpty(model.getTypeValue(), TaxonomyErrors.taxon_typevalue_empty); - //V.ifEmpty(model.getParentKey(), TaxonomyErrors.taxon_parentkey_empty); - //V.ifEmpty(model.getParentValue(), TaxonomyErrors.taxon_parentvalue_empty); - //V.ifEmpty(model.getLevel(), TaxonomyErrors.taxon_level_empty); - //V.ifEmpty(model.getOrdinal(), TaxonomyErrors.taxon_ordinal_empty); - //V.ifEmpty(model.getValue(), TaxonomyErrors.taxon_value_empty); - //V.ifEmpty(model.getName(), TaxonomyErrors.taxon_name_empty); - //V.ifEmpty(model.isMain(), TaxonomyErrors.taxon_main_empty); - //V.ifEmpty(model.getDescription(), TaxonomyErrors.taxon_description_empty); - // data - //V.ifNull(model.getData(), TaxonomyErrors.taxon_data_notfound); - //V.ifEmpty(model.getData().getAttributes(), TaxonomyErrors.taxon_data_attributes_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - var taxonomy = AppModules.taxonomy.getController(); - var taxonStore = taxonomy.getTaxonStore(); - - // edit - entity = taxonStore.ensure(getContext(), argModel, TaxonomyErrors.taxon_notfound); - - var mainChanged = editEntity(); - - entity = saveEntity(); - - // watching default - if (mainChanged && entity.isMain()) { - taxonomy.getTaxonStore().setAsDefault(getContext(), entity); - } - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private boolean editEntity() { - // schema - var taxa = entity.getTaxa(); - var taxaSchema = taxa.getData() == null ? null : taxa.getData().getSchema(); - var schema = taxaSchema == null ? null : new SmartMap(taxaSchema); - - var model = getArgument().getEntity(); - var mainChanged = model.isMain() != entity.isMain(); - - // fields - // space : temporalmente deshabilitado - - entity.setExternalId(value(schema, "externalId", - model.getExternalId(), entity.getExternalId(), - TaxonomyErrors.taxon_externalid_empty)); - - if (model.getName() != null) { - entity.setName(model.getName()); - } - - entity.setValue(value(schema, "value", - model.getValue(), entity.getValue(), TaxonomyErrors.taxon_value_empty)); - - entity.setMain(model.isMain()); - entity.setDescription(model.getDescription()); - - return mainChanged; - } - - // ::: save - // - private TaxonEntity saveEntity() { - - var store = AppModules.taxonomy.getController().getTaxonStore(); - - var saved = store.edit(getContext(), entity); - getContext().attach(saved.getId(), saved); - return saved; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonEditArgument.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonEditArgument.java deleted file mode 100644 index be54e1a..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonEditArgument.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxon; - -// app -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; - -/** - * - * @author afatecha - */ -public class TaxonEditArgument extends TaxonActionArgument { - - // ::: vars - // - - - // ::: constructors - // - public TaxonEditArgument() { - } - - public TaxonEditArgument(TaxonEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonEnableAction.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonEnableAction.java deleted file mode 100644 index 17d061c..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonEnableAction.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxon; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.taxonomy.TaxonomyErrors; -// entity -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; - - -/** - * - * @author afatecha - */ -public class TaxonEnableAction extends AppAction { - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), TaxonomyErrors.taxon_notfound); - V.ifNull(getArgument().getEntity().getId(), TaxonomyErrors.taxon_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - - enableEntity(model); - } - - @Override - protected void setResultOnly() { - } - - // ::: enable - // - private void enableEntity(TaxonEntity model) { - - var store = AppModules.taxonomy.getController().getTaxonStore(); - - if (getArgument().getEntity().isActive()) { - store.enableById(getContext(), model.getId()); - } else { - store.disableById(getContext(), model.getId()); - } - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonFindAction.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonFindAction.java deleted file mode 100644 index 353cdc6..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonFindAction.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxon; - -// java -import java.util.HashMap; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.taxonomy.TaxonomyErrors; -// entity -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; - - -/** - * - * @author afatecha - */ -public class TaxonFindAction extends AppAction { - - // ::: vars - // - private TaxonEntity entity; - - // ::: public api - // - public TaxonEntity getEntity() { - return entity; - } - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), TaxonomyErrors.taxon_notfound); - V.ifNull(getArgument().getEntity().getId(), TaxonomyErrors.taxon_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - entity = findEntity(model); - } - - @Override - protected void setResultOnly() { - var result = new HashMap(); - result.put("entity", entity); - setResult(result); - } - - // ::: find - // - private TaxonEntity findEntity(TaxonEntity model) { - - var store = AppModules.taxonomy.getController().getTaxonStore(); - return store.findById(getContext(), model.getId()); - } - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonListAction.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonListAction.java deleted file mode 100644 index 95858d1..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonListAction.java +++ /dev/null @@ -1,157 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxon; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.LinkedList; -import java.util.Map; -// spring -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -import io.kumare.iqr.mod.taxonomy.store.taxa.TaxaEntity; -// entity -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonMapBuilder; - -/** - * - * @author afatecha - */ -public class TaxonListAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private final List entities = new LinkedList<>(); - - // ::: public api - // - public List getEntities() { - return entities; - } - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - } - - @Override - protected void doAction() { - result.put("pageable", getArgument().isPageable()); - result.put("wrapped", getArgument().isWrapped()); - - if (getArgument().isPageable()) { - - var page = makePage(); - entities.addAll(page.toList()); - - if (getArgument().isWrapped()) { - result.put("page", makeWrappedPage(page)); - } else { - result.put("page", page); - } - - } else { - - var list = makeList(); - entities.addAll(list); - - if (getArgument().isWrapped()) { - result.put("list", makeWrappedList()); - } else { - result.put("list", list); - } - } - - if (getArgument().isWithTaxa()) { - result.put("taxa", findTaxa()); - } - - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: find - // - protected TaxaEntity findTaxa() { - var store = AppModules.taxonomy.getController().getTaxaStore(); - var key = getArgument().getEntity().getTaxaKey(); - - return store.findByKey(getContext(), key); - } - - // ::: page - // - private Page makePage() { - - var page = getArgument().getPageNumber(); - var size = getArgument().getPageSize(); - //var sort = getArgument().getSort(); - - var pageable = PageRequest.of(page, size); - - var store = AppModules.taxonomy.getController().getTaxonStore(); - var taxaKey = getArgument().getEntity().getTaxaKey(); - return store.getRepository().findAllByTaxaKey(taxaKey, pageable); - } - - // ::: wrapped page - // - private Map makeWrappedPage(Page found) { - - var page = new HashMap(); - var content = new LinkedList(); - - wrapList(entities, content); - - page.put("size", found.getSize()); - page.put("number", found.getNumber()); - page.put("totalElements", found.getTotalElements()); - page.put("totalPages", found.getTotalPages()); - page.put("content", content); - - return page; - } - - private List makeList() { - - var store = AppModules.taxonomy.getController().getTaxonStore(); - - var taxaKey = getArgument().getEntity().getTaxaKey(); - return store.getRepository().findAllByTaxaKey(taxaKey); - } - - // ::: list - // - private List makeWrappedList() { - var list = new LinkedList(); - - wrapList(entities, list); - - return list; - } - - // ::: wrapper - // - private void wrapList(List found, List output) { - - var builder = new TaxonMapBuilder().addListGroup(true); - - output.addAll(builder.build(getContext(), found)); - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonListArgument.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonListArgument.java deleted file mode 100644 index 9ae6152..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonListArgument.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxon; - -// app -import io.kumare.iqr.app.action.AppListActionArgument; -// store -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; - -/** - * - * @author afatecha - */ -public class TaxonListArgument extends AppListActionArgument { - - // ::: vars - // - private boolean withTaxa = false; - - // ::: constructors - // - public TaxonListArgument() { - } - - public TaxonListArgument(TaxonEntity entity) { - super(entity); - } - - // ::: fields - // - public boolean isWithTaxa() { - return withTaxa; - } - - public void setWithTaxa(boolean withTaxa) { - this.withTaxa = withTaxa; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonPreloadAction.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonPreloadAction.java deleted file mode 100644 index 73422d4..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonPreloadAction.java +++ /dev/null @@ -1,121 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxon; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.taxonomy.TaxonomyErrors; -// entity -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; -// relations -import io.kumare.iqr.mod.taxonomy.store.taxa.TaxaEntity; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; - -/** - * - * @author afatecha - */ -public class TaxonPreloadAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private Map params = new HashMap<>(); - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifEmpty(getArgument().getAction(), TaxonomyErrors.taxon_preload_empty); - } - - @Override - protected void doAction() { - if(getArgument().getParams() != null) { - params = getArgument().getParams(); - } - - switch (getArgument().getAction()) { - case "find" -> - prepareFind(); - case "list" -> - prepareList(); - case "add" -> - prepareAdd(); - case "edit" -> - prepareEdit(); - } - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: preload - // - private void prepareAdd() { - result.put("taxa", findTaxa()); - } - - private void prepareEdit() { - var entity = findEntity(); - result.put("entity", entity); - result.put("taxa", entity.getTaxa()); - result.put("type", entity.getType()); - result.put("parent", entity.getParent()); - } - - private void prepareList() { - } - - private void prepareFind() { - var entity = findEntity(); - result.put("entity", entity); - result.put("taxa", entity.getTaxa()); - result.put("type", entity.getType()); - result.put("parent", entity.getParent()); - } - - // ::: queries - // - private TaxonEntity findEntity() { - var store = AppModules.taxonomy.getController().getTaxonStore(); - - var id = (String) params.get("id"); - if(id == null && getArgument().getEntity() != null) { - id = getArgument().getEntity().getId(); - } - return store.findById(getContext(), id); - } - - private TaxaEntity findTaxa() { - var store = AppModules.taxonomy.getController().getTaxaStore(); - var key = getArgument().getEntity().getTaxaKey(); - return store.findByKey(getContext(), key); - } - - public List listTaxas() { - var store = AppModules.taxonomy.getController().getTaxaStore(); - - return store.listAll(getContext()); - } - public List listTaxons() { - var store = AppModules.taxonomy.getController().getTaxonStore(); - - return store.listAll(getContext()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonPreloadArgument.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonPreloadArgument.java deleted file mode 100644 index c754dde..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxon/TaxonPreloadArgument.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxon; - -/** - * - * @author afatecha - */ -public class TaxonPreloadArgument extends TaxonActionArgument { - - // ::: vars - // - private String action; - - // ::: fields - // - public String getAction() { - return action; - } - - public void setAction(String action) { - this.action = action; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationActionArgument.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationActionArgument.java deleted file mode 100644 index f52c014..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationActionArgument.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxonrelation; - -// base -import io.kumare.iqr.app.action.AppEntityActionArgument; -// entity -import io.kumare.iqr.mod.taxonomy.store.taxonrelation.TaxonRelationEntity; - -/** - * - * @author afatecha - */ -public class TaxonRelationActionArgument extends AppEntityActionArgument { - - // ::: constructors - // - public TaxonRelationActionArgument() { - } - - public TaxonRelationActionArgument(TaxonRelationEntity entity) { - super(entity); - } - - // ::: api - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationAddAction.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationAddAction.java deleted file mode 100644 index 60d7aae..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationAddAction.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxonrelation; - - -// lib -import io.kumare.lib.base.server.spring.action.Actions; -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.taxonomy.TaxonomyErrors; -// entity -import io.kumare.iqr.mod.taxonomy.store.taxonrelation.TaxonRelationEntity; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; - - -/** - * - * @author afatecha - */ -public class TaxonRelationAddAction extends AppAction> { - - // ::: vars - // - private TaxonRelationEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, TaxonomyErrors.taxonrelation_notfound); - - // relations - V.ifNull(model.getSubject(), TaxonomyErrors.taxonrelation_subject_notfound); - V.ifNull(model.getPredicate(), TaxonomyErrors.taxonrelation_predicate_notfound); - V.ifNull(model.getObject(), TaxonomyErrors.taxonrelation_object_notfound); - - // fields - V.ifEmpty(model.getExternalId(), TaxonomyErrors.taxonrelation_externalid_empty); - V.ifEmpty(model.getSpace(), TaxonomyErrors.taxonrelation_space_empty); - V.ifEmpty(model.getLiteral(), TaxonomyErrors.taxonrelation_literal_empty); - // data - //V.ifNull(model.getData(), TaxonomyErrors.taxonrelation_data_notfound); - //V.ifEmpty(model.getData().getNote(), TaxonomyErrors.taxonrelation_data_note_empty); - //V.ifEmpty(model.getData().getAttributes(), TaxonomyErrors.taxonrelation_data_attributes_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - var taxonomy = AppModules.taxonomy.getController(); - - var taxonStore = taxonomy.getTaxonStore(); - - var subject = taxonStore.ensure(getContext(), argModel.getSubject(), TaxonomyErrors.taxonrelation_subject_notfound); - var predicate = taxonStore.ensure(getContext(), argModel.getPredicate(), TaxonomyErrors.taxonrelation_predicate_notfound); - var object = taxonStore.ensure(getContext(), argModel.getObject(), TaxonomyErrors.taxonrelation_object_notfound); - - // model - var model = makeModel(subject, predicate, object); - - // add - entity = saveEntity(model); - - // add others - - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private TaxonRelationEntity makeModel(TaxonEntity subject, TaxonEntity predicate, TaxonEntity object) { - - var argModel = getArgument().getEntity(); - var model = new TaxonRelationEntity(); - - // relations - model.setSubject(subject); - model.setPredicate(predicate); - model.setObject(object); - - // fields - model.setExternalId(argModel.getExternalId()); - model.setSpace(argModel.getSpace()); - model.setLiteral(argModel.getLiteral()); - model.setActive(true); - - - - return model; - } - - // ::: save - // - private TaxonRelationEntity saveEntity(TaxonRelationEntity model) { - - var store = AppModules.taxonomy.getController().getTaxonRelationStore(); - - var saved = store.add(getContext(), model); - getContext().attach(saved.getId(), saved); - return saved; - } - - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationAddArgument.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationAddArgument.java deleted file mode 100644 index edec235..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationAddArgument.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxonrelation; - - -// app -import io.kumare.iqr.mod.taxonomy.store.taxonrelation.TaxonRelationEntity; - - -/** - * - * @author afatecha - */ -public class TaxonRelationAddArgument extends TaxonRelationActionArgument { - - // ::: vars - // - - - // ::: constructors - // - public TaxonRelationAddArgument() { - } - - public TaxonRelationAddArgument(TaxonRelationEntity entity) { - super(entity); - } - - // ::: fields - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationDeleteAction.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationDeleteAction.java deleted file mode 100644 index 3ccfe63..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationDeleteAction.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxonrelation; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.taxonomy.TaxonomyErrors; -// entity -import io.kumare.iqr.mod.taxonomy.store.taxonrelation.TaxonRelationEntity; - -/** - * - * @author afatecha - */ -public class TaxonRelationDeleteAction extends AppAction> { - - // ::: vars - // - private TaxonRelationEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), TaxonomyErrors.taxonrelation_notfound); - V.ifNull(getArgument().getEntity().getId(), TaxonomyErrors.taxonrelation_notfound); - } - - @Override - protected void doAction() { - - var argModel = getArgument().getEntity(); - - deleteEntity(argModel); - } - - @Override - protected void setResultOnly() { - } - - // ::: delete - // - private void deleteEntity(TaxonRelationEntity model) { - - var store = AppModules.taxonomy.getController().getTaxonRelationStore(); - - store.deleteById(getContext(), model.getId()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationEditAction.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationEditAction.java deleted file mode 100644 index a548582..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationEditAction.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxonrelation; - -// lib -import io.kumare.lib.v.V; -// app -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppEntityActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.taxonomy.TaxonomyErrors; -// entity -import io.kumare.iqr.mod.taxonomy.store.taxonrelation.TaxonRelationEntity; - -/** - * - * @author afatecha - */ -public class TaxonRelationEditAction extends AppAction> { - - // ::: vars - // - private TaxonRelationEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - - // entity - var model = getArgument().getEntity(); - V.ifNull(model, TaxonomyErrors.taxonrelation_notfound); - - // fields - V.ifEmpty(model.getExternalId(), TaxonomyErrors.taxonrelation_externalid_empty); - V.ifEmpty(model.getSpace(), TaxonomyErrors.taxonrelation_space_empty); - V.ifEmpty(model.getLiteral(), TaxonomyErrors.taxonrelation_literal_empty); - // data - //V.ifNull(model.getData(), TaxonomyErrors.taxonrelation_data_notfound); - //V.ifEmpty(model.getData().getNote(), TaxonomyErrors.taxonrelation_data_note_empty); - //V.ifEmpty(model.getData().getAttributes(), TaxonomyErrors.taxonrelation_data_attributes_empty); - } - - @Override - protected void doAction() { - // arguments - var argModel = getArgument().getEntity(); - - // controllers - - var taxonomy = AppModules.taxonomy.getController(); - var taxonRelationStore = taxonomy.getTaxonRelationStore(); - - // edit - entity = taxonRelationStore.ensure(getContext(), argModel, TaxonomyErrors.taxonrelation_notfound); - - editEntity(); - - entity = saveEntity(); - - // dispatchEvents - } - - @Override - protected void setResultOnly() { - var result = new AppEntityActionResult(); - result.setEntity(entity); - setResult(result); - } - - // ::: model - // - private void editEntity() { - - var model = getArgument().getEntity(); - - // fields - entity.setExternalId(V.firstNotEmpty(model.getExternalId(), entity.getExternalId())); - entity.setSpace(V.firstNotEmpty(model.getSpace(), entity.getSpace())); - entity.setLiteral(V.firstNotEmpty(model.getLiteral(), entity.getLiteral())); - - - } - - // ::: save - // - private TaxonRelationEntity saveEntity() { - - var store = AppModules.taxonomy.getController().getTaxonRelationStore(); - - var saved = store.edit(getContext(), entity); - getContext().attach(saved.getId(), saved); - return saved; - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationEditArgument.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationEditArgument.java deleted file mode 100644 index b620aa5..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationEditArgument.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxonrelation; - -// app -import io.kumare.iqr.mod.taxonomy.store.taxonrelation.TaxonRelationEntity; - -/** - * - * @author afatecha - */ -public class TaxonRelationEditArgument extends TaxonRelationActionArgument { - - // ::: vars - // - - - // ::: constructors - // - public TaxonRelationEditArgument() { - } - - public TaxonRelationEditArgument(TaxonRelationEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationEnableAction.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationEnableAction.java deleted file mode 100644 index 4ef2390..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationEnableAction.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxonrelation; - -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.action.AppActionResult; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.taxonomy.TaxonomyErrors; -// entity -import io.kumare.iqr.mod.taxonomy.store.taxonrelation.TaxonRelationEntity; - - -/** - * - * @author afatecha - */ -public class TaxonRelationEnableAction extends AppAction { - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), TaxonomyErrors.taxonrelation_notfound); - V.ifNull(getArgument().getEntity().getId(), TaxonomyErrors.taxonrelation_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - - enableEntity(model); - } - - @Override - protected void setResultOnly() { - } - - // ::: enable - // - private void enableEntity(TaxonRelationEntity model) { - - var store = AppModules.taxonomy.getController().getTaxonRelationStore(); - - if (getArgument().getEntity().isActive()) { - store.enableById(getContext(), model.getId()); - } else { - store.disableById(getContext(), model.getId()); - } - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationFindAction.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationFindAction.java deleted file mode 100644 index b9adf51..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationFindAction.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxonrelation; - -// java -import java.util.HashMap; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.taxonomy.TaxonomyErrors; -// entity -import io.kumare.iqr.mod.taxonomy.store.taxonrelation.TaxonRelationEntity; - - -/** - * - * @author afatecha - */ -public class TaxonRelationFindAction extends AppAction { - - // ::: vars - // - private TaxonRelationEntity entity; - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifNull(getArgument().getEntity(), TaxonomyErrors.taxonrelation_notfound); - V.ifNull(getArgument().getEntity().getId(), TaxonomyErrors.taxonrelation_notfound); - } - - @Override - protected void doAction() { - - var model = getArgument().getEntity(); - entity = findEntity(model); - } - - @Override - protected void setResultOnly() { - var result = new HashMap(); - result.put("entity", entity); - setResult(result); - } - - // ::: find - // - private TaxonRelationEntity findEntity(TaxonRelationEntity model) { - - var store = AppModules.taxonomy.getController().getTaxonRelationStore(); - return store.findById(getContext(), model.getId()); - } - - -} - diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationListAction.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationListAction.java deleted file mode 100644 index 23cfc32..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationListAction.java +++ /dev/null @@ -1,150 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxonrelation; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.LinkedList; -import java.util.Map; -// spring -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// entity -import io.kumare.iqr.mod.taxonomy.store.taxonrelation.TaxonRelationEntity; -import io.kumare.iqr.mod.taxonomy.store.taxonrelation.TaxonRelationMapBuilder; - - -/** - * - * @author afatecha - */ -public class TaxonRelationListAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private final List entities = new LinkedList<>(); - - // ::: public api - // - public List getEntities() { - return entities; - } - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - } - - @Override - protected void doAction() { - - result.put("pageable", getArgument().isPageable()); - result.put("wrapped", getArgument().isWrapped()); - - if (getArgument().isPageable()) { - - var page = makePage(); - entities.addAll(page.toList()); - - if (getArgument().isWrapped()) { - result.put("page", makeWrappedPage(page)); - } else { - result.put("page", page); - } - - } else { - - var list = makeList(); - entities.addAll(list); - - if (getArgument().isWrapped()) { - result.put("list", makeWrappedList()); - } else { - result.put("list", list); - } - } - - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: page - // - private Page makePage() { - - var page = getArgument().getPageNumber(); - var size = getArgument().getPageSize(); - //var sort = getArgument().getSort(); - - var pageable = PageRequest.of(page, size); - - var store = AppModules.taxonomy.getController().getTaxonRelationStore(); - return store.getRepository().findAll(pageable); - } - - // ::: wrapped page - // - private Map makeWrappedPage(Page found) { - - var page = new HashMap(); - var content = new LinkedList(); - - wrapList(entities, content); - - page.put("size", found.getSize()); - page.put("number", found.getNumber()); - page.put("totalElements", found.getTotalElements()); - page.put("totalPages", found.getTotalPages()); - page.put("content", content); - - return page; - } - - - // ::: list - // - - private List makeList() { - - var store = AppModules.taxonomy.getController().getTaxonRelationStore(); - - return store.listAll(getContext()); - } - - // ::: wrapped list - private List makeWrappedList() { - var list = new LinkedList(); - - wrapList(entities, list); - - return list; - } - - // ::: wrapper - // - private void wrapList(List found, List output) { - - var builder = new TaxonRelationMapBuilder().addListGroup(); - builder.getSubjectBuilder().addMainGroup(); - builder.getPredicateBuilder().addMainGroup(); - builder.getObjectBuilder().addMainGroup(); - - output.addAll(builder.build(getContext(), found)); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationListArgument.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationListArgument.java deleted file mode 100644 index 86a4f2f..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationListArgument.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxonrelation; - -// app -import io.kumare.iqr.app.action.AppListActionArgument; -// store -import io.kumare.iqr.mod.taxonomy.store.taxonrelation.TaxonRelationEntity; - -/** - * - * @author afatecha - */ -public class TaxonRelationListArgument extends AppListActionArgument { - - // ::: vars - // - - // ::: constructors - // - public TaxonRelationListArgument() { - } - - public TaxonRelationListArgument(TaxonRelationEntity entity) { - super(entity); - } - - - // ::: fields - // - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationPreloadAction.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationPreloadAction.java deleted file mode 100644 index 87e02cd..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationPreloadAction.java +++ /dev/null @@ -1,109 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxonrelation; - -// java -import java.util.HashMap; -import java.util.List; -import java.util.Map; -// lib -import io.kumare.lib.v.V; -// base -import io.kumare.iqr.app.AppErrors; -import io.kumare.iqr.app.action.AppAction; -import io.kumare.iqr.app.module.AppModules; -// module -import io.kumare.iqr.mod.taxonomy.TaxonomyErrors; -// entity -import io.kumare.iqr.mod.taxonomy.store.taxonrelation.TaxonRelationEntity; -// relations -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; - -/** - * - * @author afatecha - */ -public class TaxonRelationPreloadAction extends AppAction { - - // ::: vars - // - private final Map result = new HashMap(); - private Map params = new HashMap<>(); - - // ::: protected api - // - @Override - protected void checkArgument() { - V.ifNull(getArgument(), AppErrors.action_arg_notfound); - V.ifEmpty(getArgument().getAction(), TaxonomyErrors.taxonrelation_preload_empty); - } - - @Override - protected void doAction() { - if(getArgument().getParams() != null) { - params = getArgument().getParams(); - } - - switch (getArgument().getAction()) { - case "find" -> - prepareFind(); - case "list" -> - prepareList(); - case "add" -> - prepareAdd(); - case "edit" -> - prepareEdit(); - } - } - - @Override - protected void setResultOnly() { - setResult(result); - } - - // ::: preload - // - private void prepareAdd() { - result.put("taxons", listTaxons()); - } - - private void prepareEdit() { - var entity = findEntity(); - result.put("entity", entity); - result.put("subject", entity.getSubject()); - result.put("predicate", entity.getPredicate()); - result.put("object", entity.getObject()); - } - - private void prepareList() { - } - - private void prepareFind() { - var entity = findEntity(); - result.put("entity", entity); - result.put("subject", entity.getSubject()); - result.put("predicate", entity.getPredicate()); - result.put("object", entity.getObject()); - } - - // ::: queries - // - private TaxonRelationEntity findEntity() { - var store = AppModules.taxonomy.getController().getTaxonRelationStore(); - - var id = (String) params.get("id"); - if(id == null && getArgument().getEntity() != null) { - id = getArgument().getEntity().getId(); - } - return store.findById(getContext(), id); - } - - public List listTaxons() { - var store = AppModules.taxonomy.getController().getTaxonStore(); - - return store.listAll(getContext()); - } - -} - diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationPreloadArgument.java b/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationPreloadArgument.java deleted file mode 100644 index acf590b..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/action/taxonrelation/TaxonRelationPreloadArgument.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.action.taxonrelation; - -/** - * - * @author afatecha - */ -public class TaxonRelationPreloadArgument extends TaxonRelationActionArgument { - - // ::: vars - // - private String action; - - // ::: fields - // - public String getAction() { - return action; - } - - public void setAction(String action) { - this.action = action; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/endpoint/rest/AbstractTaxaRest.java b/src/main/java/io/kumare/iqr/mod/taxonomy/endpoint/rest/AbstractTaxaRest.java deleted file mode 100644 index 33c3117..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/endpoint/rest/AbstractTaxaRest.java +++ /dev/null @@ -1,262 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.endpoint.rest; - -// java -import com.google.gson.Gson; -import java.util.Map; -// openapi -import io.swagger.v3.oas.annotations.*; -import io.swagger.v3.oas.annotations.media.*; -import io.swagger.v3.oas.annotations.responses.*; -// spring -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; -// base -import io.kumare.lib.app.api.operation.TransactionType; -import io.kumare.lib.app.api.security.PermissionReference; -// app -import io.kumare.iqr.app.endpoint.rest.AppEndpointRest; -import io.kumare.iqr.app.action.*; -// module -import io.kumare.iqr.mod.taxonomy.TaxonomyPermissions; -import io.kumare.iqr.mod.taxonomy.store.taxa.TaxaEntity; -import io.kumare.iqr.mod.taxonomy.action.taxa.*; -import org.springframework.web.multipart.MultipartFile; - -/** - * - * @author afatecha - */ -public abstract class AbstractTaxaRest extends AppEndpointRest { - - // ::: DEFAULT PERMISSIONS - // - protected PermissionReference getPermission(String action, String ref, Object extra) { - switch (action) { - case null -> { - return null; - } - case "add" -> { - return TaxonomyPermissions.taxa_worker.toReference(ref); - } - case "edit" -> { - return TaxonomyPermissions.taxa_worker.toReference(ref); - } - case "enable" -> { - return TaxonomyPermissions.taxa_manager.toReference(ref); - } - case "disable" -> { - return TaxonomyPermissions.taxa_manager.toReference(ref); - } - case "delete" -> { - return TaxonomyPermissions.taxa_manager.toReference(ref); - } - case "find" -> { - return TaxonomyPermissions.taxa_viewer.toReference(ref); - } - case "list" -> { - return TaxonomyPermissions.taxa_viewer.toReference(ref); - } - default -> { - return null; - } - } - } - - // ::: ADD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "taxa add operation", description = "") - // - @PostMapping - public ResponseEntity add(@RequestBody TaxaAddArgument arg) { - - var permission = getPermission("add", null, arg); - return handle(new TaxaAddAction(), arg, permission, TransactionType.service); - } - - // ::: EDIT - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "taxa edit operation", description = "") - // - @PutMapping("/{id}") - public ResponseEntity edit(@PathVariable("id") String id, - @RequestBody TaxaEditArgument arg) { - - arg.getEntity().id(id); - - var permission = getPermission("edit", id, arg); - return handle(new TaxaEditAction(), arg, permission, TransactionType.service); - } - - // ::: FIND - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "taxa find operation", description = "") - // - @GetMapping("/{id}") - public ResponseEntity find(@PathVariable("id") String id, - @ModelAttribute TaxaActionArgument arg) { - - arg = arg == null ? new TaxaActionArgument() : arg; - - arg.entity(new TaxaEntity(id)); - - var permission = getPermission("find", id, arg); - return handle(new TaxaFindAction(), arg, permission); - } - - // ::: ENABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "taxa enable operation", description = "") - // - @PutMapping("/{id}/enable") - public ResponseEntity enable(@PathVariable("id") String id) { - - var arg = new TaxaActionArgument(); - arg.setEntity(new TaxaEntity(id)); - arg.getEntity().setActive(true); - - var permission = getPermission("disable", id, arg); - return handle(new TaxaEnableAction(), arg, permission, TransactionType.service); - } - */ - // ::: DISABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "taxa disable operation", description = "") - // - @PutMapping("/{id}/disable") - public ResponseEntity disable(@PathVariable("id") String id) { - - var arg = new TaxaActionArgument(); - arg.setEntity(new TaxaEntity(id)); - arg.getEntity().setActive(false); - - var permission = getPermission("disable", id, arg); - return handle(new TaxaEnableAction(), arg, permission, TransactionType.service); - } - */ - // ::: LIST - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "taxa list operation", description = "") - // - @GetMapping - public ResponseEntity list(@ModelAttribute TaxaListArgument arg) { - - arg = arg == null ? new TaxaListArgument() : arg; - - var permission = getPermission("list", null, arg); - return handle(new TaxaListAction(), arg, permission); - } - - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "taxa export operation", description = "") - // - @GetMapping("/export") - public ResponseEntity export(@ModelAttribute TaxaListArgument arg) { - - arg = arg == null ? new TaxaListArgument() : arg; - - var permission = getPermission("list", null, arg); - return handle(new TaxaExportAction(), arg, permission); - } - - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "taxa import operation", description = "") - // - @PostMapping("/import") - public ResponseEntity loadImport(@RequestParam("message") String message, - @RequestParam("file") MultipartFile file) { - - try { - var arg = new Gson().fromJson(message, TaxaImportArgument.class); - arg.bytes(file.getBytes()); - - var permission = getPermission("manage", null, arg); - return handle(new TaxaImportAction(), arg, permission); - - } catch (Throwable t) { - return makeResponseError(t); - } - }*/ - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "taxa import operation", description = "") - // - @PostMapping("/import") - public ResponseEntity loadImport(@RequestBody TaxaImportArgument arg) { - - var permission = getPermission("manage", null, arg); - return handle(new TaxaImportAction(), arg, permission, TransactionType.service); - } - - // ::: DELETE - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "taxa delete operation", description = "") - // - @DeleteMapping("/{id}") - public ResponseEntity delete(@PathVariable("id") String id) { - - var arg = new TaxaActionArgument(); - - arg.setEntity(new TaxaEntity(id)); - - var permission = getPermission("delete", id, arg); - return handle(new TaxaDeleteAction(), arg, permission, TransactionType.service); - } - - // ::: PRELOAD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "taxa preload operation", description = "") - // - @PostMapping("/preload") - public ResponseEntity preload(@RequestBody TaxaPreloadArgument arg) { - - var permission = getPermission(arg.getAction(), null, arg); - return handle(new TaxaPreloadAction(), arg, permission); - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/endpoint/rest/AbstractTaxonRelationRest.java b/src/main/java/io/kumare/iqr/mod/taxonomy/endpoint/rest/AbstractTaxonRelationRest.java deleted file mode 100644 index 224010c..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/endpoint/rest/AbstractTaxonRelationRest.java +++ /dev/null @@ -1,214 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.endpoint.rest; - -// java -import java.util.Map; -// openapi -import io.swagger.v3.oas.annotations.*; -import io.swagger.v3.oas.annotations.media.*; -import io.swagger.v3.oas.annotations.responses.*; -// spring -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; -// base -import io.kumare.lib.app.api.operation.TransactionType; -import io.kumare.lib.app.api.security.PermissionReference; -// app -import io.kumare.iqr.app.endpoint.rest.AppEndpointRest; -import io.kumare.iqr.app.action.*; -// module -import io.kumare.iqr.mod.taxonomy.TaxonomyPermissions; -import io.kumare.iqr.mod.taxonomy.store.taxonrelation.TaxonRelationEntity; -import io.kumare.iqr.mod.taxonomy.action.taxonrelation.*; - -/** -* -* @author afatecha -*/ -public abstract class AbstractTaxonRelationRest extends AppEndpointRest { - - // ::: DEFAULT PERMISSIONS - // - protected PermissionReference getPermission(String action, String ref, Object extra) { - switch (action) { - case null -> { - return null; - } - case "add" -> { - return TaxonomyPermissions.taxon_relation_worker.toReference(ref); - } - case "edit" -> { - return TaxonomyPermissions.taxon_relation_worker.toReference(ref); - } - case "enable" -> { - return TaxonomyPermissions.taxon_relation_manager.toReference(ref); - } - case "disable" -> { - return TaxonomyPermissions.taxon_relation_manager.toReference(ref); - } - case "delete" -> { - return TaxonomyPermissions.taxon_relation_manager.toReference(ref); - } - case "find" -> { - return TaxonomyPermissions.taxon_relation_viewer.toReference(ref); - } - case "list" -> { - return TaxonomyPermissions.taxon_relation_viewer.toReference(ref); - } - default -> { - return null; - } - } - } - - - // ::: ADD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "taxon relation add operation", description = "") - // - @PostMapping - public ResponseEntity add(@RequestBody TaxonRelationAddArgument arg) { - - var permission = getPermission("add", null, arg); - return handle(new TaxonRelationAddAction(), arg, permission, TransactionType.service); - } - - // ::: EDIT - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "taxon relation edit operation", description = "") - // - @PutMapping("/{id}") - public ResponseEntity edit(@PathVariable("id") String id, - @RequestBody TaxonRelationEditArgument arg) { - - arg.getEntity().id(id); - - var permission = getPermission("edit", id, arg); - return handle(new TaxonRelationEditAction(), arg, permission, TransactionType.service); - } - - // ::: FIND - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "taxon relation find operation", description = "") - // - @GetMapping("/{id}") - public ResponseEntity find(@PathVariable("id") String id, - @ModelAttribute TaxonRelationActionArgument arg) { - - - arg = arg == null ? new TaxonRelationActionArgument() : arg; - - arg.entity(new TaxonRelationEntity(id)); - - var permission = getPermission("find", id, arg); - return handle(new TaxonRelationFindAction(), arg, permission); - } - - // ::: ENABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "taxon relation enable operation", description = "") - // - @PutMapping("/{id}/enable") - public ResponseEntity enable(@PathVariable("id") String id) { - - var arg = new TaxonRelationActionArgument(); - arg.setEntity(new TaxonRelationEntity(id)); - arg.getEntity().setActive(true); - - var permission = getPermission("disable", id, arg); - return handle(new TaxonRelationEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: DISABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "taxon relation disable operation", description = "") - // - @PutMapping("/{id}/disable") - public ResponseEntity disable(@PathVariable("id") String id) { - - var arg = new TaxonRelationActionArgument(); - arg.setEntity(new TaxonRelationEntity(id)); - arg.getEntity().setActive(false); - - var permission = getPermission("disable", id, arg); - return handle(new TaxonRelationEnableAction(), arg, permission, TransactionType.service); - } - */ - - // ::: LIST - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "taxon relation list operation", description = "") - // - @GetMapping - public ResponseEntity list(@ModelAttribute TaxonRelationListArgument arg) { - - arg = arg == null ? new TaxonRelationListArgument() : arg; - - var permission = getPermission("list", null, arg); - return handle(new TaxonRelationListAction(), arg, permission); - } - - // ::: DELETE - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "taxon relation delete operation", description = "") - // - @DeleteMapping("/{id}") - public ResponseEntity delete(@PathVariable("id") String id) { - - var arg = new TaxonRelationActionArgument(); - - arg.setEntity(new TaxonRelationEntity(id)); - - var permission = getPermission("delete", id, arg); - return handle(new TaxonRelationDeleteAction(), arg, permission, TransactionType.service); - } - - // ::: PRELOAD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "taxon relation preload operation", description = "") - // - @PostMapping("/preload") - public ResponseEntity preload(@RequestBody TaxonRelationPreloadArgument arg) { - - var permission = getPermission(arg.getAction(), null, arg); - return handle(new TaxonRelationPreloadAction(), arg, permission); - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/endpoint/rest/AbstractTaxonRest.java b/src/main/java/io/kumare/iqr/mod/taxonomy/endpoint/rest/AbstractTaxonRest.java deleted file mode 100644 index bbe8945..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/endpoint/rest/AbstractTaxonRest.java +++ /dev/null @@ -1,251 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.endpoint.rest; - -// java -import java.util.Map; -// openapi -import io.swagger.v3.oas.annotations.*; -import io.swagger.v3.oas.annotations.media.*; -import io.swagger.v3.oas.annotations.responses.*; -// spring -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; -// base -import io.kumare.lib.app.api.operation.TransactionType; -import io.kumare.lib.app.api.security.PermissionReference; -// app -import io.kumare.iqr.app.endpoint.rest.AppEndpointRest; -import io.kumare.iqr.app.action.*; -// module -import io.kumare.iqr.mod.taxonomy.TaxonomyPermissions; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; -import io.kumare.iqr.mod.taxonomy.action.taxon.*; - -/** - * - * @author afatecha - */ -public abstract class AbstractTaxonRest extends AppEndpointRest { - - // ::: DEFAULT PERMISSIONS - // - protected PermissionReference getPermission(String action, String ref, Object extra) { - switch (action) { - case null -> { - return null; - } - case "add" -> { - return TaxonomyPermissions.taxon_worker.toReference(ref); - } - case "edit" -> { - return TaxonomyPermissions.taxon_worker.toReference(ref); - } - case "set-as-default" -> { - return TaxonomyPermissions.taxon_manager.toReference(ref); - } - case "enable" -> { - return TaxonomyPermissions.taxon_manager.toReference(ref); - } - case "disable" -> { - return TaxonomyPermissions.taxon_manager.toReference(ref); - } - case "delete" -> { - return TaxonomyPermissions.taxon_manager.toReference(ref); - } - case "find" -> { - return TaxonomyPermissions.taxon_viewer.toReference(ref); - } - case "list" -> { - return TaxonomyPermissions.taxon_viewer.toReference(ref); - } - default -> { - return null; - } - } - } - - // ::: ADD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "taxon add operation", description = "") - // - @PostMapping - public ResponseEntity add(@PathVariable("taxaKey") String taxaKey, - @RequestBody TaxonAddArgument arg) { - - arg.getEntity().taxaKey(taxaKey); - - var permission = getPermission("add", taxaKey, arg); - return handle(new TaxonAddAction(), arg, permission, TransactionType.service); - } - - // ::: EDIT - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "taxon edit operation", description = "") - // - @PutMapping("/{id}") - public ResponseEntity edit(@PathVariable("taxaKey") String taxaKey, - @PathVariable("id") String id, - @RequestBody TaxonEditArgument arg) { - - arg.getEntity().taxaKey(taxaKey).id(id); - - var permission = getPermission("edit", taxaKey, arg); - return handle(new TaxonEditAction(), arg, permission, TransactionType.service); - } - - // ::: SET-AS-DEFAULT - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppEntityActionResult.class))) - }) - @Operation(summary = "taxon edit operation", description = "") - // - @PostMapping("/{id}/set-as-default") - public ResponseEntity setAsDefault(@PathVariable("taxaKey") String taxaKey, - @PathVariable("id") String id, - @RequestBody TaxonEditArgument arg) { - - arg.getEntity().taxaKey(taxaKey).id(id); - - var permission = getPermission("set-as-default", taxaKey, arg); - return handle(new TaxonSetAsDefaultAction(), arg, permission, TransactionType.service); - }*/ - - // ::: FIND - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "taxon find operation", description = "") - // - @GetMapping("/{id}") - public ResponseEntity find(@PathVariable("taxaKey") String taxaKey, - @PathVariable("id") String id, - @ModelAttribute TaxonActionArgument arg) { - - arg = arg == null ? new TaxonActionArgument() : arg; - - arg.entity(new TaxonEntity(id).taxaKey(taxaKey)); - - var permission = getPermission("find", taxaKey, arg); - return handle(new TaxonFindAction(), arg, permission); - } - - // ::: ENABLE - // - /* - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "taxon enable operation", description = "") - // - @PutMapping("/{id}/enable") - public ResponseEntity enable(@PathVariable("taxaKey") String taxaKey, - @PathVariable("id") String id) { - - var arg = new TaxonActionArgument(); - arg.setEntity(new TaxonEntity(id).taxaKey(taxaKey)); - arg.getEntity().setActive(true); - - var permission = getPermission("disable", taxaKey, arg); - return handle(new TaxonEnableAction(), arg, permission, TransactionType.service); - } - - // ::: DISABLE - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "taxon disable operation", description = "") - // - @PutMapping("/{id}/disable") - public ResponseEntity disable(@PathVariable("taxaKey") String taxaKey, - @PathVariable("id") String id) { - - var arg = new TaxonActionArgument(); - arg.setEntity(new TaxonEntity(id).taxaKey(taxaKey)); - arg.getEntity().setActive(false); - - var permission = getPermission("disable", taxaKey, arg); - return handle(new TaxonEnableAction(), arg, permission, TransactionType.service); - }*/ - - // ::: LIST - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "taxon list operation", description = "") - // - @GetMapping - public ResponseEntity list(@PathVariable("taxaKey") String taxaKey, - @ModelAttribute TaxonListArgument arg) { - - arg = arg == null ? new TaxonListArgument() : arg; - if (arg.getEntity() == null) { - arg.entity(new TaxonEntity()); - } - arg.getEntity().taxaKey(taxaKey); - - var permission = getPermission("list", taxaKey, arg); - return handle(new TaxonListAction(), arg, permission); - } - - // ::: DELETE - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = AppActionResult.class))) - }) - @Operation(summary = "taxon delete operation", description = "") - // - @DeleteMapping("/{id}") - public ResponseEntity delete(@PathVariable("taxaKey") String taxaKey, - @PathVariable("id") String id) { - - var arg = new TaxonActionArgument(); - - arg.setEntity(new TaxonEntity(id).taxaKey(taxaKey)); - - var permission = getPermission("delete", taxaKey, arg); - return handle(new TaxonDeleteAction(), arg, permission, TransactionType.service); - } - - // ::: PRELOAD - // - @ApiResponses(value = { - @ApiResponse(content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Map.class))) - }) - @Operation(summary = "taxon preload operation", description = "") - // - @PostMapping("/preload") - public ResponseEntity preload(@PathVariable("taxaKey") String taxaKey, - @RequestBody TaxonPreloadArgument arg) { - - if (arg.getEntity() == null) { - arg.entity(new TaxonEntity()); - } - arg.getEntity().taxaKey(taxaKey); - - var permission = getPermission(arg.getAction(), taxaKey, arg); - return handle(new TaxonPreloadAction(), arg, permission); - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/endpoint/rest/TaxaRest.java b/src/main/java/io/kumare/iqr/mod/taxonomy/endpoint/rest/TaxaRest.java deleted file mode 100644 index aca295d..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/endpoint/rest/TaxaRest.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.endpoint.rest; - -// java -import io.swagger.v3.oas.annotations.tags.*; -// spring -import org.springframework.web.bind.annotation.*; - -/** -* -* @author afatecha -*/ - -// openapi -@Tag(name = "taxa rest endpoint") -// -@RestController -@RequestMapping("/taxonomy/taxas") -public class TaxaRest extends AbstractTaxaRest { - - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/endpoint/rest/TaxonRelationRest.java b/src/main/java/io/kumare/iqr/mod/taxonomy/endpoint/rest/TaxonRelationRest.java deleted file mode 100644 index 64617b1..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/endpoint/rest/TaxonRelationRest.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.endpoint.rest; - -// java -import io.swagger.v3.oas.annotations.tags.*; -// spring -import org.springframework.web.bind.annotation.*; - -/** -* -* @author afatecha -*/ - -// openapi -//@Tag(name = "taxon relation rest endpoint") -// -//@RestController -//@RequestMapping("/taxonomy/taxon-relations") -public class TaxonRelationRest extends AbstractTaxonRelationRest { - - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/endpoint/rest/TaxonRest.java b/src/main/java/io/kumare/iqr/mod/taxonomy/endpoint/rest/TaxonRest.java deleted file mode 100644 index fc3bb5c..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/endpoint/rest/TaxonRest.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.endpoint.rest; - -// java -import io.swagger.v3.oas.annotations.tags.*; -// spring -import org.springframework.web.bind.annotation.*; - -/** -* -* @author afatecha -*/ - -// openapi -@Tag(name = "taxon rest endpoint") -// -@RestController -@RequestMapping("/taxonomy/taxas/{taxaKey}/taxons") -public class TaxonRest extends AbstractTaxonRest { - - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/store/TaxonomyEntities.java b/src/main/java/io/kumare/iqr/mod/taxonomy/store/TaxonomyEntities.java deleted file mode 100644 index 6b1cf7e..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/store/TaxonomyEntities.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.store; - -// base -// base -import io.kumare.lib.app.api.module.ServiceModule; -import io.kumare.lib.app.api.store.EntityStore; -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app -import io.kumare.iqr.app.AppEngine; -import io.kumare.iqr.app.module.AppModules; -import io.kumare.iqr.mod.taxonomy.store.taxa.TaxaEntity; -import io.kumare.iqr.mod.taxonomy.store.taxa.TaxaStore; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonStore; -import io.kumare.iqr.mod.taxonomy.store.taxonrelation.TaxonRelationEntity; -import io.kumare.iqr.mod.taxonomy.store.taxonrelation.TaxonRelationStore; - - -/** - * - * @author afatecha - */ -public enum TaxonomyEntities implements EntityDescriptor { - - taxa(TaxaEntity.class, TaxaStore.class), - taxon(TaxonEntity.class, TaxonStore.class), - taxonRelation(TaxonRelationEntity.class, TaxonRelationStore.class); - - // ::: vars - // - private final Class entityClass; - private final Class storeClass; - - // ::: constructor - // - TaxonomyEntities(Class entityClass, Class storeClass) { - this.entityClass = entityClass; - this.storeClass = storeClass; - } - - // ::: entity descriptor api - // - @Override - public String getName() { - return name(); - } - - @Override - public ServiceModule getModule() { - return AppModules.taxonomy; - } - - @Override - public Class getEntityClass() { - return entityClass; - } - - @Override - public Class getStoreClass() { - return storeClass; - } - - @Override - public EntityStore getStore() { - return (EntityStore) AppEngine.getEngine().getInnerContext().getBean(storeClass); - } - - // ::: statics - // - public static boolean hasDescriptor(String name) { - try { - var value = valueOf(name); - return value != null; - - } catch (Throwable t) { - return false; - } - } - - public static EntityDescriptor descriptorOf(String name) { - try { - return valueOf(name); - - } catch (Throwable t) { - return null; - } - } - - public static EntityDescriptor descriptorOf(Class entityClass) { - try { - for (var i : values()) { - if (i.entityClass == entityClass) { - return i; - } - } - - } catch (Throwable t) { - } - - return null; - } -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxa/TaxaData.java b/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxa/TaxaData.java deleted file mode 100644 index 6a846fb..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxa/TaxaData.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.store.taxa; - -// base -import io.kumare.iqr.app.store.AppExtendedEntityData; -// imports -import java.util.Map; - -public class TaxaData extends AppExtendedEntityData { - - // ::: vars - // - private Map schema; - private Map attributes; - - // ::: fields - // - public Map getSchema() { - return schema; - } - - public void setSchema(Map schema) { - this.schema = schema; - } - - public Map getAttributes() { - return attributes; - } - - public void setAttributes(Map attributes) { - this.attributes = attributes; - } - - // ::: fluent - // - public TaxaData schema(Map schema) { - setSchema(schema); - return this; - } - - public TaxaData attributes(Map attributes) { - setAttributes(attributes); - return this; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxa/TaxaEntity.java b/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxa/TaxaEntity.java deleted file mode 100644 index 9af1843..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxa/TaxaEntity.java +++ /dev/null @@ -1,158 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.store.taxa; - -// jakarta -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.Index; -import jakarta.persistence.ManyToOne; -import jakarta.persistence.Table; -// base -import io.kumare.lib.app.api.store.*; -import io.kumare.iqr.app.store.*; -// imports - -// relations - - -// annotations -@Entity -@Table( - name = "taxa", - indexes = { - @Index(name = "idx_taxa_external_id", columnList = "externalId"), - @Index(name = "idx_taxa_entity_key", columnList = "entityKey"), - @Index(name = "idx_taxa_space", columnList = "space"), - @Index(name = "idx_taxa_model_type", columnList = "modelType"), - @Index(name = "idx_taxa_custom", columnList = "custom"), - @Index(name = "idx_taxa_name", columnList = "name"), - @Index(name = "idx_taxa_description", columnList = "description") - } -) -public class TaxaEntity extends AppExtendedEntity implements SupportedEntityKey { - - // ::: vars - // - private String externalId; - private String entityKey; - private String space; - private String modelType; - private boolean custom; - private String name; - private String description; - // relations - - - // ::: constructors - // - public TaxaEntity() { - } - - public TaxaEntity(String id) { - super(id); - } - - // ::: fields - // - public String getExternalId() { - return externalId; - } - - public void setExternalId(String externalId) { - this.externalId = externalId; - } - - public String getEntityKey() { - return entityKey; - } - - public void setEntityKey(String entityKey) { - this.entityKey = entityKey; - } - - public String getSpace() { - return space; - } - - public void setSpace(String space) { - this.space = space; - } - - public String getModelType() { - return modelType; - } - - public void setModelType(String modelType) { - this.modelType = modelType; - } - - public boolean isCustom() { - return custom; - } - - public void setCustom(boolean custom) { - this.custom = custom; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - // relations - - - // ::: fluent - // - public TaxaEntity externalId(String externalId) { - setExternalId(externalId); - return this; - } - - public TaxaEntity entityKey(String entityKey) { - setEntityKey(entityKey); - return this; - } - - public TaxaEntity space(String space) { - setSpace(space); - return this; - } - - public TaxaEntity modelType(String modelType) { - setModelType(modelType); - return this; - } - - public TaxaEntity custom(boolean custom) { - setCustom(custom); - return this; - } - - public TaxaEntity name(String name) { - setName(name); - return this; - } - - public TaxaEntity description(String description) { - setDescription(description); - return this; - } - - // relations - - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxa/TaxaFields.java b/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxa/TaxaFields.java deleted file mode 100644 index 1276a61..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxa/TaxaFields.java +++ /dev/null @@ -1,159 +0,0 @@ -/* - */ -package io.kumare.iqr.mod.taxonomy.store.taxa; - -// java -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -// base -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app - - -/** - * - * @author afatecha - */ -public enum TaxaFields implements EntityFieldDescriptor { - - id(MAIN, FIND, LIST), - externalId(MAIN, FIND, LIST), - entityKey(MAIN, FIND, LIST), - space(MAIN, FIND, LIST), - modelType(MAIN, FIND, LIST), - custom(MAIN, FIND, LIST), - name(MAIN, FIND, LIST), - description(MAIN, FIND, LIST), - data(MAIN, FIND, LIST), - active(MAIN, FIND, LIST), - inserted(AUDIT, FIND, LIST), - inserter(AUDIT, FIND, LIST), - modified(AUDIT, FIND), - modifier(AUDIT, FIND), - deleted(AUDIT), - removed(AUDIT), - remover(AUDIT); - - // ::: vars - // - private final boolean relation; - private final EntityDescriptor entityDescriptor; - private final Class enumClass; - private final List groups; - - // ::: constructors - // - TaxaFields(String... groups) { - this(false, null, null, groups); - } - - TaxaFields(EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this(true, entityDescriptor, enumClass, groups); - } - - TaxaFields(boolean relation, EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this.relation = relation; - this.entityDescriptor = entityDescriptor; - this.enumClass = enumClass; - this.groups = groups == null ? Collections.EMPTY_LIST : Arrays.asList(groups); - } - - // ::: api - // - @Override - public String getName() { - return name(); - } - - @Override - public boolean isRelation() { - return relation; - } - - @Override - public Class getRelationEnumClass() { - return enumClass; - } - - @Override - public List getGroups() { - return groups; - } - - @Override - public EntityDescriptor getEntityDescriptor() { - return entityDescriptor; - } - - @Override - public Object fetchValue(TaxaEntity entity) { - if (entity == null) { - return null; - } - - switch (this) { - case null -> { - return null; - } - case id -> { - return entity.getId(); - } - case externalId ->{ - return entity.getExternalId(); - } - case entityKey ->{ - return entity.getEntityKey(); - } - case space ->{ - return entity.getSpace(); - } - case modelType ->{ - return entity.getModelType(); - } - case custom ->{ - return entity.isCustom(); - } - case name ->{ - return entity.getName(); - } - case description ->{ - return entity.getDescription(); - } - case data -> { - return entity.getData(); - } - case active -> { - return entity.isActive(); - } - case inserted -> { - return entity.getInserted(); - } - case inserter -> { - return entity.getInserter(); - } - case modified -> { - return entity.getModified(); - } - case modifier -> { - return entity.getModifier(); - } - case deleted -> { - return entity.isDeleted(); - } - case removed -> { - return entity.getRemoved(); - } - case remover -> { - return entity.getRemover(); - } - - default -> { - return null; - } - } - - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxa/TaxaMapBuilder.java b/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxa/TaxaMapBuilder.java deleted file mode 100644 index e553a2f..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxa/TaxaMapBuilder.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.store.taxa; - -// java -import java.util.List; -import java.util.Map; -// base -import io.kumare.lib.app.api.Context; -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.BaseEntityMapBuilder; -// app - - -/** - * - * @author afatecha - */ -public class TaxaMapBuilder extends BaseEntityMapBuilder { - - // ::: vars - // - - - - // ::: fields - // - @Override - public TaxaMapBuilder addGroup(String name, boolean cascade) { - includes.addAll(EntityFieldDescriptor.group(TaxaFields.values(), name)); - - return this; - } - - @Override - public TaxaMapBuilder add(String fieldName) { - includes.add(TaxaFields.valueOf(fieldName)); - return this; - } - - @Override - public TaxaMapBuilder addAll(String... names) { - for (var i : names) { - includes.add(TaxaFields.valueOf(i)); - } - return this; - } - - @Override - public TaxaMapBuilder remove(String fieldName) { - excludes.add(TaxaFields.valueOf(fieldName)); - return this; - } - - @Override - public TaxaMapBuilder removeAll(String... names) { - for (var i : names) { - excludes.add(TaxaFields.valueOf(i)); - } - return this; - } - - // ::: relations - // - @Override - public TaxaMapBuilder addPlains(boolean cascade) { - includes.addAll(EntityFieldDescriptor.plains(TaxaFields.values())); - - return this; - } - - @Override - public TaxaMapBuilder addRelations(boolean cascade) { - includes.addAll(EntityFieldDescriptor.relations(TaxaFields.values())); - - return this; - } - - - - // ::: internals - // - @Override - protected void internalAttachRelations(Context context, - TaxaEntity entity, - List fields, - Map resultMap) { - - - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxa/TaxaRepository.java b/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxa/TaxaRepository.java deleted file mode 100644 index 1d2c3bb..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxa/TaxaRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.store.taxa; - -// spring -import org.springframework.stereotype.Repository; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Repository -public interface TaxaRepository extends AppKeyEntityRepository{ - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxa/TaxaStore.java b/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxa/TaxaStore.java deleted file mode 100644 index c93befb..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxa/TaxaStore.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.store.taxa; - -// spring -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Service -public class TaxaStore extends AppKeyEntityStore { - - // ::: vars - // - @Autowired - private TaxaRepository repository; - - // ::: override - // - @Override - public TaxaRepository getRepository() { - return repository; - } - - // ::: api - // - - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxon/TaxonData.java b/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxon/TaxonData.java deleted file mode 100644 index ee23433..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxon/TaxonData.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.store.taxon; - -// base -import io.kumare.iqr.app.store.AppExtendedEntityData; -// imports -import java.util.Map; - -public class TaxonData extends AppExtendedEntityData { - - // ::: vars - // - private Map attributes; - - // ::: fields - // - public Map getAttributes() { - return attributes; - } - - public void setAttributes(Map attributes) { - this.attributes = attributes; - } - - // ::: fluent - // - public TaxonData attributes(Map attributes) { - setAttributes(attributes); - return this; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxon/TaxonEntity.java b/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxon/TaxonEntity.java deleted file mode 100644 index 9dd8412..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxon/TaxonEntity.java +++ /dev/null @@ -1,305 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.store.taxon; - -// jakarta -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.Index; -import jakarta.persistence.ManyToOne; -import jakarta.persistence.Table; -// base -import io.kumare.lib.app.api.store.*; -import io.kumare.iqr.app.store.*; -// imports - -// relations -import io.kumare.iqr.mod.taxonomy.store.taxa.TaxaEntity; - -// annotations -@Entity -@Table( - name = "taxon", - indexes = { - @Index(name = "idx_taxon_external_id", columnList = "externalId"), - @Index(name = "idx_taxon_entity_key", columnList = "entityKey"), - @Index(name = "idx_taxon_space", columnList = "space"), - @Index(name = "idx_taxon_taxa_key", columnList = "taxaKey"), - @Index(name = "idx_taxon_type_key", columnList = "typeKey"), - @Index(name = "idx_taxon_type_value", columnList = "typeValue"), - @Index(name = "idx_taxon_parent_key", columnList = "parentKey"), - @Index(name = "idx_taxon_parent_value", columnList = "parentValue"), - @Index(name = "idx_taxon_level", columnList = "level"), - @Index(name = "idx_taxon_ordinal", columnList = "ordinal"), - @Index(name = "idx_taxon_value", columnList = "value"), - @Index(name = "idx_taxon_name", columnList = "name"), - @Index(name = "idx_taxon_main", columnList = "main"), - @Index(name = "idx_taxon_description", columnList = "description") - } -) -public class TaxonEntity extends AppExtendedEntity implements SupportedEntityKey { - - // ::: vars - // - private String externalId; - private String entityKey; - private String space; - private String taxaKey; - private String typeKey; - private String typeValue; - private String parentKey; - private String parentValue; - private int level; - private int ordinal; - private String value; - private String name; - private boolean main; - private String description; - // relations - @ManyToOne(fetch = FetchType.LAZY) - private TaxaEntity taxa; - @ManyToOne(fetch = FetchType.LAZY) - private TaxonEntity type; - @ManyToOne(fetch = FetchType.LAZY) - private TaxonEntity parent; - - // ::: constructors - // - public TaxonEntity() { - } - - public TaxonEntity(String id) { - super(id); - } - - // ::: fields - // - public String getExternalId() { - return externalId; - } - - public void setExternalId(String externalId) { - this.externalId = externalId; - } - - @Override - public String getEntityKey() { - return entityKey; - } - - @Override - public void setEntityKey(String entityKey) { - this.entityKey = entityKey; - } - - public String getSpace() { - return space; - } - - public void setSpace(String space) { - this.space = space; - } - - public String getTaxaKey() { - return taxaKey; - } - - public void setTaxaKey(String taxaKey) { - this.taxaKey = taxaKey; - } - - public String getTypeKey() { - return typeKey; - } - - public void setTypeKey(String typeKey) { - this.typeKey = typeKey; - } - - public String getTypeValue() { - return typeValue; - } - - public void setTypeValue(String typeValue) { - this.typeValue = typeValue; - } - - public String getParentKey() { - return parentKey; - } - - public void setParentKey(String parentKey) { - this.parentKey = parentKey; - } - - public String getParentValue() { - return parentValue; - } - - public void setParentValue(String parentValue) { - this.parentValue = parentValue; - } - - public int getLevel() { - return level; - } - - public void setLevel(int level) { - this.level = level; - } - - public int getOrdinal() { - return ordinal; - } - - public void setOrdinal(int ordinal) { - this.ordinal = ordinal; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public boolean isMain() { - return main; - } - - public void setMain(boolean main) { - this.main = main; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - // relations - public TaxaEntity getTaxa() { - return taxa; - } - - public void setTaxa(TaxaEntity taxa) { - this.taxa = taxa; - } - - public TaxonEntity getType() { - return type; - } - - public void setType(TaxonEntity type) { - this.type = type; - } - - public TaxonEntity getParent() { - return parent; - } - - public void setParent(TaxonEntity parent) { - this.parent = parent; - } - - // ::: fluent - // - public TaxonEntity externalId(String externalId) { - setExternalId(externalId); - return this; - } - - public TaxonEntity entityKey(String entityKey) { - setEntityKey(entityKey); - return this; - } - - public TaxonEntity space(String space) { - setSpace(space); - return this; - } - - public TaxonEntity taxaKey(String taxaKey) { - setTaxaKey(taxaKey); - return this; - } - - public TaxonEntity typeKey(String typeKey) { - setTypeKey(typeKey); - return this; - } - - public TaxonEntity typeValue(String typeValue) { - setTypeValue(typeValue); - return this; - } - - public TaxonEntity parentKey(String parentKey) { - setParentKey(parentKey); - return this; - } - - public TaxonEntity parentValue(String parentValue) { - setParentValue(parentValue); - return this; - } - - public TaxonEntity level(int level) { - setLevel(level); - return this; - } - - public TaxonEntity ordinal(int ordinal) { - setOrdinal(ordinal); - return this; - } - - public TaxonEntity value(String value) { - setValue(value); - return this; - } - - public TaxonEntity name(String name) { - setName(name); - return this; - } - - public TaxonEntity main(boolean main) { - setMain(main); - return this; - } - - public TaxonEntity description(String description) { - setDescription(description); - return this; - } - - // relations - public TaxonEntity taxa(TaxaEntity taxa) { - setTaxa(taxa); - return this; - } - - public TaxonEntity type(TaxonEntity type) { - setType(type); - return this; - } - - public TaxonEntity parent(TaxonEntity parent) { - setParent(parent); - return this; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxon/TaxonFieldSchema.java b/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxon/TaxonFieldSchema.java deleted file mode 100644 index 9e2d30c..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxon/TaxonFieldSchema.java +++ /dev/null @@ -1,18 +0,0 @@ -/* - */ -package io.kumare.iqr.mod.taxonomy.store.taxon; - - -/** - * - * @author administrador - */ -public enum TaxonFieldSchema { - - enabled, - required, - label, - value, - options; - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxon/TaxonFields.java b/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxon/TaxonFields.java deleted file mode 100644 index 42bf60c..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxon/TaxonFields.java +++ /dev/null @@ -1,199 +0,0 @@ -/* - */ -package io.kumare.iqr.mod.taxonomy.store.taxon; - -// java -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -// base -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app -import io.kumare.iqr.mod.taxonomy.store.TaxonomyEntities; -import io.kumare.iqr.mod.taxonomy.store.taxa.TaxaFields; -import io.kumare.iqr.mod.taxonomy.store.TaxonomyEntities; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonFields; -import io.kumare.iqr.mod.taxonomy.store.TaxonomyEntities; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonFields; - -/** - * - * @author afatecha - */ -public enum TaxonFields implements EntityFieldDescriptor { - - id(MAIN, FIND, LIST), - externalId(MAIN, FIND, LIST), - entityKey(MAIN, FIND, LIST), - space(MAIN, FIND, LIST), - taxaKey(MAIN, FIND, LIST), - typeKey(MAIN, FIND, LIST), - typeValue(MAIN, FIND, LIST), - parentKey(MAIN, FIND, LIST), - parentValue(MAIN, FIND, LIST), - level(MAIN, FIND, LIST), - ordinal(MAIN, FIND, LIST), - value(MAIN, FIND, LIST), - name(MAIN, FIND, LIST), - main(MAIN, FIND, LIST), - description(MAIN, FIND, LIST), - active(MAIN, FIND, LIST), - inserted(AUDIT, FIND, LIST), - inserter(AUDIT, FIND, LIST), - modified(AUDIT, FIND), - modifier(AUDIT, FIND), - deleted(AUDIT), - removed(AUDIT), - remover(AUDIT), - taxa(TaxonomyEntities.taxa, TaxaFields.class, FIND), - type(TaxonomyEntities.taxon, TaxonFields.class, FIND), - parent(TaxonomyEntities.taxon, TaxonFields.class, FIND); - - // ::: vars - // - private final boolean relation; - private final EntityDescriptor entityDescriptor; - private final Class enumClass; - private final List groups; - - // ::: constructors - // - TaxonFields(String... groups) { - this(false, null, null, groups); - } - - TaxonFields(EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this(true, entityDescriptor, enumClass, groups); - } - - TaxonFields(boolean relation, EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this.relation = relation; - this.entityDescriptor = entityDescriptor; - this.enumClass = enumClass; - this.groups = groups == null ? Collections.EMPTY_LIST : Arrays.asList(groups); - } - - // ::: api - // - @Override - public String getName() { - return name(); - } - - @Override - public boolean isRelation() { - return relation; - } - - @Override - public Class getRelationEnumClass() { - return enumClass; - } - - @Override - public List getGroups() { - return groups; - } - - @Override - public EntityDescriptor getEntityDescriptor() { - return entityDescriptor; - } - - @Override - public Object fetchValue(TaxonEntity entity) { - if (entity == null) { - return null; - } - - switch (this) { - case null -> { - return null; - } - case id -> { - return entity.getId(); - } - case externalId ->{ - return entity.getExternalId(); - } - case entityKey ->{ - return entity.getEntityKey(); - } - case space ->{ - return entity.getSpace(); - } - case taxaKey ->{ - return entity.getTaxaKey(); - } - case typeKey ->{ - return entity.getTypeKey(); - } - case typeValue ->{ - return entity.getTypeValue(); - } - case parentKey ->{ - return entity.getParentKey(); - } - case parentValue ->{ - return entity.getParentValue(); - } - case level ->{ - return entity.getLevel(); - } - case ordinal ->{ - return entity.getOrdinal(); - } - case value ->{ - return entity.getValue(); - } - case name ->{ - return entity.getName(); - } - case main ->{ - return entity.isMain(); - } - case description ->{ - return entity.getDescription(); - } - case active -> { - return entity.isActive(); - } - case inserted -> { - return entity.getInserted(); - } - case inserter -> { - return entity.getInserter(); - } - case modified -> { - return entity.getModified(); - } - case modifier -> { - return entity.getModifier(); - } - case deleted -> { - return entity.isDeleted(); - } - case removed -> { - return entity.getRemoved(); - } - case remover -> { - return entity.getRemover(); - } - case taxa ->{ - return entity.getTaxa(); - } - case type ->{ - return entity.getType(); - } - case parent ->{ - return entity.getParent(); - } - default -> { - return null; - } - } - - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxon/TaxonMapBuilder.java b/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxon/TaxonMapBuilder.java deleted file mode 100644 index 683bc17..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxon/TaxonMapBuilder.java +++ /dev/null @@ -1,230 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.store.taxon; - -// java -import java.util.List; -import java.util.Map; -// base -import io.kumare.lib.app.api.Context; -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.BaseEntityMapBuilder; -// app -import io.kumare.iqr.mod.taxonomy.store.taxa.TaxaMapBuilder; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonMapBuilder; - -/** - * - * @author afatecha - */ -public class TaxonMapBuilder extends BaseEntityMapBuilder { - - // ::: vars - // - private TaxaMapBuilder taxaBuilder; - private TaxonMapBuilder typeBuilder; - private TaxonMapBuilder parentBuilder; - - - // ::: fields - // - @Override - public TaxonMapBuilder addGroup(String name, boolean cascade) { - includes.addAll(EntityFieldDescriptor.group(TaxonFields.values(), name)); - - if(cascade) { - if (includes.contains(TaxonFields.taxa)) { - getTaxaBuilder().addGroup(name); - } - if (includes.contains(TaxonFields.type)) { - getTypeBuilder().addGroup(name); - } - if (includes.contains(TaxonFields.parent)) { - getParentBuilder().addGroup(name); - } - } - return this; - } - - @Override - public TaxonMapBuilder add(String fieldName) { - includes.add(TaxonFields.valueOf(fieldName)); - return this; - } - - @Override - public TaxonMapBuilder addAll(String... names) { - for (var i : names) { - includes.add(TaxonFields.valueOf(i)); - } - return this; - } - - @Override - public TaxonMapBuilder remove(String fieldName) { - excludes.add(TaxonFields.valueOf(fieldName)); - return this; - } - - @Override - public TaxonMapBuilder removeAll(String... names) { - for (var i : names) { - excludes.add(TaxonFields.valueOf(i)); - } - return this; - } - - // ::: relations - // - @Override - public TaxonMapBuilder addPlains(boolean cascade) { - includes.addAll(EntityFieldDescriptor.plains(TaxonFields.values())); - - if(cascade) { - if (includes.contains(TaxonFields.taxa)) { - getTaxaBuilder().addPlains(); - } - if (includes.contains(TaxonFields.type)) { - getTypeBuilder().addPlains(); - } - if (includes.contains(TaxonFields.parent)) { - getParentBuilder().addPlains(); - } - } - return this; - } - - @Override - public TaxonMapBuilder addRelations(boolean cascade) { - includes.addAll(EntityFieldDescriptor.relations(TaxonFields.values())); - - if(cascade) { - if (includes.contains(TaxonFields.taxa)) { - getTaxaBuilder().addRelations(); - } - if (includes.contains(TaxonFields.type)) { - getTypeBuilder().addRelations(); - } - if (includes.contains(TaxonFields.parent)) { - getParentBuilder().addRelations(); - } - } - return this; - } - - // ::: taxa - // - public TaxonMapBuilder addTaxa() { - return addTaxa(null); - } - - public TaxonMapBuilder addTaxa(String group) { - return addTaxa(group, false); - } - - public TaxonMapBuilder addTaxa(String group, boolean cascade) { - includes.add(TaxonFields.taxa); - - if (group != null) { - getTaxaBuilder().addGroup(group); - } - - return this; - } - - public TaxaMapBuilder getTaxaBuilder() { - if(taxaBuilder == null) { - taxaBuilder = new TaxaMapBuilder(); - } - return taxaBuilder; - } - - - // ::: type - // - public TaxonMapBuilder addType() { - return addType(null); - } - - public TaxonMapBuilder addType(String group) { - return addType(group, false); - } - - public TaxonMapBuilder addType(String group, boolean cascade) { - includes.add(TaxonFields.type); - - if (group != null) { - getTypeBuilder().addGroup(group); - } - - return this; - } - - public TaxonMapBuilder getTypeBuilder() { - if(typeBuilder == null) { - typeBuilder = new TaxonMapBuilder(); - } - return typeBuilder; - } - - - // ::: parent - // - public TaxonMapBuilder addParent() { - return addParent(null); - } - - public TaxonMapBuilder addParent(String group) { - return addParent(group, false); - } - - public TaxonMapBuilder addParent(String group, boolean cascade) { - includes.add(TaxonFields.parent); - - if (group != null) { - getParentBuilder().addGroup(group); - } - - return this; - } - - public TaxonMapBuilder getParentBuilder() { - if(parentBuilder == null) { - parentBuilder = new TaxonMapBuilder(); - } - return parentBuilder; - } - - // ::: internals - // - @Override - protected void internalAttachRelations(Context context, - TaxonEntity entity, - List fields, - Map resultMap) { - - if (fields.contains(TaxonFields.taxa)) { - attachRelation(context, - entity, - TaxonFields.taxa, - getTaxaBuilder(), - resultMap); - } - if (fields.contains(TaxonFields.type)) { - attachRelation(context, - entity, - TaxonFields.type, - getTypeBuilder(), - resultMap); - } - if (fields.contains(TaxonFields.parent)) { - attachRelation(context, - entity, - TaxonFields.parent, - getParentBuilder(), - resultMap); - } - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxon/TaxonRepository.java b/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxon/TaxonRepository.java deleted file mode 100644 index 2577c8e..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxon/TaxonRepository.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.store.taxon; - -// spring -import org.springframework.stereotype.Repository; -// base -import io.kumare.iqr.app.store.*; -import java.util.List; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.data.jpa.repository.Modifying; -import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.query.Param; -import org.springframework.transaction.annotation.Propagation; -import org.springframework.transaction.annotation.Transactional; - -/** - * - * @author afatecha - */ -@Repository -public interface TaxonRepository extends AppKeyEntityRepository { - - // ::: default - // - @Modifying - @Query("UPDATE TaxonEntity e SET e.main = (e.id = :id) WHERE e.taxaKey = :taxaKey") - public void setAsDefault(@Param("taxaKey") String taxaKey, @Param("id") String id); - - @Query("SELECT e FROM TaxonEntity e WHERE e.taxaKey = :taxaKey AND e.main = true") - public TaxonEntity findDefaultByTaxaKey(String taxaKey); - - // ::: taxa key and entity key - // - @Transactional(propagation = Propagation.NOT_SUPPORTED) - public TaxonEntity findByTaxaKeyAndEntityKey(String taxaKey, String entityKey); - - @Transactional(propagation = Propagation.NOT_SUPPORTED) - public List findAllByTaxaKey(String taxaKey); - - @Transactional(propagation = Propagation.NOT_SUPPORTED) - public Page findAllByTaxaKey(String taxaKey, Pageable pageable); - - // ::: taxa key and value - // - @Transactional(propagation = Propagation.NOT_SUPPORTED) - public TaxonEntity findByTaxaKeyAndValue(String taxaKey, String value); - - @Transactional(propagation = Propagation.NOT_SUPPORTED) - public List findAllByTaxaKeyAndValue(String taxaKey, String value); - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxon/TaxonStore.java b/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxon/TaxonStore.java deleted file mode 100644 index 077280c..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxon/TaxonStore.java +++ /dev/null @@ -1,133 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.store.taxon; - -// spring -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -// base -import io.kumare.lib.app.api.Context; -import io.kumare.lib.v.ExceptionPrototype; -import io.kumare.lib.v.V; -// app -import io.kumare.iqr.app.store.*; -import java.util.List; - -/** - * - * @author afatecha - */ -@Service -public class TaxonStore extends AppKeyEntityStore { - - // ::: vars - // - @Autowired - private TaxonRepository repository; - - // ::: override - // - @Override - public TaxonRepository getRepository() { - return repository; - } - - // ::: api default - // - public void setAsDefault(Context context, TaxonEntity taxon) { - getRepository().setAsDefault(taxon.getTaxaKey(), taxon.getId()); - } - - public TaxonEntity ensureDefault(Context context, String taxaKey, ExceptionPrototype proto) { - var taxon = findDefault(context, taxaKey); - V.ifNull(taxon, proto); - return taxon; - } - - public TaxonEntity findDefault(Context context, String taxaKey) { - return getRepository().findDefaultByTaxaKey(taxaKey); - } - - // ::: ensure - // - public TaxonEntity ensure(Context context, - String taxaKey, - TaxonEntity taxon, - ExceptionPrototype proto) { - var found = ensure(context, taxon, proto); - V.ifFalse(found.getTaxaKey().equals(taxaKey), proto); - return found; - } - - public TaxonEntity ensureById(Context context, - String taxaKey, - String taxonId, - ExceptionPrototype proto) { - var found = ensureById(context, taxonId, proto); - V.ifFalse(found.getTaxaKey().equals(taxaKey), proto); - return found; - } - - public TaxonEntity ensureByKey(Context context, - String taxaKey, - String taxonKey, - ExceptionPrototype proto) { - var found = findByKey(context, taxaKey, taxonKey); - V.ifNull(found, proto); - V.ifFalse(found.getTaxaKey().equals(taxaKey), proto); - return found; - } - - public TaxonEntity ensureByValue(Context context, - String taxaKey, - String value, - ExceptionPrototype proto) { - var found = findByValue(context, taxaKey, value); - V.ifNull(found, proto); - V.ifFalse(found.getTaxaKey().equals(taxaKey), proto); - return found; - } - - // ::: find - // - public TaxonEntity findById(Context context, - String taxaKey, - String taxonId) { - - var found = findById(context, taxonId); - return found.getTaxaKey().equals(taxaKey) ? found : null; - } - - public TaxonEntity findByKey(Context context, - String taxaKey, - String taxonKey) { - - var found = getRepository().findByTaxaKeyAndEntityKey(taxaKey, taxonKey); - return found.getTaxaKey().equals(taxaKey) ? found : null; - } - - public TaxonEntity findByValue(Context context, - String taxaKey, - String value) { - - var found = getRepository().findByTaxaKeyAndValue(taxaKey, value); - return found.getTaxaKey().equals(taxaKey) ? found : null; - } - - // ::: list - // - public List listByTaxaKey(Context context, - String taxaKey) { - - return getRepository().findAllByTaxaKey(taxaKey); - } - - public List listByValue(Context context, - String taxaKey, - String value) { - - return getRepository().findAllByTaxaKeyAndValue(taxaKey, value); - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxonrelation/TaxonRelationData.java b/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxonrelation/TaxonRelationData.java deleted file mode 100644 index c2c466e..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxonrelation/TaxonRelationData.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.store.taxonrelation; - -// base -import io.kumare.iqr.app.store.AppExtendedEntityData; -// imports -import java.util.Map; - -public class TaxonRelationData extends AppExtendedEntityData { - - // ::: vars - // - private String note; - private Map attributes; - - // ::: fields - // - public String getNote() { - return note; - } - - public void setNote(String note) { - this.note = note; - } - - public Map getAttributes() { - return attributes; - } - - public void setAttributes(Map attributes) { - this.attributes = attributes; - } - - // ::: fluent - // - public TaxonRelationData note(String note) { - setNote(note); - return this; - } - - public TaxonRelationData attributes(Map attributes) { - setAttributes(attributes); - return this; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxonrelation/TaxonRelationEntity.java b/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxonrelation/TaxonRelationEntity.java deleted file mode 100644 index 6206acb..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxonrelation/TaxonRelationEntity.java +++ /dev/null @@ -1,138 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.store.taxonrelation; - -// jakarta -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.Index; -import jakarta.persistence.ManyToOne; -import jakarta.persistence.Table; -// base -import io.kumare.lib.app.api.store.*; -import io.kumare.iqr.app.store.*; -// imports - -// relations -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; - -// annotations -@Entity -@Table( - name = "taxon_relation", - indexes = { - @Index(name = "idx_taxon_relation_external_id", columnList = "externalId"), - @Index(name = "idx_taxon_relation_space", columnList = "space"), - @Index(name = "idx_taxon_relation_literal", columnList = "literal") - } -) -public class TaxonRelationEntity extends AppExtendedEntity { - - // ::: vars - // - private String externalId; - private String space; - private String literal; - // relations - @ManyToOne(fetch = FetchType.LAZY) - private TaxonEntity subject; - @ManyToOne(fetch = FetchType.LAZY) - private TaxonEntity predicate; - @ManyToOne(fetch = FetchType.LAZY) - private TaxonEntity object; - - // ::: constructors - // - public TaxonRelationEntity() { - } - - public TaxonRelationEntity(String id) { - super(id); - } - - // ::: fields - // - public String getExternalId() { - return externalId; - } - - public void setExternalId(String externalId) { - this.externalId = externalId; - } - - public String getSpace() { - return space; - } - - public void setSpace(String space) { - this.space = space; - } - - public String getLiteral() { - return literal; - } - - public void setLiteral(String literal) { - this.literal = literal; - } - - // relations - public TaxonEntity getSubject() { - return subject; - } - - public void setSubject(TaxonEntity subject) { - this.subject = subject; - } - - public TaxonEntity getPredicate() { - return predicate; - } - - public void setPredicate(TaxonEntity predicate) { - this.predicate = predicate; - } - - public TaxonEntity getObject() { - return object; - } - - public void setObject(TaxonEntity object) { - this.object = object; - } - - // ::: fluent - // - public TaxonRelationEntity externalId(String externalId) { - setExternalId(externalId); - return this; - } - - public TaxonRelationEntity space(String space) { - setSpace(space); - return this; - } - - public TaxonRelationEntity literal(String literal) { - setLiteral(literal); - return this; - } - - // relations - public TaxonRelationEntity subject(TaxonEntity subject) { - setSubject(subject); - return this; - } - - public TaxonRelationEntity predicate(TaxonEntity predicate) { - setPredicate(predicate); - return this; - } - - public TaxonRelationEntity object(TaxonEntity object) { - setObject(object); - return this; - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxonrelation/TaxonRelationFields.java b/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxonrelation/TaxonRelationFields.java deleted file mode 100644 index db66f81..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxonrelation/TaxonRelationFields.java +++ /dev/null @@ -1,155 +0,0 @@ -/* - */ -package io.kumare.iqr.mod.taxonomy.store.taxonrelation; - -// java -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -// base -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; -// app -import io.kumare.iqr.mod.taxonomy.store.TaxonomyEntities; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonFields; -import io.kumare.iqr.mod.taxonomy.store.TaxonomyEntities; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonFields; -import io.kumare.iqr.mod.taxonomy.store.TaxonomyEntities; -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonFields; - -/** - * - * @author afatecha - */ -public enum TaxonRelationFields implements EntityFieldDescriptor { - - id(MAIN, FIND, LIST), - externalId(MAIN, FIND, LIST), - space(MAIN, FIND, LIST), - literal(MAIN, FIND, LIST), - active(MAIN, FIND, LIST), - inserted(AUDIT, FIND, LIST), - inserter(AUDIT, FIND, LIST), - modified(AUDIT, FIND), - modifier(AUDIT, FIND), - deleted(AUDIT), - removed(AUDIT), - remover(AUDIT), - subject(TaxonomyEntities.taxon, TaxonFields.class, FIND, LIST), - predicate(TaxonomyEntities.taxon, TaxonFields.class, FIND, LIST), - object(TaxonomyEntities.taxon, TaxonFields.class, FIND, LIST); - - // ::: vars - // - private final boolean relation; - private final EntityDescriptor entityDescriptor; - private final Class enumClass; - private final List groups; - - // ::: constructors - // - TaxonRelationFields(String... groups) { - this(false, null, null, groups); - } - - TaxonRelationFields(EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this(true, entityDescriptor, enumClass, groups); - } - - TaxonRelationFields(boolean relation, EntityDescriptor entityDescriptor, Class enumClass, String... groups) { - this.relation = relation; - this.entityDescriptor = entityDescriptor; - this.enumClass = enumClass; - this.groups = groups == null ? Collections.EMPTY_LIST : Arrays.asList(groups); - } - - // ::: api - // - @Override - public String getName() { - return name(); - } - - @Override - public boolean isRelation() { - return relation; - } - - @Override - public Class getRelationEnumClass() { - return enumClass; - } - - @Override - public List getGroups() { - return groups; - } - - @Override - public EntityDescriptor getEntityDescriptor() { - return entityDescriptor; - } - - @Override - public Object fetchValue(TaxonRelationEntity entity) { - if (entity == null) { - return null; - } - - switch (this) { - case null -> { - return null; - } - case id -> { - return entity.getId(); - } - case externalId ->{ - return entity.getExternalId(); - } - case space ->{ - return entity.getSpace(); - } - case literal ->{ - return entity.getLiteral(); - } - case active -> { - return entity.isActive(); - } - case inserted -> { - return entity.getInserted(); - } - case inserter -> { - return entity.getInserter(); - } - case modified -> { - return entity.getModified(); - } - case modifier -> { - return entity.getModifier(); - } - case deleted -> { - return entity.isDeleted(); - } - case removed -> { - return entity.getRemoved(); - } - case remover -> { - return entity.getRemover(); - } - case subject ->{ - return entity.getSubject(); - } - case predicate ->{ - return entity.getPredicate(); - } - case object ->{ - return entity.getObject(); - } - default -> { - return null; - } - } - - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxonrelation/TaxonRelationMapBuilder.java b/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxonrelation/TaxonRelationMapBuilder.java deleted file mode 100644 index 67a6e19..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxonrelation/TaxonRelationMapBuilder.java +++ /dev/null @@ -1,229 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.store.taxonrelation; - -// java -import java.util.List; -import java.util.Map; -// base -import io.kumare.lib.app.api.Context; -import io.kumare.lib.app.api.store.EntityFieldDescriptor; -import io.kumare.lib.base.server.spring.store.jpa.BaseEntityMapBuilder; -// app -import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonMapBuilder; - -/** - * - * @author afatecha - */ -public class TaxonRelationMapBuilder extends BaseEntityMapBuilder { - - // ::: vars - // - private TaxonMapBuilder subjectBuilder; - private TaxonMapBuilder predicateBuilder; - private TaxonMapBuilder objectBuilder; - - - // ::: fields - // - @Override - public TaxonRelationMapBuilder addGroup(String name, boolean cascade) { - includes.addAll(EntityFieldDescriptor.group(TaxonRelationFields.values(), name)); - - if(cascade) { - if (includes.contains(TaxonRelationFields.subject)) { - getSubjectBuilder().addGroup(name); - } - if (includes.contains(TaxonRelationFields.predicate)) { - getPredicateBuilder().addGroup(name); - } - if (includes.contains(TaxonRelationFields.object)) { - getObjectBuilder().addGroup(name); - } - } - return this; - } - - @Override - public TaxonRelationMapBuilder add(String fieldName) { - includes.add(TaxonRelationFields.valueOf(fieldName)); - return this; - } - - @Override - public TaxonRelationMapBuilder addAll(String... names) { - for (var i : names) { - includes.add(TaxonRelationFields.valueOf(i)); - } - return this; - } - - @Override - public TaxonRelationMapBuilder remove(String fieldName) { - excludes.add(TaxonRelationFields.valueOf(fieldName)); - return this; - } - - @Override - public TaxonRelationMapBuilder removeAll(String... names) { - for (var i : names) { - excludes.add(TaxonRelationFields.valueOf(i)); - } - return this; - } - - // ::: relations - // - @Override - public TaxonRelationMapBuilder addPlains(boolean cascade) { - includes.addAll(EntityFieldDescriptor.plains(TaxonRelationFields.values())); - - if(cascade) { - if (includes.contains(TaxonRelationFields.subject)) { - getSubjectBuilder().addPlains(); - } - if (includes.contains(TaxonRelationFields.predicate)) { - getPredicateBuilder().addPlains(); - } - if (includes.contains(TaxonRelationFields.object)) { - getObjectBuilder().addPlains(); - } - } - return this; - } - - @Override - public TaxonRelationMapBuilder addRelations(boolean cascade) { - includes.addAll(EntityFieldDescriptor.relations(TaxonRelationFields.values())); - - if(cascade) { - if (includes.contains(TaxonRelationFields.subject)) { - getSubjectBuilder().addRelations(); - } - if (includes.contains(TaxonRelationFields.predicate)) { - getPredicateBuilder().addRelations(); - } - if (includes.contains(TaxonRelationFields.object)) { - getObjectBuilder().addRelations(); - } - } - return this; - } - - // ::: subject - // - public TaxonRelationMapBuilder addSubject() { - return addSubject(null); - } - - public TaxonRelationMapBuilder addSubject(String group) { - return addSubject(group, false); - } - - public TaxonRelationMapBuilder addSubject(String group, boolean cascade) { - includes.add(TaxonRelationFields.subject); - - if (group != null) { - getSubjectBuilder().addGroup(group); - } - - return this; - } - - public TaxonMapBuilder getSubjectBuilder() { - if(subjectBuilder == null) { - subjectBuilder = new TaxonMapBuilder(); - } - return subjectBuilder; - } - - - // ::: predicate - // - public TaxonRelationMapBuilder addPredicate() { - return addPredicate(null); - } - - public TaxonRelationMapBuilder addPredicate(String group) { - return addPredicate(group, false); - } - - public TaxonRelationMapBuilder addPredicate(String group, boolean cascade) { - includes.add(TaxonRelationFields.predicate); - - if (group != null) { - getPredicateBuilder().addGroup(group); - } - - return this; - } - - public TaxonMapBuilder getPredicateBuilder() { - if(predicateBuilder == null) { - predicateBuilder = new TaxonMapBuilder(); - } - return predicateBuilder; - } - - - // ::: object - // - public TaxonRelationMapBuilder addObject() { - return addObject(null); - } - - public TaxonRelationMapBuilder addObject(String group) { - return addObject(group, false); - } - - public TaxonRelationMapBuilder addObject(String group, boolean cascade) { - includes.add(TaxonRelationFields.object); - - if (group != null) { - getObjectBuilder().addGroup(group); - } - - return this; - } - - public TaxonMapBuilder getObjectBuilder() { - if(objectBuilder == null) { - objectBuilder = new TaxonMapBuilder(); - } - return objectBuilder; - } - - // ::: internals - // - @Override - protected void internalAttachRelations(Context context, - TaxonRelationEntity entity, - List fields, - Map resultMap) { - - if (fields.contains(TaxonRelationFields.subject)) { - attachRelation(context, - entity, - TaxonRelationFields.subject, - getSubjectBuilder(), - resultMap); - } - if (fields.contains(TaxonRelationFields.predicate)) { - attachRelation(context, - entity, - TaxonRelationFields.predicate, - getPredicateBuilder(), - resultMap); - } - if (fields.contains(TaxonRelationFields.object)) { - attachRelation(context, - entity, - TaxonRelationFields.object, - getObjectBuilder(), - resultMap); - } - } - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxonrelation/TaxonRelationRepository.java b/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxonrelation/TaxonRelationRepository.java deleted file mode 100644 index b6b8061..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxonrelation/TaxonRelationRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.store.taxonrelation; - -// spring -import org.springframework.stereotype.Repository; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Repository -public interface TaxonRelationRepository extends AppEntityRepository{ - -} diff --git a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxonrelation/TaxonRelationStore.java b/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxonrelation/TaxonRelationStore.java deleted file mode 100644 index 0f59267..0000000 --- a/src/main/java/io/kumare/iqr/mod/taxonomy/store/taxonrelation/TaxonRelationStore.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * - */ -package io.kumare.iqr.mod.taxonomy.store.taxonrelation; - -// spring -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -// base -import io.kumare.iqr.app.store.*; - -/** - * - * @author afatecha - */ -@Service -public class TaxonRelationStore extends AppEntityStore { - - // ::: vars - // - @Autowired - private TaxonRelationRepository repository; - - // ::: override - // - @Override - public TaxonRelationRepository getRepository() { - return repository; - } - - // ::: api - // - - -} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 07f14c6..717f2de 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,84 +1,31 @@ - -# ======= SPRING ======== - -# Server Configuration -server.servlet.context-path=/time/api -#spring.web.resources.static-locations=classpath:/public/ - -server.port=8080 -#server.port=8300 -#server.ssl.enabled=true -#server.ssl.certificate-private-key=/home/prueba-server/qrpp-server/privkey.pem -#server.ssl.certificate=/home/prueba-server/qrpp-server/fullchain.pem - -# Database Configuration -spring.datasource.url=jdbc:postgresql://localhost:5432/iqr -spring.datasource.username=iqrdb -spring.datasource.password=Kum4Iqr -spring.datasource.driver-class-name=org.postgresql.Driver -spring.jpa.hibernate.ddl-auto=update - -# Configuraci\u00f3n del pool de conexiones -#M\u00e1ximo 10 conexiones activas -spring.datasource.hikari.maximum-pool-size=3 -# Cero conexiones ociosas -spring.datasource.hikari.minimum-idle=0 -# Conexi\u00f3n inactiva se libera despu\u00e9s de 10 segundos -spring.datasource.hikari.idle-timeout=10000 -# Esperar 30 segundos para obtener una conexi\u00f3n -spring.datasource.hikari.connection-timeout=30000 -# M\u00e1ximo 30 minutos de vida para una conexi\u00f3n -spring.datasource.hikari.max-lifetime=120000 - -# Swagger -springdoc.swagger-ui.path=/swagger.html - -# Keycloak Configuration -kc.server=${KC_SERVER:http://190.128.232.226:8200} -kc.realm=${KC_REALM:iqr} -spring.security.oauth2.resourceserver.jwt.issuer-uri=${kc.server}/realms/${kc.realm} -spring.security.oauth2.resourceserver.jwt.jwk-set-uri= ${spring.security.oauth2.resourceserver.jwt.issuer-uri}/protocol/openid-connect/certs - -jwt.auth.converter.principal_attribute=preferred_username - -kc.auth.server.url=${kc.server} -kc.client.id=${KC_CLIENT_ID:backend} -kc.client.secret=${KC_CLIENT_SECRET:P7gtn7e0tkeQzGHmRt1TfwMfdjGXYUnN} -kc.admin.username=${KC_ADMIN_USERNAME:iqr} -kc.admin.password=${KC_ADMIN_PASSWORD:123456} - -# ======= CATATREPA ======== - -# Adapter QR -#catatrepa.adapter.qr.address=${QR_ADDRESS:http://localhost:4200} -# Adapter SMS-WS -#catatrepa.adapter.smsws.endpoint.address=${CTTP_SMSWS_BASEURL:http://localhost/} -# Adapter EMAIL -#catatrepa.adapter.email.x=${CTTP_EMAIL:http://localhost/} - -# ========================== - - -# ======= HELP ======== - -# import config : file | classpath (more than one file) -#spring.config.import=file:./config/database.properties, classpath:other.properties - -# import config : optional -#spring.config.import=optional:file:./config/database.properties - -# using profiling config -#spring.profiles.active=${SPRING_PROFILES_ACTIVE:defProfileName} -#spring.profiles.include=proddb, prodmq // adding for all environments - -# visma -visma.server=${VISMA_SERVER:https://customerapi.geovictoria.com/api/v1} -visma.user=${VISMA_USER:40ffff} -visma.password=${VISMA_PASSWORD:4ddc7b47} - -# Desarrollo Interceptor -logging.level.io.kumare=DEBUG - -# Producci\u00f3n Interceptor -#logging.level.io.kumare=INFO -#logging.level.io.kumare.LoggingInterceptor=WARN \ No newline at end of file + +# ======= SPRING ======== + +# Server Configuration +server.servlet.context-path=/time/api +server.port=8080 + +# Swagger +springdoc.swagger-ui.path=/swagger.html + +# ======= VISMA ======== + +visma.server=${VISMA_SERVER:https://customerapi.geovictoria.com/api/v1} +visma.user=${VISMA_USER:40ffff} +visma.password=${VISMA_PASSWORD:4ddc7b47} + +# ======= LOGGING / TRAZAS ======== + +logging.level.io.kumare=DEBUG + +# ======= HELP ======== + +# import config : file | classpath (more than one file) +#spring.config.import=file:./config/database.properties, classpath:other.properties + +# import config : optional +#spring.config.import=optional:file:./config/database.properties + +# using profiling config +#spring.profiles.active=${SPRING_PROFILES_ACTIVE:defProfileName} +#spring.profiles.include=proddb, prodmq // adding for all environments diff --git a/traces/visma-endpoints-trace.log b/traces/visma-endpoints-trace.log new file mode 100644 index 0000000..eac75b9 --- /dev/null +++ b/traces/visma-endpoints-trace.log @@ -0,0 +1,157 @@ +# Traza de los 7 endpoints Visma — 2026-08-12 17:09 -03 +# Generada contra visma.server=https://customerapi.geovictoria.com/api/v1 +# Credenciales, cookies, tokens y headers Authorization redactados. + +2026-08-12T17:09:02.464-03:00 INFO 123156 --- [nio-8080-exec-1] i.k.i.a.e.rest.RequestTraceInterceptor : --> GET /time/api/clientele/clients/employee +2026-08-12T17:09:02.575-03:00 DEBUG 123156 --- [nio-8080-exec-1] i.k.l.b.s.s.c.http.LoggingInterceptor : === Outgoing Request === +2026-08-12T17:09:02.575-03:00 DEBUG 123156 --- [nio-8080-exec-1] i.k.l.b.s.s.c.http.LoggingInterceptor : URI: https://customerapi.geovictoria.com/api/v1/Login +2026-08-12T17:09:02.575-03:00 DEBUG 123156 --- [nio-8080-exec-1] i.k.l.b.s.s.c.http.LoggingInterceptor : Method: POST +2026-08-12T17:09:02.575-03:00 DEBUG 123156 --- [nio-8080-exec-1] i.k.l.b.s.s.c.http.LoggingInterceptor : Headers: [Accept:"application/json", Content-Type:"application/json", Content-Length:"39"] +2026-08-12T17:09:02.576-03:00 DEBUG 123156 --- [nio-8080-exec-1] i.k.l.b.s.s.c.http.LoggingInterceptor : Body: {"User":"***REDACTED***","Password":"***REDACTED***"} +2026-08-12T17:09:03.649-03:00 DEBUG 123156 --- [nio-8080-exec-1] i.k.l.b.s.s.c.http.LoggingInterceptor : === Incoming Response === +2026-08-12T17:09:03.649-03:00 DEBUG 123156 --- [nio-8080-exec-1] i.k.l.b.s.s.c.http.LoggingInterceptor : Status: 200 OK +2026-08-12T17:09:03.649-03:00 DEBUG 123156 --- [nio-8080-exec-1] i.k.l.b.s.s.c.http.LoggingInterceptor : Duration: 1073ms +2026-08-12T17:09:03.650-03:00 DEBUG 123156 --- [nio-8080-exec-1] i.k.l.b.s.s.c.http.LoggingInterceptor : Headers: [Date:"Wed, 12 Aug 2026 20:09:03 GMT", Content-Type:"application/json; charset=utf-8", Content-Length:"395", Connection:"keep-alive", Set-Cookie:"***REDACTED***", Strict-Transport-Security:"max-age=31536000", Request-Context:"appId=cid-v1:953128bb-8d56-4c0a-a562-94b96e12ed7a", "appId=cid-v1:5e739e50-636b-4c66-a514-4089c3fb339d", X-Content-Type-Options:"nosniff", "nosniff", Referrer-Policy:"no-referrer", "no-referrer", X-XSS-Protection:"1; mode=block", "1; mode=block", X-Frame-Options:"Deny", "Deny", Content-Security-Policy:"font-src 'self';form-action 'self';frame-ancestors 'self';block-all-mixed-content", "font-src 'self';form-action 'self';frame-ancestors 'self';block-all-mixed-content", Permissions-Policy:"accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()", "geolocation=()", api-supported-versions:"1.0"] +2026-08-12T17:09:03.651-03:00 DEBUG 123156 --- [nio-8080-exec-1] i.k.l.b.s.s.c.http.LoggingInterceptor : Body: {"token":"***REDACTED***"} +2026-08-12T17:09:03.670-03:00 DEBUG 123156 --- [nio-8080-exec-1] i.k.l.b.s.s.c.http.LoggingInterceptor : === Outgoing Request === +2026-08-12T17:09:03.670-03:00 DEBUG 123156 --- [nio-8080-exec-1] i.k.l.b.s.s.c.http.LoggingInterceptor : URI: https://customerapi.geovictoria.com/api/v1/User/List +2026-08-12T17:09:03.670-03:00 DEBUG 123156 --- [nio-8080-exec-1] i.k.l.b.s.s.c.http.LoggingInterceptor : Method: POST +2026-08-12T17:09:03.670-03:00 DEBUG 123156 --- [nio-8080-exec-1] i.k.l.b.s.s.c.http.LoggingInterceptor : Headers: [Accept:"application/json", Content-Type:"application/json", Authorization:"***REDACTED***", Content-Length:"0"] +2026-08-12T17:09:04.371-03:00 DEBUG 123156 --- [nio-8080-exec-1] i.k.l.b.s.s.c.http.LoggingInterceptor : === Incoming Response === +2026-08-12T17:09:04.371-03:00 DEBUG 123156 --- [nio-8080-exec-1] i.k.l.b.s.s.c.http.LoggingInterceptor : Status: 200 OK +2026-08-12T17:09:04.371-03:00 DEBUG 123156 --- [nio-8080-exec-1] i.k.l.b.s.s.c.http.LoggingInterceptor : Duration: 701ms +2026-08-12T17:09:04.372-03:00 DEBUG 123156 --- [nio-8080-exec-1] i.k.l.b.s.s.c.http.LoggingInterceptor : Headers: [Date:"Wed, 12 Aug 2026 20:09:04 GMT", Content-Type:"application/json; charset=utf-8", Content-Length:"432", Connection:"keep-alive", Set-Cookie:"***REDACTED***", Strict-Transport-Security:"max-age=31536000", Request-Context:"appId=cid-v1:953128bb-8d56-4c0a-a562-94b96e12ed7a", "appId=cid-v1:5e739e50-636b-4c66-a514-4089c3fb339d", X-Content-Type-Options:"nosniff", "nosniff", Referrer-Policy:"no-referrer", "no-referrer", X-XSS-Protection:"1; mode=block", "1; mode=block", X-Frame-Options:"Deny", "Deny", Content-Security-Policy:"font-src 'self';form-action 'self';frame-ancestors 'self';block-all-mixed-content", "font-src 'self';form-action 'self';frame-ancestors 'self';block-all-mixed-content", Permissions-Policy:"accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()", "geolocation=()", api-supported-versions:"1.0, 2.0", x-rate-limit-limit:"1m", x-rate-limit-remaining:"149", x-rate-limit-reset:"2026-08-12T20:10:00.0000000Z"] +2026-08-12T17:09:04.372-03:00 DEBUG 123156 --- [nio-8080-exec-1] i.k.l.b.s.s.c.http.LoggingInterceptor : Body: [{"Id":"mywHFgxqr8I6WDBDNyyPgA","Identifier":"11111111","Enabled":"1","Name":"Ariel ","LastName":"Fatecha","Email":"afatecha@visionoutsourcers.com.py","PersonalEmail":"afatecha@visionoutsourcers.com.py","PositionId":"EhKM7eLolc9WkWAmVCjZcw","WeeklyWorkingHoursCodeId":"sDzBzlFnefikfhnZoFXLiw","IsHiddenForReports":"False","ContractDate":"","EndContractDate":"","SchedulerStart":"","SchedulerPeriodStart":"","Birthdate":"","Age":""}] +2026-08-12T17:09:04.386-03:00 INFO 123156 --- [nio-8080-exec-1] i.k.i.a.e.rest.RequestTraceInterceptor : <-- GET /time/api/clientele/clients/employee [200] 1922ms +2026-08-12T17:09:04.395-03:00 INFO 123156 --- [nio-8080-exec-2] i.k.i.a.e.rest.RequestTraceInterceptor : --> POST /time/api/clientele/clients/punch/list +2026-08-12T17:09:04.411-03:00 DEBUG 123156 --- [nio-8080-exec-2] i.k.l.b.s.s.c.http.LoggingInterceptor : === Outgoing Request === +2026-08-12T17:09:04.411-03:00 DEBUG 123156 --- [nio-8080-exec-2] i.k.l.b.s.s.c.http.LoggingInterceptor : URI: https://customerapi.geovictoria.com/api/v1/Login +2026-08-12T17:09:04.411-03:00 DEBUG 123156 --- [nio-8080-exec-2] i.k.l.b.s.s.c.http.LoggingInterceptor : Method: POST +2026-08-12T17:09:04.411-03:00 DEBUG 123156 --- [nio-8080-exec-2] i.k.l.b.s.s.c.http.LoggingInterceptor : Headers: [Accept:"application/json", Content-Type:"application/json", Content-Length:"39"] +2026-08-12T17:09:04.411-03:00 DEBUG 123156 --- [nio-8080-exec-2] i.k.l.b.s.s.c.http.LoggingInterceptor : Body: {"User":"***REDACTED***","Password":"***REDACTED***"} +2026-08-12T17:09:05.072-03:00 DEBUG 123156 --- [nio-8080-exec-2] i.k.l.b.s.s.c.http.LoggingInterceptor : === Incoming Response === +2026-08-12T17:09:05.072-03:00 DEBUG 123156 --- [nio-8080-exec-2] i.k.l.b.s.s.c.http.LoggingInterceptor : Status: 200 OK +2026-08-12T17:09:05.072-03:00 DEBUG 123156 --- [nio-8080-exec-2] i.k.l.b.s.s.c.http.LoggingInterceptor : Duration: 660ms +2026-08-12T17:09:05.072-03:00 DEBUG 123156 --- [nio-8080-exec-2] i.k.l.b.s.s.c.http.LoggingInterceptor : Headers: [Date:"Wed, 12 Aug 2026 20:09:04 GMT", Content-Type:"application/json; charset=utf-8", Content-Length:"395", Connection:"keep-alive", Set-Cookie:"***REDACTED***", Strict-Transport-Security:"max-age=31536000", Request-Context:"appId=cid-v1:953128bb-8d56-4c0a-a562-94b96e12ed7a", "appId=cid-v1:5e739e50-636b-4c66-a514-4089c3fb339d", X-Content-Type-Options:"nosniff", "nosniff", Referrer-Policy:"no-referrer", "no-referrer", X-XSS-Protection:"1; mode=block", "1; mode=block", X-Frame-Options:"Deny", "Deny", Content-Security-Policy:"font-src 'self';form-action 'self';frame-ancestors 'self';block-all-mixed-content", "font-src 'self';form-action 'self';frame-ancestors 'self';block-all-mixed-content", Permissions-Policy:"accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()", "geolocation=()", api-supported-versions:"1.0"] +2026-08-12T17:09:05.072-03:00 DEBUG 123156 --- [nio-8080-exec-2] i.k.l.b.s.s.c.http.LoggingInterceptor : Body: {"token":"***REDACTED***"} +2026-08-12T17:09:05.079-03:00 DEBUG 123156 --- [nio-8080-exec-2] i.k.l.b.s.s.c.http.LoggingInterceptor : === Outgoing Request === +2026-08-12T17:09:05.079-03:00 DEBUG 123156 --- [nio-8080-exec-2] i.k.l.b.s.s.c.http.LoggingInterceptor : URI: https://customerapi.geovictoria.com/api/v1/Punch/PaginatedListByDate +2026-08-12T17:09:05.079-03:00 DEBUG 123156 --- [nio-8080-exec-2] i.k.l.b.s.s.c.http.LoggingInterceptor : Method: POST +2026-08-12T17:09:05.079-03:00 DEBUG 123156 --- [nio-8080-exec-2] i.k.l.b.s.s.c.http.LoggingInterceptor : Headers: [Accept:"application/json", Content-Type:"application/json", Authorization:"***REDACTED***", Content-Length:"56"] +2026-08-12T17:09:05.079-03:00 DEBUG 123156 --- [nio-8080-exec-2] i.k.l.b.s.s.c.http.LoggingInterceptor : Body: {"StartDate":"20260805","Page":"1","EndDate":"20260812"} +2026-08-12T17:09:05.993-03:00 DEBUG 123156 --- [nio-8080-exec-2] i.k.l.b.s.s.c.http.LoggingInterceptor : === Incoming Response === +2026-08-12T17:09:05.993-03:00 DEBUG 123156 --- [nio-8080-exec-2] i.k.l.b.s.s.c.http.LoggingInterceptor : Status: 200 OK +2026-08-12T17:09:05.993-03:00 DEBUG 123156 --- [nio-8080-exec-2] i.k.l.b.s.s.c.http.LoggingInterceptor : Duration: 914ms +2026-08-12T17:09:05.993-03:00 DEBUG 123156 --- [nio-8080-exec-2] i.k.l.b.s.s.c.http.LoggingInterceptor : Headers: [Date:"Wed, 12 Aug 2026 20:09:05 GMT", Content-Type:"application/json; charset=utf-8", Content-Length:"65", Connection:"keep-alive", Set-Cookie:"***REDACTED***", Strict-Transport-Security:"max-age=31536000", Request-Context:"appId=cid-v1:953128bb-8d56-4c0a-a562-94b96e12ed7a", "appId=cid-v1:5e739e50-636b-4c66-a514-4089c3fb339d", X-Content-Type-Options:"nosniff", "nosniff", Referrer-Policy:"no-referrer", "no-referrer", X-XSS-Protection:"1; mode=block", "1; mode=block", X-Frame-Options:"Deny", "Deny", Content-Security-Policy:"font-src 'self';form-action 'self';frame-ancestors 'self';block-all-mixed-content", "font-src 'self';form-action 'self';frame-ancestors 'self';block-all-mixed-content", Permissions-Policy:"accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()", "geolocation=()", api-supported-versions:"1.0", x-rate-limit-limit:"1m", x-rate-limit-remaining:"149", x-rate-limit-reset:"2026-08-12T20:10:00.0000000Z"] +2026-08-12T17:09:05.993-03:00 DEBUG 123156 --- [nio-8080-exec-2] i.k.l.b.s.s.c.http.LoggingInterceptor : Body: {"Punches":[],"IsLastPage":true,"CurrentPage":1,"TotalOfPages":1} +2026-08-12T17:09:05.997-03:00 INFO 123156 --- [nio-8080-exec-2] i.k.i.a.e.rest.RequestTraceInterceptor : <-- POST /time/api/clientele/clients/punch/list [200] 1602ms +2026-08-12T17:09:06.006-03:00 INFO 123156 --- [nio-8080-exec-4] i.k.i.a.e.rest.RequestTraceInterceptor : --> POST /time/api/clientele/clients/punch/page +2026-08-12T17:09:06.010-03:00 DEBUG 123156 --- [nio-8080-exec-4] i.k.l.b.s.s.c.http.LoggingInterceptor : === Outgoing Request === +2026-08-12T17:09:06.010-03:00 DEBUG 123156 --- [nio-8080-exec-4] i.k.l.b.s.s.c.http.LoggingInterceptor : URI: https://customerapi.geovictoria.com/api/v1/Login +2026-08-12T17:09:06.010-03:00 DEBUG 123156 --- [nio-8080-exec-4] i.k.l.b.s.s.c.http.LoggingInterceptor : Method: POST +2026-08-12T17:09:06.010-03:00 DEBUG 123156 --- [nio-8080-exec-4] i.k.l.b.s.s.c.http.LoggingInterceptor : Headers: [Accept:"application/json", Content-Type:"application/json", Content-Length:"39"] +2026-08-12T17:09:06.011-03:00 DEBUG 123156 --- [nio-8080-exec-4] i.k.l.b.s.s.c.http.LoggingInterceptor : Body: {"User":"***REDACTED***","Password":"***REDACTED***"} +2026-08-12T17:09:06.627-03:00 DEBUG 123156 --- [nio-8080-exec-4] i.k.l.b.s.s.c.http.LoggingInterceptor : === Incoming Response === +2026-08-12T17:09:06.627-03:00 DEBUG 123156 --- [nio-8080-exec-4] i.k.l.b.s.s.c.http.LoggingInterceptor : Status: 200 OK +2026-08-12T17:09:06.627-03:00 DEBUG 123156 --- [nio-8080-exec-4] i.k.l.b.s.s.c.http.LoggingInterceptor : Duration: 616ms +2026-08-12T17:09:06.628-03:00 DEBUG 123156 --- [nio-8080-exec-4] i.k.l.b.s.s.c.http.LoggingInterceptor : Headers: [Date:"Wed, 12 Aug 2026 20:09:06 GMT", Content-Type:"application/json; charset=utf-8", Content-Length:"395", Connection:"keep-alive", Set-Cookie:"***REDACTED***", Strict-Transport-Security:"max-age=31536000", Request-Context:"appId=cid-v1:953128bb-8d56-4c0a-a562-94b96e12ed7a", "appId=cid-v1:5e739e50-636b-4c66-a514-4089c3fb339d", X-Content-Type-Options:"nosniff", "nosniff", Referrer-Policy:"no-referrer", "no-referrer", X-XSS-Protection:"1; mode=block", "1; mode=block", X-Frame-Options:"Deny", "Deny", Content-Security-Policy:"font-src 'self';form-action 'self';frame-ancestors 'self';block-all-mixed-content", "font-src 'self';form-action 'self';frame-ancestors 'self';block-all-mixed-content", Permissions-Policy:"accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()", "geolocation=()", api-supported-versions:"1.0"] +2026-08-12T17:09:06.628-03:00 DEBUG 123156 --- [nio-8080-exec-4] i.k.l.b.s.s.c.http.LoggingInterceptor : Body: {"token":"***REDACTED***"} +2026-08-12T17:09:06.632-03:00 DEBUG 123156 --- [nio-8080-exec-4] i.k.l.b.s.s.c.http.LoggingInterceptor : === Outgoing Request === +2026-08-12T17:09:06.632-03:00 DEBUG 123156 --- [nio-8080-exec-4] i.k.l.b.s.s.c.http.LoggingInterceptor : URI: https://customerapi.geovictoria.com/api/v1/Punch/PaginatedListByDate +2026-08-12T17:09:06.632-03:00 DEBUG 123156 --- [nio-8080-exec-4] i.k.l.b.s.s.c.http.LoggingInterceptor : Method: POST +2026-08-12T17:09:06.632-03:00 DEBUG 123156 --- [nio-8080-exec-4] i.k.l.b.s.s.c.http.LoggingInterceptor : Headers: [Accept:"application/json", Content-Type:"application/json", Authorization:"***REDACTED***", Content-Length:"56"] +2026-08-12T17:09:06.632-03:00 DEBUG 123156 --- [nio-8080-exec-4] i.k.l.b.s.s.c.http.LoggingInterceptor : Body: {"StartDate":"20260805","Page":"1","EndDate":"20260812"} +2026-08-12T17:09:07.445-03:00 DEBUG 123156 --- [nio-8080-exec-4] i.k.l.b.s.s.c.http.LoggingInterceptor : === Incoming Response === +2026-08-12T17:09:07.445-03:00 DEBUG 123156 --- [nio-8080-exec-4] i.k.l.b.s.s.c.http.LoggingInterceptor : Status: 200 OK +2026-08-12T17:09:07.445-03:00 DEBUG 123156 --- [nio-8080-exec-4] i.k.l.b.s.s.c.http.LoggingInterceptor : Duration: 813ms +2026-08-12T17:09:07.445-03:00 DEBUG 123156 --- [nio-8080-exec-4] i.k.l.b.s.s.c.http.LoggingInterceptor : Headers: [Date:"Wed, 12 Aug 2026 20:09:07 GMT", Content-Type:"application/json; charset=utf-8", Content-Length:"65", Connection:"keep-alive", Set-Cookie:"***REDACTED***", Strict-Transport-Security:"max-age=31536000", Request-Context:"appId=cid-v1:953128bb-8d56-4c0a-a562-94b96e12ed7a", "appId=cid-v1:5e739e50-636b-4c66-a514-4089c3fb339d", X-Content-Type-Options:"nosniff", "nosniff", Referrer-Policy:"no-referrer", "no-referrer", X-XSS-Protection:"1; mode=block", "1; mode=block", X-Frame-Options:"Deny", "Deny", Content-Security-Policy:"font-src 'self';form-action 'self';frame-ancestors 'self';block-all-mixed-content", "font-src 'self';form-action 'self';frame-ancestors 'self';block-all-mixed-content", Permissions-Policy:"accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()", "geolocation=()", api-supported-versions:"1.0", x-rate-limit-limit:"1m", x-rate-limit-remaining:"148", x-rate-limit-reset:"2026-08-12T20:10:00.0000000Z"] +2026-08-12T17:09:07.445-03:00 DEBUG 123156 --- [nio-8080-exec-4] i.k.l.b.s.s.c.http.LoggingInterceptor : Body: {"Punches":[],"IsLastPage":true,"CurrentPage":1,"TotalOfPages":1} +2026-08-12T17:09:07.457-03:00 INFO 123156 --- [nio-8080-exec-4] i.k.i.a.e.rest.RequestTraceInterceptor : <-- POST /time/api/clientele/clients/punch/page [200] 1450ms +2026-08-12T17:09:07.465-03:00 INFO 123156 --- [nio-8080-exec-6] i.k.i.a.e.rest.RequestTraceInterceptor : --> POST /time/api/clientele/clients/punch/add +2026-08-12T17:09:07.471-03:00 DEBUG 123156 --- [nio-8080-exec-6] i.k.l.b.s.s.c.http.LoggingInterceptor : === Outgoing Request === +2026-08-12T17:09:07.471-03:00 DEBUG 123156 --- [nio-8080-exec-6] i.k.l.b.s.s.c.http.LoggingInterceptor : URI: https://customerapi.geovictoria.com/api/v1/Login +2026-08-12T17:09:07.471-03:00 DEBUG 123156 --- [nio-8080-exec-6] i.k.l.b.s.s.c.http.LoggingInterceptor : Method: POST +2026-08-12T17:09:07.471-03:00 DEBUG 123156 --- [nio-8080-exec-6] i.k.l.b.s.s.c.http.LoggingInterceptor : Headers: [Accept:"application/json", Content-Type:"application/json", Content-Length:"39"] +2026-08-12T17:09:07.472-03:00 DEBUG 123156 --- [nio-8080-exec-6] i.k.l.b.s.s.c.http.LoggingInterceptor : Body: {"User":"***REDACTED***","Password":"***REDACTED***"} +2026-08-12T17:09:08.163-03:00 DEBUG 123156 --- [nio-8080-exec-6] i.k.l.b.s.s.c.http.LoggingInterceptor : === Incoming Response === +2026-08-12T17:09:08.163-03:00 DEBUG 123156 --- [nio-8080-exec-6] i.k.l.b.s.s.c.http.LoggingInterceptor : Status: 200 OK +2026-08-12T17:09:08.163-03:00 DEBUG 123156 --- [nio-8080-exec-6] i.k.l.b.s.s.c.http.LoggingInterceptor : Duration: 691ms +2026-08-12T17:09:08.163-03:00 DEBUG 123156 --- [nio-8080-exec-6] i.k.l.b.s.s.c.http.LoggingInterceptor : Headers: [Date:"Wed, 12 Aug 2026 20:09:08 GMT", Content-Type:"application/json; charset=utf-8", Content-Length:"395", Connection:"keep-alive", Set-Cookie:"***REDACTED***", Strict-Transport-Security:"max-age=31536000", Request-Context:"appId=cid-v1:953128bb-8d56-4c0a-a562-94b96e12ed7a", "appId=cid-v1:5e739e50-636b-4c66-a514-4089c3fb339d", X-Content-Type-Options:"nosniff", "nosniff", Referrer-Policy:"no-referrer", "no-referrer", X-XSS-Protection:"1; mode=block", "1; mode=block", X-Frame-Options:"Deny", "Deny", Content-Security-Policy:"font-src 'self';form-action 'self';frame-ancestors 'self';block-all-mixed-content", "font-src 'self';form-action 'self';frame-ancestors 'self';block-all-mixed-content", Permissions-Policy:"accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()", "geolocation=()", api-supported-versions:"1.0"] +2026-08-12T17:09:08.163-03:00 DEBUG 123156 --- [nio-8080-exec-6] i.k.l.b.s.s.c.http.LoggingInterceptor : Body: {"token":"***REDACTED***"} +2026-08-12T17:09:08.166-03:00 DEBUG 123156 --- [nio-8080-exec-6] i.k.l.b.s.s.c.http.LoggingInterceptor : === Outgoing Request === +2026-08-12T17:09:08.166-03:00 DEBUG 123156 --- [nio-8080-exec-6] i.k.l.b.s.s.c.http.LoggingInterceptor : URI: https://customerapi.geovictoria.com/api/v1/Punch/AddArtificial +2026-08-12T17:09:08.166-03:00 DEBUG 123156 --- [nio-8080-exec-6] i.k.l.b.s.s.c.http.LoggingInterceptor : Method: POST +2026-08-12T17:09:08.166-03:00 DEBUG 123156 --- [nio-8080-exec-6] i.k.l.b.s.s.c.http.LoggingInterceptor : Headers: [Accept:"application/json", Content-Type:"application/json", Authorization:"***REDACTED***", Content-Length:"70"] +2026-08-12T17:09:08.167-03:00 DEBUG 123156 --- [nio-8080-exec-6] i.k.l.b.s.s.c.http.LoggingInterceptor : Body: {"Type":"Ingreso","UserIdentifier":"11111111","Date":"20260812093000"} +2026-08-12T17:09:08.866-03:00 DEBUG 123156 --- [nio-8080-exec-6] i.k.l.b.s.s.c.http.LoggingInterceptor : === Incoming Response === +2026-08-12T17:09:08.866-03:00 DEBUG 123156 --- [nio-8080-exec-6] i.k.l.b.s.s.c.http.LoggingInterceptor : Status: 200 OK +2026-08-12T17:09:08.866-03:00 DEBUG 123156 --- [nio-8080-exec-6] i.k.l.b.s.s.c.http.LoggingInterceptor : Duration: 699ms +2026-08-12T17:09:08.866-03:00 DEBUG 123156 --- [nio-8080-exec-6] i.k.l.b.s.s.c.http.LoggingInterceptor : Headers: [Date:"Wed, 12 Aug 2026 20:09:08 GMT", Content-Type:"application/json; charset=utf-8", Content-Length:"24", Connection:"keep-alive", Set-Cookie:"***REDACTED***", Strict-Transport-Security:"max-age=31536000", Request-Context:"appId=cid-v1:953128bb-8d56-4c0a-a562-94b96e12ed7a", "appId=cid-v1:5e739e50-636b-4c66-a514-4089c3fb339d", X-Content-Type-Options:"nosniff", "nosniff", Referrer-Policy:"no-referrer", "no-referrer", X-XSS-Protection:"1; mode=block", "1; mode=block", X-Frame-Options:"Deny", "Deny", Content-Security-Policy:"font-src 'self';form-action 'self';frame-ancestors 'self';block-all-mixed-content", "font-src 'self';form-action 'self';frame-ancestors 'self';block-all-mixed-content", Permissions-Policy:"accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()", "geolocation=()", api-supported-versions:"1.0", x-rate-limit-limit:"1m", x-rate-limit-remaining:"149", x-rate-limit-reset:"2026-08-12T20:10:00.0000000Z"] +2026-08-12T17:09:08.866-03:00 DEBUG 123156 --- [nio-8080-exec-6] i.k.l.b.s.s.c.http.LoggingInterceptor : Body: "xIqNxuJFbwPDcKjPwQygWQ" +2026-08-12T17:09:08.869-03:00 INFO 123156 --- [nio-8080-exec-6] i.k.i.a.e.rest.RequestTraceInterceptor : <-- POST /time/api/clientele/clients/punch/add [200] 1403ms +2026-08-12T17:09:08.896-03:00 INFO 123156 --- [nio-8080-exec-7] i.k.i.a.e.rest.RequestTraceInterceptor : --> POST /time/api/clientele/clients/punch/delete +2026-08-12T17:09:08.899-03:00 DEBUG 123156 --- [nio-8080-exec-7] i.k.l.b.s.s.c.http.LoggingInterceptor : === Outgoing Request === +2026-08-12T17:09:08.899-03:00 DEBUG 123156 --- [nio-8080-exec-7] i.k.l.b.s.s.c.http.LoggingInterceptor : URI: https://customerapi.geovictoria.com/api/v1/Login +2026-08-12T17:09:08.899-03:00 DEBUG 123156 --- [nio-8080-exec-7] i.k.l.b.s.s.c.http.LoggingInterceptor : Method: POST +2026-08-12T17:09:08.899-03:00 DEBUG 123156 --- [nio-8080-exec-7] i.k.l.b.s.s.c.http.LoggingInterceptor : Headers: [Accept:"application/json", Content-Type:"application/json", Content-Length:"39"] +2026-08-12T17:09:08.899-03:00 DEBUG 123156 --- [nio-8080-exec-7] i.k.l.b.s.s.c.http.LoggingInterceptor : Body: {"User":"***REDACTED***","Password":"***REDACTED***"} +2026-08-12T17:09:09.585-03:00 DEBUG 123156 --- [nio-8080-exec-7] i.k.l.b.s.s.c.http.LoggingInterceptor : === Incoming Response === +2026-08-12T17:09:09.586-03:00 DEBUG 123156 --- [nio-8080-exec-7] i.k.l.b.s.s.c.http.LoggingInterceptor : Status: 200 OK +2026-08-12T17:09:09.586-03:00 DEBUG 123156 --- [nio-8080-exec-7] i.k.l.b.s.s.c.http.LoggingInterceptor : Duration: 686ms +2026-08-12T17:09:09.586-03:00 DEBUG 123156 --- [nio-8080-exec-7] i.k.l.b.s.s.c.http.LoggingInterceptor : Headers: [Date:"Wed, 12 Aug 2026 20:09:09 GMT", Content-Type:"application/json; charset=utf-8", Content-Length:"395", Connection:"keep-alive", Set-Cookie:"***REDACTED***", Strict-Transport-Security:"max-age=31536000", Request-Context:"appId=cid-v1:953128bb-8d56-4c0a-a562-94b96e12ed7a", "appId=cid-v1:5e739e50-636b-4c66-a514-4089c3fb339d", X-Content-Type-Options:"nosniff", "nosniff", Referrer-Policy:"no-referrer", "no-referrer", X-XSS-Protection:"1; mode=block", "1; mode=block", X-Frame-Options:"Deny", "Deny", Content-Security-Policy:"font-src 'self';form-action 'self';frame-ancestors 'self';block-all-mixed-content", "font-src 'self';form-action 'self';frame-ancestors 'self';block-all-mixed-content", Permissions-Policy:"accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()", "geolocation=()", api-supported-versions:"1.0"] +2026-08-12T17:09:09.586-03:00 DEBUG 123156 --- [nio-8080-exec-7] i.k.l.b.s.s.c.http.LoggingInterceptor : Body: {"token":"***REDACTED***"} +2026-08-12T17:09:09.589-03:00 DEBUG 123156 --- [nio-8080-exec-7] i.k.l.b.s.s.c.http.LoggingInterceptor : === Outgoing Request === +2026-08-12T17:09:09.590-03:00 DEBUG 123156 --- [nio-8080-exec-7] i.k.l.b.s.s.c.http.LoggingInterceptor : URI: https://customerapi.geovictoria.com/api/v1/Punch/DeleteArtificial +2026-08-12T17:09:09.590-03:00 DEBUG 123156 --- [nio-8080-exec-7] i.k.l.b.s.s.c.http.LoggingInterceptor : Method: POST +2026-08-12T17:09:09.590-03:00 DEBUG 123156 --- [nio-8080-exec-7] i.k.l.b.s.s.c.http.LoggingInterceptor : Headers: [Accept:"application/json", Content-Type:"application/json", Authorization:"***REDACTED***", Content-Length:"32"] +2026-08-12T17:09:09.590-03:00 DEBUG 123156 --- [nio-8080-exec-7] i.k.l.b.s.s.c.http.LoggingInterceptor : Body: {"Key":"xIqNxuJFbwPDcKjPwQygWQ"} +2026-08-12T17:09:10.294-03:00 DEBUG 123156 --- [nio-8080-exec-7] i.k.l.b.s.s.c.http.LoggingInterceptor : === Incoming Response === +2026-08-12T17:09:10.294-03:00 DEBUG 123156 --- [nio-8080-exec-7] i.k.l.b.s.s.c.http.LoggingInterceptor : Status: 200 OK +2026-08-12T17:09:10.294-03:00 DEBUG 123156 --- [nio-8080-exec-7] i.k.l.b.s.s.c.http.LoggingInterceptor : Duration: 704ms +2026-08-12T17:09:10.294-03:00 DEBUG 123156 --- [nio-8080-exec-7] i.k.l.b.s.s.c.http.LoggingInterceptor : Headers: [Date:"Wed, 12 Aug 2026 20:09:10 GMT", Content-Type:"application/json; charset=utf-8", Content-Length:"4", Connection:"keep-alive", Set-Cookie:"***REDACTED***", Strict-Transport-Security:"max-age=31536000", Request-Context:"appId=cid-v1:953128bb-8d56-4c0a-a562-94b96e12ed7a", "appId=cid-v1:5e739e50-636b-4c66-a514-4089c3fb339d", X-Content-Type-Options:"nosniff", "nosniff", Referrer-Policy:"no-referrer", "no-referrer", X-XSS-Protection:"1; mode=block", "1; mode=block", X-Frame-Options:"Deny", "Deny", Content-Security-Policy:"font-src 'self';form-action 'self';frame-ancestors 'self';block-all-mixed-content", "font-src 'self';form-action 'self';frame-ancestors 'self';block-all-mixed-content", Permissions-Policy:"accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()", "geolocation=()", api-supported-versions:"1.0", x-rate-limit-limit:"1m", x-rate-limit-remaining:"149", x-rate-limit-reset:"2026-08-12T20:10:00.0000000Z"] +2026-08-12T17:09:10.294-03:00 DEBUG 123156 --- [nio-8080-exec-7] i.k.l.b.s.s.c.http.LoggingInterceptor : Body: true +2026-08-12T17:09:10.296-03:00 INFO 123156 --- [nio-8080-exec-7] i.k.i.a.e.rest.RequestTraceInterceptor : <-- POST /time/api/clientele/clients/punch/delete [200] 1400ms +2026-08-12T17:09:10.306-03:00 INFO 123156 --- [nio-8080-exec-9] i.k.i.a.e.rest.RequestTraceInterceptor : --> POST /time/api/clientele/clients/punch/multiple +2026-08-12T17:09:10.311-03:00 DEBUG 123156 --- [nio-8080-exec-9] i.k.l.b.s.s.c.http.LoggingInterceptor : === Outgoing Request === +2026-08-12T17:09:10.311-03:00 DEBUG 123156 --- [nio-8080-exec-9] i.k.l.b.s.s.c.http.LoggingInterceptor : URI: https://customerapi.geovictoria.com/api/v1/Login +2026-08-12T17:09:10.311-03:00 DEBUG 123156 --- [nio-8080-exec-9] i.k.l.b.s.s.c.http.LoggingInterceptor : Method: POST +2026-08-12T17:09:10.311-03:00 DEBUG 123156 --- [nio-8080-exec-9] i.k.l.b.s.s.c.http.LoggingInterceptor : Headers: [Accept:"application/json", Content-Type:"application/json", Content-Length:"39"] +2026-08-12T17:09:10.311-03:00 DEBUG 123156 --- [nio-8080-exec-9] i.k.l.b.s.s.c.http.LoggingInterceptor : Body: {"User":"***REDACTED***","Password":"***REDACTED***"} +2026-08-12T17:09:10.916-03:00 DEBUG 123156 --- [nio-8080-exec-9] i.k.l.b.s.s.c.http.LoggingInterceptor : === Incoming Response === +2026-08-12T17:09:10.916-03:00 DEBUG 123156 --- [nio-8080-exec-9] i.k.l.b.s.s.c.http.LoggingInterceptor : Status: 200 OK +2026-08-12T17:09:10.916-03:00 DEBUG 123156 --- [nio-8080-exec-9] i.k.l.b.s.s.c.http.LoggingInterceptor : Duration: 604ms +2026-08-12T17:09:10.916-03:00 DEBUG 123156 --- [nio-8080-exec-9] i.k.l.b.s.s.c.http.LoggingInterceptor : Headers: [Date:"Wed, 12 Aug 2026 20:09:10 GMT", Content-Type:"application/json; charset=utf-8", Content-Length:"395", Connection:"keep-alive", Set-Cookie:"***REDACTED***", Strict-Transport-Security:"max-age=31536000", Request-Context:"appId=cid-v1:953128bb-8d56-4c0a-a562-94b96e12ed7a", "appId=cid-v1:5e739e50-636b-4c66-a514-4089c3fb339d", X-Content-Type-Options:"nosniff", "nosniff", Referrer-Policy:"no-referrer", "no-referrer", X-XSS-Protection:"1; mode=block", "1; mode=block", X-Frame-Options:"Deny", "Deny", Content-Security-Policy:"font-src 'self';form-action 'self';frame-ancestors 'self';block-all-mixed-content", "font-src 'self';form-action 'self';frame-ancestors 'self';block-all-mixed-content", Permissions-Policy:"accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()", "geolocation=()", api-supported-versions:"1.0"] +2026-08-12T17:09:10.916-03:00 DEBUG 123156 --- [nio-8080-exec-9] i.k.l.b.s.s.c.http.LoggingInterceptor : Body: {"token":"***REDACTED***"} +2026-08-12T17:09:10.921-03:00 DEBUG 123156 --- [nio-8080-exec-9] i.k.l.b.s.s.c.http.LoggingInterceptor : === Outgoing Request === +2026-08-12T17:09:10.921-03:00 DEBUG 123156 --- [nio-8080-exec-9] i.k.l.b.s.s.c.http.LoggingInterceptor : URI: https://customerapi.geovictoria.com/api/v1/Punch/AddMultiple +2026-08-12T17:09:10.921-03:00 DEBUG 123156 --- [nio-8080-exec-9] i.k.l.b.s.s.c.http.LoggingInterceptor : Method: POST +2026-08-12T17:09:10.921-03:00 DEBUG 123156 --- [nio-8080-exec-9] i.k.l.b.s.s.c.http.LoggingInterceptor : Headers: [Accept:"application/json", Content-Type:"application/json", Authorization:"***REDACTED***", Content-Length:"156"] +2026-08-12T17:09:10.921-03:00 DEBUG 123156 --- [nio-8080-exec-9] i.k.l.b.s.s.c.http.LoggingInterceptor : Body: [{"Type":"Ingreso","ReferenceIdentifier":"f6e5e0e3-1b26-49e5-aeb1-b3ab4f9d0515","BoxSerialNumber":null,"UserIdentifier":"11111111","Date":"20260812093000"}] +2026-08-12T17:09:11.625-03:00 DEBUG 123156 --- [nio-8080-exec-9] i.k.l.b.s.s.c.http.LoggingInterceptor : === Incoming Response === +2026-08-12T17:09:11.625-03:00 DEBUG 123156 --- [nio-8080-exec-9] i.k.l.b.s.s.c.http.LoggingInterceptor : Status: 200 OK +2026-08-12T17:09:11.625-03:00 DEBUG 123156 --- [nio-8080-exec-9] i.k.l.b.s.s.c.http.LoggingInterceptor : Duration: 703ms +2026-08-12T17:09:11.625-03:00 DEBUG 123156 --- [nio-8080-exec-9] i.k.l.b.s.s.c.http.LoggingInterceptor : Headers: [Date:"Wed, 12 Aug 2026 20:09:11 GMT", Content-Type:"application/json; charset=utf-8", Content-Length:"54", Connection:"keep-alive", Set-Cookie:"***REDACTED***", Strict-Transport-Security:"max-age=31536000", Request-Context:"appId=cid-v1:953128bb-8d56-4c0a-a562-94b96e12ed7a", "appId=cid-v1:5e739e50-636b-4c66-a514-4089c3fb339d", X-Content-Type-Options:"nosniff", "nosniff", Referrer-Policy:"no-referrer", "no-referrer", X-XSS-Protection:"1; mode=block", "1; mode=block", X-Frame-Options:"Deny", "Deny", Content-Security-Policy:"font-src 'self';form-action 'self';frame-ancestors 'self';block-all-mixed-content", "font-src 'self';form-action 'self';frame-ancestors 'self';block-all-mixed-content", Permissions-Policy:"accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()", "geolocation=()", api-supported-versions:"1.0", x-rate-limit-limit:"1m", x-rate-limit-remaining:"149", x-rate-limit-reset:"2026-08-12T20:10:00.0000000Z"] +2026-08-12T17:09:11.625-03:00 DEBUG 123156 --- [nio-8080-exec-9] i.k.l.b.s.s.c.http.LoggingInterceptor : Body: [{"ReferenceIdentifier":"#AllPunches","Message":"OK"}] +2026-08-12T17:09:11.628-03:00 INFO 123156 --- [nio-8080-exec-9] i.k.i.a.e.rest.RequestTraceInterceptor : <-- POST /time/api/clientele/clients/punch/multiple [200] 1321ms +2026-08-12T17:09:11.637-03:00 INFO 123156 --- [io-8080-exec-10] i.k.i.a.e.rest.RequestTraceInterceptor : --> POST /time/api/clientele/clients/attendance/book +2026-08-12T17:09:11.641-03:00 DEBUG 123156 --- [io-8080-exec-10] i.k.l.b.s.s.c.http.LoggingInterceptor : === Outgoing Request === +2026-08-12T17:09:11.641-03:00 DEBUG 123156 --- [io-8080-exec-10] i.k.l.b.s.s.c.http.LoggingInterceptor : URI: https://customerapi.geovictoria.com/api/v1/Login +2026-08-12T17:09:11.641-03:00 DEBUG 123156 --- [io-8080-exec-10] i.k.l.b.s.s.c.http.LoggingInterceptor : Method: POST +2026-08-12T17:09:11.641-03:00 DEBUG 123156 --- [io-8080-exec-10] i.k.l.b.s.s.c.http.LoggingInterceptor : Headers: [Accept:"application/json", Content-Type:"application/json", Content-Length:"39"] +2026-08-12T17:09:11.641-03:00 DEBUG 123156 --- [io-8080-exec-10] i.k.l.b.s.s.c.http.LoggingInterceptor : Body: {"User":"***REDACTED***","Password":"***REDACTED***"} +2026-08-12T17:09:12.344-03:00 DEBUG 123156 --- [io-8080-exec-10] i.k.l.b.s.s.c.http.LoggingInterceptor : === Incoming Response === +2026-08-12T17:09:12.344-03:00 DEBUG 123156 --- [io-8080-exec-10] i.k.l.b.s.s.c.http.LoggingInterceptor : Status: 200 OK +2026-08-12T17:09:12.344-03:00 DEBUG 123156 --- [io-8080-exec-10] i.k.l.b.s.s.c.http.LoggingInterceptor : Duration: 703ms +2026-08-12T17:09:12.344-03:00 DEBUG 123156 --- [io-8080-exec-10] i.k.l.b.s.s.c.http.LoggingInterceptor : Headers: [Date:"Wed, 12 Aug 2026 20:09:12 GMT", Content-Type:"application/json; charset=utf-8", Content-Length:"395", Connection:"keep-alive", Set-Cookie:"***REDACTED***", Strict-Transport-Security:"max-age=31536000", Request-Context:"appId=cid-v1:953128bb-8d56-4c0a-a562-94b96e12ed7a", "appId=cid-v1:5e739e50-636b-4c66-a514-4089c3fb339d", X-Content-Type-Options:"nosniff", "nosniff", Referrer-Policy:"no-referrer", "no-referrer", X-XSS-Protection:"1; mode=block", "1; mode=block", X-Frame-Options:"Deny", "Deny", Content-Security-Policy:"font-src 'self';form-action 'self';frame-ancestors 'self';block-all-mixed-content", "font-src 'self';form-action 'self';frame-ancestors 'self';block-all-mixed-content", Permissions-Policy:"accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()", "geolocation=()", api-supported-versions:"1.0"] +2026-08-12T17:09:12.344-03:00 DEBUG 123156 --- [io-8080-exec-10] i.k.l.b.s.s.c.http.LoggingInterceptor : Body: {"token":"***REDACTED***"} +2026-08-12T17:09:12.350-03:00 DEBUG 123156 --- [io-8080-exec-10] i.k.l.b.s.s.c.http.LoggingInterceptor : === Outgoing Request === +2026-08-12T17:09:12.350-03:00 DEBUG 123156 --- [io-8080-exec-10] i.k.l.b.s.s.c.http.LoggingInterceptor : URI: https://customerapi.geovictoria.com/api/v1/AttendanceBook +2026-08-12T17:09:12.350-03:00 DEBUG 123156 --- [io-8080-exec-10] i.k.l.b.s.s.c.http.LoggingInterceptor : Method: POST +2026-08-12T17:09:12.350-03:00 DEBUG 123156 --- [io-8080-exec-10] i.k.l.b.s.s.c.http.LoggingInterceptor : Headers: [Accept:"application/json", Content-Type:"application/json", Authorization:"***REDACTED***", Content-Length:"78"] +2026-08-12T17:09:12.350-03:00 DEBUG 123156 --- [io-8080-exec-10] i.k.l.b.s.s.c.http.LoggingInterceptor : Body: {"StartDate":"20260805000000","EndDate":"20260812235959","UserIds":"11111111"} +2026-08-12T17:09:13.266-03:00 DEBUG 123156 --- [io-8080-exec-10] i.k.l.b.s.s.c.http.LoggingInterceptor : === Incoming Response === +2026-08-12T17:09:13.266-03:00 DEBUG 123156 --- [io-8080-exec-10] i.k.l.b.s.s.c.http.LoggingInterceptor : Status: 200 OK +2026-08-12T17:09:13.266-03:00 DEBUG 123156 --- [io-8080-exec-10] i.k.l.b.s.s.c.http.LoggingInterceptor : Duration: 915ms +2026-08-12T17:09:13.266-03:00 DEBUG 123156 --- [io-8080-exec-10] i.k.l.b.s.s.c.http.LoggingInterceptor : Headers: [Date:"Wed, 12 Aug 2026 20:09:13 GMT", Content-Type:"application/json; charset=utf-8", Content-Length:"576", Connection:"keep-alive", Set-Cookie:"***REDACTED***", Strict-Transport-Security:"max-age=31536000", Request-Context:"appId=cid-v1:953128bb-8d56-4c0a-a562-94b96e12ed7a", "appId=cid-v1:5e739e50-636b-4c66-a514-4089c3fb339d", X-Content-Type-Options:"nosniff", "nosniff", Referrer-Policy:"no-referrer", "no-referrer", X-XSS-Protection:"1; mode=block", "1; mode=block", X-Frame-Options:"Deny", "Deny", Content-Security-Policy:"font-src 'self';form-action 'self';frame-ancestors 'self';block-all-mixed-content", "font-src 'self';form-action 'self';frame-ancestors 'self';block-all-mixed-content", Permissions-Policy:"accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()", "geolocation=()", api-supported-versions:"1.0", x-rate-limit-limit:"1m", x-rate-limit-remaining:"149", x-rate-limit-reset:"2026-08-12T20:10:00.0000000Z"] +2026-08-12T17:09:13.266-03:00 DEBUG 123156 --- [io-8080-exec-10] i.k.l.b.s.s.c.http.LoggingInterceptor : Body: {"Users":[{"PlannedInterval":[],"TotalWorkedHours":"0","WorkedDays":0,"NonWorkedDays":0,"Absences":0,"Holidays":0,"Vacation":0,"DaysLeaveWithPay":0,"DaysLeaveWithoutPay":0,"AbsenceDaysWithoutJustification":0,"AbsenceDaysLicense":0,"WorkedSundays":0,"WorkedHolidays":0,"DaysAttended":0,"Id":"mywHFgxqr8I6WDBDNyyPgA","Identifier":"11111111","Enabled":"1","Name":"Ariel ","LastName":"Fatecha","Email":"afatecha@visionoutsourcers.com.py","PositionId":"EhKM7eLolc9WkWAmVCjZcw","WeeklyWorkingHoursCodeId":"sDzBzlFnefikfhnZoFXLiw","IsHiddenForReports":"False"}],"ExtraTimeValues":[]} +2026-08-12T17:09:13.272-03:00 INFO 123156 --- [io-8080-exec-10] i.k.i.a.e.rest.RequestTraceInterceptor : <-- POST /time/api/clientele/clients/attendance/book [200] 1635ms