This commit is contained in:
2026-08-12 15:52:18 -03:00
parent b21283f295
commit 6d9b6514ce
520 changed files with 41256 additions and 41256 deletions
+36 -36
View File
@@ -1,36 +1,36 @@
# ---> Maven # ---> Maven
target/ target/
pom.xml.tag pom.xml.tag
pom.xml.releaseBackup pom.xml.releaseBackup
pom.xml.versionsBackup pom.xml.versionsBackup
pom.xml.next pom.xml.next
release.properties release.properties
dependency-reduced-pom.xml dependency-reduced-pom.xml
buildNumber.properties buildNumber.properties
.mvn/timing.properties .mvn/timing.properties
# https://github.com/takari/maven-wrapper#usage-without-binary-jar # https://github.com/takari/maven-wrapper#usage-without-binary-jar
.mvn/wrapper/maven-wrapper.jar .mvn/wrapper/maven-wrapper.jar
# Eclipse m2e generated files # Eclipse m2e generated files
# Eclipse Core # Eclipse Core
.project .project
# JDT-specific (Eclipse Java Development Tools) # JDT-specific (Eclipse Java Development Tools)
.classpath .classpath
### IntelliJ IDEA ### ### IntelliJ IDEA ###
.idea .idea
*.iws *.iws
*.iml *.iml
*.ipr *.ipr
# ---> NetBeans # ---> NetBeans
**/nbproject/private/ **/nbproject/private/
**/nbproject/Makefile-*.mk **/nbproject/Makefile-*.mk
**/nbproject/Package-*.bash **/nbproject/Package-*.bash
nb-configuration.xml nb-configuration.xml
build/ build/
nbbuild/ nbbuild/
dist/ dist/
nbdist/ nbdist/
.nb-gradle/ .nb-gradle/
+2 -2
View File
@@ -1,2 +1,2 @@
# iqr-server-gen # iqr-server-gen
+55 -55
View File
@@ -1,55 +1,55 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<actions> <actions>
<action> <action>
<actionName>run</actionName> <actionName>run</actionName>
<packagings> <packagings>
<packaging>jar</packaging> <packaging>jar</packaging>
</packagings> </packagings>
<goals> <goals>
<goal>process-classes</goal> <goal>process-classes</goal>
<goal>org.codehaus.mojo:exec-maven-plugin:3.1.0:exec</goal> <goal>org.codehaus.mojo:exec-maven-plugin:3.1.0:exec</goal>
</goals> </goals>
<properties> <properties>
<exec.vmArgs></exec.vmArgs> <exec.vmArgs></exec.vmArgs>
<exec.args>${exec.vmArgs} -classpath %classpath ${exec.mainClass} ${exec.appArgs}</exec.args> <exec.args>${exec.vmArgs} -classpath %classpath ${exec.mainClass} ${exec.appArgs}</exec.args>
<exec.appArgs></exec.appArgs> <exec.appArgs></exec.appArgs>
<exec.mainClass>io.kumare.iqr.IqrApplication</exec.mainClass> <exec.mainClass>io.kumare.iqr.IqrApplication</exec.mainClass>
<exec.executable>java</exec.executable> <exec.executable>java</exec.executable>
</properties> </properties>
</action> </action>
<action> <action>
<actionName>debug</actionName> <actionName>debug</actionName>
<packagings> <packagings>
<packaging>jar</packaging> <packaging>jar</packaging>
</packagings> </packagings>
<goals> <goals>
<goal>process-classes</goal> <goal>process-classes</goal>
<goal>org.codehaus.mojo:exec-maven-plugin:3.1.0:exec</goal> <goal>org.codehaus.mojo:exec-maven-plugin:3.1.0:exec</goal>
</goals> </goals>
<properties> <properties>
<exec.vmArgs>-agentlib:jdwp=transport=dt_socket,server=n,address=${jpda.address}</exec.vmArgs> <exec.vmArgs>-agentlib:jdwp=transport=dt_socket,server=n,address=${jpda.address}</exec.vmArgs>
<exec.args>${exec.vmArgs} -classpath %classpath ${exec.mainClass} ${exec.appArgs}</exec.args> <exec.args>${exec.vmArgs} -classpath %classpath ${exec.mainClass} ${exec.appArgs}</exec.args>
<exec.appArgs></exec.appArgs> <exec.appArgs></exec.appArgs>
<exec.mainClass>io.kumare.iqr.IqrApplication</exec.mainClass> <exec.mainClass>io.kumare.iqr.IqrApplication</exec.mainClass>
<exec.executable>java</exec.executable> <exec.executable>java</exec.executable>
<jpda.listen>true</jpda.listen> <jpda.listen>true</jpda.listen>
</properties> </properties>
</action> </action>
<action> <action>
<actionName>profile</actionName> <actionName>profile</actionName>
<packagings> <packagings>
<packaging>jar</packaging> <packaging>jar</packaging>
</packagings> </packagings>
<goals> <goals>
<goal>process-classes</goal> <goal>process-classes</goal>
<goal>org.codehaus.mojo:exec-maven-plugin:3.1.0:exec</goal> <goal>org.codehaus.mojo:exec-maven-plugin:3.1.0:exec</goal>
</goals> </goals>
<properties> <properties>
<exec.vmArgs></exec.vmArgs> <exec.vmArgs></exec.vmArgs>
<exec.args>${exec.vmArgs} -classpath %classpath ${exec.mainClass} ${exec.appArgs}</exec.args> <exec.args>${exec.vmArgs} -classpath %classpath ${exec.mainClass} ${exec.appArgs}</exec.args>
<exec.mainClass>io.kumare.iqr.IqrApplication</exec.mainClass> <exec.mainClass>io.kumare.iqr.IqrApplication</exec.mainClass>
<exec.executable>java</exec.executable> <exec.executable>java</exec.executable>
<exec.appArgs></exec.appArgs> <exec.appArgs></exec.appArgs>
</properties> </properties>
</action> </action>
</actions> </actions>
+161 -161
View File
@@ -1,161 +1,161 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId> <artifactId>spring-boot-starter-parent</artifactId>
<version>3.5.0</version> <version>3.5.0</version>
<relativePath/> <!-- lookup parent from repository --> <relativePath/> <!-- lookup parent from repository -->
</parent> </parent>
<!-- ## ARTIFACT ## --> <!-- ## ARTIFACT ## -->
<groupId>io.kumare.time</groupId> <groupId>io.kumare.time</groupId>
<artifactId>time-server</artifactId> <artifactId>time-server</artifactId>
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
<name>Kumare Time Server</name> <name>Kumare Time Server</name>
<description>time</description> <description>time</description>
<url/> <url/>
<licenses> <licenses>
<license/> <license/>
</licenses> </licenses>
<developers> <developers>
<developer/> <developer/>
</developers> </developers>
<scm> <scm>
<connection/> <connection/>
<developerConnection/> <developerConnection/>
<tag/> <tag/>
<url/> <url/>
</scm> </scm>
<!-- ## PROPERTIES ## --> <!-- ## PROPERTIES ## -->
<properties> <properties>
<java.version>22</java.version> <java.version>22</java.version>
</properties> </properties>
<!-- ## DEPENDENCIES ## --> <!-- ## DEPENDENCIES ## -->
<dependencies> <dependencies>
<!-- base --> <!-- base -->
<dependency> <dependency>
<groupId>io.kumare</groupId> <groupId>io.kumare</groupId>
<artifactId>kumare-base-server-spring</artifactId> <artifactId>kumare-base-server-spring</artifactId>
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
</dependency> </dependency>
<!-- oauth --> <!-- oauth -->
<dependency> <dependency>
<groupId>io.kumare</groupId> <groupId>io.kumare</groupId>
<artifactId>kumare-adapter-spring-oauthlib</artifactId> <artifactId>kumare-adapter-spring-oauthlib</artifactId>
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
</dependency> </dependency>
<!-- visma --> <!-- visma -->
<dependency> <dependency>
<groupId>io.kumare</groupId> <groupId>io.kumare</groupId>
<artifactId>kumare-adapter-spring-visma-time</artifactId> <artifactId>kumare-adapter-spring-visma-time</artifactId>
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.fasterxml.jackson.datatype</groupId> <groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-hibernate6</artifactId> <artifactId>jackson-datatype-hibernate6</artifactId>
</dependency> </dependency>
<!-- security --> <!-- security -->
<dependency> <dependency>
<groupId>org.springframework.security</groupId> <groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId> <artifactId>spring-security-core</artifactId>
</dependency> </dependency>
<!-- web --> <!-- web -->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId> <artifactId>spring-boot-starter-web</artifactId>
</dependency> </dependency>
<!-- jpa --> <!-- jpa -->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId> <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.postgresql</groupId> <groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId> <artifactId>postgresql</artifactId>
<scope>runtime</scope> <scope>runtime</scope>
</dependency> </dependency>
<!-- security --> <!-- security -->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId> <artifactId>spring-boot-starter-security</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-oauth2-client</artifactId> <artifactId>spring-boot-starter-oauth2-client</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-oauth2-resource-server</artifactId> <artifactId>spring-boot-starter-oauth2-resource-server</artifactId>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --> <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency> <dependency>
<groupId>com.google.code.gson</groupId> <groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId> <artifactId>gson</artifactId>
</dependency> </dependency>
<!-- swagger --> <!-- swagger -->
<dependency> <dependency>
<groupId>org.springdoc</groupId> <groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.8.13</version> <version>2.8.13</version>
</dependency> </dependency>
<!-- test --> <!-- test -->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId> <artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId> <artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope> <scope>runtime</scope>
<optional>true</optional> <optional>true</optional>
</dependency> </dependency>
</dependencies> </dependencies>
<!-- ## PLUGINS ## --> <!-- ## PLUGINS ## -->
<build> <build>
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId> <artifactId>spring-boot-maven-plugin</artifactId>
</plugin> </plugin>
</plugins> </plugins>
</build> </build>
<!-- <!--
<repositories> <repositories>
<repository> <repository>
<id>gitea</id> <id>gitea</id>
<url>https://gitea.example.com/api/packages/{owner}/maven</url> <url>https://gitea.example.com/api/packages/{owner}/maven</url>
</repository> </repository>
</repositories> </repositories>
<distributionManagement> <distributionManagement>
<repository> <repository>
<id>gitea</id> <id>gitea</id>
<url>https://gitea.example.com/api/packages/{owner}/maven</url> <url>https://gitea.example.com/api/packages/{owner}/maven</url>
</repository> </repository>
<snapshotRepository> <snapshotRepository>
<id>gitea</id> <id>gitea</id>
<url>https://gitea.example.com/api/packages/{owner}/maven</url> <url>https://gitea.example.com/api/packages/{owner}/maven</url>
</snapshotRepository> </snapshotRepository>
</distributionManagement> </distributionManagement>
--> -->
</project> </project>
+32 -32
View File
@@ -1,32 +1,32 @@
/* /*
* *
*/ */
package io.kumare.iqr; package io.kumare.iqr;
// spring // spring
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.web.config.EnableSpringDataWebSupport; import org.springframework.data.web.config.EnableSpringDataWebSupport;
// app // app
import io.kumare.iqr.app.App; import io.kumare.iqr.app.App;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
@SpringBootApplication(scanBasePackages = {"io.kumare"}) @SpringBootApplication(scanBasePackages = {"io.kumare"})
@EnableSpringDataWebSupport(pageSerializationMode = EnableSpringDataWebSupport.PageSerializationMode.VIA_DTO) @EnableSpringDataWebSupport(pageSerializationMode = EnableSpringDataWebSupport.PageSerializationMode.VIA_DTO)
public class IqrApplication { public class IqrApplication {
// ::: cons // ::: cons
// //
public static void main(String[] args) { public static void main(String[] args) {
var innerContext = SpringApplication.run(IqrApplication.class, args); var innerContext = SpringApplication.run(IqrApplication.class, args);
// app // app
App.getEngine().getBase().setInnerContext(innerContext); App.getEngine().getBase().setInnerContext(innerContext);
App.init(); App.init();
} }
} }
+48 -48
View File
@@ -1,48 +1,48 @@
/* /*
* *
*/ */
package io.kumare.iqr.app; package io.kumare.iqr.app;
// base // base
import io.kumare.lib.app.api.module.ServiceModuleController; import io.kumare.lib.app.api.module.ServiceModuleController;
// app // app
import io.kumare.iqr.app.adapter.AppAdapters; import io.kumare.iqr.app.adapter.AppAdapters;
import io.kumare.iqr.app.module.AppModules; import io.kumare.iqr.app.module.AppModules;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class App { public class App {
// ::: constants // ::: constants
// //
private static final AppModules modules = new AppModules(); private static final AppModules modules = new AppModules();
private static final AppAdapters adapters = new AppAdapters(); private static final AppAdapters adapters = new AppAdapters();
// //
private static boolean initialized = false; private static boolean initialized = false;
public static void init() { public static void init() {
if (!initialized) { if (!initialized) {
modules.init(); modules.init();
//adapters.init(); //adapters.init();
initialized = true; initialized = true;
} }
} }
public static AppEngine getEngine() { public static AppEngine getEngine() {
return AppEngine.getEngine(); return AppEngine.getEngine();
} }
public static AppModules getModules() { public static AppModules getModules() {
return modules; return modules;
} }
public static AppAdapters getAdapters() { public static AppAdapters getAdapters() {
return adapters; return adapters;
} }
public static ServiceModuleController getController(String name) { public static ServiceModuleController getController(String name) {
return getModules().getController(name); return getModules().getController(name);
} }
} }
@@ -1,21 +1,21 @@
/* /*
* *
*/ */
package io.kumare.iqr.app; package io.kumare.iqr.app;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AppConstants { public class AppConstants {
// ::: modules // ::: modules
// //
public static final int AUTHENTICATION_CODE = 1; public static final int AUTHENTICATION_CODE = 1;
public static final int TAXONOMY_CODE = 2; public static final int TAXONOMY_CODE = 2;
public static final int POCKET_CODE = 3; public static final int POCKET_CODE = 3;
public static final int BIZ_CODE = 4; public static final int BIZ_CODE = 4;
public static final int CLIENTELE_CODE = 5; public static final int CLIENTELE_CODE = 5;
public static final int LOYALTY_CODE = 6; public static final int LOYALTY_CODE = 6;
} }
+77 -77
View File
@@ -1,77 +1,77 @@
/* /*
* *
*/ */
package io.kumare.iqr.app; package io.kumare.iqr.app;
// base // base
import io.kumare.lib.app.api.module.ServiceModuleController; import io.kumare.lib.app.api.module.ServiceModuleController;
import io.kumare.lib.app.api.security.PermissionReference; import io.kumare.lib.app.api.security.PermissionReference;
import io.kumare.lib.base.server.spring.BaseContext; import io.kumare.lib.base.server.spring.BaseContext;
// app // app
import io.kumare.iqr.app.adapter.AppAdapters; import io.kumare.iqr.app.adapter.AppAdapters;
import io.kumare.iqr.app.module.AppModules; import io.kumare.iqr.app.module.AppModules;
import io.kumare.iqr.app.security.AppSecurityContext; import io.kumare.iqr.app.security.AppSecurityContext;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AppContext extends BaseContext { public class AppContext extends BaseContext {
// ::: cons // ::: cons
// //
private final AppSecurityContext security = new AppSecurityContext(this); private final AppSecurityContext security = new AppSecurityContext(this);
// ::: vars // ::: vars
// //
// ::: fields // ::: fields
// //
@Override @Override
public AppEngine getEngine() { public AppEngine getEngine() {
return AppEngine.getEngine(); return AppEngine.getEngine();
} }
// ::: adapters // ::: adapters
// //
@Override @Override
public AppAdapters getAdapters() { public AppAdapters getAdapters() {
return App.getAdapters(); return App.getAdapters();
} }
// ::: modules // ::: modules
// //
@Override @Override
public AppModules getModules() { public AppModules getModules() {
return App.getModules(); return App.getModules();
} }
@Override @Override
public ServiceModuleController getController(String name) { public ServiceModuleController getController(String name) {
return App.getController(name); return App.getController(name);
} }
// ::: security // ::: security
// //
@Override @Override
public AppSecurityContext getSecurity() { public AppSecurityContext getSecurity() {
return security; return security;
} }
@Override @Override
public void ensureAuthorization(PermissionReference ref) { public void ensureAuthorization(PermissionReference ref) {
/* /*
var attached = isAttached("authorized"); var attached = isAttached("authorized");
if(attached && (Boolean) get("authorized")) { if(attached && (Boolean) get("authorized")) {
return; return;
} }
var controller = AppModules.auth.getController(); var controller = AppModules.auth.getController();
var allowed = controller.isAllowed(this, ref); var allowed = controller.isAllowed(this, ref);
V.ifFalse(allowed, ref.getError()); V.ifFalse(allowed, ref.getError());
attach("authorized", true);*/ attach("authorized", true);*/
} }
} }
+64 -64
View File
@@ -1,64 +1,64 @@
/* /*
* *
*/ */
package io.kumare.iqr.app; package io.kumare.iqr.app;
// base // base
import io.kumare.lib.app.api.Engine; import io.kumare.lib.app.api.Engine;
import io.kumare.lib.base.server.spring.BaseEngine; import io.kumare.lib.base.server.spring.BaseEngine;
import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.ConfigurableApplicationContext;
// app // app
import io.kumare.iqr.app.action.AppActionManager; import io.kumare.iqr.app.action.AppActionManager;
import io.kumare.iqr.app.security.AppPermissionManager; import io.kumare.iqr.app.security.AppPermissionManager;
/** /**
* wrapper of BaseEngine * wrapper of BaseEngine
* *
* @author afatecha * @author afatecha
*/ */
public class AppEngine implements Engine { public class AppEngine implements Engine {
// cons // cons
// //
private static final AppEngine engine = new AppEngine(); private static final AppEngine engine = new AppEngine();
// ::: constructors // ::: constructors
// //
private AppEngine() { private AppEngine() {
} }
// ::: api // ::: api
// //
public static AppEngine getEngine() { public static AppEngine getEngine() {
return engine; return engine;
} }
// ::: api // ::: api
// //
@Override @Override
public BaseEngine getBase() { public BaseEngine getBase() {
return BaseEngine.getEngine(); return BaseEngine.getEngine();
} }
@Override @Override
public ConfigurableApplicationContext getInnerContext() { public ConfigurableApplicationContext getInnerContext() {
return (ConfigurableApplicationContext) getBase().getInnerContext(); return (ConfigurableApplicationContext) getBase().getInnerContext();
} }
@Override @Override
public AppContext newContext() { public AppContext newContext() {
return new AppContext(); return new AppContext();
} }
@Override @Override
public AppActionManager getActionManager() { public AppActionManager getActionManager() {
return new AppActionManager(); return new AppActionManager();
} }
@Override @Override
public AppPermissionManager getPermissionManager() { public AppPermissionManager getPermissionManager() {
return new AppPermissionManager(); return new AppPermissionManager();
} }
} }
+69 -69
View File
@@ -1,69 +1,69 @@
/* /*
* *
*/ */
package io.kumare.iqr.app; package io.kumare.iqr.app;
// java // java
import java.util.Map; import java.util.Map;
import java.util.HashMap; import java.util.HashMap;
// lib // lib
import io.kumare.lib.transport.TransportCode; import io.kumare.lib.transport.TransportCode;
import static io.kumare.lib.transport.Transports.code; import static io.kumare.lib.transport.Transports.code;
import io.kumare.lib.v.ExceptionPrototype; import io.kumare.lib.v.ExceptionPrototype;
// app // app
import io.kumare.iqr.app.endpoint.AppTransports; import io.kumare.iqr.app.endpoint.AppTransports;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public enum AppErrors implements ExceptionPrototype { public enum AppErrors implements ExceptionPrototype {
action_arg_notfound(1, code(AppTransports.http, 500)), action_arg_notfound(1, code(AppTransports.http, 500)),
action_unauthorized(2, code(AppTransports.http, 500)); action_unauthorized(2, code(AppTransports.http, 500));
// ::: vars // ::: vars
// //
private final Map transportCodes = new HashMap(); private final Map transportCodes = new HashMap();
private final int code; private final int code;
// ::: constructors // ::: constructors
// //
AppErrors(int code, TransportCode... codes) { AppErrors(int code, TransportCode... codes) {
this.code = code; this.code = code;
if (codes != null) { if (codes != null) {
for (var i : codes) { for (var i : codes) {
if (i != null) { if (i != null) {
transportCodes.put(i.getId(), i.getCode()); transportCodes.put(i.getId(), i.getCode());
} }
} }
} }
} }
// ::: prototype api // ::: prototype api
// //
@Override @Override
public int getCode() { public int getCode() {
return code; return code;
} }
@Override @Override
public String getName() { public String getName() {
return name(); return name();
} }
@Override @Override
public Map getTransportCodes() { public Map getTransportCodes() {
return transportCodes; return transportCodes;
} }
@Override @Override
public RuntimeException newInstance(String msg, Throwable cause, Map extra) { public RuntimeException newInstance(String msg, Throwable cause, Map extra) {
var ex = new AppException(this, msg, cause); var ex = new AppException(this, msg, cause);
ex.setExtra(extra); ex.setExtra(extra);
return ex; return ex;
} }
} }
+132 -132
View File
@@ -1,132 +1,132 @@
/* /*
* *
*/ */
package io.kumare.iqr.app; package io.kumare.iqr.app;
// java // java
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
// lib // lib
import io.kumare.lib.v.ExceptionInterface; import io.kumare.lib.v.ExceptionInterface;
import io.kumare.lib.v.ExceptionPrototype; import io.kumare.lib.v.ExceptionPrototype;
// app // app
import io.kumare.iqr.app.endpoint.AppTransports; import io.kumare.iqr.app.endpoint.AppTransports;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AppException extends RuntimeException implements ExceptionInterface { public class AppException extends RuntimeException implements ExceptionInterface {
// ::: vars // ::: vars
// //
private int code = 1; private int code = 1;
private String name = "unknown"; private String name = "unknown";
private final Map<AppTransports, Object> transportCodes = new HashMap<>(); private final Map<AppTransports, Object> transportCodes = new HashMap<>();
private Map<String, Object> extra; private Map<String, Object> extra;
// ::: constructors // ::: constructors
// //
public AppException() { public AppException() {
} }
public AppException(Throwable cause) { public AppException(Throwable cause) {
this(null, null, cause); this(null, null, cause);
} }
public AppException(ExceptionPrototype proto, String msg) { public AppException(ExceptionPrototype proto, String msg) {
this(proto, msg, null); this(proto, msg, null);
} }
public AppException(ExceptionPrototype proto, String msg, Throwable cause) { public AppException(ExceptionPrototype proto, String msg, Throwable cause) {
super(msg); super(msg);
if (proto != null) { if (proto != null) {
this.code = proto.getCode(); this.code = proto.getCode();
this.name = proto.getName(); this.name = proto.getName();
this.addTransportCodes(proto.getTransportCodes()); this.addTransportCodes(proto.getTransportCodes());
} }
if (cause != null) { if (cause != null) {
initCause(cause); initCause(cause);
} }
} }
public AppException(int code, String name) { public AppException(int code, String name) {
this(code, name, null); this(code, name, null);
} }
public AppException(int code, String name, String msg) { public AppException(int code, String name, String msg) {
this(code, name, msg, null); this(code, name, msg, null);
} }
public AppException(int code, String name, String msg, Throwable cause) { public AppException(int code, String name, String msg, Throwable cause) {
super(msg); super(msg);
if (code > 0) { if (code > 0) {
this.code = code; this.code = code;
} }
if (name != null) { if (name != null) {
this.name = name; this.name = name;
} }
if (cause != null) { if (cause != null) {
initCause(cause); initCause(cause);
} }
} }
// ::: fields // ::: fields
// //
@Override @Override
public int getCode() { public int getCode() {
return code; return code;
} }
@Override @Override
public String getName() { public String getName() {
return name; return name;
} }
@Override @Override
public Object getTransportCode(String transportName) { public Object getTransportCode(String transportName) {
return getTransportCode(AppTransports.valueOf(transportName)); return getTransportCode(AppTransports.valueOf(transportName));
} }
@Override @Override
public Object getTransportCode(Enum transportId) { public Object getTransportCode(Enum transportId) {
return getTransportCode(AppTransports.valueOf(transportId.name())); return getTransportCode(AppTransports.valueOf(transportId.name()));
} }
public Object getTransportCode(AppTransports transportId) { public Object getTransportCode(AppTransports transportId) {
return transportCodes.get(transportId); return transportCodes.get(transportId);
} }
public void setTransportCode(AppTransports transportId, Object code) { public void setTransportCode(AppTransports transportId, Object code) {
transportCodes.put(transportId, code); transportCodes.put(transportId, code);
} }
@Override @Override
public Map getTransportCodes() { public Map getTransportCodes() {
return transportCodes; return transportCodes;
} }
public final void addTransportCodes(Map<AppTransports, Object> map) { public final void addTransportCodes(Map<AppTransports, Object> map) {
if (map != null) { if (map != null) {
this.transportCodes.putAll(map); this.transportCodes.putAll(map);
} }
} }
@Override @Override
public Map getExtra() { public Map getExtra() {
return extra; return extra;
} }
public void setExtra(Map<String, Object> extra) { public void setExtra(Map<String, Object> extra) {
this.extra = extra; this.extra = extra;
} }
} }
@@ -1,36 +1,36 @@
/* /*
* *
*/ */
package io.kumare.iqr.app.action; package io.kumare.iqr.app.action;
// base // base
import io.kumare.lib.base.server.spring.action.BaseAction; import io.kumare.lib.base.server.spring.action.BaseAction;
// app // app
import io.kumare.iqr.app.AppContext; import io.kumare.iqr.app.AppContext;
/** /**
* *
* @author afatecha * @author afatecha
* @param <I> * @param <I>
* @param <O> * @param <O>
*/ */
public abstract class AppAction<I, O> extends BaseAction<AppContext, I, O, AppActionError> { public abstract class AppAction<I, O> extends BaseAction<AppContext, I, O, AppActionError> {
// ::: cons // ::: cons
// //
// ::: vars // ::: vars
// //
// ::: fields // ::: fields
// //
// ::: api // ::: api
// //
// ::: internals // ::: internals
// //
} }
@@ -1,40 +1,40 @@
/* /*
* *
*/ */
package io.kumare.iqr.app.action; package io.kumare.iqr.app.action;
// java // java
import java.io.Serializable; import java.io.Serializable;
import java.util.Map; import java.util.Map;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AppActionArgument implements Serializable { public class AppActionArgument implements Serializable {
// ::: vars // ::: vars
// //
private Map<String, Object> context; private Map<String, Object> context;
private Map<String, Object> params; private Map<String, Object> params;
// ::: fields // ::: fields
// //
public Map<String, Object> getContext() { public Map<String, Object> getContext() {
return context; return context;
} }
public void setContext(Map<String, Object> context) { public void setContext(Map<String, Object> context) {
this.context = context; this.context = context;
} }
public Map<String, Object> getParams() { public Map<String, Object> getParams() {
return params; return params;
} }
public void setParams(Map<String, Object> params) { public void setParams(Map<String, Object> params) {
this.params = params; this.params = params;
} }
} }
@@ -1,12 +1,12 @@
/* /*
* *
*/ */
package io.kumare.iqr.app.action; package io.kumare.iqr.app.action;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AppActionError { public class AppActionError {
} }
@@ -1,15 +1,15 @@
/* /*
* *
*/ */
package io.kumare.iqr.app.action; package io.kumare.iqr.app.action;
// base // base
import io.kumare.lib.base.server.spring.action.BaseActionManager; import io.kumare.lib.base.server.spring.action.BaseActionManager;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AppActionManager extends BaseActionManager { public class AppActionManager extends BaseActionManager {
} }
@@ -1,15 +1,15 @@
/* /*
* *
*/ */
package io.kumare.iqr.app.action; package io.kumare.iqr.app.action;
// java // java
import java.io.Serializable; import java.io.Serializable;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AppActionResult implements Serializable { public class AppActionResult implements Serializable {
} }
@@ -1,46 +1,46 @@
/* /*
* *
*/ */
package io.kumare.iqr.app.action; package io.kumare.iqr.app.action;
// base // base
import io.kumare.lib.app.api.store.Entity; import io.kumare.lib.app.api.store.Entity;
/** /**
* *
* @author afatecha * @author afatecha
* @param <E> * @param <E>
*/ */
public class AppEntityActionArgument<E extends Entity> extends AppActionArgument { public class AppEntityActionArgument<E extends Entity> extends AppActionArgument {
// ::: vars // ::: vars
// //
private E entity; private E entity;
// ::: constructors // ::: constructors
// //
public AppEntityActionArgument() { public AppEntityActionArgument() {
} }
public AppEntityActionArgument(E entity) { public AppEntityActionArgument(E entity) {
this.entity = entity; this.entity = entity;
} }
// ::: fields // ::: fields
// //
public E getEntity() { public E getEntity() {
return entity; return entity;
} }
public void setEntity(E entity) { public void setEntity(E entity) {
this.entity = entity; this.entity = entity;
} }
// ::: fluents // ::: fluents
// //
public AppEntityActionArgument<E> entity(E entity) { public AppEntityActionArgument<E> entity(E entity) {
setEntity(entity); setEntity(entity);
return this; return this;
} }
} }
@@ -1,30 +1,30 @@
/* /*
* *
*/ */
package io.kumare.iqr.app.action; package io.kumare.iqr.app.action;
// base // base
import io.kumare.lib.app.api.store.Entity; import io.kumare.lib.app.api.store.Entity;
/** /**
* *
* @author afatecha * @author afatecha
* @param <E> * @param <E>
*/ */
public class AppEntityActionResult<E extends Entity> extends AppActionResult { public class AppEntityActionResult<E extends Entity> extends AppActionResult {
// ::: vars // ::: vars
// //
private E entity; private E entity;
// ::: fields // ::: fields
// //
public E getEntity() { public E getEntity() {
return entity; return entity;
} }
public void setEntity(E entity) { public void setEntity(E entity) {
this.entity = entity; this.entity = entity;
} }
} }
@@ -1,85 +1,85 @@
/* /*
* *
*/ */
package io.kumare.iqr.app.action; package io.kumare.iqr.app.action;
// base // base
import io.kumare.lib.app.api.store.Entity; import io.kumare.lib.app.api.store.Entity;
/** /**
* *
* @author afatecha * @author afatecha
* @param <E> * @param <E>
*/ */
public class AppListActionArgument<E extends Entity> extends AppEntityActionArgument<E> { public class AppListActionArgument<E extends Entity> extends AppEntityActionArgument<E> {
// ::: vars // ::: vars
// //
private boolean wrapped = false; private boolean wrapped = false;
private boolean pageable = false; private boolean pageable = false;
private int pageNumber = 0; private int pageNumber = 0;
private int pageSize = 0; private int pageSize = 0;
private String sort; private String sort;
private String query; private String query;
// ::: constructor // ::: constructor
// //
public AppListActionArgument() { public AppListActionArgument() {
} }
public AppListActionArgument(E entity) { public AppListActionArgument(E entity) {
super(entity); super(entity);
} }
// ::: fields // ::: fields
// //
public boolean isWrapped() { public boolean isWrapped() {
return wrapped; return wrapped;
} }
public void setWrapped(boolean wrapped) { public void setWrapped(boolean wrapped) {
this.wrapped = wrapped; this.wrapped = wrapped;
} }
public boolean isPageable() { public boolean isPageable() {
return pageable; return pageable;
} }
public void setPageable(boolean pageable) { public void setPageable(boolean pageable) {
this.pageable = pageable; this.pageable = pageable;
} }
public int getPageNumber() { public int getPageNumber() {
return pageNumber; return pageNumber;
} }
public void setPageNumber(int pageNumber) { public void setPageNumber(int pageNumber) {
this.pageNumber = pageNumber; this.pageNumber = pageNumber;
} }
public int getPageSize() { public int getPageSize() {
return pageSize; return pageSize;
} }
public void setPageSize(int pageSize) { public void setPageSize(int pageSize) {
this.pageSize = pageSize; this.pageSize = pageSize;
} }
public String getSort() { public String getSort() {
return sort; return sort;
} }
public void setSort(String sort) { public void setSort(String sort) {
this.sort = sort; this.sort = sort;
} }
public String getQuery() { public String getQuery() {
return query; return query;
} }
public void setQuery(String query) { public void setQuery(String query) {
this.query = query; this.query = query;
} }
} }
@@ -1,27 +1,27 @@
/* /*
* *
*/ */
package io.kumare.iqr.app.adapter; package io.kumare.iqr.app.adapter;
// base // base
import io.kumare.adapter.spring.vismatime.VismaTimeAdapter; import io.kumare.adapter.spring.vismatime.VismaTimeAdapter;
import io.kumare.lib.base.server.spring.adapter.BaseAdapters; import io.kumare.lib.base.server.spring.adapter.BaseAdapters;
import io.kumare.oauthlib.server.app.adapter.oauth.OauthAdapter; import io.kumare.oauthlib.server.app.adapter.oauth.OauthAdapter;
// app // app
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AppAdapters extends BaseAdapters { public class AppAdapters extends BaseAdapters {
// ::: adapters // ::: adapters
// //
public OauthAdapter getOauth() { public OauthAdapter getOauth() {
return getContext().getBean(OauthAdapter.class); return getContext().getBean(OauthAdapter.class);
} }
public VismaTimeAdapter getVisma() { public VismaTimeAdapter getVisma() {
return getContext().getBean(VismaTimeAdapter.class); return getContext().getBean(VismaTimeAdapter.class);
} }
} }
@@ -1,14 +1,14 @@
/* /*
* *
*/ */
package io.kumare.iqr.app.endpoint; package io.kumare.iqr.app.endpoint;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public enum AppTransports { public enum AppTransports {
http http
} }
@@ -1,28 +1,28 @@
/* /*
* *
*/ */
package io.kumare.iqr.app.endpoint.rest; package io.kumare.iqr.app.endpoint.rest;
// base // base
import io.kumare.lib.app.api.action.ActionManager; import io.kumare.lib.app.api.action.ActionManager;
import io.kumare.lib.base.server.spring.endpoint.rest.BaseEndpointRest; import io.kumare.lib.base.server.spring.endpoint.rest.BaseEndpointRest;
// app // app
import io.kumare.iqr.app.AppContext; import io.kumare.iqr.app.AppContext;
import io.kumare.iqr.app.AppEngine; import io.kumare.iqr.app.AppEngine;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AppEndpointRest extends BaseEndpointRest { public class AppEndpointRest extends BaseEndpointRest {
@Override @Override
protected ActionManager getActionManager() { protected ActionManager getActionManager() {
return AppEngine.getEngine().getActionManager(); return AppEngine.getEngine().getActionManager();
} }
@Override @Override
protected AppContext newContext() { protected AppContext newContext() {
return AppEngine.getEngine().newContext(); return AppEngine.getEngine().newContext();
} }
} }
@@ -1,31 +1,31 @@
/* /*
* *
*/ */
package io.kumare.iqr.app.endpoint.rest; package io.kumare.iqr.app.endpoint.rest;
// openapi // openapi
import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact; import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.info.Info;
// spring // spring
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
@Configuration @Configuration
public class AppOpenAPIConfiguration { public class AppOpenAPIConfiguration {
@Bean @Bean
public OpenAPI customOpenAPI() { public OpenAPI customOpenAPI() {
return new OpenAPI().info( return new OpenAPI().info(
new Info() new Info()
.title("iqr") .title("iqr")
.version("1.0") .version("1.0")
.description("iqr project") .description("iqr project")
.contact(new Contact().name("Catatrepa").email("soporte@catatrepa.com")) .contact(new Contact().name("Catatrepa").email("soporte@catatrepa.com"))
); );
} }
} }
@@ -1,122 +1,122 @@
/* /*
*/ */
package io.kumare.iqr.app.endpoint.rest; package io.kumare.iqr.app.endpoint.rest;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.SecurityFilterChain;
import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource; import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import java.util.Arrays; import java.util.Arrays;
/** /**
* @author aservin * @author aservin
*/ */
@Configuration @Configuration
@EnableWebSecurity @EnableWebSecurity
public class WebSecurityConfig { public class WebSecurityConfig {
// ::: constants // ::: constants
// //
//private final JwtAuthConverter jwtAuthConverter; //private final JwtAuthConverter jwtAuthConverter;
// ::: constructors // ::: constructors
// //
/* /*
public WebSecurityConfig(JwtAuthConverter jwtAuthConverter) { public WebSecurityConfig(JwtAuthConverter jwtAuthConverter) {
this.jwtAuthConverter = jwtAuthConverter; this.jwtAuthConverter = jwtAuthConverter;
}*/ }*/
// ::: beans // ::: beans
// //
@Bean @Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
// REQUESTS // REQUESTS
/*http.authorizeHttpRequests(authorize -> authorize /*http.authorizeHttpRequests(authorize -> authorize
// Permitir acceso al login // Permitir acceso al login
.requestMatchers(HttpMethod.POST, "/account/accounts/login/**").permitAll() .requestMatchers(HttpMethod.POST, "/account/accounts/login/**").permitAll()
// Agrupar rutas con las mismas reglas de autorización // Agrupar rutas con las mismas reglas de autorización
.requestMatchers( .requestMatchers(
"/account/**", "/account/**",
"/actor/**", "/actor/**",
"/attachment/**", "/attachment/**",
"/bpmflow/**", "/bpmflow/**",
"/authority/**", "/authority/**",
"/bpmwork/**", "/bpmwork/**",
"/currency/**", "/currency/**",
"/instrument/**", "/instrument/**",
"/issue/**", "/issue/**",
"/management/**", "/management/**",
"/sale/**", "/sale/**",
"/title/**", "/title/**",
"/workcase/**", "/workcase/**",
"/workgroup/**", "/workgroup/**",
"/workflow/**" "/workflow/**"
).hasAnyRole("ADMIN", "MOD") ).hasAnyRole("ADMIN", "MOD")
// Permitir todas las rutas bajo "/procesos/" para todos los métodos // Permitir todas las rutas bajo "/procesos/" para todos los métodos
.requestMatchers("/procesos/**", .requestMatchers("/procesos/**",
"/location/**").permitAll() "/location/**").permitAll()
// Permitir acceso a Swagger y documentación API // Permitir acceso a Swagger y documentación API
.requestMatchers(HttpMethod.GET, .requestMatchers(HttpMethod.GET,
"/swagger-workflow-server.html", "/swagger-workflow-server.html",
"/swagger-ui/**", "/swagger-ui/**",
"/swagger-ui.html", "/swagger-ui.html",
"/v3/api-docs/**").permitAll() "/v3/api-docs/**").permitAll()
// Requiere autenticación para el resto de las rutas // Requiere autenticación para el resto de las rutas
.anyRequest().authenticated());*/ .anyRequest().authenticated());*/
//http //http
// .authorizeHttpRequests(authorize -> authorize.anyRequest().permitAll()); // .authorizeHttpRequests(authorize -> authorize.anyRequest().permitAll());
/* /*
// OAUTH JWT CONFIGURATION // OAUTH JWT CONFIGURATION
http.oauth2ResourceServer(oauth2ResourceServer http.oauth2ResourceServer(oauth2ResourceServer
-> oauth2ResourceServer.jwt(jwt -> oauth2ResourceServer.jwt(jwt
-> jwt.jwtAuthenticationConverter(jwtAuthConverter)));*/ -> jwt.jwtAuthenticationConverter(jwtAuthConverter)));*/
// CORS CONFIGURATION // CORS CONFIGURATION
var source = new UrlBasedCorsConfigurationSource(); var source = new UrlBasedCorsConfigurationSource();
var corsConfig = new CorsConfiguration(); var corsConfig = new CorsConfiguration();
corsConfig.setAllowCredentials(true); corsConfig.setAllowCredentials(true);
corsConfig.addAllowedOriginPattern("*"); // Permitir cualquier origen corsConfig.addAllowedOriginPattern("*"); // Permitir cualquier origen
corsConfig.addAllowedHeader("*"); corsConfig.addAllowedHeader("*");
corsConfig.setAllowedMethods(Arrays.asList("OPTIONS", "HEAD", "GET", "PUT", "POST", "DELETE", "PATCH")); corsConfig.setAllowedMethods(Arrays.asList("OPTIONS", "HEAD", "GET", "PUT", "POST", "DELETE", "PATCH"));
source.registerCorsConfiguration("/**", corsConfig); source.registerCorsConfiguration("/**", corsConfig);
http.csrf(csrf -> csrf.disable()).cors(cors -> cors.configurationSource(source)); http.csrf(csrf -> csrf.disable()).cors(cors -> cors.configurationSource(source));
// SESSION MANAGEMENT // SESSION MANAGEMENT
/* /*
http.sessionManagement(sessionManagement http.sessionManagement(sessionManagement
-> sessionManagement.sessionCreationPolicy(SessionCreationPolicy.STATELESS));*/ -> sessionManagement.sessionCreationPolicy(SessionCreationPolicy.STATELESS));*/
// FINAL CONFIGURATION // FINAL CONFIGURATION
return http.getOrBuild(); return http.getOrBuild();
} }
/* /*
//para prueba //para prueba
@Bean @Bean
public CorsFilter corsFilter() { public CorsFilter corsFilter() {
final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
final CorsConfiguration config = new CorsConfiguration(); final CorsConfiguration config = new CorsConfiguration();
//config.setAllowCredentials(true); //config.setAllowCredentials(true);
config.setAllowCredentials(false); config.setAllowCredentials(false);
config.addAllowedOrigin("*"); config.addAllowedOrigin("*");
config.addAllowedHeader("*"); config.addAllowedHeader("*");
config.addAllowedMethod("OPTIONS"); config.addAllowedMethod("OPTIONS");
config.addAllowedMethod("HEAD"); config.addAllowedMethod("HEAD");
config.addAllowedMethod("GET"); config.addAllowedMethod("GET");
config.addAllowedMethod("PUT"); config.addAllowedMethod("PUT");
config.addAllowedMethod("POST"); config.addAllowedMethod("POST");
config.addAllowedMethod("DELETE"); config.addAllowedMethod("DELETE");
config.addAllowedMethod("PATCH"); config.addAllowedMethod("PATCH");
source.registerCorsConfiguration("/**", config); source.registerCorsConfiguration("/**", config);
return new CorsFilter(source); return new CorsFilter(source);
}*/ }*/
} }
@@ -1,16 +1,16 @@
/* /*
* *
*/ */
package io.kumare.iqr.app.module; package io.kumare.iqr.app.module;
// base // base
import io.kumare.lib.base.server.spring.module.BaseModuleController; import io.kumare.lib.base.server.spring.module.BaseModuleController;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public abstract class AppModuleController extends BaseModuleController { public abstract class AppModuleController extends BaseModuleController {
} }
@@ -1,67 +1,67 @@
/* /*
* *
*/ */
package io.kumare.iqr.app.module; package io.kumare.iqr.app.module;
// base // base
import io.kumare.lib.base.server.spring.module.BaseModules; import io.kumare.lib.base.server.spring.module.BaseModules;
// app // app
import io.kumare.iqr.mod.authentication.AuthenticationModule; import io.kumare.iqr.mod.authentication.AuthenticationModule;
import io.kumare.iqr.mod.taxonomy.TaxonomyModule; import io.kumare.iqr.mod.taxonomy.TaxonomyModule;
import io.kumare.iqr.mod.pocket.PocketModule; import io.kumare.iqr.mod.pocket.PocketModule;
import io.kumare.iqr.mod.biz.BizModule; import io.kumare.iqr.mod.biz.BizModule;
import io.kumare.iqr.mod.clientele.ClienteleModule; import io.kumare.iqr.mod.clientele.ClienteleModule;
import io.kumare.iqr.mod.loyalty.LoyaltyModule; import io.kumare.iqr.mod.loyalty.LoyaltyModule;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AppModules extends BaseModules { public class AppModules extends BaseModules {
// ::: constants // ::: constants
// //
public static final AuthenticationModule authentication = new AuthenticationModule(); public static final AuthenticationModule authentication = new AuthenticationModule();
public static final TaxonomyModule taxonomy = new TaxonomyModule(); public static final TaxonomyModule taxonomy = new TaxonomyModule();
public static final PocketModule pocket = new PocketModule(); public static final PocketModule pocket = new PocketModule();
public static final BizModule biz = new BizModule(); public static final BizModule biz = new BizModule();
public static final ClienteleModule clientele = new ClienteleModule(); public static final ClienteleModule clientele = new ClienteleModule();
public static final LoyaltyModule loyalty = new LoyaltyModule(); public static final LoyaltyModule loyalty = new LoyaltyModule();
// ::: modules // ::: modules
// //
public AuthenticationModule getAuthentication() { public AuthenticationModule getAuthentication() {
return authentication; return authentication;
} }
public TaxonomyModule getTaxonomy() { public TaxonomyModule getTaxonomy() {
return taxonomy; return taxonomy;
} }
public PocketModule getPocket() { public PocketModule getPocket() {
return pocket; return pocket;
} }
public BizModule getBiz() { public BizModule getBiz() {
return biz; return biz;
} }
public ClienteleModule getClientele() { public ClienteleModule getClientele() {
return clientele; return clientele;
} }
public LoyaltyModule getLoyalty() { public LoyaltyModule getLoyalty() {
return loyalty; return loyalty;
} }
// ::: init // ::: init
// //
public void init() { public void init() {
add(authentication); add(authentication);
add(taxonomy); add(taxonomy);
add(pocket); add(pocket);
add(biz); add(biz);
add(clientele); add(clientele);
add(loyalty); add(loyalty);
} }
} }
@@ -1,16 +1,16 @@
/* /*
* *
*/ */
package io.kumare.iqr.app.security; package io.kumare.iqr.app.security;
// base // base
import io.kumare.lib.base.server.spring.security.BasePermissionManager; import io.kumare.lib.base.server.spring.security.BasePermissionManager;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AppPermissionManager extends BasePermissionManager { public class AppPermissionManager extends BasePermissionManager {
} }
@@ -1,23 +1,23 @@
/* /*
* *
*/ */
package io.kumare.iqr.app.security; package io.kumare.iqr.app.security;
// base // base
import io.kumare.lib.base.server.spring.security.BaseSecurityContext; import io.kumare.lib.base.server.spring.security.BaseSecurityContext;
// app // app
import io.kumare.iqr.app.AppContext; import io.kumare.iqr.app.AppContext;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AppSecurityContext extends BaseSecurityContext { public class AppSecurityContext extends BaseSecurityContext {
// ::: constructor // ::: constructor
// //
public AppSecurityContext(AppContext context) { public AppSecurityContext(AppContext context) {
super(context); super(context);
} }
} }
@@ -1,57 +1,57 @@
/* /*
* *
*/ */
package io.kumare.iqr.app.security; package io.kumare.iqr.app.security;
// java // java
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public enum AppSecurityScopes { public enum AppSecurityScopes {
system(false), system(false),
service(false), service(false),
module(false), module(false),
reference(true), reference(true),
component(true); component(true);
// ::: api // ::: api
// //
private final boolean idRequired; private final boolean idRequired;
AppSecurityScopes(boolean idRequired) { AppSecurityScopes(boolean idRequired) {
this.idRequired = idRequired; this.idRequired = idRequired;
} }
public boolean isIdRequired() { public boolean isIdRequired() {
return idRequired; return idRequired;
} }
public int level() { public int level() {
return ordinal() + 1; return ordinal() + 1;
} }
// ::: static // ::: static
// //
public static List<String> scopes(String referenceId, String componentId) { public static List<String> scopes(String referenceId, String componentId) {
var list = new LinkedList<String>(); var list = new LinkedList<String>();
list.add(system.name()); list.add(system.name());
list.add(service.name()); list.add(service.name());
list.add(module.name()); list.add(module.name());
if (referenceId != null) { if (referenceId != null) {
list.add(reference.name() + "-" + referenceId); list.add(reference.name() + "-" + referenceId);
} }
if (componentId != null) { if (componentId != null) {
list.add(component.name() + "-" + componentId); list.add(component.name() + "-" + componentId);
} }
return list; return list;
} }
} }
@@ -1,29 +1,29 @@
/* /*
* *
*/ */
package io.kumare.iqr.app.store; package io.kumare.iqr.app.store;
// java // java
import jakarta.persistence.MappedSuperclass; import jakarta.persistence.MappedSuperclass;
// base // base
import io.kumare.lib.base.server.spring.store.jpa.DefaultJpaEntity; import io.kumare.lib.base.server.spring.store.jpa.DefaultJpaEntity;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
@MappedSuperclass @MappedSuperclass
public class AppEntity extends DefaultJpaEntity { public class AppEntity extends DefaultJpaEntity {
// ::: constructors // ::: constructors
// //
public AppEntity() { public AppEntity() {
super(); super();
} }
public AppEntity(String id) { public AppEntity(String id) {
super(id); super(id);
} }
} }
@@ -1,21 +1,21 @@
/* /*
* *
*/ */
package io.kumare.iqr.app.store; package io.kumare.iqr.app.store;
// spring // spring
import org.springframework.data.repository.NoRepositoryBean; import org.springframework.data.repository.NoRepositoryBean;
// base // base
import io.kumare.lib.app.api.store.Entity; import io.kumare.lib.app.api.store.Entity;
import io.kumare.lib.base.server.spring.store.jpa.BaseJpaEntityRepository; import io.kumare.lib.base.server.spring.store.jpa.BaseJpaEntityRepository;
/** /**
* *
* @author afatecha * @author afatecha
* @param <E> * @param <E>
*/ */
@NoRepositoryBean @NoRepositoryBean
public interface AppEntityRepository<E extends Entity> extends BaseJpaEntityRepository<String, E> { public interface AppEntityRepository<E extends Entity> extends BaseJpaEntityRepository<String, E> {
} }
@@ -1,29 +1,29 @@
/* /*
* *
*/ */
package io.kumare.iqr.app.store; package io.kumare.iqr.app.store;
// base // base
import io.kumare.lib.app.api.store.Entity; import io.kumare.lib.app.api.store.Entity;
import io.kumare.lib.base.server.spring.BaseContext; import io.kumare.lib.base.server.spring.BaseContext;
import io.kumare.lib.base.server.spring.store.jpa.BaseJpaEntityStore; import io.kumare.lib.base.server.spring.store.jpa.BaseJpaEntityStore;
// app // app
import io.kumare.iqr.app.util.AppUtil; import io.kumare.iqr.app.util.AppUtil;
/** /**
* *
* @author afatecha * @author afatecha
* @param <E> * @param <E>
*/ */
public abstract class AppEntityStore<E extends Entity> extends BaseJpaEntityStore<BaseContext, String, E> { public abstract class AppEntityStore<E extends Entity> extends BaseJpaEntityStore<BaseContext, String, E> {
// ::: api // ::: api
// //
@Override @Override
protected String makeEntityId(E model) { protected String makeEntityId(E model) {
return model.getId() == null ? AppUtil.randomId() : model.getId().toString(); return model.getId() == null ? AppUtil.randomId() : model.getId().toString();
} }
} }
@@ -1,30 +1,30 @@
/* /*
* *
*/ */
package io.kumare.iqr.app.store; package io.kumare.iqr.app.store;
// java // java
import java.io.Serializable; import java.io.Serializable;
import jakarta.persistence.MappedSuperclass; import jakarta.persistence.MappedSuperclass;
// base // base
import io.kumare.lib.base.server.spring.store.jpa.DefaultExtendedJpaEntity; import io.kumare.lib.base.server.spring.store.jpa.DefaultExtendedJpaEntity;
/** /**
* *
* @author afatecha * @author afatecha
* @param <D> * @param <D>
*/ */
@MappedSuperclass @MappedSuperclass
public class AppExtendedEntity<D extends Serializable> extends DefaultExtendedJpaEntity<D> { public class AppExtendedEntity<D extends Serializable> extends DefaultExtendedJpaEntity<D> {
// ::: constructors // ::: constructors
// //
public AppExtendedEntity() { public AppExtendedEntity() {
super(); super();
} }
public AppExtendedEntity(String id) { public AppExtendedEntity(String id) {
super(id); super(id);
} }
} }
@@ -1,15 +1,15 @@
/* /*
* *
*/ */
package io.kumare.iqr.app.store; package io.kumare.iqr.app.store;
// java // java
import java.io.Serializable; import java.io.Serializable;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AppExtendedEntityData implements Serializable { public class AppExtendedEntityData implements Serializable {
} }
@@ -1,26 +1,26 @@
/* /*
* *
*/ */
package io.kumare.iqr.app.store; package io.kumare.iqr.app.store;
// jackson // jackson
import com.fasterxml.jackson.datatype.hibernate6.Hibernate6Module; import com.fasterxml.jackson.datatype.hibernate6.Hibernate6Module;
// spring // spring
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
/** /**
* *
*/ */
@Configuration @Configuration
public class AppJacksonConfiguration { public class AppJacksonConfiguration {
@Bean @Bean
public Hibernate6Module hibernate6Module() { public Hibernate6Module hibernate6Module() {
Hibernate6Module module = new Hibernate6Module(); Hibernate6Module module = new Hibernate6Module();
module.enable(Hibernate6Module.Feature.SERIALIZE_IDENTIFIER_FOR_LAZY_NOT_LOADED_OBJECTS); module.enable(Hibernate6Module.Feature.SERIALIZE_IDENTIFIER_FOR_LAZY_NOT_LOADED_OBJECTS);
return module; return module;
} }
} }
@@ -1,21 +1,21 @@
/* /*
* *
*/ */
package io.kumare.iqr.app.store; package io.kumare.iqr.app.store;
// spring // spring
import org.springframework.data.repository.NoRepositoryBean; import org.springframework.data.repository.NoRepositoryBean;
// base // base
import io.kumare.lib.app.api.store.Entity; import io.kumare.lib.app.api.store.Entity;
import io.kumare.lib.base.server.spring.store.jpa.BaseJpaKeyEntityRepository; import io.kumare.lib.base.server.spring.store.jpa.BaseJpaKeyEntityRepository;
/** /**
* *
* @author afatecha * @author afatecha
* @param <E> * @param <E>
*/ */
@NoRepositoryBean @NoRepositoryBean
public interface AppKeyEntityRepository<E extends Entity> extends BaseJpaKeyEntityRepository<String, E>{ public interface AppKeyEntityRepository<E extends Entity> extends BaseJpaKeyEntityRepository<String, E>{
} }
@@ -1,29 +1,29 @@
/* /*
* *
*/ */
package io.kumare.iqr.app.store; package io.kumare.iqr.app.store;
// base // base
import io.kumare.lib.app.api.store.Entity; import io.kumare.lib.app.api.store.Entity;
import io.kumare.lib.app.api.Context; import io.kumare.lib.app.api.Context;
import io.kumare.lib.base.server.spring.store.jpa.BaseJpaKeyEntityStore; import io.kumare.lib.base.server.spring.store.jpa.BaseJpaKeyEntityStore;
// app // app
import io.kumare.iqr.app.util.AppUtil; import io.kumare.iqr.app.util.AppUtil;
/** /**
* *
* @author afatecha * @author afatecha
* @param <E> * @param <E>
*/ */
public abstract class AppKeyEntityStore<E extends Entity> extends BaseJpaKeyEntityStore<Context, String, E> { public abstract class AppKeyEntityStore<E extends Entity> extends BaseJpaKeyEntityStore<Context, String, E> {
// ::: api // ::: api
// //
@Override @Override
protected String makeEntityId(E model) { protected String makeEntityId(E model) {
return model.getId() == null ? AppUtil.randomId() : model.getId().toString(); return model.getId() == null ? AppUtil.randomId() : model.getId().toString();
} }
} }
@@ -1,18 +1,18 @@
/* /*
* *
*/ */
package io.kumare.iqr.app.util; package io.kumare.iqr.app.util;
import java.util.UUID; import java.util.UUID;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AppUtil { public class AppUtil {
public static String randomId() { public static String randomId() {
return UUID.randomUUID().toString(); return UUID.randomUUID().toString();
} }
} }
@@ -1,20 +1,20 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication; package io.kumare.iqr.mod.authentication;
// base // base
import io.kumare.iqr.app.AppConstants; import io.kumare.iqr.app.AppConstants;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AuthenticationConstants { public class AuthenticationConstants {
// ::: codes // ::: codes
// //
public static final int CODE = AppConstants.AUTHENTICATION_CODE; public static final int CODE = AppConstants.AUTHENTICATION_CODE;
public static final String NAME = "authentication"; public static final String NAME = "authentication";
} }
@@ -1,57 +1,57 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication; package io.kumare.iqr.mod.authentication;
// java // java
import io.kumare.iqr.mod.authentication.store.AuthenticationEntities; import io.kumare.iqr.mod.authentication.store.AuthenticationEntities;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
// base // base
import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor;
// app // app
import io.kumare.iqr.app.module.AppModuleController; import io.kumare.iqr.app.module.AppModuleController;
// module // module
import io.kumare.iqr.mod.authentication.store.authuser.AuthUserStore; import io.kumare.iqr.mod.authentication.store.authuser.AuthUserStore;
import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationStore; import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationStore;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AuthenticationController extends AppModuleController { public class AuthenticationController extends AppModuleController {
// ::: api // ::: api
// //
@Override @Override
public boolean hasStore(String name) { public boolean hasStore(String name) {
return AuthenticationEntities.hasDescriptor(name); return AuthenticationEntities.hasDescriptor(name);
} }
@Override @Override
public EntityDescriptor getEntityDescriptor(Class entityClass) { public EntityDescriptor getEntityDescriptor(Class entityClass) {
return AuthenticationEntities.descriptorOf(entityClass); return AuthenticationEntities.descriptorOf(entityClass);
} }
@Override @Override
public EntityDescriptor getEntityDescriptor(String name) { public EntityDescriptor getEntityDescriptor(String name) {
return AuthenticationEntities.descriptorOf(name); return AuthenticationEntities.descriptorOf(name);
} }
@Override @Override
public List<EntityDescriptor> getEntityDescriptors() { public List<EntityDescriptor> getEntityDescriptors() {
return Arrays.asList(AuthenticationEntities.values()); return Arrays.asList(AuthenticationEntities.values());
} }
// ::: stores // ::: stores
// //
public AuthUserStore getAuthUserStore() { public AuthUserStore getAuthUserStore() {
return getService(AuthUserStore.class); return getService(AuthUserStore.class);
} }
public AuthUserRelationStore getAuthUserRelationStore() { public AuthUserRelationStore getAuthUserRelationStore() {
return getService(AuthUserRelationStore.class); return getService(AuthUserRelationStore.class);
} }
} }
@@ -1,94 +1,94 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication; package io.kumare.iqr.mod.authentication;
// java // java
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
// lib // lib
import io.kumare.lib.transport.TransportCode; import io.kumare.lib.transport.TransportCode;
import static io.kumare.lib.transport.Transports.code; import static io.kumare.lib.transport.Transports.code;
import io.kumare.lib.v.ExceptionPrototype; import io.kumare.lib.v.ExceptionPrototype;
// app // app
import io.kumare.iqr.app.AppException; import io.kumare.iqr.app.AppException;
import io.kumare.iqr.app.endpoint.AppTransports; import io.kumare.iqr.app.endpoint.AppTransports;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public enum AuthenticationErrors implements ExceptionPrototype { public enum AuthenticationErrors implements ExceptionPrototype {
// auth user // auth user
authuser_notfound(1, code(AppTransports.http, 400)), authuser_notfound(1, code(AppTransports.http, 400)),
authuser_data_notfound(1, code(AppTransports.http, 400)), authuser_data_notfound(1, code(AppTransports.http, 400)),
authuser_preload_empty(1, code(AppTransports.http, 400)), authuser_preload_empty(1, code(AppTransports.http, 400)),
authuser_externalid_empty(1, code(AppTransports.http, 400)), authuser_externalid_empty(1, code(AppTransports.http, 400)),
authuser_entitykey_empty(1, code(AppTransports.http, 400)), authuser_entitykey_empty(1, code(AppTransports.http, 400)),
authuser_custom_empty(1, code(AppTransports.http, 400)), authuser_custom_empty(1, code(AppTransports.http, 400)),
authuser_visible_empty(1, code(AppTransports.http, 400)), authuser_visible_empty(1, code(AppTransports.http, 400)),
authuser_email_empty(1, code(AppTransports.http, 400)), authuser_email_empty(1, code(AppTransports.http, 400)),
authuser_emailconfirmed_empty(1, code(AppTransports.http, 400)), authuser_emailconfirmed_empty(1, code(AppTransports.http, 400)),
authuser_phone_empty(1, code(AppTransports.http, 400)), authuser_phone_empty(1, code(AppTransports.http, 400)),
authuser_phoneconfirmed_empty(1, code(AppTransports.http, 400)), authuser_phoneconfirmed_empty(1, code(AppTransports.http, 400)),
authuser_name_empty(1, code(AppTransports.http, 400)), authuser_name_empty(1, code(AppTransports.http, 400)),
// auth user relation // auth user relation
authuserrelation_notfound(1, code(AppTransports.http, 400)), authuserrelation_notfound(1, code(AppTransports.http, 400)),
authuserrelation_data_notfound(1, code(AppTransports.http, 400)), authuserrelation_data_notfound(1, code(AppTransports.http, 400)),
authuserrelation_preload_empty(1, code(AppTransports.http, 400)), authuserrelation_preload_empty(1, code(AppTransports.http, 400)),
authuserrelation_externalid_empty(1, code(AppTransports.http, 400)), authuserrelation_externalid_empty(1, code(AppTransports.http, 400)),
authuserrelation_userkey_empty(1, code(AppTransports.http, 400)), authuserrelation_userkey_empty(1, code(AppTransports.http, 400)),
authuserrelation_typevalue_empty(1, code(AppTransports.http, 400)), authuserrelation_typevalue_empty(1, code(AppTransports.http, 400)),
authuserrelation_resourcetype_empty(1, code(AppTransports.http, 400)), authuserrelation_resourcetype_empty(1, code(AppTransports.http, 400)),
authuserrelation_resourcekey_empty(1, code(AppTransports.http, 400)), authuserrelation_resourcekey_empty(1, code(AppTransports.http, 400)),
authuserrelation_resourceid_empty(1, code(AppTransports.http, 400)), authuserrelation_resourceid_empty(1, code(AppTransports.http, 400)),
authuserrelation_authuser_notfound(1, code(AppTransports.http, 400)); authuserrelation_authuser_notfound(1, code(AppTransports.http, 400));
// ::: vars // ::: vars
// //
private final Map transportCodes = new HashMap(); private final Map transportCodes = new HashMap();
private final int code; private final int code;
// ::: constructors // ::: constructors
// //
private AuthenticationErrors(int code, TransportCode... codes) { private AuthenticationErrors(int code, TransportCode... codes) {
this.code = code; this.code = code;
if (codes != null) { if (codes != null) {
for (var i : codes) { for (var i : codes) {
if (i != null) { if (i != null) {
transportCodes.put(i.getId(), i.getCode()); transportCodes.put(i.getId(), i.getCode());
} }
} }
} }
} }
// ::: prototype api // ::: prototype api
// //
@Override @Override
public int getCode() { public int getCode() {
return code; return code;
} }
@Override @Override
public String getName() { public String getName() {
return name(); return name();
} }
@Override @Override
public Map getTransportCodes() { public Map getTransportCodes() {
return transportCodes; return transportCodes;
} }
@Override @Override
public RuntimeException newInstance(String msg, Throwable cause, Map extra) { public RuntimeException newInstance(String msg, Throwable cause, Map extra) {
var ex = new AppException(this, msg, cause); var ex = new AppException(this, msg, cause);
ex.setExtra(extra); ex.setExtra(extra);
return ex; return ex;
} }
} }
@@ -1,37 +1,37 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication; package io.kumare.iqr.mod.authentication;
// java // java
import io.kumare.lib.base.server.spring.module.BaseModule; import io.kumare.lib.base.server.spring.module.BaseModule;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AuthenticationModule extends BaseModule { public class AuthenticationModule extends BaseModule {
// ::: // :::
// //
public static final AuthenticationController controller = new AuthenticationController(); public static final AuthenticationController controller = new AuthenticationController();
// ::: api // ::: api
// //
@Override @Override
public int getId() { public int getId() {
return AuthenticationConstants.CODE; return AuthenticationConstants.CODE;
} }
@Override @Override
public String getName() { public String getName() {
return AuthenticationConstants.NAME; return AuthenticationConstants.NAME;
} }
@Override @Override
public AuthenticationController getController() { public AuthenticationController getController() {
return controller; return controller;
} }
} }
@@ -1,84 +1,84 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication; package io.kumare.iqr.mod.authentication;
// base // base
import io.kumare.iqr.mod.authentication.store.AuthenticationEntities; import io.kumare.iqr.mod.authentication.store.AuthenticationEntities;
import io.kumare.lib.app.api.security.PermissionReference; import io.kumare.lib.app.api.security.PermissionReference;
// app // app
import io.kumare.iqr.app.AppErrors; import io.kumare.iqr.app.AppErrors;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public enum AuthenticationPermissions { public enum AuthenticationPermissions {
// auth user // auth user
//auth_user_add(AuthenticationEntities.authUser), //auth_user_add(AuthenticationEntities.authUser),
//auth_user_edit(AuthenticationEntities.authUser), //auth_user_edit(AuthenticationEntities.authUser),
//auth_user_find(AuthenticationEntities.authUser), //auth_user_find(AuthenticationEntities.authUser),
//auth_user_enable(AuthenticationEntities.authUser), //auth_user_enable(AuthenticationEntities.authUser),
//auth_user_disable(AuthenticationEntities.authUser), //auth_user_disable(AuthenticationEntities.authUser),
//auth_user_list(AuthenticationEntities.authUser), //auth_user_list(AuthenticationEntities.authUser),
//auth_user_delete(AuthenticationEntities.authUser), //auth_user_delete(AuthenticationEntities.authUser),
//auth_user_preload(AuthenticationEntities.authUser), //auth_user_preload(AuthenticationEntities.authUser),
// //
auth_user_viewer(AuthenticationEntities.authUser), auth_user_viewer(AuthenticationEntities.authUser),
//auth_user_guest(AuthenticationEntities.authUser), //auth_user_guest(AuthenticationEntities.authUser),
//auth_user_collab(AuthenticationEntities.authUser), //auth_user_collab(AuthenticationEntities.authUser),
auth_user_worker(AuthenticationEntities.authUser), auth_user_worker(AuthenticationEntities.authUser),
//auth_user_control(AuthenticationEntities.authUser), //auth_user_control(AuthenticationEntities.authUser),
auth_user_manager(AuthenticationEntities.authUser), auth_user_manager(AuthenticationEntities.authUser),
auth_user_admin(null), auth_user_admin(null),
auth_user_system(null), auth_user_system(null),
// auth user relation // auth user relation
//auth_user_relation_add(AuthenticationEntities.authUserRelation), //auth_user_relation_add(AuthenticationEntities.authUserRelation),
//auth_user_relation_edit(AuthenticationEntities.authUserRelation), //auth_user_relation_edit(AuthenticationEntities.authUserRelation),
//auth_user_relation_find(AuthenticationEntities.authUserRelation), //auth_user_relation_find(AuthenticationEntities.authUserRelation),
//auth_user_relation_enable(AuthenticationEntities.authUserRelation), //auth_user_relation_enable(AuthenticationEntities.authUserRelation),
//auth_user_relation_disable(AuthenticationEntities.authUserRelation), //auth_user_relation_disable(AuthenticationEntities.authUserRelation),
//auth_user_relation_list(AuthenticationEntities.authUserRelation), //auth_user_relation_list(AuthenticationEntities.authUserRelation),
//auth_user_relation_delete(AuthenticationEntities.authUserRelation), //auth_user_relation_delete(AuthenticationEntities.authUserRelation),
//auth_user_relation_preload(AuthenticationEntities.authUserRelation), //auth_user_relation_preload(AuthenticationEntities.authUserRelation),
// //
auth_user_relation_viewer(AuthenticationEntities.authUserRelation), auth_user_relation_viewer(AuthenticationEntities.authUserRelation),
//auth_user_relation_guest(AuthenticationEntities.authUserRelation), //auth_user_relation_guest(AuthenticationEntities.authUserRelation),
//auth_user_relation_collab(AuthenticationEntities.authUserRelation), //auth_user_relation_collab(AuthenticationEntities.authUserRelation),
auth_user_relation_worker(AuthenticationEntities.authUserRelation), auth_user_relation_worker(AuthenticationEntities.authUserRelation),
//auth_user_relation_control(AuthenticationEntities.authUserRelation), //auth_user_relation_control(AuthenticationEntities.authUserRelation),
auth_user_relation_manager(AuthenticationEntities.authUserRelation), auth_user_relation_manager(AuthenticationEntities.authUserRelation),
auth_user_relation_admin(null), auth_user_relation_admin(null),
auth_user_relation_system(null); auth_user_relation_system(null);
// ::: // :::
// //
private final AuthenticationEntities resourceType; private final AuthenticationEntities resourceType;
AuthenticationPermissions(AuthenticationEntities entityRef) { AuthenticationPermissions(AuthenticationEntities entityRef) {
this.resourceType = entityRef; this.resourceType = entityRef;
} }
// //
public PermissionReference toReference() { public PermissionReference toReference() {
return toReference(null); return toReference(null);
} }
public PermissionReference toReference(String resourceKey) { public PermissionReference toReference(String resourceKey) {
var ref = new PermissionReference() var ref = new PermissionReference()
.module(AuthenticationConstants.NAME) .module(AuthenticationConstants.NAME)
.permission(name()) .permission(name())
.error(AppErrors.action_unauthorized); .error(AppErrors.action_unauthorized);
if (resourceType != null && resourceKey != null) { if (resourceType != null && resourceKey != null) {
ref.resourceType(resourceType.name()) ref.resourceType(resourceType.name())
.resourceKey(resourceKey); .resourceKey(resourceKey);
} }
return ref; return ref;
} }
} }
@@ -1,29 +1,29 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.action.authuser; package io.kumare.iqr.mod.authentication.action.authuser;
// base // base
import io.kumare.iqr.app.action.AppEntityActionArgument; import io.kumare.iqr.app.action.AppEntityActionArgument;
// entity // entity
import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AuthUserActionArgument extends AppEntityActionArgument<AuthUserEntity> { public class AuthUserActionArgument extends AppEntityActionArgument<AuthUserEntity> {
// ::: constructors // ::: constructors
// //
public AuthUserActionArgument() { public AuthUserActionArgument() {
} }
public AuthUserActionArgument(AuthUserEntity entity) { public AuthUserActionArgument(AuthUserEntity entity) {
super(entity); super(entity);
} }
// ::: api // ::: api
// //
} }
@@ -1,169 +1,169 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.action.authuser; package io.kumare.iqr.mod.authentication.action.authuser;
// java // java
import java.util.List; import java.util.List;
// lib // lib
import io.kumare.lib.base.server.spring.action.Actions; import io.kumare.lib.base.server.spring.action.Actions;
import io.kumare.lib.v.V; import io.kumare.lib.v.V;
// base // base
import io.kumare.iqr.app.AppErrors; import io.kumare.iqr.app.AppErrors;
import io.kumare.iqr.app.action.AppAction; import io.kumare.iqr.app.action.AppAction;
import io.kumare.iqr.app.action.AppEntityActionResult; import io.kumare.iqr.app.action.AppEntityActionResult;
import io.kumare.iqr.app.module.AppModules; import io.kumare.iqr.app.module.AppModules;
// module // module
import io.kumare.iqr.mod.authentication.AuthenticationErrors; import io.kumare.iqr.mod.authentication.AuthenticationErrors;
// entity // entity
import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; 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.AuthUserRelationAddAction;
import io.kumare.iqr.mod.authentication.action.authuserrelation.AuthUserRelationAddArgument; import io.kumare.iqr.mod.authentication.action.authuserrelation.AuthUserRelationAddArgument;
import io.kumare.oauthlib.server.app.adapter.oauth.OauthAdapter; import io.kumare.oauthlib.server.app.adapter.oauth.OauthAdapter;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import org.keycloak.admin.client.CreatedResponseUtil; import org.keycloak.admin.client.CreatedResponseUtil;
import org.keycloak.representations.idm.CredentialRepresentation; import org.keycloak.representations.idm.CredentialRepresentation;
import org.keycloak.representations.idm.UserRepresentation; import org.keycloak.representations.idm.UserRepresentation;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AuthUserAddAction extends AppAction<AuthUserAddArgument, AppEntityActionResult<AuthUserEntity>> { public class AuthUserAddAction extends AppAction<AuthUserAddArgument, AppEntityActionResult<AuthUserEntity>> {
// ::: vars // ::: vars
// //
private AuthUserEntity entity; private AuthUserEntity entity;
private UserRepresentation user; private UserRepresentation user;
private OauthAdapter oauth; private OauthAdapter oauth;
// ::: protected api // ::: protected api
// //
@Override @Override
protected void checkArgument() { protected void checkArgument() {
V.ifNull(getArgument(), AppErrors.action_arg_notfound); V.ifNull(getArgument(), AppErrors.action_arg_notfound);
// entity // entity
var model = getArgument().getEntity(); var model = getArgument().getEntity();
V.ifNull(model, AuthenticationErrors.authuser_notfound); V.ifNull(model, AuthenticationErrors.authuser_notfound);
// relations // relations
// fields // fields
//V.ifEmpty(model.getExternalId(), AuthenticationErrors.authuser_externalid_empty); //V.ifEmpty(model.getExternalId(), AuthenticationErrors.authuser_externalid_empty);
//V.ifEmpty(model.getEntityKey(), AuthenticationErrors.authuser_entitykey_empty); //V.ifEmpty(model.getEntityKey(), AuthenticationErrors.authuser_entitykey_empty);
//V.ifEmpty(model.isCustom(), AuthenticationErrors.authuser_custom_empty); //V.ifEmpty(model.isCustom(), AuthenticationErrors.authuser_custom_empty);
//V.ifEmpty(model.isVisible(), AuthenticationErrors.authuser_visible_empty); //V.ifEmpty(model.isVisible(), AuthenticationErrors.authuser_visible_empty);
V.ifEmpty(model.getEmail(), AuthenticationErrors.authuser_email_empty); V.ifEmpty(model.getEmail(), AuthenticationErrors.authuser_email_empty);
//V.ifEmpty(model.isEmailConfirmed(), AuthenticationErrors.authuser_emailconfirmed_empty); //V.ifEmpty(model.isEmailConfirmed(), AuthenticationErrors.authuser_emailconfirmed_empty);
//V.ifEmpty(model.getPhone(), AuthenticationErrors.authuser_phone_empty); //V.ifEmpty(model.getPhone(), AuthenticationErrors.authuser_phone_empty);
//V.ifEmpty(model.isPhoneConfirmed(), AuthenticationErrors.authuser_phoneconfirmed_empty); //V.ifEmpty(model.isPhoneConfirmed(), AuthenticationErrors.authuser_phoneconfirmed_empty);
V.ifEmpty(model.getName(), AuthenticationErrors.authuser_name_empty); V.ifEmpty(model.getName(), AuthenticationErrors.authuser_name_empty);
} }
@Override @Override
protected void doAction() { protected void doAction() {
// adapters // adapters
//oauth = getContext().getAdapters().getOauth(); //oauth = getContext().getAdapters().getOauth();
// controllers // controllers
//createKeycloakUser(); //createKeycloakUser();
// model // model
var model = makeModel(); var model = makeModel();
// add // add
entity = saveEntity(model); entity = saveEntity(model);
// add others // add others
addRelations(getArgument().getRelations()); addRelations(getArgument().getRelations());
// dispatchEvents // dispatchEvents
} }
@Override @Override
protected void setResultOnly() { protected void setResultOnly() {
var result = new AppEntityActionResult<AuthUserEntity>(); var result = new AppEntityActionResult<AuthUserEntity>();
result.setEntity(entity); result.setEntity(entity);
setResult(result); setResult(result);
} }
// ::: model // ::: model
// //
private AuthUserEntity makeModel() { private AuthUserEntity makeModel() {
var argModel = getArgument().getEntity(); var argModel = getArgument().getEntity();
var model = new AuthUserEntity(); var model = new AuthUserEntity();
// relations // relations
// fields // fields
//model.setExternalId(user.getId()); //model.setExternalId(user.getId());
model.setEntityKey(argModel.getEntityKey());//user.getUsername()); model.setEntityKey(argModel.getEntityKey());//user.getUsername());
model.setCustom(argModel.isCustom()); model.setCustom(argModel.isCustom());
model.setVisible(argModel.isVisible()); model.setVisible(argModel.isVisible());
model.setEmail(argModel.getEmail()); model.setEmail(argModel.getEmail());
model.setEmailConfirmed(argModel.isEmailConfirmed()); model.setEmailConfirmed(argModel.isEmailConfirmed());
model.setPhone(argModel.getPhone()); model.setPhone(argModel.getPhone());
model.setPhoneConfirmed(argModel.isPhoneConfirmed()); model.setPhoneConfirmed(argModel.isPhoneConfirmed());
model.setName(argModel.getName()); model.setName(argModel.getName());
model.setActive(true); model.setActive(true);
return model; return model;
} }
// ::: save // ::: save
// //
private AuthUserEntity saveEntity(AuthUserEntity model) { private AuthUserEntity saveEntity(AuthUserEntity model) {
var store = AppModules.authentication.getController().getAuthUserStore(); var store = AppModules.authentication.getController().getAuthUserStore();
var saved = store.add(getContext(), model); var saved = store.add(getContext(), model);
getContext().attach(saved.getId(), saved); getContext().attach(saved.getId(), saved);
return saved; return saved;
} }
// ::: add relations // ::: add relations
// //
private void addRelations(List<AuthUserRelationAddArgument> list) { private void addRelations(List<AuthUserRelationAddArgument> list) {
if (list != null) { if (list != null) {
list.forEach(i -> { list.forEach(i -> {
i.getEntity().authUser(entity); i.getEntity().authUser(entity);
Actions.perform(getContext(), new AuthUserRelationAddAction(), i); Actions.perform(getContext(), new AuthUserRelationAddAction(), i);
}); });
} }
} }
private void createKeycloakUser() { private void createKeycloakUser() {
var arg = getArgument().getEntity(); var arg = getArgument().getEntity();
user = new UserRepresentation(); user = new UserRepresentation();
user.setFirstName(arg.getName()); user.setFirstName(arg.getName());
user.setLastName(arg.getName()); user.setLastName(arg.getName());
user.setEmail(arg.getEmail()); user.setEmail(arg.getEmail());
user.setEmailVerified(false); user.setEmailVerified(false);
user.setUsername(arg.getEmail()); user.setUsername(arg.getEmail());
var credential = new CredentialRepresentation(); var credential = new CredentialRepresentation();
credential.setType("password"); credential.setType("password");
credential.setTemporary(false); credential.setTemporary(false);
String password = getArgument().getPassword(); String password = getArgument().getPassword();
credential.setValue(password); credential.setValue(password);
user.setCredentials(Collections.singletonList(credential)); user.setCredentials(Collections.singletonList(credential));
Map<String, List<String>> attributes = new HashMap<>(); Map<String, List<String>> attributes = new HashMap<>();
attributes.put("phone", Collections.singletonList(arg.getPhone())); attributes.put("phone", Collections.singletonList(arg.getPhone()));
user.setAttributes(attributes); user.setAttributes(attributes);
createUserInKeycloak(); createUserInKeycloak();
} }
private void createUserInKeycloak() { private void createUserInKeycloak() {
user.setEnabled(true); user.setEnabled(true);
user.setEmailVerified(false); user.setEmailVerified(false);
var response = oauth.users().create(user); var response = oauth.users().create(user);
String userId = CreatedResponseUtil.getCreatedId(response); String userId = CreatedResponseUtil.getCreatedId(response);
user = oauth.users().find(userId); user = oauth.users().find(userId);
} }
} }
@@ -1,52 +1,52 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.action.authuser; package io.kumare.iqr.mod.authentication.action.authuser;
// java // java
import java.util.List; import java.util.List;
// app // app
import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity;
import io.kumare.iqr.mod.authentication.action.authuserrelation.AuthUserRelationAddArgument; import io.kumare.iqr.mod.authentication.action.authuserrelation.AuthUserRelationAddArgument;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AuthUserAddArgument extends AuthUserActionArgument { public class AuthUserAddArgument extends AuthUserActionArgument {
// ::: vars // ::: vars
// //
private List<AuthUserRelationAddArgument> relations; private List<AuthUserRelationAddArgument> relations;
private String password; private String password;
// ::: constructors // ::: constructors
// //
public AuthUserAddArgument() { public AuthUserAddArgument() {
} }
public AuthUserAddArgument(AuthUserEntity entity) { public AuthUserAddArgument(AuthUserEntity entity) {
super(entity); super(entity);
} }
// ::: fields // ::: fields
// //
public List<AuthUserRelationAddArgument> getRelations() { public List<AuthUserRelationAddArgument> getRelations() {
return relations; return relations;
} }
public void setRelations(List<AuthUserRelationAddArgument> list) { public void setRelations(List<AuthUserRelationAddArgument> list) {
this.relations = list; this.relations = list;
} }
public String getPassword() { public String getPassword() {
return password; return password;
} }
public void setPassword(String password) { public void setPassword(String password) {
this.password = password; this.password = password;
} }
} }
@@ -1,59 +1,59 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.action.authuser; package io.kumare.iqr.mod.authentication.action.authuser;
// lib // lib
import io.kumare.lib.v.V; import io.kumare.lib.v.V;
// base // base
import io.kumare.iqr.app.AppErrors; import io.kumare.iqr.app.AppErrors;
import io.kumare.iqr.app.action.AppAction; import io.kumare.iqr.app.action.AppAction;
import io.kumare.iqr.app.action.AppEntityActionResult; import io.kumare.iqr.app.action.AppEntityActionResult;
import io.kumare.iqr.app.module.AppModules; import io.kumare.iqr.app.module.AppModules;
// module // module
import io.kumare.iqr.mod.authentication.AuthenticationErrors; import io.kumare.iqr.mod.authentication.AuthenticationErrors;
// entity // entity
import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AuthUserDeleteAction extends AppAction<AuthUserActionArgument, AppEntityActionResult<AuthUserEntity>> { public class AuthUserDeleteAction extends AppAction<AuthUserActionArgument, AppEntityActionResult<AuthUserEntity>> {
// ::: vars // ::: vars
// //
private AuthUserEntity entity; private AuthUserEntity entity;
// ::: protected api // ::: protected api
// //
@Override @Override
protected void checkArgument() { protected void checkArgument() {
V.ifNull(getArgument(), AppErrors.action_arg_notfound); V.ifNull(getArgument(), AppErrors.action_arg_notfound);
V.ifNull(getArgument().getEntity(), AuthenticationErrors.authuser_notfound); V.ifNull(getArgument().getEntity(), AuthenticationErrors.authuser_notfound);
V.ifNull(getArgument().getEntity().getId(), AuthenticationErrors.authuser_notfound); V.ifNull(getArgument().getEntity().getId(), AuthenticationErrors.authuser_notfound);
} }
@Override @Override
protected void doAction() { protected void doAction() {
var argModel = getArgument().getEntity(); var argModel = getArgument().getEntity();
deleteEntity(argModel); deleteEntity(argModel);
} }
@Override @Override
protected void setResultOnly() { protected void setResultOnly() {
} }
// ::: delete // ::: delete
// //
private void deleteEntity(AuthUserEntity model) { private void deleteEntity(AuthUserEntity model) {
var store = AppModules.authentication.getController().getAuthUserStore(); var store = AppModules.authentication.getController().getAuthUserStore();
store.deleteById(getContext(), model.getId()); store.deleteById(getContext(), model.getId());
} }
} }
@@ -1,109 +1,109 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.action.authuser; package io.kumare.iqr.mod.authentication.action.authuser;
// lib // lib
import io.kumare.lib.v.V; import io.kumare.lib.v.V;
// app // app
import io.kumare.iqr.app.AppErrors; import io.kumare.iqr.app.AppErrors;
import io.kumare.iqr.app.action.AppAction; import io.kumare.iqr.app.action.AppAction;
import io.kumare.iqr.app.action.AppEntityActionResult; import io.kumare.iqr.app.action.AppEntityActionResult;
import io.kumare.iqr.app.module.AppModules; import io.kumare.iqr.app.module.AppModules;
// module // module
import io.kumare.iqr.mod.authentication.AuthenticationErrors; import io.kumare.iqr.mod.authentication.AuthenticationErrors;
// entity // entity
import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AuthUserEditAction extends AppAction<AuthUserActionArgument, AppEntityActionResult<AuthUserEntity>> { public class AuthUserEditAction extends AppAction<AuthUserActionArgument, AppEntityActionResult<AuthUserEntity>> {
// ::: vars // ::: vars
// //
private AuthUserEntity entity; private AuthUserEntity entity;
// ::: protected api // ::: protected api
// //
@Override @Override
protected void checkArgument() { protected void checkArgument() {
V.ifNull(getArgument(), AppErrors.action_arg_notfound); V.ifNull(getArgument(), AppErrors.action_arg_notfound);
// entity // entity
var model = getArgument().getEntity(); var model = getArgument().getEntity();
V.ifNull(model, AuthenticationErrors.authuser_notfound); V.ifNull(model, AuthenticationErrors.authuser_notfound);
// fields // fields
V.ifEmpty(model.getExternalId(), AuthenticationErrors.authuser_externalid_empty); V.ifEmpty(model.getExternalId(), AuthenticationErrors.authuser_externalid_empty);
V.ifEmpty(model.getEntityKey(), AuthenticationErrors.authuser_entitykey_empty); V.ifEmpty(model.getEntityKey(), AuthenticationErrors.authuser_entitykey_empty);
V.ifEmpty(model.isCustom(), AuthenticationErrors.authuser_custom_empty); V.ifEmpty(model.isCustom(), AuthenticationErrors.authuser_custom_empty);
V.ifEmpty(model.isVisible(), AuthenticationErrors.authuser_visible_empty); V.ifEmpty(model.isVisible(), AuthenticationErrors.authuser_visible_empty);
V.ifEmpty(model.getEmail(), AuthenticationErrors.authuser_email_empty); V.ifEmpty(model.getEmail(), AuthenticationErrors.authuser_email_empty);
V.ifEmpty(model.isEmailConfirmed(), AuthenticationErrors.authuser_emailconfirmed_empty); V.ifEmpty(model.isEmailConfirmed(), AuthenticationErrors.authuser_emailconfirmed_empty);
V.ifEmpty(model.getPhone(), AuthenticationErrors.authuser_phone_empty); V.ifEmpty(model.getPhone(), AuthenticationErrors.authuser_phone_empty);
V.ifEmpty(model.isPhoneConfirmed(), AuthenticationErrors.authuser_phoneconfirmed_empty); V.ifEmpty(model.isPhoneConfirmed(), AuthenticationErrors.authuser_phoneconfirmed_empty);
V.ifEmpty(model.getName(), AuthenticationErrors.authuser_name_empty); V.ifEmpty(model.getName(), AuthenticationErrors.authuser_name_empty);
} }
@Override @Override
protected void doAction() { protected void doAction() {
// arguments // arguments
var argModel = getArgument().getEntity(); var argModel = getArgument().getEntity();
// controllers // controllers
var authentication = AppModules.authentication.getController(); var authentication = AppModules.authentication.getController();
var authUserStore = authentication.getAuthUserStore(); var authUserStore = authentication.getAuthUserStore();
// edit // edit
entity = authUserStore.ensure(getContext(), argModel, AuthenticationErrors.authuser_notfound); entity = authUserStore.ensure(getContext(), argModel, AuthenticationErrors.authuser_notfound);
editEntity(); editEntity();
entity = saveEntity(); entity = saveEntity();
// dispatchEvents // dispatchEvents
} }
@Override @Override
protected void setResultOnly() { protected void setResultOnly() {
var result = new AppEntityActionResult<AuthUserEntity>(); var result = new AppEntityActionResult<AuthUserEntity>();
result.setEntity(entity); result.setEntity(entity);
setResult(result); setResult(result);
} }
// ::: model // ::: model
// //
private void editEntity() { private void editEntity() {
var model = getArgument().getEntity(); var model = getArgument().getEntity();
// fields // fields
entity.setExternalId(V.firstNotEmpty(model.getExternalId(), entity.getExternalId())); entity.setExternalId(V.firstNotEmpty(model.getExternalId(), entity.getExternalId()));
entity.setEntityKey(V.firstNotEmpty(model.getEntityKey(), entity.getEntityKey())); entity.setEntityKey(V.firstNotEmpty(model.getEntityKey(), entity.getEntityKey()));
entity.setCustom(V.firstNotEmpty(model.isCustom(), entity.isCustom())); entity.setCustom(V.firstNotEmpty(model.isCustom(), entity.isCustom()));
entity.setVisible(V.firstNotEmpty(model.isVisible(), entity.isVisible())); entity.setVisible(V.firstNotEmpty(model.isVisible(), entity.isVisible()));
entity.setEmail(V.firstNotEmpty(model.getEmail(), entity.getEmail())); entity.setEmail(V.firstNotEmpty(model.getEmail(), entity.getEmail()));
entity.setEmailConfirmed(V.firstNotEmpty(model.isEmailConfirmed(), entity.isEmailConfirmed())); entity.setEmailConfirmed(V.firstNotEmpty(model.isEmailConfirmed(), entity.isEmailConfirmed()));
entity.setPhone(V.firstNotEmpty(model.getPhone(), entity.getPhone())); entity.setPhone(V.firstNotEmpty(model.getPhone(), entity.getPhone()));
entity.setPhoneConfirmed(V.firstNotEmpty(model.isPhoneConfirmed(), entity.isPhoneConfirmed())); entity.setPhoneConfirmed(V.firstNotEmpty(model.isPhoneConfirmed(), entity.isPhoneConfirmed()));
entity.setName(V.firstNotEmpty(model.getName(), entity.getName())); entity.setName(V.firstNotEmpty(model.getName(), entity.getName()));
} }
// ::: save // ::: save
// //
private AuthUserEntity saveEntity() { private AuthUserEntity saveEntity() {
var store = AppModules.authentication.getController().getAuthUserStore(); var store = AppModules.authentication.getController().getAuthUserStore();
var saved = store.edit(getContext(), entity); var saved = store.edit(getContext(), entity);
getContext().attach(saved.getId(), saved); getContext().attach(saved.getId(), saved);
return saved; return saved;
} }
} }
@@ -1,32 +1,32 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.action.authuser; package io.kumare.iqr.mod.authentication.action.authuser;
// app // app
import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AuthUserEditArgument extends AuthUserActionArgument { public class AuthUserEditArgument extends AuthUserActionArgument {
// ::: vars // ::: vars
// //
// ::: constructors // ::: constructors
// //
public AuthUserEditArgument() { public AuthUserEditArgument() {
} }
public AuthUserEditArgument(AuthUserEntity entity) { public AuthUserEditArgument(AuthUserEntity entity) {
super(entity); super(entity);
} }
// ::: fields // ::: fields
// //
} }
@@ -1,60 +1,60 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.action.authuser; package io.kumare.iqr.mod.authentication.action.authuser;
// lib // lib
import io.kumare.lib.v.V; import io.kumare.lib.v.V;
// base // base
import io.kumare.iqr.app.AppErrors; import io.kumare.iqr.app.AppErrors;
import io.kumare.iqr.app.action.AppAction; import io.kumare.iqr.app.action.AppAction;
import io.kumare.iqr.app.action.AppActionResult; import io.kumare.iqr.app.action.AppActionResult;
import io.kumare.iqr.app.module.AppModules; import io.kumare.iqr.app.module.AppModules;
// module // module
import io.kumare.iqr.mod.authentication.AuthenticationErrors; import io.kumare.iqr.mod.authentication.AuthenticationErrors;
// entity // entity
import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AuthUserEnableAction extends AppAction<AuthUserActionArgument, AppActionResult> { public class AuthUserEnableAction extends AppAction<AuthUserActionArgument, AppActionResult> {
// ::: protected api // ::: protected api
// //
@Override @Override
protected void checkArgument() { protected void checkArgument() {
V.ifNull(getArgument(), AppErrors.action_arg_notfound); V.ifNull(getArgument(), AppErrors.action_arg_notfound);
V.ifNull(getArgument().getEntity(), AuthenticationErrors.authuser_notfound); V.ifNull(getArgument().getEntity(), AuthenticationErrors.authuser_notfound);
V.ifNull(getArgument().getEntity().getId(), AuthenticationErrors.authuser_notfound); V.ifNull(getArgument().getEntity().getId(), AuthenticationErrors.authuser_notfound);
} }
@Override @Override
protected void doAction() { protected void doAction() {
var model = getArgument().getEntity(); var model = getArgument().getEntity();
enableEntity(model); enableEntity(model);
} }
@Override @Override
protected void setResultOnly() { protected void setResultOnly() {
} }
// ::: enable // ::: enable
// //
private void enableEntity(AuthUserEntity model) { private void enableEntity(AuthUserEntity model) {
var store = AppModules.authentication.getController().getAuthUserStore(); var store = AppModules.authentication.getController().getAuthUserStore();
if (getArgument().getEntity().isActive()) { if (getArgument().getEntity().isActive()) {
store.enableById(getContext(), model.getId()); store.enableById(getContext(), model.getId());
} else { } else {
store.disableById(getContext(), model.getId()); store.disableById(getContext(), model.getId());
} }
} }
} }
@@ -1,64 +1,64 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.action.authuser; package io.kumare.iqr.mod.authentication.action.authuser;
// java // java
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
// lib // lib
import io.kumare.lib.v.V; import io.kumare.lib.v.V;
// base // base
import io.kumare.iqr.app.AppErrors; import io.kumare.iqr.app.AppErrors;
import io.kumare.iqr.app.action.AppAction; import io.kumare.iqr.app.action.AppAction;
import io.kumare.iqr.app.module.AppModules; import io.kumare.iqr.app.module.AppModules;
// module // module
import io.kumare.iqr.mod.authentication.AuthenticationErrors; import io.kumare.iqr.mod.authentication.AuthenticationErrors;
// entity // entity
import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AuthUserFindAction extends AppAction<AuthUserActionArgument, Map> { public class AuthUserFindAction extends AppAction<AuthUserActionArgument, Map> {
// ::: vars // ::: vars
// //
private AuthUserEntity entity; private AuthUserEntity entity;
// ::: protected api // ::: protected api
// //
@Override @Override
protected void checkArgument() { protected void checkArgument() {
V.ifNull(getArgument(), AppErrors.action_arg_notfound); V.ifNull(getArgument(), AppErrors.action_arg_notfound);
V.ifNull(getArgument().getEntity(), AuthenticationErrors.authuser_notfound); V.ifNull(getArgument().getEntity(), AuthenticationErrors.authuser_notfound);
V.ifNull(getArgument().getEntity().getId(), AuthenticationErrors.authuser_notfound); V.ifNull(getArgument().getEntity().getId(), AuthenticationErrors.authuser_notfound);
} }
@Override @Override
protected void doAction() { protected void doAction() {
var model = getArgument().getEntity(); var model = getArgument().getEntity();
entity = findEntity(model); entity = findEntity(model);
} }
@Override @Override
protected void setResultOnly() { protected void setResultOnly() {
var result = new HashMap(); var result = new HashMap();
result.put("entity", entity); result.put("entity", entity);
setResult(result); setResult(result);
} }
// ::: find // ::: find
// //
private AuthUserEntity findEntity(AuthUserEntity model) { private AuthUserEntity findEntity(AuthUserEntity model) {
var store = AppModules.authentication.getController().getAuthUserStore(); var store = AppModules.authentication.getController().getAuthUserStore();
return store.findById(getContext(), model.getId()); return store.findById(getContext(), model.getId());
} }
} }
@@ -1,148 +1,148 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.action.authuser; package io.kumare.iqr.mod.authentication.action.authuser;
// java // java
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.Map; import java.util.Map;
// spring // spring
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
// lib // lib
import io.kumare.lib.v.V; import io.kumare.lib.v.V;
// base // base
import io.kumare.iqr.app.AppErrors; import io.kumare.iqr.app.AppErrors;
import io.kumare.iqr.app.action.AppAction; import io.kumare.iqr.app.action.AppAction;
import io.kumare.iqr.app.module.AppModules; import io.kumare.iqr.app.module.AppModules;
// entity // entity
import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity;
import io.kumare.iqr.mod.authentication.store.authuser.AuthUserMapBuilder; import io.kumare.iqr.mod.authentication.store.authuser.AuthUserMapBuilder;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AuthUserListAction extends AppAction<AuthUserListArgument, Map> { public class AuthUserListAction extends AppAction<AuthUserListArgument, Map> {
// ::: vars // ::: vars
// //
private final Map result = new HashMap<String, Object>(); private final Map result = new HashMap<String, Object>();
private final List<AuthUserEntity> entities = new LinkedList<>(); private final List<AuthUserEntity> entities = new LinkedList<>();
// ::: public api // ::: public api
// //
public List<AuthUserEntity> getEntities() { public List<AuthUserEntity> getEntities() {
return entities; return entities;
} }
// ::: protected api // ::: protected api
// //
@Override @Override
protected void checkArgument() { protected void checkArgument() {
V.ifNull(getArgument(), AppErrors.action_arg_notfound); V.ifNull(getArgument(), AppErrors.action_arg_notfound);
} }
@Override @Override
protected void doAction() { protected void doAction() {
result.put("pageable", getArgument().isPageable()); result.put("pageable", getArgument().isPageable());
result.put("wrapped", getArgument().isWrapped()); result.put("wrapped", getArgument().isWrapped());
if (getArgument().isPageable()) { if (getArgument().isPageable()) {
var page = makePage(); var page = makePage();
entities.addAll(page.toList()); entities.addAll(page.toList());
if (getArgument().isWrapped()) { if (getArgument().isWrapped()) {
result.put("page", makeWrappedPage(page)); result.put("page", makeWrappedPage(page));
} else { } else {
result.put("page", page); result.put("page", page);
} }
} else { } else {
var list = makeList(); var list = makeList();
entities.addAll(list); entities.addAll(list);
if (getArgument().isWrapped()) { if (getArgument().isWrapped()) {
result.put("list", makeWrappedList()); result.put("list", makeWrappedList());
} else { } else {
result.put("list", list); result.put("list", list);
} }
} }
} }
@Override @Override
protected void setResultOnly() { protected void setResultOnly() {
setResult(result); setResult(result);
} }
// ::: page // ::: page
// //
private Page<AuthUserEntity> makePage() { private Page<AuthUserEntity> makePage() {
var page = getArgument().getPageNumber(); var page = getArgument().getPageNumber();
var size = getArgument().getPageSize(); var size = getArgument().getPageSize();
//var sort = getArgument().getSort(); //var sort = getArgument().getSort();
var pageable = PageRequest.of(page, size); var pageable = PageRequest.of(page, size);
var store = AppModules.authentication.getController().getAuthUserStore(); var store = AppModules.authentication.getController().getAuthUserStore();
return store.getRepository().findAll(pageable); return store.getRepository().findAll(pageable);
} }
// ::: wrapped page // ::: wrapped page
// //
private Map makeWrappedPage(Page<AuthUserEntity> found) { private Map makeWrappedPage(Page<AuthUserEntity> found) {
var page = new HashMap(); var page = new HashMap();
var content = new LinkedList(); var content = new LinkedList();
wrapList(entities, content); wrapList(entities, content);
page.put("size", found.getSize()); page.put("size", found.getSize());
page.put("number", found.getNumber()); page.put("number", found.getNumber());
page.put("totalElements", found.getTotalElements()); page.put("totalElements", found.getTotalElements());
page.put("totalPages", found.getTotalPages()); page.put("totalPages", found.getTotalPages());
page.put("content", content); page.put("content", content);
return page; return page;
} }
// ::: list // ::: list
// //
private List<AuthUserEntity> makeList() { private List<AuthUserEntity> makeList() {
var store = AppModules.authentication.getController().getAuthUserStore(); var store = AppModules.authentication.getController().getAuthUserStore();
return store.listAll(getContext()); return store.listAll(getContext());
} }
// ::: wrapped list // ::: wrapped list
private List makeWrappedList() { private List makeWrappedList() {
var list = new LinkedList(); var list = new LinkedList();
wrapList(entities, list); wrapList(entities, list);
return list; return list;
} }
// ::: wrapper // ::: wrapper
// //
private void wrapList(List<AuthUserEntity> found, List output) { private void wrapList(List<AuthUserEntity> found, List output) {
var builder = new AuthUserMapBuilder().addListGroup(); var builder = new AuthUserMapBuilder().addListGroup();
output.addAll(builder.build(getContext(), found)); output.addAll(builder.build(getContext(), found));
} }
} }
@@ -1,33 +1,33 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.action.authuser; package io.kumare.iqr.mod.authentication.action.authuser;
// app // app
import io.kumare.iqr.app.action.AppListActionArgument; import io.kumare.iqr.app.action.AppListActionArgument;
// store // store
import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AuthUserListArgument extends AppListActionArgument<AuthUserEntity> { public class AuthUserListArgument extends AppListActionArgument<AuthUserEntity> {
// ::: vars // ::: vars
// //
// ::: constructors // ::: constructors
// //
public AuthUserListArgument() { public AuthUserListArgument() {
} }
public AuthUserListArgument(AuthUserEntity entity) { public AuthUserListArgument(AuthUserEntity entity) {
super(entity); super(entity);
} }
// ::: fields // ::: fields
// //
} }
@@ -1,101 +1,101 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.action.authuser; package io.kumare.iqr.mod.authentication.action.authuser;
// java // java
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
// lib // lib
import io.kumare.lib.v.V; import io.kumare.lib.v.V;
// base // base
import io.kumare.iqr.app.AppErrors; import io.kumare.iqr.app.AppErrors;
import io.kumare.iqr.app.action.AppAction; import io.kumare.iqr.app.action.AppAction;
import io.kumare.iqr.app.module.AppModules; import io.kumare.iqr.app.module.AppModules;
// module // module
import io.kumare.iqr.mod.authentication.AuthenticationErrors; import io.kumare.iqr.mod.authentication.AuthenticationErrors;
// entity // entity
import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity;
// relations // relations
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AuthUserPreloadAction extends AppAction<AuthUserPreloadArgument, Map> { public class AuthUserPreloadAction extends AppAction<AuthUserPreloadArgument, Map> {
// ::: vars // ::: vars
// //
private final Map result = new HashMap(); private final Map result = new HashMap();
private Map<String, Object> params = new HashMap<>(); private Map<String, Object> params = new HashMap<>();
// ::: protected api // ::: protected api
// //
@Override @Override
protected void checkArgument() { protected void checkArgument() {
V.ifNull(getArgument(), AppErrors.action_arg_notfound); V.ifNull(getArgument(), AppErrors.action_arg_notfound);
V.ifEmpty(getArgument().getAction(), AuthenticationErrors.authuser_preload_empty); V.ifEmpty(getArgument().getAction(), AuthenticationErrors.authuser_preload_empty);
} }
@Override @Override
protected void doAction() { protected void doAction() {
if(getArgument().getParams() != null) { if(getArgument().getParams() != null) {
params = getArgument().getParams(); params = getArgument().getParams();
} }
switch (getArgument().getAction()) { switch (getArgument().getAction()) {
case "find" -> case "find" ->
prepareFind(); prepareFind();
case "list" -> case "list" ->
prepareList(); prepareList();
case "add" -> case "add" ->
prepareAdd(); prepareAdd();
case "edit" -> case "edit" ->
prepareEdit(); prepareEdit();
} }
} }
@Override @Override
protected void setResultOnly() { protected void setResultOnly() {
setResult(result); setResult(result);
} }
// ::: preload // ::: preload
// //
private void prepareAdd() { private void prepareAdd() {
} }
private void prepareEdit() { private void prepareEdit() {
var entity = findEntity(); var entity = findEntity();
result.put("entity", entity); result.put("entity", entity);
} }
private void prepareList() { private void prepareList() {
} }
private void prepareFind() { private void prepareFind() {
var entity = findEntity(); var entity = findEntity();
result.put("entity", entity); result.put("entity", entity);
} }
// ::: queries // ::: queries
// //
private AuthUserEntity findEntity() { private AuthUserEntity findEntity() {
var store = AppModules.authentication.getController().getAuthUserStore(); var store = AppModules.authentication.getController().getAuthUserStore();
var id = (String) params.get("id"); var id = (String) params.get("id");
if(id == null && getArgument().getEntity() != null) { if(id == null && getArgument().getEntity() != null) {
id = getArgument().getEntity().getId(); id = getArgument().getEntity().getId();
} }
return store.findById(getContext(), id); return store.findById(getContext(), id);
} }
} }
@@ -1,26 +1,26 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.action.authuser; package io.kumare.iqr.mod.authentication.action.authuser;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AuthUserPreloadArgument extends AuthUserActionArgument { public class AuthUserPreloadArgument extends AuthUserActionArgument {
// ::: vars // ::: vars
// //
private String action; private String action;
// ::: fields // ::: fields
// //
public String getAction() { public String getAction() {
return action; return action;
} }
public void setAction(String action) { public void setAction(String action) {
this.action = action; this.action = action;
} }
} }
@@ -1,29 +1,29 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.action.authuserrelation; package io.kumare.iqr.mod.authentication.action.authuserrelation;
// base // base
import io.kumare.iqr.app.action.AppEntityActionArgument; import io.kumare.iqr.app.action.AppEntityActionArgument;
// entity // entity
import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity; import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AuthUserRelationActionArgument extends AppEntityActionArgument<AuthUserRelationEntity> { public class AuthUserRelationActionArgument extends AppEntityActionArgument<AuthUserRelationEntity> {
// ::: constructors // ::: constructors
// //
public AuthUserRelationActionArgument() { public AuthUserRelationActionArgument() {
} }
public AuthUserRelationActionArgument(AuthUserRelationEntity entity) { public AuthUserRelationActionArgument(AuthUserRelationEntity entity) {
super(entity); super(entity);
} }
// ::: api // ::: api
// //
} }
@@ -1,123 +1,123 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.action.authuserrelation; package io.kumare.iqr.mod.authentication.action.authuserrelation;
// lib // lib
import io.kumare.lib.base.server.spring.action.Actions; import io.kumare.lib.base.server.spring.action.Actions;
import io.kumare.lib.v.V; import io.kumare.lib.v.V;
// base // base
import io.kumare.iqr.app.AppErrors; import io.kumare.iqr.app.AppErrors;
import io.kumare.iqr.app.action.AppAction; import io.kumare.iqr.app.action.AppAction;
import io.kumare.iqr.app.action.AppEntityActionResult; import io.kumare.iqr.app.action.AppEntityActionResult;
import io.kumare.iqr.app.module.AppModules; import io.kumare.iqr.app.module.AppModules;
// module // module
import io.kumare.iqr.mod.authentication.AuthenticationErrors; import io.kumare.iqr.mod.authentication.AuthenticationErrors;
// entity // entity
import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity; import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity;
import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AuthUserRelationAddAction extends AppAction<AuthUserRelationAddArgument, AppEntityActionResult<AuthUserRelationEntity>> { public class AuthUserRelationAddAction extends AppAction<AuthUserRelationAddArgument, AppEntityActionResult<AuthUserRelationEntity>> {
// ::: vars // ::: vars
// //
private AuthUserRelationEntity entity; private AuthUserRelationEntity entity;
// ::: protected api // ::: protected api
// //
@Override @Override
protected void checkArgument() { protected void checkArgument() {
V.ifNull(getArgument(), AppErrors.action_arg_notfound); V.ifNull(getArgument(), AppErrors.action_arg_notfound);
// entity // entity
var model = getArgument().getEntity(); var model = getArgument().getEntity();
V.ifNull(model, AuthenticationErrors.authuserrelation_notfound); V.ifNull(model, AuthenticationErrors.authuserrelation_notfound);
// relations // relations
V.ifNull(model.getAuthUser(), AuthenticationErrors.authuserrelation_authuser_notfound); V.ifNull(model.getAuthUser(), AuthenticationErrors.authuserrelation_authuser_notfound);
// fields // fields
V.ifEmpty(model.getExternalId(), AuthenticationErrors.authuserrelation_externalid_empty); V.ifEmpty(model.getExternalId(), AuthenticationErrors.authuserrelation_externalid_empty);
V.ifEmpty(model.getUserKey(), AuthenticationErrors.authuserrelation_userkey_empty); V.ifEmpty(model.getUserKey(), AuthenticationErrors.authuserrelation_userkey_empty);
V.ifEmpty(model.getTypeValue(), AuthenticationErrors.authuserrelation_typevalue_empty); V.ifEmpty(model.getTypeValue(), AuthenticationErrors.authuserrelation_typevalue_empty);
V.ifEmpty(model.getResourceType(), AuthenticationErrors.authuserrelation_resourcetype_empty); V.ifEmpty(model.getResourceType(), AuthenticationErrors.authuserrelation_resourcetype_empty);
V.ifEmpty(model.getResourceKey(), AuthenticationErrors.authuserrelation_resourcekey_empty); V.ifEmpty(model.getResourceKey(), AuthenticationErrors.authuserrelation_resourcekey_empty);
V.ifEmpty(model.getResourceId(), AuthenticationErrors.authuserrelation_resourceid_empty); V.ifEmpty(model.getResourceId(), AuthenticationErrors.authuserrelation_resourceid_empty);
} }
@Override @Override
protected void doAction() { protected void doAction() {
// arguments // arguments
var argModel = getArgument().getEntity(); var argModel = getArgument().getEntity();
// controllers // controllers
var authentication = AppModules.authentication.getController(); var authentication = AppModules.authentication.getController();
var authUserStore = authentication.getAuthUserStore(); var authUserStore = authentication.getAuthUserStore();
var authUser = authUserStore.ensure(getContext(), argModel.getAuthUser(), AuthenticationErrors.authuserrelation_authuser_notfound); var authUser = authUserStore.ensure(getContext(), argModel.getAuthUser(), AuthenticationErrors.authuserrelation_authuser_notfound);
// model // model
var model = makeModel(authUser); var model = makeModel(authUser);
// add // add
entity = saveEntity(model); entity = saveEntity(model);
// add others // add others
// dispatchEvents // dispatchEvents
} }
@Override @Override
protected void setResultOnly() { protected void setResultOnly() {
var result = new AppEntityActionResult<AuthUserRelationEntity>(); var result = new AppEntityActionResult<AuthUserRelationEntity>();
result.setEntity(entity); result.setEntity(entity);
setResult(result); setResult(result);
} }
// ::: model // ::: model
// //
private AuthUserRelationEntity makeModel(AuthUserEntity authUser) { private AuthUserRelationEntity makeModel(AuthUserEntity authUser) {
var argModel = getArgument().getEntity(); var argModel = getArgument().getEntity();
var model = new AuthUserRelationEntity(); var model = new AuthUserRelationEntity();
// relations // relations
model.setAuthUser(authUser); model.setAuthUser(authUser);
// fields // fields
model.setExternalId(argModel.getExternalId()); model.setExternalId(argModel.getExternalId());
model.setUserKey(argModel.getUserKey()); model.setUserKey(argModel.getUserKey());
model.setTypeValue(argModel.getTypeValue()); model.setTypeValue(argModel.getTypeValue());
model.setResourceType(argModel.getResourceType()); model.setResourceType(argModel.getResourceType());
model.setResourceKey(argModel.getResourceKey()); model.setResourceKey(argModel.getResourceKey());
model.setResourceId(argModel.getResourceId()); model.setResourceId(argModel.getResourceId());
model.setActive(true); model.setActive(true);
return model; return model;
} }
// ::: save // ::: save
// //
private AuthUserRelationEntity saveEntity(AuthUserRelationEntity model) { private AuthUserRelationEntity saveEntity(AuthUserRelationEntity model) {
var store = AppModules.authentication.getController().getAuthUserRelationStore(); var store = AppModules.authentication.getController().getAuthUserRelationStore();
var saved = store.add(getContext(), model); var saved = store.add(getContext(), model);
getContext().attach(saved.getId(), saved); getContext().attach(saved.getId(), saved);
return saved; return saved;
} }
} }
@@ -1,34 +1,34 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.action.authuserrelation; package io.kumare.iqr.mod.authentication.action.authuserrelation;
// app // app
import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity; import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AuthUserRelationAddArgument extends AuthUserRelationActionArgument { public class AuthUserRelationAddArgument extends AuthUserRelationActionArgument {
// ::: vars // ::: vars
// //
// ::: constructors // ::: constructors
// //
public AuthUserRelationAddArgument() { public AuthUserRelationAddArgument() {
} }
public AuthUserRelationAddArgument(AuthUserRelationEntity entity) { public AuthUserRelationAddArgument(AuthUserRelationEntity entity) {
super(entity); super(entity);
} }
// ::: fields // ::: fields
// //
} }
@@ -1,59 +1,59 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.action.authuserrelation; package io.kumare.iqr.mod.authentication.action.authuserrelation;
// lib // lib
import io.kumare.lib.v.V; import io.kumare.lib.v.V;
// base // base
import io.kumare.iqr.app.AppErrors; import io.kumare.iqr.app.AppErrors;
import io.kumare.iqr.app.action.AppAction; import io.kumare.iqr.app.action.AppAction;
import io.kumare.iqr.app.action.AppEntityActionResult; import io.kumare.iqr.app.action.AppEntityActionResult;
import io.kumare.iqr.app.module.AppModules; import io.kumare.iqr.app.module.AppModules;
// module // module
import io.kumare.iqr.mod.authentication.AuthenticationErrors; import io.kumare.iqr.mod.authentication.AuthenticationErrors;
// entity // entity
import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity; import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AuthUserRelationDeleteAction extends AppAction<AuthUserRelationActionArgument, AppEntityActionResult<AuthUserRelationEntity>> { public class AuthUserRelationDeleteAction extends AppAction<AuthUserRelationActionArgument, AppEntityActionResult<AuthUserRelationEntity>> {
// ::: vars // ::: vars
// //
private AuthUserRelationEntity entity; private AuthUserRelationEntity entity;
// ::: protected api // ::: protected api
// //
@Override @Override
protected void checkArgument() { protected void checkArgument() {
V.ifNull(getArgument(), AppErrors.action_arg_notfound); V.ifNull(getArgument(), AppErrors.action_arg_notfound);
V.ifNull(getArgument().getEntity(), AuthenticationErrors.authuserrelation_notfound); V.ifNull(getArgument().getEntity(), AuthenticationErrors.authuserrelation_notfound);
V.ifNull(getArgument().getEntity().getId(), AuthenticationErrors.authuserrelation_notfound); V.ifNull(getArgument().getEntity().getId(), AuthenticationErrors.authuserrelation_notfound);
} }
@Override @Override
protected void doAction() { protected void doAction() {
var argModel = getArgument().getEntity(); var argModel = getArgument().getEntity();
deleteEntity(argModel); deleteEntity(argModel);
} }
@Override @Override
protected void setResultOnly() { protected void setResultOnly() {
} }
// ::: delete // ::: delete
// //
private void deleteEntity(AuthUserRelationEntity model) { private void deleteEntity(AuthUserRelationEntity model) {
var store = AppModules.authentication.getController().getAuthUserRelationStore(); var store = AppModules.authentication.getController().getAuthUserRelationStore();
store.deleteById(getContext(), model.getId()); store.deleteById(getContext(), model.getId());
} }
} }
@@ -1,103 +1,103 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.action.authuserrelation; package io.kumare.iqr.mod.authentication.action.authuserrelation;
// lib // lib
import io.kumare.lib.v.V; import io.kumare.lib.v.V;
// app // app
import io.kumare.iqr.app.AppErrors; import io.kumare.iqr.app.AppErrors;
import io.kumare.iqr.app.action.AppAction; import io.kumare.iqr.app.action.AppAction;
import io.kumare.iqr.app.action.AppEntityActionResult; import io.kumare.iqr.app.action.AppEntityActionResult;
import io.kumare.iqr.app.module.AppModules; import io.kumare.iqr.app.module.AppModules;
// module // module
import io.kumare.iqr.mod.authentication.AuthenticationErrors; import io.kumare.iqr.mod.authentication.AuthenticationErrors;
// entity // entity
import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity; import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AuthUserRelationEditAction extends AppAction<AuthUserRelationActionArgument, AppEntityActionResult<AuthUserRelationEntity>> { public class AuthUserRelationEditAction extends AppAction<AuthUserRelationActionArgument, AppEntityActionResult<AuthUserRelationEntity>> {
// ::: vars // ::: vars
// //
private AuthUserRelationEntity entity; private AuthUserRelationEntity entity;
// ::: protected api // ::: protected api
// //
@Override @Override
protected void checkArgument() { protected void checkArgument() {
V.ifNull(getArgument(), AppErrors.action_arg_notfound); V.ifNull(getArgument(), AppErrors.action_arg_notfound);
// entity // entity
var model = getArgument().getEntity(); var model = getArgument().getEntity();
V.ifNull(model, AuthenticationErrors.authuserrelation_notfound); V.ifNull(model, AuthenticationErrors.authuserrelation_notfound);
// fields // fields
V.ifEmpty(model.getExternalId(), AuthenticationErrors.authuserrelation_externalid_empty); V.ifEmpty(model.getExternalId(), AuthenticationErrors.authuserrelation_externalid_empty);
V.ifEmpty(model.getUserKey(), AuthenticationErrors.authuserrelation_userkey_empty); V.ifEmpty(model.getUserKey(), AuthenticationErrors.authuserrelation_userkey_empty);
V.ifEmpty(model.getTypeValue(), AuthenticationErrors.authuserrelation_typevalue_empty); V.ifEmpty(model.getTypeValue(), AuthenticationErrors.authuserrelation_typevalue_empty);
V.ifEmpty(model.getResourceType(), AuthenticationErrors.authuserrelation_resourcetype_empty); V.ifEmpty(model.getResourceType(), AuthenticationErrors.authuserrelation_resourcetype_empty);
V.ifEmpty(model.getResourceKey(), AuthenticationErrors.authuserrelation_resourcekey_empty); V.ifEmpty(model.getResourceKey(), AuthenticationErrors.authuserrelation_resourcekey_empty);
V.ifEmpty(model.getResourceId(), AuthenticationErrors.authuserrelation_resourceid_empty); V.ifEmpty(model.getResourceId(), AuthenticationErrors.authuserrelation_resourceid_empty);
} }
@Override @Override
protected void doAction() { protected void doAction() {
// arguments // arguments
var argModel = getArgument().getEntity(); var argModel = getArgument().getEntity();
// controllers // controllers
var authentication = AppModules.authentication.getController(); var authentication = AppModules.authentication.getController();
var authUserRelationStore = authentication.getAuthUserRelationStore(); var authUserRelationStore = authentication.getAuthUserRelationStore();
// edit // edit
entity = authUserRelationStore.ensure(getContext(), argModel, AuthenticationErrors.authuserrelation_notfound); entity = authUserRelationStore.ensure(getContext(), argModel, AuthenticationErrors.authuserrelation_notfound);
editEntity(); editEntity();
entity = saveEntity(); entity = saveEntity();
// dispatchEvents // dispatchEvents
} }
@Override @Override
protected void setResultOnly() { protected void setResultOnly() {
var result = new AppEntityActionResult<AuthUserRelationEntity>(); var result = new AppEntityActionResult<AuthUserRelationEntity>();
result.setEntity(entity); result.setEntity(entity);
setResult(result); setResult(result);
} }
// ::: model // ::: model
// //
private void editEntity() { private void editEntity() {
var model = getArgument().getEntity(); var model = getArgument().getEntity();
// fields // fields
entity.setExternalId(V.firstNotEmpty(model.getExternalId(), entity.getExternalId())); entity.setExternalId(V.firstNotEmpty(model.getExternalId(), entity.getExternalId()));
entity.setUserKey(V.firstNotEmpty(model.getUserKey(), entity.getUserKey())); entity.setUserKey(V.firstNotEmpty(model.getUserKey(), entity.getUserKey()));
entity.setTypeValue(V.firstNotEmpty(model.getTypeValue(), entity.getTypeValue())); entity.setTypeValue(V.firstNotEmpty(model.getTypeValue(), entity.getTypeValue()));
entity.setResourceType(V.firstNotEmpty(model.getResourceType(), entity.getResourceType())); entity.setResourceType(V.firstNotEmpty(model.getResourceType(), entity.getResourceType()));
entity.setResourceKey(V.firstNotEmpty(model.getResourceKey(), entity.getResourceKey())); entity.setResourceKey(V.firstNotEmpty(model.getResourceKey(), entity.getResourceKey()));
entity.setResourceId(V.firstNotEmpty(model.getResourceId(), entity.getResourceId())); entity.setResourceId(V.firstNotEmpty(model.getResourceId(), entity.getResourceId()));
} }
// ::: save // ::: save
// //
private AuthUserRelationEntity saveEntity() { private AuthUserRelationEntity saveEntity() {
var store = AppModules.authentication.getController().getAuthUserRelationStore(); var store = AppModules.authentication.getController().getAuthUserRelationStore();
var saved = store.edit(getContext(), entity); var saved = store.edit(getContext(), entity);
getContext().attach(saved.getId(), saved); getContext().attach(saved.getId(), saved);
return saved; return saved;
} }
} }
@@ -1,32 +1,32 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.action.authuserrelation; package io.kumare.iqr.mod.authentication.action.authuserrelation;
// app // app
import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity; import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AuthUserRelationEditArgument extends AuthUserRelationActionArgument { public class AuthUserRelationEditArgument extends AuthUserRelationActionArgument {
// ::: vars // ::: vars
// //
// ::: constructors // ::: constructors
// //
public AuthUserRelationEditArgument() { public AuthUserRelationEditArgument() {
} }
public AuthUserRelationEditArgument(AuthUserRelationEntity entity) { public AuthUserRelationEditArgument(AuthUserRelationEntity entity) {
super(entity); super(entity);
} }
// ::: fields // ::: fields
// //
} }
@@ -1,60 +1,60 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.action.authuserrelation; package io.kumare.iqr.mod.authentication.action.authuserrelation;
// lib // lib
import io.kumare.lib.v.V; import io.kumare.lib.v.V;
// base // base
import io.kumare.iqr.app.AppErrors; import io.kumare.iqr.app.AppErrors;
import io.kumare.iqr.app.action.AppAction; import io.kumare.iqr.app.action.AppAction;
import io.kumare.iqr.app.action.AppActionResult; import io.kumare.iqr.app.action.AppActionResult;
import io.kumare.iqr.app.module.AppModules; import io.kumare.iqr.app.module.AppModules;
// module // module
import io.kumare.iqr.mod.authentication.AuthenticationErrors; import io.kumare.iqr.mod.authentication.AuthenticationErrors;
// entity // entity
import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity; import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AuthUserRelationEnableAction extends AppAction<AuthUserRelationActionArgument, AppActionResult> { public class AuthUserRelationEnableAction extends AppAction<AuthUserRelationActionArgument, AppActionResult> {
// ::: protected api // ::: protected api
// //
@Override @Override
protected void checkArgument() { protected void checkArgument() {
V.ifNull(getArgument(), AppErrors.action_arg_notfound); V.ifNull(getArgument(), AppErrors.action_arg_notfound);
V.ifNull(getArgument().getEntity(), AuthenticationErrors.authuserrelation_notfound); V.ifNull(getArgument().getEntity(), AuthenticationErrors.authuserrelation_notfound);
V.ifNull(getArgument().getEntity().getId(), AuthenticationErrors.authuserrelation_notfound); V.ifNull(getArgument().getEntity().getId(), AuthenticationErrors.authuserrelation_notfound);
} }
@Override @Override
protected void doAction() { protected void doAction() {
var model = getArgument().getEntity(); var model = getArgument().getEntity();
enableEntity(model); enableEntity(model);
} }
@Override @Override
protected void setResultOnly() { protected void setResultOnly() {
} }
// ::: enable // ::: enable
// //
private void enableEntity(AuthUserRelationEntity model) { private void enableEntity(AuthUserRelationEntity model) {
var store = AppModules.authentication.getController().getAuthUserRelationStore(); var store = AppModules.authentication.getController().getAuthUserRelationStore();
if (getArgument().getEntity().isActive()) { if (getArgument().getEntity().isActive()) {
store.enableById(getContext(), model.getId()); store.enableById(getContext(), model.getId());
} else { } else {
store.disableById(getContext(), model.getId()); store.disableById(getContext(), model.getId());
} }
} }
} }
@@ -1,64 +1,64 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.action.authuserrelation; package io.kumare.iqr.mod.authentication.action.authuserrelation;
// java // java
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
// lib // lib
import io.kumare.lib.v.V; import io.kumare.lib.v.V;
// base // base
import io.kumare.iqr.app.AppErrors; import io.kumare.iqr.app.AppErrors;
import io.kumare.iqr.app.action.AppAction; import io.kumare.iqr.app.action.AppAction;
import io.kumare.iqr.app.module.AppModules; import io.kumare.iqr.app.module.AppModules;
// module // module
import io.kumare.iqr.mod.authentication.AuthenticationErrors; import io.kumare.iqr.mod.authentication.AuthenticationErrors;
// entity // entity
import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity; import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AuthUserRelationFindAction extends AppAction<AuthUserRelationActionArgument, Map> { public class AuthUserRelationFindAction extends AppAction<AuthUserRelationActionArgument, Map> {
// ::: vars // ::: vars
// //
private AuthUserRelationEntity entity; private AuthUserRelationEntity entity;
// ::: protected api // ::: protected api
// //
@Override @Override
protected void checkArgument() { protected void checkArgument() {
V.ifNull(getArgument(), AppErrors.action_arg_notfound); V.ifNull(getArgument(), AppErrors.action_arg_notfound);
V.ifNull(getArgument().getEntity(), AuthenticationErrors.authuserrelation_notfound); V.ifNull(getArgument().getEntity(), AuthenticationErrors.authuserrelation_notfound);
V.ifNull(getArgument().getEntity().getId(), AuthenticationErrors.authuserrelation_notfound); V.ifNull(getArgument().getEntity().getId(), AuthenticationErrors.authuserrelation_notfound);
} }
@Override @Override
protected void doAction() { protected void doAction() {
var model = getArgument().getEntity(); var model = getArgument().getEntity();
entity = findEntity(model); entity = findEntity(model);
} }
@Override @Override
protected void setResultOnly() { protected void setResultOnly() {
var result = new HashMap(); var result = new HashMap();
result.put("entity", entity); result.put("entity", entity);
setResult(result); setResult(result);
} }
// ::: find // ::: find
// //
private AuthUserRelationEntity findEntity(AuthUserRelationEntity model) { private AuthUserRelationEntity findEntity(AuthUserRelationEntity model) {
var store = AppModules.authentication.getController().getAuthUserRelationStore(); var store = AppModules.authentication.getController().getAuthUserRelationStore();
return store.findById(getContext(), model.getId()); return store.findById(getContext(), model.getId());
} }
} }
@@ -1,148 +1,148 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.action.authuserrelation; package io.kumare.iqr.mod.authentication.action.authuserrelation;
// java // java
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.Map; import java.util.Map;
// spring // spring
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
// lib // lib
import io.kumare.lib.v.V; import io.kumare.lib.v.V;
// base // base
import io.kumare.iqr.app.AppErrors; import io.kumare.iqr.app.AppErrors;
import io.kumare.iqr.app.action.AppAction; import io.kumare.iqr.app.action.AppAction;
import io.kumare.iqr.app.module.AppModules; import io.kumare.iqr.app.module.AppModules;
// entity // entity
import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity; import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity;
import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationMapBuilder; import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationMapBuilder;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AuthUserRelationListAction extends AppAction<AuthUserRelationListArgument, Map> { public class AuthUserRelationListAction extends AppAction<AuthUserRelationListArgument, Map> {
// ::: vars // ::: vars
// //
private final Map result = new HashMap<String, Object>(); private final Map result = new HashMap<String, Object>();
private final List<AuthUserRelationEntity> entities = new LinkedList<>(); private final List<AuthUserRelationEntity> entities = new LinkedList<>();
// ::: public api // ::: public api
// //
public List<AuthUserRelationEntity> getEntities() { public List<AuthUserRelationEntity> getEntities() {
return entities; return entities;
} }
// ::: protected api // ::: protected api
// //
@Override @Override
protected void checkArgument() { protected void checkArgument() {
V.ifNull(getArgument(), AppErrors.action_arg_notfound); V.ifNull(getArgument(), AppErrors.action_arg_notfound);
} }
@Override @Override
protected void doAction() { protected void doAction() {
result.put("pageable", getArgument().isPageable()); result.put("pageable", getArgument().isPageable());
result.put("wrapped", getArgument().isWrapped()); result.put("wrapped", getArgument().isWrapped());
if (getArgument().isPageable()) { if (getArgument().isPageable()) {
var page = makePage(); var page = makePage();
entities.addAll(page.toList()); entities.addAll(page.toList());
if (getArgument().isWrapped()) { if (getArgument().isWrapped()) {
result.put("page", makeWrappedPage(page)); result.put("page", makeWrappedPage(page));
} else { } else {
result.put("page", page); result.put("page", page);
} }
} else { } else {
var list = makeList(); var list = makeList();
entities.addAll(list); entities.addAll(list);
if (getArgument().isWrapped()) { if (getArgument().isWrapped()) {
result.put("list", makeWrappedList()); result.put("list", makeWrappedList());
} else { } else {
result.put("list", list); result.put("list", list);
} }
} }
} }
@Override @Override
protected void setResultOnly() { protected void setResultOnly() {
setResult(result); setResult(result);
} }
// ::: page // ::: page
// //
private Page<AuthUserRelationEntity> makePage() { private Page<AuthUserRelationEntity> makePage() {
var page = getArgument().getPageNumber(); var page = getArgument().getPageNumber();
var size = getArgument().getPageSize(); var size = getArgument().getPageSize();
//var sort = getArgument().getSort(); //var sort = getArgument().getSort();
var pageable = PageRequest.of(page, size); var pageable = PageRequest.of(page, size);
var store = AppModules.authentication.getController().getAuthUserRelationStore(); var store = AppModules.authentication.getController().getAuthUserRelationStore();
return store.getRepository().findAll(pageable); return store.getRepository().findAll(pageable);
} }
// ::: wrapped page // ::: wrapped page
// //
private Map makeWrappedPage(Page<AuthUserRelationEntity> found) { private Map makeWrappedPage(Page<AuthUserRelationEntity> found) {
var page = new HashMap(); var page = new HashMap();
var content = new LinkedList(); var content = new LinkedList();
wrapList(entities, content); wrapList(entities, content);
page.put("size", found.getSize()); page.put("size", found.getSize());
page.put("number", found.getNumber()); page.put("number", found.getNumber());
page.put("totalElements", found.getTotalElements()); page.put("totalElements", found.getTotalElements());
page.put("totalPages", found.getTotalPages()); page.put("totalPages", found.getTotalPages());
page.put("content", content); page.put("content", content);
return page; return page;
} }
// ::: list // ::: list
// //
private List<AuthUserRelationEntity> makeList() { private List<AuthUserRelationEntity> makeList() {
var store = AppModules.authentication.getController().getAuthUserRelationStore(); var store = AppModules.authentication.getController().getAuthUserRelationStore();
return store.listAll(getContext()); return store.listAll(getContext());
} }
// ::: wrapped list // ::: wrapped list
private List makeWrappedList() { private List makeWrappedList() {
var list = new LinkedList(); var list = new LinkedList();
wrapList(entities, list); wrapList(entities, list);
return list; return list;
} }
// ::: wrapper // ::: wrapper
// //
private void wrapList(List<AuthUserRelationEntity> found, List output) { private void wrapList(List<AuthUserRelationEntity> found, List output) {
var builder = new AuthUserRelationMapBuilder().addListGroup(); var builder = new AuthUserRelationMapBuilder().addListGroup();
builder.getAuthUserBuilder().addMainGroup(); builder.getAuthUserBuilder().addMainGroup();
output.addAll(builder.build(getContext(), found)); output.addAll(builder.build(getContext(), found));
} }
} }
@@ -1,33 +1,33 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.action.authuserrelation; package io.kumare.iqr.mod.authentication.action.authuserrelation;
// app // app
import io.kumare.iqr.app.action.AppListActionArgument; import io.kumare.iqr.app.action.AppListActionArgument;
// store // store
import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity; import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AuthUserRelationListArgument extends AppListActionArgument<AuthUserRelationEntity> { public class AuthUserRelationListArgument extends AppListActionArgument<AuthUserRelationEntity> {
// ::: vars // ::: vars
// //
// ::: constructors // ::: constructors
// //
public AuthUserRelationListArgument() { public AuthUserRelationListArgument() {
} }
public AuthUserRelationListArgument(AuthUserRelationEntity entity) { public AuthUserRelationListArgument(AuthUserRelationEntity entity) {
super(entity); super(entity);
} }
// ::: fields // ::: fields
// //
} }
@@ -1,105 +1,105 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.action.authuserrelation; package io.kumare.iqr.mod.authentication.action.authuserrelation;
// java // java
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
// lib // lib
import io.kumare.lib.v.V; import io.kumare.lib.v.V;
// base // base
import io.kumare.iqr.app.AppErrors; import io.kumare.iqr.app.AppErrors;
import io.kumare.iqr.app.action.AppAction; import io.kumare.iqr.app.action.AppAction;
import io.kumare.iqr.app.module.AppModules; import io.kumare.iqr.app.module.AppModules;
// module // module
import io.kumare.iqr.mod.authentication.AuthenticationErrors; import io.kumare.iqr.mod.authentication.AuthenticationErrors;
// entity // entity
import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity; import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity;
// relations // relations
import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AuthUserRelationPreloadAction extends AppAction<AuthUserRelationPreloadArgument, Map> { public class AuthUserRelationPreloadAction extends AppAction<AuthUserRelationPreloadArgument, Map> {
// ::: vars // ::: vars
// //
private final Map result = new HashMap(); private final Map result = new HashMap();
private Map<String, Object> params = new HashMap<>(); private Map<String, Object> params = new HashMap<>();
// ::: protected api // ::: protected api
// //
@Override @Override
protected void checkArgument() { protected void checkArgument() {
V.ifNull(getArgument(), AppErrors.action_arg_notfound); V.ifNull(getArgument(), AppErrors.action_arg_notfound);
V.ifEmpty(getArgument().getAction(), AuthenticationErrors.authuserrelation_preload_empty); V.ifEmpty(getArgument().getAction(), AuthenticationErrors.authuserrelation_preload_empty);
} }
@Override @Override
protected void doAction() { protected void doAction() {
if(getArgument().getParams() != null) { if(getArgument().getParams() != null) {
params = getArgument().getParams(); params = getArgument().getParams();
} }
switch (getArgument().getAction()) { switch (getArgument().getAction()) {
case "find" -> case "find" ->
prepareFind(); prepareFind();
case "list" -> case "list" ->
prepareList(); prepareList();
case "add" -> case "add" ->
prepareAdd(); prepareAdd();
case "edit" -> case "edit" ->
prepareEdit(); prepareEdit();
} }
} }
@Override @Override
protected void setResultOnly() { protected void setResultOnly() {
setResult(result); setResult(result);
} }
// ::: preload // ::: preload
// //
private void prepareAdd() { private void prepareAdd() {
result.put("authUsers", listAuthUsers()); result.put("authUsers", listAuthUsers());
} }
private void prepareEdit() { private void prepareEdit() {
var entity = findEntity(); var entity = findEntity();
result.put("entity", entity); result.put("entity", entity);
result.put("authUser", entity.getAuthUser()); result.put("authUser", entity.getAuthUser());
} }
private void prepareList() { private void prepareList() {
} }
private void prepareFind() { private void prepareFind() {
var entity = findEntity(); var entity = findEntity();
result.put("entity", entity); result.put("entity", entity);
result.put("authUser", entity.getAuthUser()); result.put("authUser", entity.getAuthUser());
} }
// ::: queries // ::: queries
// //
private AuthUserRelationEntity findEntity() { private AuthUserRelationEntity findEntity() {
var store = AppModules.authentication.getController().getAuthUserRelationStore(); var store = AppModules.authentication.getController().getAuthUserRelationStore();
var id = (String) params.get("id"); var id = (String) params.get("id");
if(id == null && getArgument().getEntity() != null) { if(id == null && getArgument().getEntity() != null) {
id = getArgument().getEntity().getId(); id = getArgument().getEntity().getId();
} }
return store.findById(getContext(), id); return store.findById(getContext(), id);
} }
public List<AuthUserEntity> listAuthUsers() { public List<AuthUserEntity> listAuthUsers() {
var store = AppModules.authentication.getController().getAuthUserStore(); var store = AppModules.authentication.getController().getAuthUserStore();
return store.listAll(getContext()); return store.listAll(getContext());
} }
} }
@@ -1,26 +1,26 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.action.authuserrelation; package io.kumare.iqr.mod.authentication.action.authuserrelation;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AuthUserRelationPreloadArgument extends AuthUserRelationActionArgument { public class AuthUserRelationPreloadArgument extends AuthUserRelationActionArgument {
// ::: vars // ::: vars
// //
private String action; private String action;
// ::: fields // ::: fields
// //
public String getAction() { public String getAction() {
return action; return action;
} }
public void setAction(String action) { public void setAction(String action) {
this.action = action; this.action = action;
} }
} }
@@ -1,214 +1,214 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.endpoint.rest; package io.kumare.iqr.mod.authentication.endpoint.rest;
// java // java
import java.util.Map; import java.util.Map;
// openapi // openapi
import io.swagger.v3.oas.annotations.*; import io.swagger.v3.oas.annotations.*;
import io.swagger.v3.oas.annotations.media.*; import io.swagger.v3.oas.annotations.media.*;
import io.swagger.v3.oas.annotations.responses.*; import io.swagger.v3.oas.annotations.responses.*;
// spring // spring
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
// base // base
import io.kumare.lib.app.api.operation.TransactionType; import io.kumare.lib.app.api.operation.TransactionType;
import io.kumare.lib.app.api.security.PermissionReference; import io.kumare.lib.app.api.security.PermissionReference;
// app // app
import io.kumare.iqr.app.endpoint.rest.AppEndpointRest; import io.kumare.iqr.app.endpoint.rest.AppEndpointRest;
import io.kumare.iqr.app.action.*; import io.kumare.iqr.app.action.*;
// module // module
import io.kumare.iqr.mod.authentication.AuthenticationPermissions; import io.kumare.iqr.mod.authentication.AuthenticationPermissions;
import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity; import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity;
import io.kumare.iqr.mod.authentication.action.authuserrelation.*; import io.kumare.iqr.mod.authentication.action.authuserrelation.*;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public abstract class AbstractAuthUserRelationRest extends AppEndpointRest { public abstract class AbstractAuthUserRelationRest extends AppEndpointRest {
// ::: DEFAULT PERMISSIONS // ::: DEFAULT PERMISSIONS
// //
protected PermissionReference getPermission(String action, String ref, Object extra) { protected PermissionReference getPermission(String action, String ref, Object extra) {
switch (action) { switch (action) {
case null -> { case null -> {
return null; return null;
} }
case "add" -> { case "add" -> {
return AuthenticationPermissions.auth_user_relation_worker.toReference(ref); return AuthenticationPermissions.auth_user_relation_worker.toReference(ref);
} }
case "edit" -> { case "edit" -> {
return AuthenticationPermissions.auth_user_relation_worker.toReference(ref); return AuthenticationPermissions.auth_user_relation_worker.toReference(ref);
} }
case "enable" -> { case "enable" -> {
return AuthenticationPermissions.auth_user_relation_manager.toReference(ref); return AuthenticationPermissions.auth_user_relation_manager.toReference(ref);
} }
case "disable" -> { case "disable" -> {
return AuthenticationPermissions.auth_user_relation_manager.toReference(ref); return AuthenticationPermissions.auth_user_relation_manager.toReference(ref);
} }
case "delete" -> { case "delete" -> {
return AuthenticationPermissions.auth_user_relation_manager.toReference(ref); return AuthenticationPermissions.auth_user_relation_manager.toReference(ref);
} }
case "find" -> { case "find" -> {
return AuthenticationPermissions.auth_user_relation_viewer.toReference(ref); return AuthenticationPermissions.auth_user_relation_viewer.toReference(ref);
} }
case "list" -> { case "list" -> {
return AuthenticationPermissions.auth_user_relation_viewer.toReference(ref); return AuthenticationPermissions.auth_user_relation_viewer.toReference(ref);
} }
default -> { default -> {
return null; return null;
} }
} }
} }
// ::: ADD // ::: ADD
// //
@ApiResponses(value = { @ApiResponses(value = {
@ApiResponse(content = @Content(mediaType = "application/json", @ApiResponse(content = @Content(mediaType = "application/json",
schema = @Schema(implementation = AppEntityActionResult.class))) schema = @Schema(implementation = AppEntityActionResult.class)))
}) })
@Operation(summary = "auth user relation add operation", description = "") @Operation(summary = "auth user relation add operation", description = "")
// //
@PostMapping @PostMapping
public ResponseEntity add(@RequestBody AuthUserRelationAddArgument arg) { public ResponseEntity add(@RequestBody AuthUserRelationAddArgument arg) {
var permission = getPermission("add", null, arg); var permission = getPermission("add", null, arg);
return handle(new AuthUserRelationAddAction(), arg, permission, TransactionType.service); return handle(new AuthUserRelationAddAction(), arg, permission, TransactionType.service);
} }
// ::: EDIT // ::: EDIT
// //
@ApiResponses(value = { @ApiResponses(value = {
@ApiResponse(content = @Content(mediaType = "application/json", @ApiResponse(content = @Content(mediaType = "application/json",
schema = @Schema(implementation = AppEntityActionResult.class))) schema = @Schema(implementation = AppEntityActionResult.class)))
}) })
@Operation(summary = "auth user relation edit operation", description = "") @Operation(summary = "auth user relation edit operation", description = "")
// //
@PutMapping("/{id}") @PutMapping("/{id}")
public ResponseEntity edit(@PathVariable("id") String id, public ResponseEntity edit(@PathVariable("id") String id,
@RequestBody AuthUserRelationEditArgument arg) { @RequestBody AuthUserRelationEditArgument arg) {
arg.getEntity().id(id); arg.getEntity().id(id);
var permission = getPermission("edit", id, arg); var permission = getPermission("edit", id, arg);
return handle(new AuthUserRelationEditAction(), arg, permission, TransactionType.service); return handle(new AuthUserRelationEditAction(), arg, permission, TransactionType.service);
} }
// ::: FIND // ::: FIND
// //
@ApiResponses(value = { @ApiResponses(value = {
@ApiResponse(content = @Content(mediaType = "application/json", @ApiResponse(content = @Content(mediaType = "application/json",
schema = @Schema(implementation = Map.class))) schema = @Schema(implementation = Map.class)))
}) })
@Operation(summary = "auth user relation find operation", description = "") @Operation(summary = "auth user relation find operation", description = "")
// //
@GetMapping("/{id}") @GetMapping("/{id}")
public ResponseEntity find(@PathVariable("id") String id, public ResponseEntity find(@PathVariable("id") String id,
@ModelAttribute AuthUserRelationActionArgument arg) { @ModelAttribute AuthUserRelationActionArgument arg) {
arg = arg == null ? new AuthUserRelationActionArgument() : arg; arg = arg == null ? new AuthUserRelationActionArgument() : arg;
arg.entity(new AuthUserRelationEntity(id)); arg.entity(new AuthUserRelationEntity(id));
var permission = getPermission("find", id, arg); var permission = getPermission("find", id, arg);
return handle(new AuthUserRelationFindAction(), arg, permission); return handle(new AuthUserRelationFindAction(), arg, permission);
} }
// ::: ENABLE // ::: ENABLE
// //
/* /*
@ApiResponses(value = { @ApiResponses(value = {
@ApiResponse(content = @Content(mediaType = "application/json", @ApiResponse(content = @Content(mediaType = "application/json",
schema = @Schema(implementation = AppActionResult.class))) schema = @Schema(implementation = AppActionResult.class)))
}) })
@Operation(summary = "auth user relation enable operation", description = "") @Operation(summary = "auth user relation enable operation", description = "")
// //
@PutMapping("/{id}/enable") @PutMapping("/{id}/enable")
public ResponseEntity enable(@PathVariable("id") String id) { public ResponseEntity enable(@PathVariable("id") String id) {
var arg = new AuthUserRelationActionArgument(); var arg = new AuthUserRelationActionArgument();
arg.setEntity(new AuthUserRelationEntity(id)); arg.setEntity(new AuthUserRelationEntity(id));
arg.getEntity().setActive(true); arg.getEntity().setActive(true);
var permission = getPermission("disable", id, arg); var permission = getPermission("disable", id, arg);
return handle(new AuthUserRelationEnableAction(), arg, permission, TransactionType.service); return handle(new AuthUserRelationEnableAction(), arg, permission, TransactionType.service);
} }
*/ */
// ::: DISABLE // ::: DISABLE
// //
/* /*
@ApiResponses(value = { @ApiResponses(value = {
@ApiResponse(content = @Content(mediaType = "application/json", @ApiResponse(content = @Content(mediaType = "application/json",
schema = @Schema(implementation = AppActionResult.class))) schema = @Schema(implementation = AppActionResult.class)))
}) })
@Operation(summary = "auth user relation disable operation", description = "") @Operation(summary = "auth user relation disable operation", description = "")
// //
@PutMapping("/{id}/disable") @PutMapping("/{id}/disable")
public ResponseEntity disable(@PathVariable("id") String id) { public ResponseEntity disable(@PathVariable("id") String id) {
var arg = new AuthUserRelationActionArgument(); var arg = new AuthUserRelationActionArgument();
arg.setEntity(new AuthUserRelationEntity(id)); arg.setEntity(new AuthUserRelationEntity(id));
arg.getEntity().setActive(false); arg.getEntity().setActive(false);
var permission = getPermission("disable", id, arg); var permission = getPermission("disable", id, arg);
return handle(new AuthUserRelationEnableAction(), arg, permission, TransactionType.service); return handle(new AuthUserRelationEnableAction(), arg, permission, TransactionType.service);
} }
*/ */
// ::: LIST // ::: LIST
// //
@ApiResponses(value = { @ApiResponses(value = {
@ApiResponse(content = @Content(mediaType = "application/json", @ApiResponse(content = @Content(mediaType = "application/json",
schema = @Schema(implementation = Map.class))) schema = @Schema(implementation = Map.class)))
}) })
@Operation(summary = "auth user relation list operation", description = "") @Operation(summary = "auth user relation list operation", description = "")
// //
@GetMapping @GetMapping
public ResponseEntity list(@ModelAttribute AuthUserRelationListArgument arg) { public ResponseEntity list(@ModelAttribute AuthUserRelationListArgument arg) {
arg = arg == null ? new AuthUserRelationListArgument() : arg; arg = arg == null ? new AuthUserRelationListArgument() : arg;
var permission = getPermission("list", null, arg); var permission = getPermission("list", null, arg);
return handle(new AuthUserRelationListAction(), arg, permission); return handle(new AuthUserRelationListAction(), arg, permission);
} }
// ::: DELETE // ::: DELETE
// //
@ApiResponses(value = { @ApiResponses(value = {
@ApiResponse(content = @Content(mediaType = "application/json", @ApiResponse(content = @Content(mediaType = "application/json",
schema = @Schema(implementation = AppActionResult.class))) schema = @Schema(implementation = AppActionResult.class)))
}) })
@Operation(summary = "auth user relation delete operation", description = "") @Operation(summary = "auth user relation delete operation", description = "")
// //
@DeleteMapping("/{id}") @DeleteMapping("/{id}")
public ResponseEntity delete(@PathVariable("id") String id) { public ResponseEntity delete(@PathVariable("id") String id) {
var arg = new AuthUserRelationActionArgument(); var arg = new AuthUserRelationActionArgument();
arg.setEntity(new AuthUserRelationEntity(id)); arg.setEntity(new AuthUserRelationEntity(id));
var permission = getPermission("delete", id, arg); var permission = getPermission("delete", id, arg);
return handle(new AuthUserRelationDeleteAction(), arg, permission, TransactionType.service); return handle(new AuthUserRelationDeleteAction(), arg, permission, TransactionType.service);
} }
// ::: PRELOAD // ::: PRELOAD
// //
@ApiResponses(value = { @ApiResponses(value = {
@ApiResponse(content = @Content(mediaType = "application/json", @ApiResponse(content = @Content(mediaType = "application/json",
schema = @Schema(implementation = Map.class))) schema = @Schema(implementation = Map.class)))
}) })
@Operation(summary = "auth user relation preload operation", description = "") @Operation(summary = "auth user relation preload operation", description = "")
// //
@PostMapping("/preload") @PostMapping("/preload")
public ResponseEntity preload(@RequestBody AuthUserRelationPreloadArgument arg) { public ResponseEntity preload(@RequestBody AuthUserRelationPreloadArgument arg) {
var permission = getPermission(arg.getAction(), null, arg); var permission = getPermission(arg.getAction(), null, arg);
return handle(new AuthUserRelationPreloadAction(), arg, permission); return handle(new AuthUserRelationPreloadAction(), arg, permission);
} }
} }
@@ -1,214 +1,214 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.endpoint.rest; package io.kumare.iqr.mod.authentication.endpoint.rest;
// java // java
import java.util.Map; import java.util.Map;
// openapi // openapi
import io.swagger.v3.oas.annotations.*; import io.swagger.v3.oas.annotations.*;
import io.swagger.v3.oas.annotations.media.*; import io.swagger.v3.oas.annotations.media.*;
import io.swagger.v3.oas.annotations.responses.*; import io.swagger.v3.oas.annotations.responses.*;
// spring // spring
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
// base // base
import io.kumare.lib.app.api.operation.TransactionType; import io.kumare.lib.app.api.operation.TransactionType;
import io.kumare.lib.app.api.security.PermissionReference; import io.kumare.lib.app.api.security.PermissionReference;
// app // app
import io.kumare.iqr.app.endpoint.rest.AppEndpointRest; import io.kumare.iqr.app.endpoint.rest.AppEndpointRest;
import io.kumare.iqr.app.action.*; import io.kumare.iqr.app.action.*;
// module // module
import io.kumare.iqr.mod.authentication.AuthenticationPermissions; import io.kumare.iqr.mod.authentication.AuthenticationPermissions;
import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity;
import io.kumare.iqr.mod.authentication.action.authuser.*; import io.kumare.iqr.mod.authentication.action.authuser.*;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public abstract class AbstractAuthUserRest extends AppEndpointRest { public abstract class AbstractAuthUserRest extends AppEndpointRest {
// ::: DEFAULT PERMISSIONS // ::: DEFAULT PERMISSIONS
// //
protected PermissionReference getPermission(String action, String ref, Object extra) { protected PermissionReference getPermission(String action, String ref, Object extra) {
switch (action) { switch (action) {
case null -> { case null -> {
return null; return null;
} }
case "add" -> { case "add" -> {
return AuthenticationPermissions.auth_user_worker.toReference(ref); return AuthenticationPermissions.auth_user_worker.toReference(ref);
} }
case "edit" -> { case "edit" -> {
return AuthenticationPermissions.auth_user_worker.toReference(ref); return AuthenticationPermissions.auth_user_worker.toReference(ref);
} }
case "enable" -> { case "enable" -> {
return AuthenticationPermissions.auth_user_manager.toReference(ref); return AuthenticationPermissions.auth_user_manager.toReference(ref);
} }
case "disable" -> { case "disable" -> {
return AuthenticationPermissions.auth_user_manager.toReference(ref); return AuthenticationPermissions.auth_user_manager.toReference(ref);
} }
case "delete" -> { case "delete" -> {
return AuthenticationPermissions.auth_user_manager.toReference(ref); return AuthenticationPermissions.auth_user_manager.toReference(ref);
} }
case "find" -> { case "find" -> {
return AuthenticationPermissions.auth_user_viewer.toReference(ref); return AuthenticationPermissions.auth_user_viewer.toReference(ref);
} }
case "list" -> { case "list" -> {
return AuthenticationPermissions.auth_user_viewer.toReference(ref); return AuthenticationPermissions.auth_user_viewer.toReference(ref);
} }
default -> { default -> {
return null; return null;
} }
} }
} }
// ::: ADD // ::: ADD
// //
@ApiResponses(value = { @ApiResponses(value = {
@ApiResponse(content = @Content(mediaType = "application/json", @ApiResponse(content = @Content(mediaType = "application/json",
schema = @Schema(implementation = AppEntityActionResult.class))) schema = @Schema(implementation = AppEntityActionResult.class)))
}) })
@Operation(summary = "auth user add operation", description = "") @Operation(summary = "auth user add operation", description = "")
// //
@PostMapping @PostMapping
public ResponseEntity add(@RequestBody AuthUserAddArgument arg) { public ResponseEntity add(@RequestBody AuthUserAddArgument arg) {
var permission = getPermission("add", null, arg); var permission = getPermission("add", null, arg);
return handle(new AuthUserAddAction(), arg, permission, TransactionType.service); return handle(new AuthUserAddAction(), arg, permission, TransactionType.service);
} }
// ::: EDIT // ::: EDIT
// //
@ApiResponses(value = { @ApiResponses(value = {
@ApiResponse(content = @Content(mediaType = "application/json", @ApiResponse(content = @Content(mediaType = "application/json",
schema = @Schema(implementation = AppEntityActionResult.class))) schema = @Schema(implementation = AppEntityActionResult.class)))
}) })
@Operation(summary = "auth user edit operation", description = "") @Operation(summary = "auth user edit operation", description = "")
// //
@PutMapping("/{id}") @PutMapping("/{id}")
public ResponseEntity edit(@PathVariable("id") String id, public ResponseEntity edit(@PathVariable("id") String id,
@RequestBody AuthUserEditArgument arg) { @RequestBody AuthUserEditArgument arg) {
arg.getEntity().id(id); arg.getEntity().id(id);
var permission = getPermission("edit", id, arg); var permission = getPermission("edit", id, arg);
return handle(new AuthUserEditAction(), arg, permission, TransactionType.service); return handle(new AuthUserEditAction(), arg, permission, TransactionType.service);
} }
// ::: FIND // ::: FIND
// //
@ApiResponses(value = { @ApiResponses(value = {
@ApiResponse(content = @Content(mediaType = "application/json", @ApiResponse(content = @Content(mediaType = "application/json",
schema = @Schema(implementation = Map.class))) schema = @Schema(implementation = Map.class)))
}) })
@Operation(summary = "auth user find operation", description = "") @Operation(summary = "auth user find operation", description = "")
// //
@GetMapping("/{id}") @GetMapping("/{id}")
public ResponseEntity find(@PathVariable("id") String id, public ResponseEntity find(@PathVariable("id") String id,
@ModelAttribute AuthUserActionArgument arg) { @ModelAttribute AuthUserActionArgument arg) {
arg = arg == null ? new AuthUserActionArgument() : arg; arg = arg == null ? new AuthUserActionArgument() : arg;
arg.entity(new AuthUserEntity(id)); arg.entity(new AuthUserEntity(id));
var permission = getPermission("find", id, arg); var permission = getPermission("find", id, arg);
return handle(new AuthUserFindAction(), arg, permission); return handle(new AuthUserFindAction(), arg, permission);
} }
// ::: ENABLE // ::: ENABLE
// //
/* /*
@ApiResponses(value = { @ApiResponses(value = {
@ApiResponse(content = @Content(mediaType = "application/json", @ApiResponse(content = @Content(mediaType = "application/json",
schema = @Schema(implementation = AppActionResult.class))) schema = @Schema(implementation = AppActionResult.class)))
}) })
@Operation(summary = "auth user enable operation", description = "") @Operation(summary = "auth user enable operation", description = "")
// //
@PutMapping("/{id}/enable") @PutMapping("/{id}/enable")
public ResponseEntity enable(@PathVariable("id") String id) { public ResponseEntity enable(@PathVariable("id") String id) {
var arg = new AuthUserActionArgument(); var arg = new AuthUserActionArgument();
arg.setEntity(new AuthUserEntity(id)); arg.setEntity(new AuthUserEntity(id));
arg.getEntity().setActive(true); arg.getEntity().setActive(true);
var permission = getPermission("disable", id, arg); var permission = getPermission("disable", id, arg);
return handle(new AuthUserEnableAction(), arg, permission, TransactionType.service); return handle(new AuthUserEnableAction(), arg, permission, TransactionType.service);
} }
*/ */
// ::: DISABLE // ::: DISABLE
// //
/* /*
@ApiResponses(value = { @ApiResponses(value = {
@ApiResponse(content = @Content(mediaType = "application/json", @ApiResponse(content = @Content(mediaType = "application/json",
schema = @Schema(implementation = AppActionResult.class))) schema = @Schema(implementation = AppActionResult.class)))
}) })
@Operation(summary = "auth user disable operation", description = "") @Operation(summary = "auth user disable operation", description = "")
// //
@PutMapping("/{id}/disable") @PutMapping("/{id}/disable")
public ResponseEntity disable(@PathVariable("id") String id) { public ResponseEntity disable(@PathVariable("id") String id) {
var arg = new AuthUserActionArgument(); var arg = new AuthUserActionArgument();
arg.setEntity(new AuthUserEntity(id)); arg.setEntity(new AuthUserEntity(id));
arg.getEntity().setActive(false); arg.getEntity().setActive(false);
var permission = getPermission("disable", id, arg); var permission = getPermission("disable", id, arg);
return handle(new AuthUserEnableAction(), arg, permission, TransactionType.service); return handle(new AuthUserEnableAction(), arg, permission, TransactionType.service);
} }
*/ */
// ::: LIST // ::: LIST
// //
@ApiResponses(value = { @ApiResponses(value = {
@ApiResponse(content = @Content(mediaType = "application/json", @ApiResponse(content = @Content(mediaType = "application/json",
schema = @Schema(implementation = Map.class))) schema = @Schema(implementation = Map.class)))
}) })
@Operation(summary = "auth user list operation", description = "") @Operation(summary = "auth user list operation", description = "")
// //
@GetMapping @GetMapping
public ResponseEntity list(@ModelAttribute AuthUserListArgument arg) { public ResponseEntity list(@ModelAttribute AuthUserListArgument arg) {
arg = arg == null ? new AuthUserListArgument() : arg; arg = arg == null ? new AuthUserListArgument() : arg;
var permission = getPermission("list", null, arg); var permission = getPermission("list", null, arg);
return handle(new AuthUserListAction(), arg, permission); return handle(new AuthUserListAction(), arg, permission);
} }
// ::: DELETE // ::: DELETE
// //
@ApiResponses(value = { @ApiResponses(value = {
@ApiResponse(content = @Content(mediaType = "application/json", @ApiResponse(content = @Content(mediaType = "application/json",
schema = @Schema(implementation = AppActionResult.class))) schema = @Schema(implementation = AppActionResult.class)))
}) })
@Operation(summary = "auth user delete operation", description = "") @Operation(summary = "auth user delete operation", description = "")
// //
@DeleteMapping("/{id}") @DeleteMapping("/{id}")
public ResponseEntity delete(@PathVariable("id") String id) { public ResponseEntity delete(@PathVariable("id") String id) {
var arg = new AuthUserActionArgument(); var arg = new AuthUserActionArgument();
arg.setEntity(new AuthUserEntity(id)); arg.setEntity(new AuthUserEntity(id));
var permission = getPermission("delete", id, arg); var permission = getPermission("delete", id, arg);
return handle(new AuthUserDeleteAction(), arg, permission, TransactionType.service); return handle(new AuthUserDeleteAction(), arg, permission, TransactionType.service);
} }
// ::: PRELOAD // ::: PRELOAD
// //
@ApiResponses(value = { @ApiResponses(value = {
@ApiResponse(content = @Content(mediaType = "application/json", @ApiResponse(content = @Content(mediaType = "application/json",
schema = @Schema(implementation = Map.class))) schema = @Schema(implementation = Map.class)))
}) })
@Operation(summary = "auth user preload operation", description = "") @Operation(summary = "auth user preload operation", description = "")
// //
@PostMapping("/preload") @PostMapping("/preload")
public ResponseEntity preload(@RequestBody AuthUserPreloadArgument arg) { public ResponseEntity preload(@RequestBody AuthUserPreloadArgument arg) {
var permission = getPermission(arg.getAction(), null, arg); var permission = getPermission(arg.getAction(), null, arg);
return handle(new AuthUserPreloadAction(), arg, permission); return handle(new AuthUserPreloadAction(), arg, permission);
} }
} }
@@ -1,24 +1,24 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.endpoint.rest; package io.kumare.iqr.mod.authentication.endpoint.rest;
// java // java
import io.swagger.v3.oas.annotations.tags.*; import io.swagger.v3.oas.annotations.tags.*;
// spring // spring
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
// openapi // openapi
//@Tag(name = "auth user relation rest endpoint") //@Tag(name = "auth user relation rest endpoint")
// //
//@RestController //@RestController
//@RequestMapping("/authentication/auth-user-relations") //@RequestMapping("/authentication/auth-user-relations")
public class AuthUserRelationRest extends AbstractAuthUserRelationRest { public class AuthUserRelationRest extends AbstractAuthUserRelationRest {
} }
@@ -1,24 +1,24 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.endpoint.rest; package io.kumare.iqr.mod.authentication.endpoint.rest;
// java // java
import io.swagger.v3.oas.annotations.tags.*; import io.swagger.v3.oas.annotations.tags.*;
// spring // spring
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
// openapi // openapi
//@Tag(name = "auth user rest endpoint") //@Tag(name = "auth user rest endpoint")
// //
//@RestController //@RestController
//@RequestMapping("/authentication/auth-users") //@RequestMapping("/authentication/auth-users")
public class AuthUserRest extends AbstractAuthUserRest { public class AuthUserRest extends AbstractAuthUserRest {
} }
@@ -1,102 +1,102 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.store; package io.kumare.iqr.mod.authentication.store;
// base // base
// base // base
import io.kumare.lib.app.api.module.ServiceModule; import io.kumare.lib.app.api.module.ServiceModule;
import io.kumare.lib.app.api.store.EntityStore; import io.kumare.lib.app.api.store.EntityStore;
import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor;
// app // app
import io.kumare.iqr.app.AppEngine; import io.kumare.iqr.app.AppEngine;
import io.kumare.iqr.app.module.AppModules; import io.kumare.iqr.app.module.AppModules;
import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; 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.authuser.AuthUserStore;
import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity; import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationEntity;
import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationStore; import io.kumare.iqr.mod.authentication.store.authuserrelation.AuthUserRelationStore;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public enum AuthenticationEntities implements EntityDescriptor { public enum AuthenticationEntities implements EntityDescriptor {
authUser(AuthUserEntity.class, AuthUserStore.class), authUser(AuthUserEntity.class, AuthUserStore.class),
authUserRelation(AuthUserRelationEntity.class, AuthUserRelationStore.class); authUserRelation(AuthUserRelationEntity.class, AuthUserRelationStore.class);
// ::: vars // ::: vars
// //
private final Class entityClass; private final Class entityClass;
private final Class storeClass; private final Class storeClass;
// ::: constructor // ::: constructor
// //
AuthenticationEntities(Class entityClass, Class storeClass) { AuthenticationEntities(Class entityClass, Class storeClass) {
this.entityClass = entityClass; this.entityClass = entityClass;
this.storeClass = storeClass; this.storeClass = storeClass;
} }
// ::: entity descriptor api // ::: entity descriptor api
// //
@Override @Override
public String getName() { public String getName() {
return name(); return name();
} }
@Override @Override
public ServiceModule getModule() { public ServiceModule getModule() {
return AppModules.authentication; return AppModules.authentication;
} }
@Override @Override
public Class getEntityClass() { public Class getEntityClass() {
return entityClass; return entityClass;
} }
@Override @Override
public Class getStoreClass() { public Class getStoreClass() {
return storeClass; return storeClass;
} }
@Override @Override
public EntityStore getStore() { public EntityStore getStore() {
return (EntityStore) AppEngine.getEngine().getInnerContext().getBean(storeClass); return (EntityStore) AppEngine.getEngine().getInnerContext().getBean(storeClass);
} }
// ::: statics // ::: statics
// //
public static boolean hasDescriptor(String name) { public static boolean hasDescriptor(String name) {
try { try {
var value = valueOf(name); var value = valueOf(name);
return value != null; return value != null;
} catch (Throwable t) { } catch (Throwable t) {
return false; return false;
} }
} }
public static EntityDescriptor descriptorOf(String name) { public static EntityDescriptor descriptorOf(String name) {
try { try {
return valueOf(name); return valueOf(name);
} catch (Throwable t) { } catch (Throwable t) {
return null; return null;
} }
} }
public static EntityDescriptor descriptorOf(Class entityClass) { public static EntityDescriptor descriptorOf(Class entityClass) {
try { try {
for (var i : values()) { for (var i : values()) {
if (i.entityClass == entityClass) { if (i.entityClass == entityClass) {
return i; return i;
} }
} }
} catch (Throwable t) { } catch (Throwable t) {
} }
return null; return null;
} }
} }
@@ -1,25 +1,25 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.store.authuser; package io.kumare.iqr.mod.authentication.store.authuser;
// base // base
import io.kumare.iqr.app.store.AppExtendedEntityData; import io.kumare.iqr.app.store.AppExtendedEntityData;
// imports // imports
public class AuthUserData extends AppExtendedEntityData { public class AuthUserData extends AppExtendedEntityData {
// ::: vars // ::: vars
// //
// ::: fields // ::: fields
// //
// ::: fluent // ::: fluent
// //
} }
@@ -1,179 +1,179 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.store.authuser; package io.kumare.iqr.mod.authentication.store.authuser;
// jakarta // jakarta
import jakarta.persistence.Entity; import jakarta.persistence.Entity;
import jakarta.persistence.Index; import jakarta.persistence.Index;
import jakarta.persistence.Table; import jakarta.persistence.Table;
// base // base
import io.kumare.lib.app.api.store.*; import io.kumare.lib.app.api.store.*;
import io.kumare.iqr.app.store.*; import io.kumare.iqr.app.store.*;
// imports // imports
// relations // relations
// annotations // annotations
@Entity @Entity
@Table( @Table(
name = "auth_user", name = "auth_user",
indexes = { indexes = {
@Index(name = "idx_auth_user_external_id", columnList = "externalId"), @Index(name = "idx_auth_user_external_id", columnList = "externalId"),
@Index(name = "idx_auth_user_entity_key", columnList = "entityKey"), @Index(name = "idx_auth_user_entity_key", columnList = "entityKey"),
@Index(name = "idx_auth_user_custom", columnList = "custom"), @Index(name = "idx_auth_user_custom", columnList = "custom"),
@Index(name = "idx_auth_user_visible", columnList = "visible"), @Index(name = "idx_auth_user_visible", columnList = "visible"),
@Index(name = "idx_auth_user_email", columnList = "email"), @Index(name = "idx_auth_user_email", columnList = "email"),
@Index(name = "idx_auth_user_email_confirmed", columnList = "emailConfirmed"), @Index(name = "idx_auth_user_email_confirmed", columnList = "emailConfirmed"),
@Index(name = "idx_auth_user_phone", columnList = "phone"), @Index(name = "idx_auth_user_phone", columnList = "phone"),
@Index(name = "idx_auth_user_phone_confirmed", columnList = "phoneConfirmed"), @Index(name = "idx_auth_user_phone_confirmed", columnList = "phoneConfirmed"),
@Index(name = "idx_auth_user_name", columnList = "name") @Index(name = "idx_auth_user_name", columnList = "name")
} }
) )
public class AuthUserEntity extends AppEntity implements SupportedEntityKey { public class AuthUserEntity extends AppEntity implements SupportedEntityKey {
// ::: vars // ::: vars
// //
private String externalId; private String externalId;
private String entityKey; private String entityKey;
private boolean custom; private boolean custom;
private boolean visible; private boolean visible;
private String email; private String email;
private boolean emailConfirmed; private boolean emailConfirmed;
private String phone; private String phone;
private boolean phoneConfirmed; private boolean phoneConfirmed;
private String name; private String name;
// relations // relations
// ::: constructors // ::: constructors
// //
public AuthUserEntity() { public AuthUserEntity() {
} }
public AuthUserEntity(String id) { public AuthUserEntity(String id) {
super(id); super(id);
} }
// ::: fields // ::: fields
// //
public String getExternalId() { public String getExternalId() {
return externalId; return externalId;
} }
public void setExternalId(String externalId) { public void setExternalId(String externalId) {
this.externalId = externalId; this.externalId = externalId;
} }
public String getEntityKey() { public String getEntityKey() {
return entityKey; return entityKey;
} }
public void setEntityKey(String entityKey) { public void setEntityKey(String entityKey) {
this.entityKey = entityKey; this.entityKey = entityKey;
} }
public boolean isCustom() { public boolean isCustom() {
return custom; return custom;
} }
public void setCustom(boolean custom) { public void setCustom(boolean custom) {
this.custom = custom; this.custom = custom;
} }
public boolean isVisible() { public boolean isVisible() {
return visible; return visible;
} }
public void setVisible(boolean visible) { public void setVisible(boolean visible) {
this.visible = visible; this.visible = visible;
} }
public String getEmail() { public String getEmail() {
return email; return email;
} }
public void setEmail(String email) { public void setEmail(String email) {
this.email = email; this.email = email;
} }
public boolean isEmailConfirmed() { public boolean isEmailConfirmed() {
return emailConfirmed; return emailConfirmed;
} }
public void setEmailConfirmed(boolean emailConfirmed) { public void setEmailConfirmed(boolean emailConfirmed) {
this.emailConfirmed = emailConfirmed; this.emailConfirmed = emailConfirmed;
} }
public String getPhone() { public String getPhone() {
return phone; return phone;
} }
public void setPhone(String phone) { public void setPhone(String phone) {
this.phone = phone; this.phone = phone;
} }
public boolean isPhoneConfirmed() { public boolean isPhoneConfirmed() {
return phoneConfirmed; return phoneConfirmed;
} }
public void setPhoneConfirmed(boolean phoneConfirmed) { public void setPhoneConfirmed(boolean phoneConfirmed) {
this.phoneConfirmed = phoneConfirmed; this.phoneConfirmed = phoneConfirmed;
} }
public String getName() { public String getName() {
return name; return name;
} }
public void setName(String name) { public void setName(String name) {
this.name = name; this.name = name;
} }
// relations // relations
// ::: fluent // ::: fluent
// //
public AuthUserEntity externalId(String externalId) { public AuthUserEntity externalId(String externalId) {
setExternalId(externalId); setExternalId(externalId);
return this; return this;
} }
public AuthUserEntity entityKey(String entityKey) { public AuthUserEntity entityKey(String entityKey) {
setEntityKey(entityKey); setEntityKey(entityKey);
return this; return this;
} }
public AuthUserEntity custom(boolean custom) { public AuthUserEntity custom(boolean custom) {
setCustom(custom); setCustom(custom);
return this; return this;
} }
public AuthUserEntity visible(boolean visible) { public AuthUserEntity visible(boolean visible) {
setVisible(visible); setVisible(visible);
return this; return this;
} }
public AuthUserEntity email(String email) { public AuthUserEntity email(String email) {
setEmail(email); setEmail(email);
return this; return this;
} }
public AuthUserEntity emailConfirmed(boolean emailConfirmed) { public AuthUserEntity emailConfirmed(boolean emailConfirmed) {
setEmailConfirmed(emailConfirmed); setEmailConfirmed(emailConfirmed);
return this; return this;
} }
public AuthUserEntity phone(String phone) { public AuthUserEntity phone(String phone) {
setPhone(phone); setPhone(phone);
return this; return this;
} }
public AuthUserEntity phoneConfirmed(boolean phoneConfirmed) { public AuthUserEntity phoneConfirmed(boolean phoneConfirmed) {
setPhoneConfirmed(phoneConfirmed); setPhoneConfirmed(phoneConfirmed);
return this; return this;
} }
public AuthUserEntity name(String name) { public AuthUserEntity name(String name) {
setName(name); setName(name);
return this; return this;
} }
// relations // relations
} }
@@ -1,163 +1,163 @@
/* /*
*/ */
package io.kumare.iqr.mod.authentication.store.authuser; package io.kumare.iqr.mod.authentication.store.authuser;
// java // java
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
// base // base
import io.kumare.lib.app.api.store.EntityFieldDescriptor; import io.kumare.lib.app.api.store.EntityFieldDescriptor;
import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor;
// app // app
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public enum AuthUserFields implements EntityFieldDescriptor<AuthUserEntity> { public enum AuthUserFields implements EntityFieldDescriptor<AuthUserEntity> {
id(MAIN, FIND, LIST), id(MAIN, FIND, LIST),
externalId(MAIN, FIND, LIST), externalId(MAIN, FIND, LIST),
entityKey(MAIN, FIND, LIST), entityKey(MAIN, FIND, LIST),
custom(MAIN, FIND, LIST), custom(MAIN, FIND, LIST),
visible(MAIN, FIND, LIST), visible(MAIN, FIND, LIST),
email(MAIN, FIND, LIST), email(MAIN, FIND, LIST),
emailConfirmed(MAIN, FIND, LIST), emailConfirmed(MAIN, FIND, LIST),
phone(MAIN, FIND, LIST), phone(MAIN, FIND, LIST),
phoneConfirmed(MAIN, FIND, LIST), phoneConfirmed(MAIN, FIND, LIST),
name(MAIN, FIND, LIST), name(MAIN, FIND, LIST),
active(MAIN, FIND, LIST), active(MAIN, FIND, LIST),
inserted(AUDIT, FIND, LIST), inserted(AUDIT, FIND, LIST),
inserter(AUDIT, FIND, LIST), inserter(AUDIT, FIND, LIST),
modified(AUDIT, FIND), modified(AUDIT, FIND),
modifier(AUDIT, FIND), modifier(AUDIT, FIND),
deleted(AUDIT), deleted(AUDIT),
removed(AUDIT), removed(AUDIT),
remover(AUDIT); remover(AUDIT);
// ::: vars // ::: vars
// //
private final boolean relation; private final boolean relation;
private final EntityDescriptor entityDescriptor; private final EntityDescriptor entityDescriptor;
private final Class enumClass; private final Class enumClass;
private final List<String> groups; private final List<String> groups;
// ::: constructors // ::: constructors
// //
AuthUserFields(String... groups) { AuthUserFields(String... groups) {
this(false, null, null, groups); this(false, null, null, groups);
} }
AuthUserFields(EntityDescriptor entityDescriptor, Class enumClass, String... groups) { AuthUserFields(EntityDescriptor entityDescriptor, Class enumClass, String... groups) {
this(true, entityDescriptor, enumClass, groups); this(true, entityDescriptor, enumClass, groups);
} }
AuthUserFields(boolean relation, EntityDescriptor entityDescriptor, Class enumClass, String... groups) { AuthUserFields(boolean relation, EntityDescriptor entityDescriptor, Class enumClass, String... groups) {
this.relation = relation; this.relation = relation;
this.entityDescriptor = entityDescriptor; this.entityDescriptor = entityDescriptor;
this.enumClass = enumClass; this.enumClass = enumClass;
this.groups = groups == null ? Collections.EMPTY_LIST : Arrays.asList(groups); this.groups = groups == null ? Collections.EMPTY_LIST : Arrays.asList(groups);
} }
// ::: api // ::: api
// //
@Override @Override
public String getName() { public String getName() {
return name(); return name();
} }
@Override @Override
public boolean isRelation() { public boolean isRelation() {
return relation; return relation;
} }
@Override @Override
public Class<Enum> getRelationEnumClass() { public Class<Enum> getRelationEnumClass() {
return enumClass; return enumClass;
} }
@Override @Override
public List<String> getGroups() { public List<String> getGroups() {
return groups; return groups;
} }
@Override @Override
public EntityDescriptor getEntityDescriptor() { public EntityDescriptor getEntityDescriptor() {
return entityDescriptor; return entityDescriptor;
} }
@Override @Override
public Object fetchValue(AuthUserEntity entity) { public Object fetchValue(AuthUserEntity entity) {
if (entity == null) { if (entity == null) {
return null; return null;
} }
switch (this) { switch (this) {
case null -> { case null -> {
return null; return null;
} }
case id -> { case id -> {
return entity.getId(); return entity.getId();
} }
case externalId ->{ case externalId ->{
return entity.getExternalId(); return entity.getExternalId();
} }
case entityKey ->{ case entityKey ->{
return entity.getEntityKey(); return entity.getEntityKey();
} }
case custom ->{ case custom ->{
return entity.isCustom(); return entity.isCustom();
} }
case visible ->{ case visible ->{
return entity.isVisible(); return entity.isVisible();
} }
case email ->{ case email ->{
return entity.getEmail(); return entity.getEmail();
} }
case emailConfirmed ->{ case emailConfirmed ->{
return entity.isEmailConfirmed(); return entity.isEmailConfirmed();
} }
case phone ->{ case phone ->{
return entity.getPhone(); return entity.getPhone();
} }
case phoneConfirmed ->{ case phoneConfirmed ->{
return entity.isPhoneConfirmed(); return entity.isPhoneConfirmed();
} }
case name ->{ case name ->{
return entity.getName(); return entity.getName();
} }
case active -> { case active -> {
return entity.isActive(); return entity.isActive();
} }
case inserted -> { case inserted -> {
return entity.getInserted(); return entity.getInserted();
} }
case inserter -> { case inserter -> {
return entity.getInserter(); return entity.getInserter();
} }
case modified -> { case modified -> {
return entity.getModified(); return entity.getModified();
} }
case modifier -> { case modifier -> {
return entity.getModifier(); return entity.getModifier();
} }
case deleted -> { case deleted -> {
return entity.isDeleted(); return entity.isDeleted();
} }
case removed -> { case removed -> {
return entity.getRemoved(); return entity.getRemoved();
} }
case remover -> { case remover -> {
return entity.getRemover(); return entity.getRemover();
} }
default -> { default -> {
return null; return null;
} }
} }
} }
} }
@@ -1,93 +1,93 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.store.authuser; package io.kumare.iqr.mod.authentication.store.authuser;
// java // java
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
// base // base
import io.kumare.lib.app.api.Context; import io.kumare.lib.app.api.Context;
import io.kumare.lib.app.api.store.EntityFieldDescriptor; import io.kumare.lib.app.api.store.EntityFieldDescriptor;
import io.kumare.lib.base.server.spring.store.jpa.BaseEntityMapBuilder; import io.kumare.lib.base.server.spring.store.jpa.BaseEntityMapBuilder;
// app // app
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AuthUserMapBuilder extends BaseEntityMapBuilder<AuthUserEntity, AuthUserMapBuilder> { public class AuthUserMapBuilder extends BaseEntityMapBuilder<AuthUserEntity, AuthUserMapBuilder> {
// ::: vars // ::: vars
// //
// ::: fields // ::: fields
// //
@Override @Override
public AuthUserMapBuilder addGroup(String name, boolean cascade) { public AuthUserMapBuilder addGroup(String name, boolean cascade) {
includes.addAll(EntityFieldDescriptor.group(AuthUserFields.values(), name)); includes.addAll(EntityFieldDescriptor.group(AuthUserFields.values(), name));
return this; return this;
} }
@Override @Override
public AuthUserMapBuilder add(String fieldName) { public AuthUserMapBuilder add(String fieldName) {
includes.add(AuthUserFields.valueOf(fieldName)); includes.add(AuthUserFields.valueOf(fieldName));
return this; return this;
} }
@Override @Override
public AuthUserMapBuilder addAll(String... names) { public AuthUserMapBuilder addAll(String... names) {
for (var i : names) { for (var i : names) {
includes.add(AuthUserFields.valueOf(i)); includes.add(AuthUserFields.valueOf(i));
} }
return this; return this;
} }
@Override @Override
public AuthUserMapBuilder remove(String fieldName) { public AuthUserMapBuilder remove(String fieldName) {
excludes.add(AuthUserFields.valueOf(fieldName)); excludes.add(AuthUserFields.valueOf(fieldName));
return this; return this;
} }
@Override @Override
public AuthUserMapBuilder removeAll(String... names) { public AuthUserMapBuilder removeAll(String... names) {
for (var i : names) { for (var i : names) {
excludes.add(AuthUserFields.valueOf(i)); excludes.add(AuthUserFields.valueOf(i));
} }
return this; return this;
} }
// ::: relations // ::: relations
// //
@Override @Override
public AuthUserMapBuilder addPlains(boolean cascade) { public AuthUserMapBuilder addPlains(boolean cascade) {
includes.addAll(EntityFieldDescriptor.plains(AuthUserFields.values())); includes.addAll(EntityFieldDescriptor.plains(AuthUserFields.values()));
return this; return this;
} }
@Override @Override
public AuthUserMapBuilder addRelations(boolean cascade) { public AuthUserMapBuilder addRelations(boolean cascade) {
includes.addAll(EntityFieldDescriptor.relations(AuthUserFields.values())); includes.addAll(EntityFieldDescriptor.relations(AuthUserFields.values()));
return this; return this;
} }
// ::: internals // ::: internals
// //
@Override @Override
protected void internalAttachRelations(Context context, protected void internalAttachRelations(Context context,
AuthUserEntity entity, AuthUserEntity entity,
List<EntityFieldDescriptor> fields, List<EntityFieldDescriptor> fields,
Map<String, Object> resultMap) { Map<String, Object> resultMap) {
} }
} }
@@ -1,18 +1,18 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.store.authuser; package io.kumare.iqr.mod.authentication.store.authuser;
// spring // spring
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
// base // base
import io.kumare.iqr.app.store.*; import io.kumare.iqr.app.store.*;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
@Repository @Repository
public interface AuthUserRepository extends AppKeyEntityRepository<AuthUserEntity>{ public interface AuthUserRepository extends AppKeyEntityRepository<AuthUserEntity>{
} }
@@ -1,35 +1,35 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.store.authuser; package io.kumare.iqr.mod.authentication.store.authuser;
// spring // spring
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
// base // base
import io.kumare.iqr.app.store.*; import io.kumare.iqr.app.store.*;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
@Service @Service
public class AuthUserStore extends AppKeyEntityStore<AuthUserEntity> { public class AuthUserStore extends AppKeyEntityStore<AuthUserEntity> {
// ::: vars // ::: vars
// //
@Autowired @Autowired
private AuthUserRepository repository; private AuthUserRepository repository;
// ::: override // ::: override
// //
@Override @Override
public AuthUserRepository getRepository() { public AuthUserRepository getRepository() {
return repository; return repository;
} }
// ::: api // ::: api
// //
} }
@@ -1,25 +1,25 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.store.authuserrelation; package io.kumare.iqr.mod.authentication.store.authuserrelation;
// base // base
import io.kumare.iqr.app.store.AppExtendedEntityData; import io.kumare.iqr.app.store.AppExtendedEntityData;
// imports // imports
public class AuthUserRelationData extends AppExtendedEntityData { public class AuthUserRelationData extends AppExtendedEntityData {
// ::: vars // ::: vars
// //
// ::: fields // ::: fields
// //
// ::: fluent // ::: fluent
// //
} }
@@ -1,153 +1,153 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.store.authuserrelation; package io.kumare.iqr.mod.authentication.store.authuserrelation;
// jakarta // jakarta
import jakarta.persistence.Entity; import jakarta.persistence.Entity;
import jakarta.persistence.FetchType; import jakarta.persistence.FetchType;
import jakarta.persistence.Index; import jakarta.persistence.Index;
import jakarta.persistence.ManyToOne; import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table; import jakarta.persistence.Table;
// base // base
import io.kumare.lib.app.api.store.*; import io.kumare.lib.app.api.store.*;
import io.kumare.iqr.app.store.*; import io.kumare.iqr.app.store.*;
// imports // imports
// relations // relations
import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity;
// annotations // annotations
@Entity @Entity
@Table( @Table(
name = "auth_user_relation", name = "auth_user_relation",
indexes = { indexes = {
@Index(name = "idx_auth_user_relation_external_id", columnList = "externalId"), @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_user_key", columnList = "userKey"),
@Index(name = "idx_auth_user_relation_type_value", columnList = "typeValue"), @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_type", columnList = "resourceType"),
@Index(name = "idx_auth_user_relation_resource_key", columnList = "resourceKey"), @Index(name = "idx_auth_user_relation_resource_key", columnList = "resourceKey"),
@Index(name = "idx_auth_user_relation_resource_id", columnList = "resourceId") @Index(name = "idx_auth_user_relation_resource_id", columnList = "resourceId")
} }
) )
public class AuthUserRelationEntity extends AppEntity { public class AuthUserRelationEntity extends AppEntity {
// ::: vars // ::: vars
// //
private String externalId; private String externalId;
private String userKey; private String userKey;
private String typeValue; private String typeValue;
private String resourceType; private String resourceType;
private String resourceKey; private String resourceKey;
private String resourceId; private String resourceId;
// relations // relations
@ManyToOne(fetch = FetchType.LAZY) @ManyToOne(fetch = FetchType.LAZY)
private AuthUserEntity authUser; private AuthUserEntity authUser;
// ::: constructors // ::: constructors
// //
public AuthUserRelationEntity() { public AuthUserRelationEntity() {
} }
public AuthUserRelationEntity(String id) { public AuthUserRelationEntity(String id) {
super(id); super(id);
} }
// ::: fields // ::: fields
// //
public String getExternalId() { public String getExternalId() {
return externalId; return externalId;
} }
public void setExternalId(String externalId) { public void setExternalId(String externalId) {
this.externalId = externalId; this.externalId = externalId;
} }
public String getUserKey() { public String getUserKey() {
return userKey; return userKey;
} }
public void setUserKey(String userKey) { public void setUserKey(String userKey) {
this.userKey = userKey; this.userKey = userKey;
} }
public String getTypeValue() { public String getTypeValue() {
return typeValue; return typeValue;
} }
public void setTypeValue(String typeValue) { public void setTypeValue(String typeValue) {
this.typeValue = typeValue; this.typeValue = typeValue;
} }
public String getResourceType() { public String getResourceType() {
return resourceType; return resourceType;
} }
public void setResourceType(String resourceType) { public void setResourceType(String resourceType) {
this.resourceType = resourceType; this.resourceType = resourceType;
} }
public String getResourceKey() { public String getResourceKey() {
return resourceKey; return resourceKey;
} }
public void setResourceKey(String resourceKey) { public void setResourceKey(String resourceKey) {
this.resourceKey = resourceKey; this.resourceKey = resourceKey;
} }
public String getResourceId() { public String getResourceId() {
return resourceId; return resourceId;
} }
public void setResourceId(String resourceId) { public void setResourceId(String resourceId) {
this.resourceId = resourceId; this.resourceId = resourceId;
} }
// relations // relations
public AuthUserEntity getAuthUser() { public AuthUserEntity getAuthUser() {
return authUser; return authUser;
} }
public void setAuthUser(AuthUserEntity authUser) { public void setAuthUser(AuthUserEntity authUser) {
this.authUser = authUser; this.authUser = authUser;
} }
// ::: fluent // ::: fluent
// //
public AuthUserRelationEntity externalId(String externalId) { public AuthUserRelationEntity externalId(String externalId) {
setExternalId(externalId); setExternalId(externalId);
return this; return this;
} }
public AuthUserRelationEntity userKey(String userKey) { public AuthUserRelationEntity userKey(String userKey) {
setUserKey(userKey); setUserKey(userKey);
return this; return this;
} }
public AuthUserRelationEntity typeValue(String typeValue) { public AuthUserRelationEntity typeValue(String typeValue) {
setTypeValue(typeValue); setTypeValue(typeValue);
return this; return this;
} }
public AuthUserRelationEntity resourceType(String resourceType) { public AuthUserRelationEntity resourceType(String resourceType) {
setResourceType(resourceType); setResourceType(resourceType);
return this; return this;
} }
public AuthUserRelationEntity resourceKey(String resourceKey) { public AuthUserRelationEntity resourceKey(String resourceKey) {
setResourceKey(resourceKey); setResourceKey(resourceKey);
return this; return this;
} }
public AuthUserRelationEntity resourceId(String resourceId) { public AuthUserRelationEntity resourceId(String resourceId) {
setResourceId(resourceId); setResourceId(resourceId);
return this; return this;
} }
// relations // relations
public AuthUserRelationEntity authUser(AuthUserEntity authUser) { public AuthUserRelationEntity authUser(AuthUserEntity authUser) {
setAuthUser(authUser); setAuthUser(authUser);
return this; return this;
} }
} }
@@ -1,155 +1,155 @@
/* /*
*/ */
package io.kumare.iqr.mod.authentication.store.authuserrelation; package io.kumare.iqr.mod.authentication.store.authuserrelation;
// java // java
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
// base // base
import io.kumare.lib.app.api.store.EntityFieldDescriptor; import io.kumare.lib.app.api.store.EntityFieldDescriptor;
import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor;
// app // app
import io.kumare.iqr.mod.authentication.store.AuthenticationEntities; import io.kumare.iqr.mod.authentication.store.AuthenticationEntities;
import io.kumare.iqr.mod.authentication.store.authuser.AuthUserFields; import io.kumare.iqr.mod.authentication.store.authuser.AuthUserFields;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public enum AuthUserRelationFields implements EntityFieldDescriptor<AuthUserRelationEntity> { public enum AuthUserRelationFields implements EntityFieldDescriptor<AuthUserRelationEntity> {
id(MAIN, FIND, LIST), id(MAIN, FIND, LIST),
externalId(MAIN, FIND, LIST), externalId(MAIN, FIND, LIST),
userKey(MAIN, FIND, LIST), userKey(MAIN, FIND, LIST),
typeValue(MAIN, FIND, LIST), typeValue(MAIN, FIND, LIST),
resourceType(MAIN, FIND, LIST), resourceType(MAIN, FIND, LIST),
resourceKey(MAIN, FIND, LIST), resourceKey(MAIN, FIND, LIST),
resourceId(MAIN, FIND, LIST), resourceId(MAIN, FIND, LIST),
active(MAIN, FIND, LIST), active(MAIN, FIND, LIST),
inserted(AUDIT, FIND, LIST), inserted(AUDIT, FIND, LIST),
inserter(AUDIT, FIND, LIST), inserter(AUDIT, FIND, LIST),
modified(AUDIT, FIND), modified(AUDIT, FIND),
modifier(AUDIT, FIND), modifier(AUDIT, FIND),
deleted(AUDIT), deleted(AUDIT),
removed(AUDIT), removed(AUDIT),
remover(AUDIT), remover(AUDIT),
authUser(AuthenticationEntities.authUser, AuthUserFields.class, FIND, LIST); authUser(AuthenticationEntities.authUser, AuthUserFields.class, FIND, LIST);
// ::: vars // ::: vars
// //
private final boolean relation; private final boolean relation;
private final EntityDescriptor entityDescriptor; private final EntityDescriptor entityDescriptor;
private final Class enumClass; private final Class enumClass;
private final List<String> groups; private final List<String> groups;
// ::: constructors // ::: constructors
// //
AuthUserRelationFields(String... groups) { AuthUserRelationFields(String... groups) {
this(false, null, null, groups); this(false, null, null, groups);
} }
AuthUserRelationFields(EntityDescriptor entityDescriptor, Class enumClass, String... groups) { AuthUserRelationFields(EntityDescriptor entityDescriptor, Class enumClass, String... groups) {
this(true, entityDescriptor, enumClass, groups); this(true, entityDescriptor, enumClass, groups);
} }
AuthUserRelationFields(boolean relation, EntityDescriptor entityDescriptor, Class enumClass, String... groups) { AuthUserRelationFields(boolean relation, EntityDescriptor entityDescriptor, Class enumClass, String... groups) {
this.relation = relation; this.relation = relation;
this.entityDescriptor = entityDescriptor; this.entityDescriptor = entityDescriptor;
this.enumClass = enumClass; this.enumClass = enumClass;
this.groups = groups == null ? Collections.EMPTY_LIST : Arrays.asList(groups); this.groups = groups == null ? Collections.EMPTY_LIST : Arrays.asList(groups);
} }
// ::: api // ::: api
// //
@Override @Override
public String getName() { public String getName() {
return name(); return name();
} }
@Override @Override
public boolean isRelation() { public boolean isRelation() {
return relation; return relation;
} }
@Override @Override
public Class<Enum> getRelationEnumClass() { public Class<Enum> getRelationEnumClass() {
return enumClass; return enumClass;
} }
@Override @Override
public List<String> getGroups() { public List<String> getGroups() {
return groups; return groups;
} }
@Override @Override
public EntityDescriptor getEntityDescriptor() { public EntityDescriptor getEntityDescriptor() {
return entityDescriptor; return entityDescriptor;
} }
@Override @Override
public Object fetchValue(AuthUserRelationEntity entity) { public Object fetchValue(AuthUserRelationEntity entity) {
if (entity == null) { if (entity == null) {
return null; return null;
} }
switch (this) { switch (this) {
case null -> { case null -> {
return null; return null;
} }
case id -> { case id -> {
return entity.getId(); return entity.getId();
} }
case externalId ->{ case externalId ->{
return entity.getExternalId(); return entity.getExternalId();
} }
case userKey ->{ case userKey ->{
return entity.getUserKey(); return entity.getUserKey();
} }
case typeValue ->{ case typeValue ->{
return entity.getTypeValue(); return entity.getTypeValue();
} }
case resourceType ->{ case resourceType ->{
return entity.getResourceType(); return entity.getResourceType();
} }
case resourceKey ->{ case resourceKey ->{
return entity.getResourceKey(); return entity.getResourceKey();
} }
case resourceId ->{ case resourceId ->{
return entity.getResourceId(); return entity.getResourceId();
} }
case active -> { case active -> {
return entity.isActive(); return entity.isActive();
} }
case inserted -> { case inserted -> {
return entity.getInserted(); return entity.getInserted();
} }
case inserter -> { case inserter -> {
return entity.getInserter(); return entity.getInserter();
} }
case modified -> { case modified -> {
return entity.getModified(); return entity.getModified();
} }
case modifier -> { case modifier -> {
return entity.getModifier(); return entity.getModifier();
} }
case deleted -> { case deleted -> {
return entity.isDeleted(); return entity.isDeleted();
} }
case removed -> { case removed -> {
return entity.getRemoved(); return entity.getRemoved();
} }
case remover -> { case remover -> {
return entity.getRemover(); return entity.getRemover();
} }
case authUser ->{ case authUser ->{
return entity.getAuthUser(); return entity.getAuthUser();
} }
default -> { default -> {
return null; return null;
} }
} }
} }
} }
@@ -1,139 +1,139 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.store.authuserrelation; package io.kumare.iqr.mod.authentication.store.authuserrelation;
// java // java
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
// base // base
import io.kumare.lib.app.api.Context; import io.kumare.lib.app.api.Context;
import io.kumare.lib.app.api.store.EntityFieldDescriptor; import io.kumare.lib.app.api.store.EntityFieldDescriptor;
import io.kumare.lib.base.server.spring.store.jpa.BaseEntityMapBuilder; import io.kumare.lib.base.server.spring.store.jpa.BaseEntityMapBuilder;
// app // app
import io.kumare.iqr.mod.authentication.store.authuser.AuthUserMapBuilder; import io.kumare.iqr.mod.authentication.store.authuser.AuthUserMapBuilder;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class AuthUserRelationMapBuilder extends BaseEntityMapBuilder<AuthUserRelationEntity, AuthUserRelationMapBuilder> { public class AuthUserRelationMapBuilder extends BaseEntityMapBuilder<AuthUserRelationEntity, AuthUserRelationMapBuilder> {
// ::: vars // ::: vars
// //
private AuthUserMapBuilder authUserBuilder; private AuthUserMapBuilder authUserBuilder;
// ::: fields // ::: fields
// //
@Override @Override
public AuthUserRelationMapBuilder addGroup(String name, boolean cascade) { public AuthUserRelationMapBuilder addGroup(String name, boolean cascade) {
includes.addAll(EntityFieldDescriptor.group(AuthUserRelationFields.values(), name)); includes.addAll(EntityFieldDescriptor.group(AuthUserRelationFields.values(), name));
if(cascade) { if(cascade) {
if (includes.contains(AuthUserRelationFields.authUser)) { if (includes.contains(AuthUserRelationFields.authUser)) {
getAuthUserBuilder().addGroup(name); getAuthUserBuilder().addGroup(name);
} }
} }
return this; return this;
} }
@Override @Override
public AuthUserRelationMapBuilder add(String fieldName) { public AuthUserRelationMapBuilder add(String fieldName) {
includes.add(AuthUserRelationFields.valueOf(fieldName)); includes.add(AuthUserRelationFields.valueOf(fieldName));
return this; return this;
} }
@Override @Override
public AuthUserRelationMapBuilder addAll(String... names) { public AuthUserRelationMapBuilder addAll(String... names) {
for (var i : names) { for (var i : names) {
includes.add(AuthUserRelationFields.valueOf(i)); includes.add(AuthUserRelationFields.valueOf(i));
} }
return this; return this;
} }
@Override @Override
public AuthUserRelationMapBuilder remove(String fieldName) { public AuthUserRelationMapBuilder remove(String fieldName) {
excludes.add(AuthUserRelationFields.valueOf(fieldName)); excludes.add(AuthUserRelationFields.valueOf(fieldName));
return this; return this;
} }
@Override @Override
public AuthUserRelationMapBuilder removeAll(String... names) { public AuthUserRelationMapBuilder removeAll(String... names) {
for (var i : names) { for (var i : names) {
excludes.add(AuthUserRelationFields.valueOf(i)); excludes.add(AuthUserRelationFields.valueOf(i));
} }
return this; return this;
} }
// ::: relations // ::: relations
// //
@Override @Override
public AuthUserRelationMapBuilder addPlains(boolean cascade) { public AuthUserRelationMapBuilder addPlains(boolean cascade) {
includes.addAll(EntityFieldDescriptor.plains(AuthUserRelationFields.values())); includes.addAll(EntityFieldDescriptor.plains(AuthUserRelationFields.values()));
if(cascade) { if(cascade) {
if (includes.contains(AuthUserRelationFields.authUser)) { if (includes.contains(AuthUserRelationFields.authUser)) {
getAuthUserBuilder().addPlains(); getAuthUserBuilder().addPlains();
} }
} }
return this; return this;
} }
@Override @Override
public AuthUserRelationMapBuilder addRelations(boolean cascade) { public AuthUserRelationMapBuilder addRelations(boolean cascade) {
includes.addAll(EntityFieldDescriptor.relations(AuthUserRelationFields.values())); includes.addAll(EntityFieldDescriptor.relations(AuthUserRelationFields.values()));
if(cascade) { if(cascade) {
if (includes.contains(AuthUserRelationFields.authUser)) { if (includes.contains(AuthUserRelationFields.authUser)) {
getAuthUserBuilder().addRelations(); getAuthUserBuilder().addRelations();
} }
} }
return this; return this;
} }
// ::: auth user // ::: auth user
// //
public AuthUserRelationMapBuilder addAuthUser() { public AuthUserRelationMapBuilder addAuthUser() {
return addAuthUser(null); return addAuthUser(null);
} }
public AuthUserRelationMapBuilder addAuthUser(String group) { public AuthUserRelationMapBuilder addAuthUser(String group) {
return addAuthUser(group, false); return addAuthUser(group, false);
} }
public AuthUserRelationMapBuilder addAuthUser(String group, boolean cascade) { public AuthUserRelationMapBuilder addAuthUser(String group, boolean cascade) {
includes.add(AuthUserRelationFields.authUser); includes.add(AuthUserRelationFields.authUser);
if (group != null) { if (group != null) {
getAuthUserBuilder().addGroup(group); getAuthUserBuilder().addGroup(group);
} }
return this; return this;
} }
public AuthUserMapBuilder getAuthUserBuilder() { public AuthUserMapBuilder getAuthUserBuilder() {
if(authUserBuilder == null) { if(authUserBuilder == null) {
authUserBuilder = new AuthUserMapBuilder(); authUserBuilder = new AuthUserMapBuilder();
} }
return authUserBuilder; return authUserBuilder;
} }
// ::: internals // ::: internals
// //
@Override @Override
protected void internalAttachRelations(Context context, protected void internalAttachRelations(Context context,
AuthUserRelationEntity entity, AuthUserRelationEntity entity,
List<EntityFieldDescriptor> fields, List<EntityFieldDescriptor> fields,
Map<String, Object> resultMap) { Map<String, Object> resultMap) {
if (fields.contains(AuthUserRelationFields.authUser)) { if (fields.contains(AuthUserRelationFields.authUser)) {
attachRelation(context, attachRelation(context,
entity, entity,
AuthUserRelationFields.authUser, AuthUserRelationFields.authUser,
getAuthUserBuilder(), getAuthUserBuilder(),
resultMap); resultMap);
} }
} }
} }
@@ -1,18 +1,18 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.store.authuserrelation; package io.kumare.iqr.mod.authentication.store.authuserrelation;
// spring // spring
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
// base // base
import io.kumare.iqr.app.store.*; import io.kumare.iqr.app.store.*;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
@Repository @Repository
public interface AuthUserRelationRepository extends AppEntityRepository<AuthUserRelationEntity>{ public interface AuthUserRelationRepository extends AppEntityRepository<AuthUserRelationEntity>{
} }
@@ -1,35 +1,35 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.authentication.store.authuserrelation; package io.kumare.iqr.mod.authentication.store.authuserrelation;
// spring // spring
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
// base // base
import io.kumare.iqr.app.store.*; import io.kumare.iqr.app.store.*;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
@Service @Service
public class AuthUserRelationStore extends AppEntityStore<AuthUserRelationEntity> { public class AuthUserRelationStore extends AppEntityStore<AuthUserRelationEntity> {
// ::: vars // ::: vars
// //
@Autowired @Autowired
private AuthUserRelationRepository repository; private AuthUserRelationRepository repository;
// ::: override // ::: override
// //
@Override @Override
public AuthUserRelationRepository getRepository() { public AuthUserRelationRepository getRepository() {
return repository; return repository;
} }
// ::: api // ::: api
// //
} }
@@ -1,20 +1,20 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.biz; package io.kumare.iqr.mod.biz;
// base // base
import io.kumare.iqr.app.AppConstants; import io.kumare.iqr.app.AppConstants;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class BizConstants { public class BizConstants {
// ::: codes // ::: codes
// //
public static final int CODE = AppConstants.BIZ_CODE; public static final int CODE = AppConstants.BIZ_CODE;
public static final String NAME = "biz"; public static final String NAME = "biz";
} }
@@ -1,87 +1,87 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.biz; package io.kumare.iqr.mod.biz;
// java // java
import io.kumare.iqr.mod.biz.store.BizEntities; import io.kumare.iqr.mod.biz.store.BizEntities;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
// base // base
import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor; import io.kumare.lib.base.server.spring.store.jpa.EntityDescriptor;
// app // app
import io.kumare.iqr.app.module.AppModuleController; import io.kumare.iqr.app.module.AppModuleController;
// module // module
import io.kumare.iqr.mod.biz.store.business.BusinessStore; 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.businessprofile.BusinessProfileStore;
import io.kumare.iqr.mod.biz.store.businesssetting.BusinessSettingStore; 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.businesspromo.BusinessPromoStore;
import io.kumare.iqr.mod.biz.store.businesspromoitem.BusinessPromoItemStore; 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.businessimage.BusinessImageStore;
import io.kumare.iqr.mod.biz.store.businessworker.BusinessWorkerStore; import io.kumare.iqr.mod.biz.store.businessworker.BusinessWorkerStore;
import io.kumare.iqr.mod.biz.store.businesstag.BusinessTagStore; import io.kumare.iqr.mod.biz.store.businesstag.BusinessTagStore;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class BizController extends AppModuleController { public class BizController extends AppModuleController {
// ::: api // ::: api
// //
@Override @Override
public boolean hasStore(String name) { public boolean hasStore(String name) {
return BizEntities.hasDescriptor(name); return BizEntities.hasDescriptor(name);
} }
@Override @Override
public EntityDescriptor getEntityDescriptor(Class entityClass) { public EntityDescriptor getEntityDescriptor(Class entityClass) {
return BizEntities.descriptorOf(entityClass); return BizEntities.descriptorOf(entityClass);
} }
@Override @Override
public EntityDescriptor getEntityDescriptor(String name) { public EntityDescriptor getEntityDescriptor(String name) {
return BizEntities.descriptorOf(name); return BizEntities.descriptorOf(name);
} }
@Override @Override
public List<EntityDescriptor> getEntityDescriptors() { public List<EntityDescriptor> getEntityDescriptors() {
return Arrays.asList(BizEntities.values()); return Arrays.asList(BizEntities.values());
} }
// ::: stores // ::: stores
// //
public BusinessStore getBusinessStore() { public BusinessStore getBusinessStore() {
return getService(BusinessStore.class); return getService(BusinessStore.class);
} }
public BusinessProfileStore getBusinessProfileStore() { public BusinessProfileStore getBusinessProfileStore() {
return getService(BusinessProfileStore.class); return getService(BusinessProfileStore.class);
} }
public BusinessSettingStore getBusinessSettingStore() { public BusinessSettingStore getBusinessSettingStore() {
return getService(BusinessSettingStore.class); return getService(BusinessSettingStore.class);
} }
public BusinessPromoStore getBusinessPromoStore() { public BusinessPromoStore getBusinessPromoStore() {
return getService(BusinessPromoStore.class); return getService(BusinessPromoStore.class);
} }
public BusinessPromoItemStore getBusinessPromoItemStore() { public BusinessPromoItemStore getBusinessPromoItemStore() {
return getService(BusinessPromoItemStore.class); return getService(BusinessPromoItemStore.class);
} }
public BusinessImageStore getBusinessImageStore() { public BusinessImageStore getBusinessImageStore() {
return getService(BusinessImageStore.class); return getService(BusinessImageStore.class);
} }
public BusinessWorkerStore getBusinessWorkerStore() { public BusinessWorkerStore getBusinessWorkerStore() {
return getService(BusinessWorkerStore.class); return getService(BusinessWorkerStore.class);
} }
public BusinessTagStore getBusinessTagStore() { public BusinessTagStore getBusinessTagStore() {
return getService(BusinessTagStore.class); return getService(BusinessTagStore.class);
} }
} }
+165 -165
View File
@@ -1,165 +1,165 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.biz; package io.kumare.iqr.mod.biz;
// java // java
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
// lib // lib
import io.kumare.lib.transport.TransportCode; import io.kumare.lib.transport.TransportCode;
import static io.kumare.lib.transport.Transports.code; import static io.kumare.lib.transport.Transports.code;
import io.kumare.lib.v.ExceptionPrototype; import io.kumare.lib.v.ExceptionPrototype;
// app // app
import io.kumare.iqr.app.AppException; import io.kumare.iqr.app.AppException;
import io.kumare.iqr.app.endpoint.AppTransports; import io.kumare.iqr.app.endpoint.AppTransports;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public enum BizErrors implements ExceptionPrototype { public enum BizErrors implements ExceptionPrototype {
// business // business
business_notfound(1, code(AppTransports.http, 400)), business_notfound(1, code(AppTransports.http, 400)),
business_data_notfound(1, code(AppTransports.http, 400)), business_data_notfound(1, code(AppTransports.http, 400)),
business_preload_empty(1, code(AppTransports.http, 400)), business_preload_empty(1, code(AppTransports.http, 400)),
business_entitykey_empty(1, code(AppTransports.http, 400)), business_entitykey_empty(1, code(AppTransports.http, 400)),
business_alias_empty(1, code(AppTransports.http, 400)), business_alias_empty(1, code(AppTransports.http, 400)),
business_statevalue_empty(1, code(AppTransports.http, 400)), business_statevalue_empty(1, code(AppTransports.http, 400)),
business_name_empty(1, code(AppTransports.http, 400)), business_name_empty(1, code(AppTransports.http, 400)),
business_description_empty(1, code(AppTransports.http, 400)), business_description_empty(1, code(AppTransports.http, 400)),
business_logo_notfound(1, code(AppTransports.http, 400)), business_logo_notfound(1, code(AppTransports.http, 400)),
business_state_notfound(1, code(AppTransports.http, 400)), business_state_notfound(1, code(AppTransports.http, 400)),
// business profile // business profile
businessprofile_notfound(1, code(AppTransports.http, 400)), businessprofile_notfound(1, code(AppTransports.http, 400)),
businessprofile_data_notfound(1, code(AppTransports.http, 400)), businessprofile_data_notfound(1, code(AppTransports.http, 400)),
businessprofile_preload_empty(1, code(AppTransports.http, 400)), businessprofile_preload_empty(1, code(AppTransports.http, 400)),
businessprofile_activityvalue_empty(1, code(AppTransports.http, 400)), businessprofile_activityvalue_empty(1, code(AppTransports.http, 400)),
businessprofile_gpslatitude_empty(1, code(AppTransports.http, 400)), businessprofile_gpslatitude_empty(1, code(AppTransports.http, 400)),
businessprofile_gpslongitude_empty(1, code(AppTransports.http, 400)), businessprofile_gpslongitude_empty(1, code(AppTransports.http, 400)),
businessprofile_website_empty(1, code(AppTransports.http, 400)), businessprofile_website_empty(1, code(AppTransports.http, 400)),
businessprofile_phone_empty(1, code(AppTransports.http, 400)), businessprofile_phone_empty(1, code(AppTransports.http, 400)),
businessprofile_address_empty(1, code(AppTransports.http, 400)), businessprofile_address_empty(1, code(AppTransports.http, 400)),
businessprofile_extrainfo_empty(1, code(AppTransports.http, 400)), businessprofile_extrainfo_empty(1, code(AppTransports.http, 400)),
businessprofile_description_empty(1, code(AppTransports.http, 400)), businessprofile_description_empty(1, code(AppTransports.http, 400)),
businessprofile_business_notfound(1, code(AppTransports.http, 400)), businessprofile_business_notfound(1, code(AppTransports.http, 400)),
businessprofile_image_notfound(1, code(AppTransports.http, 400)), businessprofile_image_notfound(1, code(AppTransports.http, 400)),
businessprofile_activity_notfound(1, code(AppTransports.http, 400)), businessprofile_activity_notfound(1, code(AppTransports.http, 400)),
// business setting // business setting
businesssetting_notfound(1, code(AppTransports.http, 400)), businesssetting_notfound(1, code(AppTransports.http, 400)),
businesssetting_data_notfound(1, code(AppTransports.http, 400)), businesssetting_data_notfound(1, code(AppTransports.http, 400)),
businesssetting_preload_empty(1, code(AppTransports.http, 400)), businesssetting_preload_empty(1, code(AppTransports.http, 400)),
businesssetting_pointexchange_empty(1, code(AppTransports.http, 400)), businesssetting_pointexchange_empty(1, code(AppTransports.http, 400)),
businesssetting_leadcapturereward_empty(1, code(AppTransports.http, 400)), businesssetting_leadcapturereward_empty(1, code(AppTransports.http, 400)),
businesssetting_customercapturereward_empty(1, code(AppTransports.http, 400)), businesssetting_customercapturereward_empty(1, code(AppTransports.http, 400)),
businesssetting_business_notfound(1, code(AppTransports.http, 400)), businesssetting_business_notfound(1, code(AppTransports.http, 400)),
// business promo // business promo
businesspromo_notfound(1, code(AppTransports.http, 400)), businesspromo_notfound(1, code(AppTransports.http, 400)),
businesspromo_data_notfound(1, code(AppTransports.http, 400)), businesspromo_data_notfound(1, code(AppTransports.http, 400)),
businesspromo_preload_empty(1, code(AppTransports.http, 400)), businesspromo_preload_empty(1, code(AppTransports.http, 400)),
businesspromo_statevalue_empty(1, code(AppTransports.http, 400)), businesspromo_statevalue_empty(1, code(AppTransports.http, 400)),
businesspromo_started_empty(1, code(AppTransports.http, 400)), businesspromo_started_empty(1, code(AppTransports.http, 400)),
businesspromo_ended_empty(1, code(AppTransports.http, 400)), businesspromo_ended_empty(1, code(AppTransports.http, 400)),
businesspromo_schedulestart_empty(1, code(AppTransports.http, 400)), businesspromo_schedulestart_empty(1, code(AppTransports.http, 400)),
businesspromo_scheduleend_empty(1, code(AppTransports.http, 400)), businesspromo_scheduleend_empty(1, code(AppTransports.http, 400)),
businesspromo_title_empty(1, code(AppTransports.http, 400)), businesspromo_title_empty(1, code(AppTransports.http, 400)),
businesspromo_bodyinfo_empty(1, code(AppTransports.http, 400)), businesspromo_bodyinfo_empty(1, code(AppTransports.http, 400)),
businesspromo_footerinfo_empty(1, code(AppTransports.http, 400)), businesspromo_footerinfo_empty(1, code(AppTransports.http, 400)),
businesspromo_business_notfound(1, code(AppTransports.http, 400)), businesspromo_business_notfound(1, code(AppTransports.http, 400)),
businesspromo_image_notfound(1, code(AppTransports.http, 400)), businesspromo_image_notfound(1, code(AppTransports.http, 400)),
businesspromo_state_notfound(1, code(AppTransports.http, 400)), businesspromo_state_notfound(1, code(AppTransports.http, 400)),
// business promo item // business promo item
businesspromoitem_notfound(1, code(AppTransports.http, 400)), businesspromoitem_notfound(1, code(AppTransports.http, 400)),
businesspromoitem_data_notfound(1, code(AppTransports.http, 400)), businesspromoitem_data_notfound(1, code(AppTransports.http, 400)),
businesspromoitem_preload_empty(1, code(AppTransports.http, 400)), businesspromoitem_preload_empty(1, code(AppTransports.http, 400)),
businesspromoitem_title_empty(1, code(AppTransports.http, 400)), businesspromoitem_title_empty(1, code(AppTransports.http, 400)),
businesspromoitem_description_empty(1, code(AppTransports.http, 400)), businesspromoitem_description_empty(1, code(AppTransports.http, 400)),
businesspromoitem_points_empty(1, code(AppTransports.http, 400)), businesspromoitem_points_empty(1, code(AppTransports.http, 400)),
businesspromoitem_condition_empty(1, code(AppTransports.http, 400)), businesspromoitem_condition_empty(1, code(AppTransports.http, 400)),
businesspromoitem_business_notfound(1, code(AppTransports.http, 400)), businesspromoitem_business_notfound(1, code(AppTransports.http, 400)),
businesspromoitem_promo_notfound(1, code(AppTransports.http, 400)), businesspromoitem_promo_notfound(1, code(AppTransports.http, 400)),
businesspromoitem_image_notfound(1, code(AppTransports.http, 400)), businesspromoitem_image_notfound(1, code(AppTransports.http, 400)),
// business image // business image
businessimage_notfound(1, code(AppTransports.http, 400)), businessimage_notfound(1, code(AppTransports.http, 400)),
businessimage_data_notfound(1, code(AppTransports.http, 400)), businessimage_data_notfound(1, code(AppTransports.http, 400)),
businessimage_preload_empty(1, code(AppTransports.http, 400)), businessimage_preload_empty(1, code(AppTransports.http, 400)),
businessimage_typevalue_empty(1, code(AppTransports.http, 400)), businessimage_typevalue_empty(1, code(AppTransports.http, 400)),
businessimage_bytes_empty(1, code(AppTransports.http, 400)), businessimage_bytes_empty(1, code(AppTransports.http, 400)),
businessimage_business_notfound(1, code(AppTransports.http, 400)), businessimage_business_notfound(1, code(AppTransports.http, 400)),
businessimage_type_notfound(1, code(AppTransports.http, 400)), businessimage_type_notfound(1, code(AppTransports.http, 400)),
// business worker // business worker
businessworker_notfound(1, code(AppTransports.http, 400)), businessworker_notfound(1, code(AppTransports.http, 400)),
businessworker_data_notfound(1, code(AppTransports.http, 400)), businessworker_data_notfound(1, code(AppTransports.http, 400)),
businessworker_preload_empty(1, code(AppTransports.http, 400)), businessworker_preload_empty(1, code(AppTransports.http, 400)),
businessworker_entitykey_empty(1, code(AppTransports.http, 400)), businessworker_entitykey_empty(1, code(AppTransports.http, 400)),
businessworker_rolevalue_empty(1, code(AppTransports.http, 400)), businessworker_rolevalue_empty(1, code(AppTransports.http, 400)),
businessworker_statevalue_empty(1, code(AppTransports.http, 400)), businessworker_statevalue_empty(1, code(AppTransports.http, 400)),
businessworker_email_empty(1, code(AppTransports.http, 400)), businessworker_email_empty(1, code(AppTransports.http, 400)),
businessworker_phone_empty(1, code(AppTransports.http, 400)), businessworker_phone_empty(1, code(AppTransports.http, 400)),
businessworker_name_empty(1, code(AppTransports.http, 400)), businessworker_name_empty(1, code(AppTransports.http, 400)),
businessworker_description_empty(1, code(AppTransports.http, 400)), businessworker_description_empty(1, code(AppTransports.http, 400)),
businessworker_business_notfound(1, code(AppTransports.http, 400)), businessworker_business_notfound(1, code(AppTransports.http, 400)),
businessworker_authuser_notfound(1, code(AppTransports.http, 400)), businessworker_authuser_notfound(1, code(AppTransports.http, 400)),
businessworker_role_notfound(1, code(AppTransports.http, 400)), businessworker_role_notfound(1, code(AppTransports.http, 400)),
businessworker_state_notfound(1, code(AppTransports.http, 400)), businessworker_state_notfound(1, code(AppTransports.http, 400)),
// business tag // business tag
businesstag_notfound(1, code(AppTransports.http, 400)), businesstag_notfound(1, code(AppTransports.http, 400)),
businesstag_data_notfound(1, code(AppTransports.http, 400)), businesstag_data_notfound(1, code(AppTransports.http, 400)),
businesstag_preload_empty(1, code(AppTransports.http, 400)), businesstag_preload_empty(1, code(AppTransports.http, 400)),
businesstag_entitykey_empty(1, code(AppTransports.http, 400)), businesstag_entitykey_empty(1, code(AppTransports.http, 400)),
businesstag_name_empty(1, code(AppTransports.http, 400)); businesstag_name_empty(1, code(AppTransports.http, 400));
// ::: vars // ::: vars
// //
private final Map transportCodes = new HashMap(); private final Map transportCodes = new HashMap();
private final int code; private final int code;
// ::: constructors // ::: constructors
// //
private BizErrors(int code, TransportCode... codes) { private BizErrors(int code, TransportCode... codes) {
this.code = code; this.code = code;
if (codes != null) { if (codes != null) {
for (var i : codes) { for (var i : codes) {
if (i != null) { if (i != null) {
transportCodes.put(i.getId(), i.getCode()); transportCodes.put(i.getId(), i.getCode());
} }
} }
} }
} }
// ::: prototype api // ::: prototype api
// //
@Override @Override
public int getCode() { public int getCode() {
return code; return code;
} }
@Override @Override
public String getName() { public String getName() {
return name(); return name();
} }
@Override @Override
public Map getTransportCodes() { public Map getTransportCodes() {
return transportCodes; return transportCodes;
} }
@Override @Override
public RuntimeException newInstance(String msg, Throwable cause, Map extra) { public RuntimeException newInstance(String msg, Throwable cause, Map extra) {
var ex = new AppException(this, msg, cause); var ex = new AppException(this, msg, cause);
ex.setExtra(extra); ex.setExtra(extra);
return ex; return ex;
} }
} }
@@ -1,37 +1,37 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.biz; package io.kumare.iqr.mod.biz;
// java // java
import io.kumare.lib.base.server.spring.module.BaseModule; import io.kumare.lib.base.server.spring.module.BaseModule;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class BizModule extends BaseModule { public class BizModule extends BaseModule {
// ::: // :::
// //
public static final BizController controller = new BizController(); public static final BizController controller = new BizController();
// ::: api // ::: api
// //
@Override @Override
public int getId() { public int getId() {
return BizConstants.CODE; return BizConstants.CODE;
} }
@Override @Override
public String getName() { public String getName() {
return BizConstants.NAME; return BizConstants.NAME;
} }
@Override @Override
public BizController getController() { public BizController getController() {
return controller; return controller;
} }
} }
@@ -1,198 +1,198 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.biz; package io.kumare.iqr.mod.biz;
// base // base
import io.kumare.iqr.mod.biz.store.BizEntities; import io.kumare.iqr.mod.biz.store.BizEntities;
import io.kumare.lib.app.api.security.PermissionReference; import io.kumare.lib.app.api.security.PermissionReference;
// app // app
import io.kumare.iqr.app.AppErrors; import io.kumare.iqr.app.AppErrors;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public enum BizPermissions { public enum BizPermissions {
// business // business
//business_add(BizEntities.business), //business_add(BizEntities.business),
//business_edit(BizEntities.business), //business_edit(BizEntities.business),
//business_find(BizEntities.business), //business_find(BizEntities.business),
//business_enable(BizEntities.business), //business_enable(BizEntities.business),
//business_disable(BizEntities.business), //business_disable(BizEntities.business),
//business_list(BizEntities.business), //business_list(BizEntities.business),
//business_delete(BizEntities.business), //business_delete(BizEntities.business),
//business_preload(BizEntities.business), //business_preload(BizEntities.business),
// //
business_viewer(BizEntities.business), business_viewer(BizEntities.business),
//business_guest(BizEntities.business), //business_guest(BizEntities.business),
//business_collab(BizEntities.business), //business_collab(BizEntities.business),
business_worker(BizEntities.business), business_worker(BizEntities.business),
//business_control(BizEntities.business), //business_control(BizEntities.business),
business_manager(BizEntities.business), business_manager(BizEntities.business),
business_admin(null), business_admin(null),
business_system(null), business_system(null),
// business profile // business profile
//business_profile_add(BizEntities.businessProfile), //business_profile_add(BizEntities.businessProfile),
//business_profile_edit(BizEntities.businessProfile), //business_profile_edit(BizEntities.businessProfile),
//business_profile_find(BizEntities.businessProfile), //business_profile_find(BizEntities.businessProfile),
//business_profile_enable(BizEntities.businessProfile), //business_profile_enable(BizEntities.businessProfile),
//business_profile_disable(BizEntities.businessProfile), //business_profile_disable(BizEntities.businessProfile),
//business_profile_list(BizEntities.businessProfile), //business_profile_list(BizEntities.businessProfile),
//business_profile_delete(BizEntities.businessProfile), //business_profile_delete(BizEntities.businessProfile),
//business_profile_preload(BizEntities.businessProfile), //business_profile_preload(BizEntities.businessProfile),
// //
business_profile_viewer(BizEntities.businessProfile), business_profile_viewer(BizEntities.businessProfile),
//business_profile_guest(BizEntities.businessProfile), //business_profile_guest(BizEntities.businessProfile),
//business_profile_collab(BizEntities.businessProfile), //business_profile_collab(BizEntities.businessProfile),
business_profile_worker(BizEntities.businessProfile), business_profile_worker(BizEntities.businessProfile),
//business_profile_control(BizEntities.businessProfile), //business_profile_control(BizEntities.businessProfile),
business_profile_manager(BizEntities.businessProfile), business_profile_manager(BizEntities.businessProfile),
business_profile_admin(null), business_profile_admin(null),
business_profile_system(null), business_profile_system(null),
// business setting // business setting
//business_setting_add(BizEntities.businessSetting), //business_setting_add(BizEntities.businessSetting),
//business_setting_edit(BizEntities.businessSetting), //business_setting_edit(BizEntities.businessSetting),
//business_setting_find(BizEntities.businessSetting), //business_setting_find(BizEntities.businessSetting),
//business_setting_enable(BizEntities.businessSetting), //business_setting_enable(BizEntities.businessSetting),
//business_setting_disable(BizEntities.businessSetting), //business_setting_disable(BizEntities.businessSetting),
//business_setting_list(BizEntities.businessSetting), //business_setting_list(BizEntities.businessSetting),
//business_setting_delete(BizEntities.businessSetting), //business_setting_delete(BizEntities.businessSetting),
//business_setting_preload(BizEntities.businessSetting), //business_setting_preload(BizEntities.businessSetting),
// //
business_setting_viewer(BizEntities.businessSetting), business_setting_viewer(BizEntities.businessSetting),
//business_setting_guest(BizEntities.businessSetting), //business_setting_guest(BizEntities.businessSetting),
//business_setting_collab(BizEntities.businessSetting), //business_setting_collab(BizEntities.businessSetting),
business_setting_worker(BizEntities.businessSetting), business_setting_worker(BizEntities.businessSetting),
//business_setting_control(BizEntities.businessSetting), //business_setting_control(BizEntities.businessSetting),
business_setting_manager(BizEntities.businessSetting), business_setting_manager(BizEntities.businessSetting),
business_setting_admin(null), business_setting_admin(null),
business_setting_system(null), business_setting_system(null),
// business promo // business promo
//business_promo_add(BizEntities.businessPromo), //business_promo_add(BizEntities.businessPromo),
//business_promo_edit(BizEntities.businessPromo), //business_promo_edit(BizEntities.businessPromo),
//business_promo_find(BizEntities.businessPromo), //business_promo_find(BizEntities.businessPromo),
//business_promo_enable(BizEntities.businessPromo), //business_promo_enable(BizEntities.businessPromo),
//business_promo_disable(BizEntities.businessPromo), //business_promo_disable(BizEntities.businessPromo),
//business_promo_list(BizEntities.businessPromo), //business_promo_list(BizEntities.businessPromo),
//business_promo_delete(BizEntities.businessPromo), //business_promo_delete(BizEntities.businessPromo),
//business_promo_preload(BizEntities.businessPromo), //business_promo_preload(BizEntities.businessPromo),
// //
business_promo_viewer(BizEntities.businessPromo), business_promo_viewer(BizEntities.businessPromo),
//business_promo_guest(BizEntities.businessPromo), //business_promo_guest(BizEntities.businessPromo),
//business_promo_collab(BizEntities.businessPromo), //business_promo_collab(BizEntities.businessPromo),
business_promo_worker(BizEntities.businessPromo), business_promo_worker(BizEntities.businessPromo),
//business_promo_control(BizEntities.businessPromo), //business_promo_control(BizEntities.businessPromo),
business_promo_manager(BizEntities.businessPromo), business_promo_manager(BizEntities.businessPromo),
business_promo_admin(null), business_promo_admin(null),
business_promo_system(null), business_promo_system(null),
// business promo item // business promo item
//business_promo_item_add(BizEntities.businessPromoItem), //business_promo_item_add(BizEntities.businessPromoItem),
//business_promo_item_edit(BizEntities.businessPromoItem), //business_promo_item_edit(BizEntities.businessPromoItem),
//business_promo_item_find(BizEntities.businessPromoItem), //business_promo_item_find(BizEntities.businessPromoItem),
//business_promo_item_enable(BizEntities.businessPromoItem), //business_promo_item_enable(BizEntities.businessPromoItem),
//business_promo_item_disable(BizEntities.businessPromoItem), //business_promo_item_disable(BizEntities.businessPromoItem),
//business_promo_item_list(BizEntities.businessPromoItem), //business_promo_item_list(BizEntities.businessPromoItem),
//business_promo_item_delete(BizEntities.businessPromoItem), //business_promo_item_delete(BizEntities.businessPromoItem),
//business_promo_item_preload(BizEntities.businessPromoItem), //business_promo_item_preload(BizEntities.businessPromoItem),
// //
business_promo_item_viewer(BizEntities.businessPromoItem), business_promo_item_viewer(BizEntities.businessPromoItem),
//business_promo_item_guest(BizEntities.businessPromoItem), //business_promo_item_guest(BizEntities.businessPromoItem),
//business_promo_item_collab(BizEntities.businessPromoItem), //business_promo_item_collab(BizEntities.businessPromoItem),
business_promo_item_worker(BizEntities.businessPromoItem), business_promo_item_worker(BizEntities.businessPromoItem),
//business_promo_item_control(BizEntities.businessPromoItem), //business_promo_item_control(BizEntities.businessPromoItem),
business_promo_item_manager(BizEntities.businessPromoItem), business_promo_item_manager(BizEntities.businessPromoItem),
business_promo_item_admin(null), business_promo_item_admin(null),
business_promo_item_system(null), business_promo_item_system(null),
// business image // business image
//business_image_add(BizEntities.businessImage), //business_image_add(BizEntities.businessImage),
//business_image_edit(BizEntities.businessImage), //business_image_edit(BizEntities.businessImage),
//business_image_find(BizEntities.businessImage), //business_image_find(BizEntities.businessImage),
//business_image_enable(BizEntities.businessImage), //business_image_enable(BizEntities.businessImage),
//business_image_disable(BizEntities.businessImage), //business_image_disable(BizEntities.businessImage),
//business_image_list(BizEntities.businessImage), //business_image_list(BizEntities.businessImage),
//business_image_delete(BizEntities.businessImage), //business_image_delete(BizEntities.businessImage),
//business_image_preload(BizEntities.businessImage), //business_image_preload(BizEntities.businessImage),
// //
business_image_viewer(BizEntities.businessImage), business_image_viewer(BizEntities.businessImage),
//business_image_guest(BizEntities.businessImage), //business_image_guest(BizEntities.businessImage),
//business_image_collab(BizEntities.businessImage), //business_image_collab(BizEntities.businessImage),
business_image_worker(BizEntities.businessImage), business_image_worker(BizEntities.businessImage),
//business_image_control(BizEntities.businessImage), //business_image_control(BizEntities.businessImage),
business_image_manager(BizEntities.businessImage), business_image_manager(BizEntities.businessImage),
business_image_admin(null), business_image_admin(null),
business_image_system(null), business_image_system(null),
// business worker // business worker
//business_worker_add(BizEntities.businessWorker), //business_worker_add(BizEntities.businessWorker),
//business_worker_edit(BizEntities.businessWorker), //business_worker_edit(BizEntities.businessWorker),
//business_worker_find(BizEntities.businessWorker), //business_worker_find(BizEntities.businessWorker),
//business_worker_enable(BizEntities.businessWorker), //business_worker_enable(BizEntities.businessWorker),
//business_worker_disable(BizEntities.businessWorker), //business_worker_disable(BizEntities.businessWorker),
//business_worker_list(BizEntities.businessWorker), //business_worker_list(BizEntities.businessWorker),
//business_worker_delete(BizEntities.businessWorker), //business_worker_delete(BizEntities.businessWorker),
//business_worker_preload(BizEntities.businessWorker), //business_worker_preload(BizEntities.businessWorker),
// //
business_worker_viewer(BizEntities.businessWorker), business_worker_viewer(BizEntities.businessWorker),
//business_worker_guest(BizEntities.businessWorker), //business_worker_guest(BizEntities.businessWorker),
//business_worker_collab(BizEntities.businessWorker), //business_worker_collab(BizEntities.businessWorker),
business_worker_worker(BizEntities.businessWorker), business_worker_worker(BizEntities.businessWorker),
//business_worker_control(BizEntities.businessWorker), //business_worker_control(BizEntities.businessWorker),
business_worker_manager(BizEntities.businessWorker), business_worker_manager(BizEntities.businessWorker),
business_worker_admin(null), business_worker_admin(null),
business_worker_system(null), business_worker_system(null),
// business tag // business tag
//business_tag_add(BizEntities.businessTag), //business_tag_add(BizEntities.businessTag),
//business_tag_edit(BizEntities.businessTag), //business_tag_edit(BizEntities.businessTag),
//business_tag_find(BizEntities.businessTag), //business_tag_find(BizEntities.businessTag),
//business_tag_enable(BizEntities.businessTag), //business_tag_enable(BizEntities.businessTag),
//business_tag_disable(BizEntities.businessTag), //business_tag_disable(BizEntities.businessTag),
//business_tag_list(BizEntities.businessTag), //business_tag_list(BizEntities.businessTag),
//business_tag_delete(BizEntities.businessTag), //business_tag_delete(BizEntities.businessTag),
//business_tag_preload(BizEntities.businessTag), //business_tag_preload(BizEntities.businessTag),
// //
business_tag_viewer(BizEntities.businessTag), business_tag_viewer(BizEntities.businessTag),
//business_tag_guest(BizEntities.businessTag), //business_tag_guest(BizEntities.businessTag),
//business_tag_collab(BizEntities.businessTag), //business_tag_collab(BizEntities.businessTag),
business_tag_worker(BizEntities.businessTag), business_tag_worker(BizEntities.businessTag),
//business_tag_control(BizEntities.businessTag), //business_tag_control(BizEntities.businessTag),
business_tag_manager(BizEntities.businessTag), business_tag_manager(BizEntities.businessTag),
business_tag_admin(null), business_tag_admin(null),
business_tag_system(null); business_tag_system(null);
// ::: // :::
// //
private final BizEntities resourceType; private final BizEntities resourceType;
BizPermissions(BizEntities entityRef) { BizPermissions(BizEntities entityRef) {
this.resourceType = entityRef; this.resourceType = entityRef;
} }
// //
public PermissionReference toReference() { public PermissionReference toReference() {
return toReference(null); return toReference(null);
} }
public PermissionReference toReference(String resourceKey) { public PermissionReference toReference(String resourceKey) {
var ref = new PermissionReference() var ref = new PermissionReference()
.module(BizConstants.NAME) .module(BizConstants.NAME)
.permission(name()) .permission(name())
.error(AppErrors.action_unauthorized); .error(AppErrors.action_unauthorized);
if (resourceType != null && resourceKey != null) { if (resourceType != null && resourceKey != null) {
ref.resourceType(resourceType.name()) ref.resourceType(resourceType.name())
.resourceKey(resourceKey); .resourceKey(resourceKey);
} }
return ref; return ref;
} }
} }
@@ -1,29 +1,29 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.biz.action.business; package io.kumare.iqr.mod.biz.action.business;
// base // base
import io.kumare.iqr.app.action.AppEntityActionArgument; import io.kumare.iqr.app.action.AppEntityActionArgument;
// entity // entity
import io.kumare.iqr.mod.biz.store.business.BusinessEntity; import io.kumare.iqr.mod.biz.store.business.BusinessEntity;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class BusinessActionArgument extends AppEntityActionArgument<BusinessEntity> { public class BusinessActionArgument extends AppEntityActionArgument<BusinessEntity> {
// ::: constructors // ::: constructors
// //
public BusinessActionArgument() { public BusinessActionArgument() {
} }
public BusinessActionArgument(BusinessEntity entity) { public BusinessActionArgument(BusinessEntity entity) {
super(entity); super(entity);
} }
// ::: api // ::: api
// //
} }
@@ -1,161 +1,161 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.biz.action.business; package io.kumare.iqr.mod.biz.action.business;
// lib // lib
import io.kumare.lib.v.V; import io.kumare.lib.v.V;
// base // base
import io.kumare.iqr.app.AppErrors; import io.kumare.iqr.app.AppErrors;
import io.kumare.iqr.app.action.AppAction; import io.kumare.iqr.app.action.AppAction;
import io.kumare.iqr.app.action.AppEntityActionResult; import io.kumare.iqr.app.action.AppEntityActionResult;
import io.kumare.iqr.app.module.AppModules; import io.kumare.iqr.app.module.AppModules;
import io.kumare.iqr.mod.authentication.action.authuser.AuthUserAddArgument; import io.kumare.iqr.mod.authentication.action.authuser.AuthUserAddArgument;
import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity; import io.kumare.iqr.mod.authentication.store.authuser.AuthUserEntity;
// module // module
import io.kumare.iqr.mod.biz.BizErrors; import io.kumare.iqr.mod.biz.BizErrors;
import io.kumare.iqr.mod.biz.action.businessprofile.BusinessProfileAddAction; 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.businessprofile.BusinessProfileAddArgument;
import io.kumare.iqr.mod.biz.action.businesstag.BusinessTagAddAction; 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.businesstag.BusinessTagAddArgument;
import io.kumare.iqr.mod.biz.action.businessworker.BusinessWorkerAddAction; import io.kumare.iqr.mod.biz.action.businessworker.BusinessWorkerAddAction;
import io.kumare.iqr.mod.biz.action.businessworker.BusinessWorkerAddArgument; import io.kumare.iqr.mod.biz.action.businessworker.BusinessWorkerAddArgument;
import io.kumare.iqr.mod.biz.store.BizTaxonomies; import io.kumare.iqr.mod.biz.store.BizTaxonomies;
import io.kumare.iqr.mod.biz.store.BizWorkerRoles; import io.kumare.iqr.mod.biz.store.BizWorkerRoles;
// entity // entity
import io.kumare.iqr.mod.biz.store.business.BusinessEntity; import io.kumare.iqr.mod.biz.store.business.BusinessEntity;
import io.kumare.iqr.mod.biz.store.businesstag.BusinessTagEntity; import io.kumare.iqr.mod.biz.store.businesstag.BusinessTagEntity;
import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity; import io.kumare.iqr.mod.taxonomy.store.taxon.TaxonEntity;
import io.kumare.lib.base.server.spring.action.Actions; import io.kumare.lib.base.server.spring.action.Actions;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class BusinessAddAction extends AppAction<BusinessAddArgument, AppEntityActionResult<BusinessEntity>> { public class BusinessAddAction extends AppAction<BusinessAddArgument, AppEntityActionResult<BusinessEntity>> {
// ::: vars // ::: vars
// //
private BusinessEntity entity; private BusinessEntity entity;
// ::: protected api // ::: protected api
// //
@Override @Override
protected void checkArgument() { protected void checkArgument() {
V.ifNull(getArgument(), AppErrors.action_arg_notfound); V.ifNull(getArgument(), AppErrors.action_arg_notfound);
// entity // entity
var model = getArgument().getEntity(); var model = getArgument().getEntity();
V.ifNull(model, BizErrors.business_notfound); V.ifNull(model, BizErrors.business_notfound);
// relations // relations
//V.ifNull(model.getState(), BizErrors.business_state_notfound); //V.ifNull(model.getState(), BizErrors.business_state_notfound);
// fields // fields
//V.ifEmpty(model.getEntityKey(), BizErrors.business_entitykey_empty); //V.ifEmpty(model.getEntityKey(), BizErrors.business_entitykey_empty);
//V.ifEmpty(model.getAlias(), BizErrors.business_alias_empty); //V.ifEmpty(model.getAlias(), BizErrors.business_alias_empty);
//V.ifEmpty(model.getStateValue(), BizErrors.business_statevalue_empty); //V.ifEmpty(model.getStateValue(), BizErrors.business_statevalue_empty);
V.ifEmpty(model.getName(), BizErrors.business_name_empty); V.ifEmpty(model.getName(), BizErrors.business_name_empty);
//V.ifEmpty(model.getDescription(), BizErrors.business_description_empty); //V.ifEmpty(model.getDescription(), BizErrors.business_description_empty);
} }
@Override @Override
protected void doAction() { protected void doAction() {
// controllers // controllers
var state = BizTaxonomies.businessState.ensureDefault(getContext()); var state = BizTaxonomies.businessState.ensureDefault(getContext());
// model // model
var model = makeModel(state); var model = makeModel(state);
// add // add
entity = saveEntity(model); entity = saveEntity(model);
// add others // add others
addProfile(getArgument().getProfile()); addProfile(getArgument().getProfile());
addManager(getArgument().getManager()); addManager(getArgument().getManager());
addTags(); addTags();
// dispatchEvents // dispatchEvents
} }
@Override @Override
protected void setResultOnly() { protected void setResultOnly() {
var result = new AppEntityActionResult<BusinessEntity>(); var result = new AppEntityActionResult<BusinessEntity>();
result.setEntity(entity); result.setEntity(entity);
setResult(result); setResult(result);
} }
// ::: model // ::: model
// //
private BusinessEntity makeModel(TaxonEntity state) { private BusinessEntity makeModel(TaxonEntity state) {
var argModel = getArgument().getEntity(); var argModel = getArgument().getEntity();
var model = new BusinessEntity(); var model = new BusinessEntity();
// relations // relations
model.setState(state); model.setState(state);
model.setStateValue(state.getValue()); model.setStateValue(state.getValue());
// fields // fields
model.setEntityKey(generateKey()); model.setEntityKey(generateKey());
model.setAlias(argModel.getAlias()); model.setAlias(argModel.getAlias());
model.setName(argModel.getName()); model.setName(argModel.getName());
model.setDescription(argModel.getDescription()); model.setDescription(argModel.getDescription());
model.setActive(true); model.setActive(true);
return model; return model;
} }
private String generateKey() { private String generateKey() {
return null; return null;
} }
// ::: save // ::: save
// //
private BusinessEntity saveEntity(BusinessEntity model) { private BusinessEntity saveEntity(BusinessEntity model) {
var store = AppModules.biz.getController().getBusinessStore(); var store = AppModules.biz.getController().getBusinessStore();
var saved = store.add(getContext(), model); var saved = store.add(getContext(), model);
getContext().attach(saved.getId(), saved); getContext().attach(saved.getId(), saved);
return saved; return saved;
} }
// ::: adds // ::: adds
// //
private void addProfile(BusinessProfileAddArgument argument) { private void addProfile(BusinessProfileAddArgument argument) {
argument.getEntity().setBusiness(entity); argument.getEntity().setBusiness(entity);
Actions.perform(getContext(), new BusinessProfileAddAction(), argument); Actions.perform(getContext(), new BusinessProfileAddAction(), argument);
} }
private void addManager(BusinessWorkerAddArgument argument) { private void addManager(BusinessWorkerAddArgument argument) {
var worker = argument.getEntity(); var worker = argument.getEntity();
worker worker
.business(entity) .business(entity)
.role(new TaxonEntity() .role(new TaxonEntity()
.taxaKey(BizTaxonomies.businessWorkerRole.getKey()) .taxaKey(BizTaxonomies.businessWorkerRole.getKey())
.entityKey(BizWorkerRoles.manager.getKey())); .entityKey(BizWorkerRoles.manager.getKey()));
var addUser = new AuthUserAddArgument(); var addUser = new AuthUserAddArgument();
addUser.entity(new AuthUserEntity() addUser.entity(new AuthUserEntity()
.email(worker.getEmail()) .email(worker.getEmail())
.phone(worker.getPhone()) .phone(worker.getPhone())
.name(worker.getName()) .name(worker.getName())
.visible(true) .visible(true)
.entityKey(worker.getEntityKey())); .entityKey(worker.getEntityKey()));
argument.setAuthUser(addUser); argument.setAuthUser(addUser);
Actions.perform(getContext(), new BusinessWorkerAddAction(), argument); Actions.perform(getContext(), new BusinessWorkerAddAction(), argument);
} }
private void addTags() { private void addTags() {
var tags = BizTaxonomies.businessDefaultTag.list(getContext()); var tags = BizTaxonomies.businessDefaultTag.list(getContext());
tags.forEach(i -> { tags.forEach(i -> {
var arg = new BusinessTagAddArgument(); var arg = new BusinessTagAddArgument();
arg.entity(new BusinessTagEntity().name(i.getName())); arg.entity(new BusinessTagEntity().name(i.getName()));
Actions.perform(getContext(), new BusinessTagAddAction(), arg); Actions.perform(getContext(), new BusinessTagAddAction(), arg);
}); });
} }
} }
@@ -1,49 +1,49 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.biz.action.business; package io.kumare.iqr.mod.biz.action.business;
// app // app
import io.kumare.iqr.mod.biz.action.businessprofile.BusinessProfileAddArgument; import io.kumare.iqr.mod.biz.action.businessprofile.BusinessProfileAddArgument;
import io.kumare.iqr.mod.biz.action.businessworker.BusinessWorkerAddArgument; import io.kumare.iqr.mod.biz.action.businessworker.BusinessWorkerAddArgument;
import io.kumare.iqr.mod.biz.store.business.BusinessEntity; import io.kumare.iqr.mod.biz.store.business.BusinessEntity;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class BusinessAddArgument extends BusinessActionArgument { public class BusinessAddArgument extends BusinessActionArgument {
// ::: vars // ::: vars
// //
private BusinessProfileAddArgument profile; private BusinessProfileAddArgument profile;
private BusinessWorkerAddArgument manager; private BusinessWorkerAddArgument manager;
// ::: constructors // ::: constructors
// //
public BusinessAddArgument() { public BusinessAddArgument() {
} }
public BusinessAddArgument(BusinessEntity entity) { public BusinessAddArgument(BusinessEntity entity) {
super(entity); super(entity);
} }
// ::: fields // ::: fields
// //
public BusinessProfileAddArgument getProfile() { public BusinessProfileAddArgument getProfile() {
return profile; return profile;
} }
public void setProfile(BusinessProfileAddArgument profile) { public void setProfile(BusinessProfileAddArgument profile) {
this.profile = profile; this.profile = profile;
} }
public BusinessWorkerAddArgument getManager() { public BusinessWorkerAddArgument getManager() {
return manager; return manager;
} }
public void setManager(BusinessWorkerAddArgument manager) { public void setManager(BusinessWorkerAddArgument manager) {
this.manager = manager; this.manager = manager;
} }
} }
@@ -1,59 +1,59 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.biz.action.business; package io.kumare.iqr.mod.biz.action.business;
// lib // lib
import io.kumare.lib.v.V; import io.kumare.lib.v.V;
// base // base
import io.kumare.iqr.app.AppErrors; import io.kumare.iqr.app.AppErrors;
import io.kumare.iqr.app.action.AppAction; import io.kumare.iqr.app.action.AppAction;
import io.kumare.iqr.app.action.AppEntityActionResult; import io.kumare.iqr.app.action.AppEntityActionResult;
import io.kumare.iqr.app.module.AppModules; import io.kumare.iqr.app.module.AppModules;
// module // module
import io.kumare.iqr.mod.biz.BizErrors; import io.kumare.iqr.mod.biz.BizErrors;
// entity // entity
import io.kumare.iqr.mod.biz.store.business.BusinessEntity; import io.kumare.iqr.mod.biz.store.business.BusinessEntity;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class BusinessDeleteAction extends AppAction<BusinessActionArgument, AppEntityActionResult<BusinessEntity>> { public class BusinessDeleteAction extends AppAction<BusinessActionArgument, AppEntityActionResult<BusinessEntity>> {
// ::: vars // ::: vars
// //
private BusinessEntity entity; private BusinessEntity entity;
// ::: protected api // ::: protected api
// //
@Override @Override
protected void checkArgument() { protected void checkArgument() {
V.ifNull(getArgument(), AppErrors.action_arg_notfound); V.ifNull(getArgument(), AppErrors.action_arg_notfound);
V.ifNull(getArgument().getEntity(), BizErrors.business_notfound); V.ifNull(getArgument().getEntity(), BizErrors.business_notfound);
V.ifNull(getArgument().getEntity().getId(), BizErrors.business_notfound); V.ifNull(getArgument().getEntity().getId(), BizErrors.business_notfound);
} }
@Override @Override
protected void doAction() { protected void doAction() {
var argModel = getArgument().getEntity(); var argModel = getArgument().getEntity();
deleteEntity(argModel); deleteEntity(argModel);
} }
@Override @Override
protected void setResultOnly() { protected void setResultOnly() {
} }
// ::: delete // ::: delete
// //
private void deleteEntity(BusinessEntity model) { private void deleteEntity(BusinessEntity model) {
var store = AppModules.biz.getController().getBusinessStore(); var store = AppModules.biz.getController().getBusinessStore();
store.deleteById(getContext(), model.getId()); store.deleteById(getContext(), model.getId());
} }
} }
@@ -1,110 +1,110 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.biz.action.business; package io.kumare.iqr.mod.biz.action.business;
// lib // lib
import io.kumare.lib.v.V; import io.kumare.lib.v.V;
// app // app
import io.kumare.iqr.app.AppErrors; import io.kumare.iqr.app.AppErrors;
import io.kumare.iqr.app.action.AppAction; import io.kumare.iqr.app.action.AppAction;
import io.kumare.iqr.app.action.AppEntityActionResult; import io.kumare.iqr.app.action.AppEntityActionResult;
import io.kumare.iqr.app.module.AppModules; import io.kumare.iqr.app.module.AppModules;
// module // module
import io.kumare.iqr.mod.biz.BizErrors; import io.kumare.iqr.mod.biz.BizErrors;
import io.kumare.iqr.mod.biz.action.businessprofile.BusinessProfileEditAction; import io.kumare.iqr.mod.biz.action.businessprofile.BusinessProfileEditAction;
import io.kumare.iqr.mod.biz.action.businessprofile.BusinessProfileEditArgument; import io.kumare.iqr.mod.biz.action.businessprofile.BusinessProfileEditArgument;
// entity // entity
import io.kumare.iqr.mod.biz.store.business.BusinessEntity; import io.kumare.iqr.mod.biz.store.business.BusinessEntity;
import io.kumare.lib.base.server.spring.action.Actions; import io.kumare.lib.base.server.spring.action.Actions;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class BusinessEditAction extends AppAction<BusinessActionArgument, AppEntityActionResult<BusinessEntity>> { public class BusinessEditAction extends AppAction<BusinessActionArgument, AppEntityActionResult<BusinessEntity>> {
// ::: vars // ::: vars
// //
private BusinessEntity entity; private BusinessEntity entity;
// ::: protected api // ::: protected api
// //
@Override @Override
protected void checkArgument() { protected void checkArgument() {
V.ifNull(getArgument(), AppErrors.action_arg_notfound); V.ifNull(getArgument(), AppErrors.action_arg_notfound);
// entity // entity
var model = getArgument().getEntity(); var model = getArgument().getEntity();
V.ifNull(model, BizErrors.business_notfound); V.ifNull(model, BizErrors.business_notfound);
// fields // fields
//V.ifEmpty(model.getEntityKey(), BizErrors.business_entitykey_empty); //V.ifEmpty(model.getEntityKey(), BizErrors.business_entitykey_empty);
//V.ifEmpty(model.getAlias(), BizErrors.business_alias_empty); //V.ifEmpty(model.getAlias(), BizErrors.business_alias_empty);
//V.ifEmpty(model.getStateValue(), BizErrors.business_statevalue_empty); //V.ifEmpty(model.getStateValue(), BizErrors.business_statevalue_empty);
//V.ifEmpty(model.getName(), BizErrors.business_name_empty); //V.ifEmpty(model.getName(), BizErrors.business_name_empty);
//V.ifEmpty(model.getDescription(), BizErrors.business_description_empty); //V.ifEmpty(model.getDescription(), BizErrors.business_description_empty);
} }
@Override @Override
protected void doAction() { protected void doAction() {
// arguments // arguments
var argModel = getArgument().getEntity(); var argModel = getArgument().getEntity();
// controllers // controllers
var biz = AppModules.biz.getController(); var biz = AppModules.biz.getController();
var businessStore = biz.getBusinessStore(); var businessStore = biz.getBusinessStore();
// edit // edit
entity = businessStore.ensure(getContext(), argModel, BizErrors.business_notfound); entity = businessStore.ensure(getContext(), argModel, BizErrors.business_notfound);
editEntity(); editEntity();
entity = saveEntity(); entity = saveEntity();
// dispatchEvents // dispatchEvents
} }
@Override @Override
protected void setResultOnly() { protected void setResultOnly() {
var result = new AppEntityActionResult<BusinessEntity>(); var result = new AppEntityActionResult<BusinessEntity>();
result.setEntity(entity); result.setEntity(entity);
setResult(result); setResult(result);
} }
// ::: model // ::: model
// //
private void editEntity() { private void editEntity() {
var model = getArgument().getEntity(); var model = getArgument().getEntity();
// fields // fields
//entity.setEntityKey(V.firstNotEmpty(model.getEntityKey(), entity.getEntityKey())); //entity.setEntityKey(V.firstNotEmpty(model.getEntityKey(), entity.getEntityKey()));
entity.setAlias(V.firstNotEmpty(model.getAlias(), entity.getAlias())); entity.setAlias(V.firstNotEmpty(model.getAlias(), entity.getAlias()));
//entity.setStateValue(V.firstNotEmpty(model.getStateValue(), entity.getStateValue())); //entity.setStateValue(V.firstNotEmpty(model.getStateValue(), entity.getStateValue()));
entity.setName(V.firstNotEmpty(model.getName(), entity.getName())); entity.setName(V.firstNotEmpty(model.getName(), entity.getName()));
entity.setDescription(V.firstNotEmpty(model.getDescription(), entity.getDescription())); entity.setDescription(V.firstNotEmpty(model.getDescription(), entity.getDescription()));
} }
// ::: save // ::: save
// //
private BusinessEntity saveEntity() { private BusinessEntity saveEntity() {
var store = AppModules.biz.getController().getBusinessStore(); var store = AppModules.biz.getController().getBusinessStore();
var saved = store.edit(getContext(), entity); var saved = store.edit(getContext(), entity);
getContext().attach(saved.getId(), saved); getContext().attach(saved.getId(), saved);
return saved; return saved;
} }
// ::: edit others // ::: edit others
// //
public void editProfile(BusinessProfileEditArgument argument) { public void editProfile(BusinessProfileEditArgument argument) {
if (argument != null) { if (argument != null) {
argument.getEntity().setBusiness(entity); argument.getEntity().setBusiness(entity);
Actions.perform(getContext(), new BusinessProfileEditAction(), argument); Actions.perform(getContext(), new BusinessProfileEditAction(), argument);
} }
} }
} }
@@ -1,39 +1,39 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.biz.action.business; package io.kumare.iqr.mod.biz.action.business;
// app // app
import io.kumare.iqr.mod.biz.action.businessprofile.BusinessProfileEditArgument; import io.kumare.iqr.mod.biz.action.businessprofile.BusinessProfileEditArgument;
import io.kumare.iqr.mod.biz.store.business.BusinessEntity; import io.kumare.iqr.mod.biz.store.business.BusinessEntity;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class BusinessEditArgument extends BusinessActionArgument { public class BusinessEditArgument extends BusinessActionArgument {
// ::: vars // ::: vars
// //
private BusinessProfileEditArgument profile; private BusinessProfileEditArgument profile;
// ::: constructors // ::: constructors
// //
public BusinessEditArgument() { public BusinessEditArgument() {
} }
public BusinessEditArgument(BusinessEntity entity) { public BusinessEditArgument(BusinessEntity entity) {
super(entity); super(entity);
} }
// ::: fields // ::: fields
// //
public BusinessProfileEditArgument getProfile() { public BusinessProfileEditArgument getProfile() {
return profile; return profile;
} }
public void setProfile(BusinessProfileEditArgument profile) { public void setProfile(BusinessProfileEditArgument profile) {
this.profile = profile; this.profile = profile;
} }
} }
@@ -1,60 +1,60 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.biz.action.business; package io.kumare.iqr.mod.biz.action.business;
// lib // lib
import io.kumare.lib.v.V; import io.kumare.lib.v.V;
// base // base
import io.kumare.iqr.app.AppErrors; import io.kumare.iqr.app.AppErrors;
import io.kumare.iqr.app.action.AppAction; import io.kumare.iqr.app.action.AppAction;
import io.kumare.iqr.app.action.AppActionResult; import io.kumare.iqr.app.action.AppActionResult;
import io.kumare.iqr.app.module.AppModules; import io.kumare.iqr.app.module.AppModules;
// module // module
import io.kumare.iqr.mod.biz.BizErrors; import io.kumare.iqr.mod.biz.BizErrors;
// entity // entity
import io.kumare.iqr.mod.biz.store.business.BusinessEntity; import io.kumare.iqr.mod.biz.store.business.BusinessEntity;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class BusinessEnableAction extends AppAction<BusinessActionArgument, AppActionResult> { public class BusinessEnableAction extends AppAction<BusinessActionArgument, AppActionResult> {
// ::: protected api // ::: protected api
// //
@Override @Override
protected void checkArgument() { protected void checkArgument() {
V.ifNull(getArgument(), AppErrors.action_arg_notfound); V.ifNull(getArgument(), AppErrors.action_arg_notfound);
V.ifNull(getArgument().getEntity(), BizErrors.business_notfound); V.ifNull(getArgument().getEntity(), BizErrors.business_notfound);
V.ifNull(getArgument().getEntity().getId(), BizErrors.business_notfound); V.ifNull(getArgument().getEntity().getId(), BizErrors.business_notfound);
} }
@Override @Override
protected void doAction() { protected void doAction() {
var model = getArgument().getEntity(); var model = getArgument().getEntity();
enableEntity(model); enableEntity(model);
} }
@Override @Override
protected void setResultOnly() { protected void setResultOnly() {
} }
// ::: enable // ::: enable
// //
private void enableEntity(BusinessEntity model) { private void enableEntity(BusinessEntity model) {
var store = AppModules.biz.getController().getBusinessStore(); var store = AppModules.biz.getController().getBusinessStore();
if (getArgument().getEntity().isActive()) { if (getArgument().getEntity().isActive()) {
store.enableById(getContext(), model.getId()); store.enableById(getContext(), model.getId());
} else { } else {
store.disableById(getContext(), model.getId()); store.disableById(getContext(), model.getId());
} }
} }
} }
@@ -1,70 +1,70 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.biz.action.business; package io.kumare.iqr.mod.biz.action.business;
// java // java
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
// lib // lib
import io.kumare.lib.v.V; import io.kumare.lib.v.V;
// base // base
import io.kumare.iqr.app.AppErrors; import io.kumare.iqr.app.AppErrors;
import io.kumare.iqr.app.action.AppAction; import io.kumare.iqr.app.action.AppAction;
import io.kumare.iqr.app.module.AppModules; import io.kumare.iqr.app.module.AppModules;
// module // module
import io.kumare.iqr.mod.biz.BizErrors; import io.kumare.iqr.mod.biz.BizErrors;
// entity // entity
import io.kumare.iqr.mod.biz.store.business.BusinessEntity; import io.kumare.iqr.mod.biz.store.business.BusinessEntity;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class BusinessFindAction extends AppAction<BusinessActionArgument, Map> { public class BusinessFindAction extends AppAction<BusinessActionArgument, Map> {
// ::: vars // ::: vars
// //
private BusinessEntity entity; private BusinessEntity entity;
// ::: public api // ::: public api
// //
public BusinessEntity getEntity() { public BusinessEntity getEntity() {
return entity; return entity;
} }
// ::: protected api // ::: protected api
// //
@Override @Override
protected void checkArgument() { protected void checkArgument() {
V.ifNull(getArgument(), AppErrors.action_arg_notfound); V.ifNull(getArgument(), AppErrors.action_arg_notfound);
V.ifNull(getArgument().getEntity(), BizErrors.business_notfound); V.ifNull(getArgument().getEntity(), BizErrors.business_notfound);
V.ifNull(getArgument().getEntity().getId(), BizErrors.business_notfound); V.ifNull(getArgument().getEntity().getId(), BizErrors.business_notfound);
} }
@Override @Override
protected void doAction() { protected void doAction() {
var model = getArgument().getEntity(); var model = getArgument().getEntity();
entity = findEntity(model); entity = findEntity(model);
} }
@Override @Override
protected void setResultOnly() { protected void setResultOnly() {
var result = new HashMap(); var result = new HashMap();
result.put("entity", entity); result.put("entity", entity);
setResult(result); setResult(result);
} }
// ::: find // ::: find
// //
private BusinessEntity findEntity(BusinessEntity model) { private BusinessEntity findEntity(BusinessEntity model) {
var store = AppModules.biz.getController().getBusinessStore(); var store = AppModules.biz.getController().getBusinessStore();
return store.findById(getContext(), model.getId()); return store.findById(getContext(), model.getId());
} }
} }
@@ -1,148 +1,148 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.biz.action.business; package io.kumare.iqr.mod.biz.action.business;
// java // java
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.Map; import java.util.Map;
// spring // spring
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
// lib // lib
import io.kumare.lib.v.V; import io.kumare.lib.v.V;
// base // base
import io.kumare.iqr.app.AppErrors; import io.kumare.iqr.app.AppErrors;
import io.kumare.iqr.app.action.AppAction; import io.kumare.iqr.app.action.AppAction;
import io.kumare.iqr.app.module.AppModules; import io.kumare.iqr.app.module.AppModules;
// entity // entity
import io.kumare.iqr.mod.biz.store.business.BusinessEntity; import io.kumare.iqr.mod.biz.store.business.BusinessEntity;
import io.kumare.iqr.mod.biz.store.business.BusinessMapBuilder; import io.kumare.iqr.mod.biz.store.business.BusinessMapBuilder;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class BusinessListAction extends AppAction<BusinessListArgument, Map> { public class BusinessListAction extends AppAction<BusinessListArgument, Map> {
// ::: vars // ::: vars
// //
private final Map result = new HashMap<String, Object>(); private final Map result = new HashMap<String, Object>();
private final List<BusinessEntity> entities = new LinkedList<>(); private final List<BusinessEntity> entities = new LinkedList<>();
// ::: public api // ::: public api
// //
public List<BusinessEntity> getEntities() { public List<BusinessEntity> getEntities() {
return entities; return entities;
} }
// ::: protected api // ::: protected api
// //
@Override @Override
protected void checkArgument() { protected void checkArgument() {
V.ifNull(getArgument(), AppErrors.action_arg_notfound); V.ifNull(getArgument(), AppErrors.action_arg_notfound);
} }
@Override @Override
protected void doAction() { protected void doAction() {
result.put("pageable", getArgument().isPageable()); result.put("pageable", getArgument().isPageable());
result.put("wrapped", getArgument().isWrapped()); result.put("wrapped", getArgument().isWrapped());
if (getArgument().isPageable()) { if (getArgument().isPageable()) {
var page = makePage(); var page = makePage();
entities.addAll(page.toList()); entities.addAll(page.toList());
if (getArgument().isWrapped()) { if (getArgument().isWrapped()) {
result.put("page", makeWrappedPage(page)); result.put("page", makeWrappedPage(page));
} else { } else {
result.put("page", page); result.put("page", page);
} }
} else { } else {
var list = makeList(); var list = makeList();
entities.addAll(list); entities.addAll(list);
if (getArgument().isWrapped()) { if (getArgument().isWrapped()) {
result.put("list", makeWrappedList()); result.put("list", makeWrappedList());
} else { } else {
result.put("list", list); result.put("list", list);
} }
} }
} }
@Override @Override
protected void setResultOnly() { protected void setResultOnly() {
setResult(result); setResult(result);
} }
// ::: page // ::: page
// //
private Page<BusinessEntity> makePage() { private Page<BusinessEntity> makePage() {
var page = getArgument().getPageNumber(); var page = getArgument().getPageNumber();
var size = getArgument().getPageSize(); var size = getArgument().getPageSize();
//var sort = getArgument().getSort(); //var sort = getArgument().getSort();
var pageable = PageRequest.of(page, size); var pageable = PageRequest.of(page, size);
var store = AppModules.biz.getController().getBusinessStore(); var store = AppModules.biz.getController().getBusinessStore();
return store.getRepository().findAll(pageable); return store.getRepository().findAll(pageable);
} }
// ::: wrapped page // ::: wrapped page
// //
private Map makeWrappedPage(Page<BusinessEntity> found) { private Map makeWrappedPage(Page<BusinessEntity> found) {
var page = new HashMap(); var page = new HashMap();
var content = new LinkedList(); var content = new LinkedList();
wrapList(entities, content); wrapList(entities, content);
page.put("size", found.getSize()); page.put("size", found.getSize());
page.put("number", found.getNumber()); page.put("number", found.getNumber());
page.put("totalElements", found.getTotalElements()); page.put("totalElements", found.getTotalElements());
page.put("totalPages", found.getTotalPages()); page.put("totalPages", found.getTotalPages());
page.put("content", content); page.put("content", content);
return page; return page;
} }
// ::: list // ::: list
// //
private List<BusinessEntity> makeList() { private List<BusinessEntity> makeList() {
var store = AppModules.biz.getController().getBusinessStore(); var store = AppModules.biz.getController().getBusinessStore();
return store.listAll(getContext()); return store.listAll(getContext());
} }
// ::: wrapped list // ::: wrapped list
private List makeWrappedList() { private List makeWrappedList() {
var list = new LinkedList(); var list = new LinkedList();
wrapList(entities, list); wrapList(entities, list);
return list; return list;
} }
// ::: wrapper // ::: wrapper
// //
private void wrapList(List<BusinessEntity> found, List output) { private void wrapList(List<BusinessEntity> found, List output) {
var builder = new BusinessMapBuilder().addListGroup(); var builder = new BusinessMapBuilder().addListGroup();
builder.getStateBuilder().addMainGroup(); builder.getStateBuilder().addMainGroup();
output.addAll(builder.build(getContext(), found)); output.addAll(builder.build(getContext(), found));
} }
} }
@@ -1,33 +1,33 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.biz.action.business; package io.kumare.iqr.mod.biz.action.business;
// app // app
import io.kumare.iqr.app.action.AppListActionArgument; import io.kumare.iqr.app.action.AppListActionArgument;
// store // store
import io.kumare.iqr.mod.biz.store.business.BusinessEntity; import io.kumare.iqr.mod.biz.store.business.BusinessEntity;
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class BusinessListArgument extends AppListActionArgument<BusinessEntity> { public class BusinessListArgument extends AppListActionArgument<BusinessEntity> {
// ::: vars // ::: vars
// //
// ::: constructors // ::: constructors
// //
public BusinessListArgument() { public BusinessListArgument() {
} }
public BusinessListArgument(BusinessEntity entity) { public BusinessListArgument(BusinessEntity entity) {
super(entity); super(entity);
} }
// ::: fields // ::: fields
// //
} }
@@ -1,97 +1,97 @@
/* /*
* *
*/ */
package io.kumare.iqr.mod.biz.action.business; package io.kumare.iqr.mod.biz.action.business;
// java // java
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
// lib // lib
import io.kumare.lib.v.V; import io.kumare.lib.v.V;
// base // base
import io.kumare.iqr.app.AppErrors; import io.kumare.iqr.app.AppErrors;
import io.kumare.iqr.app.action.AppAction; import io.kumare.iqr.app.action.AppAction;
import io.kumare.iqr.app.module.AppModules; import io.kumare.iqr.app.module.AppModules;
// module // module
import io.kumare.iqr.mod.biz.BizErrors; import io.kumare.iqr.mod.biz.BizErrors;
import io.kumare.iqr.mod.biz.store.BizTaxonomies; import io.kumare.iqr.mod.biz.store.BizTaxonomies;
// entity // entity
import io.kumare.iqr.mod.biz.store.business.BusinessEntity; import io.kumare.iqr.mod.biz.store.business.BusinessEntity;
// relations // relations
/** /**
* *
* @author afatecha * @author afatecha
*/ */
public class BusinessPreloadAction extends AppAction<BusinessPreloadArgument, Map> { public class BusinessPreloadAction extends AppAction<BusinessPreloadArgument, Map> {
// ::: vars // ::: vars
// //
private final Map result = new HashMap(); private final Map result = new HashMap();
private Map<String, Object> params = new HashMap<>(); private Map<String, Object> params = new HashMap<>();
// ::: protected api // ::: protected api
// //
@Override @Override
protected void checkArgument() { protected void checkArgument() {
V.ifNull(getArgument(), AppErrors.action_arg_notfound); V.ifNull(getArgument(), AppErrors.action_arg_notfound);
V.ifEmpty(getArgument().getAction(), BizErrors.business_preload_empty); V.ifEmpty(getArgument().getAction(), BizErrors.business_preload_empty);
} }
@Override @Override
protected void doAction() { protected void doAction() {
if (getArgument().getParams() != null) { if (getArgument().getParams() != null) {
params = getArgument().getParams(); params = getArgument().getParams();
} }
switch (getArgument().getAction()) { switch (getArgument().getAction()) {
case "find" -> case "find" ->
prepareFind(); prepareFind();
case "list" -> case "list" ->
prepareList(); prepareList();
case "add" -> case "add" ->
prepareAdd(); prepareAdd();
case "edit" -> case "edit" ->
prepareEdit(); prepareEdit();
} }
} }
@Override @Override
protected void setResultOnly() { protected void setResultOnly() {
setResult(result); setResult(result);
} }
// ::: preload // ::: preload
// //
private void prepareAdd() { private void prepareAdd() {
var activities = BizTaxonomies.businessActivity.list(getContext()); var activities = BizTaxonomies.businessActivity.list(getContext());
result.put("activities", activities); result.put("activities", activities);
} }
private void prepareEdit() { private void prepareEdit() {
var entity = findEntity(); var entity = findEntity();
result.put("entity", entity); result.put("entity", entity);
result.put("state", entity.getState()); result.put("state", entity.getState());
} }
private void prepareList() { private void prepareList() {
} }
private void prepareFind() { private void prepareFind() {
var entity = findEntity(); var entity = findEntity();
result.put("entity", entity); result.put("entity", entity);
result.put("state", entity.getState()); result.put("state", entity.getState());
} }
// ::: queries // ::: queries
// //
private BusinessEntity findEntity() { private BusinessEntity findEntity() {
var store = AppModules.biz.getController().getBusinessStore(); var store = AppModules.biz.getController().getBusinessStore();
var id = (String) params.get("id"); var id = (String) params.get("id");
if (id == null && getArgument().getEntity() != null) { if (id == null && getArgument().getEntity() != null) {
id = getArgument().getEntity().getId(); id = getArgument().getEntity().getId();
} }
return store.findById(getContext(), id); return store.findById(getContext(), id);
} }
} }

Some files were not shown because too many files have changed in this diff Show More