diff --git a/app/server/server/src/main/java/com/mobtools/server/configurations/SecurityConfig.java b/app/server/server/src/main/java/com/mobtools/server/configurations/SecurityConfig.java index cf04ffa52a..5dd622ca30 100644 --- a/app/server/server/src/main/java/com/mobtools/server/configurations/SecurityConfig.java +++ b/app/server/server/src/main/java/com/mobtools/server/configurations/SecurityConfig.java @@ -39,6 +39,7 @@ public class SecurityConfig { @Bean public SecurityWebFilterChain securityWebFilterChain(ServerHttpSecurity http) { return http + .csrf().disable() .authorizeExchange() .anyExchange() .authenticated() diff --git a/app/server/server/src/main/java/com/mobtools/server/constants/Url.java b/app/server/server/src/main/java/com/mobtools/server/constants/Url.java index ba05d0f6af..ba7abeda8f 100644 --- a/app/server/server/src/main/java/com/mobtools/server/constants/Url.java +++ b/app/server/server/src/main/java/com/mobtools/server/constants/Url.java @@ -5,4 +5,5 @@ public interface Url { String VERSION = "/v1"; String WIDGET_URL = BASE_URL + VERSION + "/widgets"; String TENANT_URL = BASE_URL + VERSION + "/tenants"; + String LAYOUT_URL = BASE_URL + VERSION + "/layouts"; } diff --git a/app/server/server/src/main/java/com/mobtools/server/controllers/BaseController.java b/app/server/server/src/main/java/com/mobtools/server/controllers/BaseController.java index 761c7a8c08..1bdadfceb1 100644 --- a/app/server/server/src/main/java/com/mobtools/server/controllers/BaseController.java +++ b/app/server/server/src/main/java/com/mobtools/server/controllers/BaseController.java @@ -29,6 +29,12 @@ public abstract class BaseController new ResponseDto<>(HttpStatus.OK.value(), resources, null)); } + @GetMapping("/{id}") + public Mono> getById(@PathVariable ID id) { + return service.getById(id) + .map(resources -> new ResponseDto<>(HttpStatus.OK.value(), resources, null)); + } + @PutMapping("/{id}") public Mono> update(@PathVariable ID id, @RequestBody T resource) throws Exception { return service.update(id, resource) diff --git a/app/server/server/src/main/java/com/mobtools/server/controllers/IndexController.java b/app/server/server/src/main/java/com/mobtools/server/controllers/IndexController.java index 161245cadd..c7201e7e7a 100644 --- a/app/server/server/src/main/java/com/mobtools/server/controllers/IndexController.java +++ b/app/server/server/src/main/java/com/mobtools/server/controllers/IndexController.java @@ -1,8 +1,6 @@ package com.mobtools.server.controllers; import lombok.extern.slf4j.Slf4j; -import org.springframework.security.core.annotation.AuthenticationPrincipal; -import org.springframework.security.oauth2.core.user.OAuth2User; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; diff --git a/app/server/server/src/main/java/com/mobtools/server/controllers/LayoutController.java b/app/server/server/src/main/java/com/mobtools/server/controllers/LayoutController.java new file mode 100644 index 0000000000..8c25ede547 --- /dev/null +++ b/app/server/server/src/main/java/com/mobtools/server/controllers/LayoutController.java @@ -0,0 +1,18 @@ +package com.mobtools.server.controllers; + +import com.mobtools.server.constants.Url; +import com.mobtools.server.domains.Layout; +import com.mobtools.server.services.LayoutService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping(Url.LAYOUT_URL) +public class LayoutController extends BaseController { + + @Autowired + public LayoutController(LayoutService service) { + super(service); + } +} diff --git a/app/server/server/src/main/java/com/mobtools/server/controllers/WidgetController.java b/app/server/server/src/main/java/com/mobtools/server/controllers/WidgetController.java index 15d025fc37..8967c655a3 100644 --- a/app/server/server/src/main/java/com/mobtools/server/controllers/WidgetController.java +++ b/app/server/server/src/main/java/com/mobtools/server/controllers/WidgetController.java @@ -22,7 +22,7 @@ public class WidgetController extends BaseController> getByName(@PathVariable String name) { return widgetService.getByName(name) .map(widget -> new ResponseDto<>(HttpStatus.OK.value(), widget, null)); diff --git a/app/server/server/src/main/java/com/mobtools/server/domains/BaseDomain.java b/app/server/server/src/main/java/com/mobtools/server/domains/BaseDomain.java index 96c6b9ce9d..5db5e9e9b2 100644 --- a/app/server/server/src/main/java/com/mobtools/server/domains/BaseDomain.java +++ b/app/server/server/src/main/java/com/mobtools/server/domains/BaseDomain.java @@ -32,9 +32,6 @@ public abstract class BaseDomain implements Persistable { protected Boolean deleted = false; -// @Version -// protected Long version; - @Override public boolean isNew() { return this.getId() == null; diff --git a/app/server/server/src/main/java/com/mobtools/server/domains/Layout.java b/app/server/server/src/main/java/com/mobtools/server/domains/Layout.java new file mode 100644 index 0000000000..9677402d9c --- /dev/null +++ b/app/server/server/src/main/java/com/mobtools/server/domains/Layout.java @@ -0,0 +1,18 @@ +package com.mobtools.server.domains; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.ToString; +import net.minidev.json.JSONObject; +import org.springframework.data.mongodb.core.mapping.Document; + +@Getter +@Setter +@ToString +@NoArgsConstructor +@Document +public class Layout extends BaseDomain { + + JSONObject data; +} diff --git a/app/server/server/src/main/java/com/mobtools/server/repositories/LayoutRepository.java b/app/server/server/src/main/java/com/mobtools/server/repositories/LayoutRepository.java new file mode 100644 index 0000000000..5aa415b3e4 --- /dev/null +++ b/app/server/server/src/main/java/com/mobtools/server/repositories/LayoutRepository.java @@ -0,0 +1,8 @@ +package com.mobtools.server.repositories; + +import com.mobtools.server.domains.Layout; +import org.springframework.stereotype.Repository; + +@Repository +public interface LayoutRepository extends BaseRepository{ +} diff --git a/app/server/server/src/main/java/com/mobtools/server/services/BaseService.java b/app/server/server/src/main/java/com/mobtools/server/services/BaseService.java index e7b5df1bd9..27df6b4745 100644 --- a/app/server/server/src/main/java/com/mobtools/server/services/BaseService.java +++ b/app/server/server/src/main/java/com/mobtools/server/services/BaseService.java @@ -59,6 +59,11 @@ public abstract class BaseService getById(ID id) { + return repository.findById(id); + } + @Override public Mono create(T widget) { return repository.save(widget); diff --git a/app/server/server/src/main/java/com/mobtools/server/services/CrudService.java b/app/server/server/src/main/java/com/mobtools/server/services/CrudService.java index 19302a89c2..75a461b05c 100644 --- a/app/server/server/src/main/java/com/mobtools/server/services/CrudService.java +++ b/app/server/server/src/main/java/com/mobtools/server/services/CrudService.java @@ -11,4 +11,6 @@ public interface CrudService { Mono create(T resource); Mono update(ID id, T resource) throws Exception; + + Mono getById(ID id); } diff --git a/app/server/server/src/main/java/com/mobtools/server/services/LayoutService.java b/app/server/server/src/main/java/com/mobtools/server/services/LayoutService.java new file mode 100644 index 0000000000..878953c15a --- /dev/null +++ b/app/server/server/src/main/java/com/mobtools/server/services/LayoutService.java @@ -0,0 +1,6 @@ +package com.mobtools.server.services; + +import com.mobtools.server.domains.Layout; + +public interface LayoutService extends CrudService { +} diff --git a/app/server/server/src/main/java/com/mobtools/server/services/LayoutServiceImpl.java b/app/server/server/src/main/java/com/mobtools/server/services/LayoutServiceImpl.java new file mode 100644 index 0000000000..38574ce1e5 --- /dev/null +++ b/app/server/server/src/main/java/com/mobtools/server/services/LayoutServiceImpl.java @@ -0,0 +1,23 @@ +package com.mobtools.server.services; + +import com.mobtools.server.domains.Layout; +import com.mobtools.server.repositories.LayoutRepository; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.mongodb.core.ReactiveMongoTemplate; +import org.springframework.data.mongodb.core.convert.MongoConverter; +import org.springframework.stereotype.Service; +import reactor.core.scheduler.Scheduler; + +@Slf4j +@Service +public class LayoutServiceImpl extends BaseService implements LayoutService { + + @Autowired + public LayoutServiceImpl(Scheduler scheduler, + MongoConverter mongoConverter, + ReactiveMongoTemplate reactiveMongoTemplate, + LayoutRepository repository) { + super(scheduler, mongoConverter, reactiveMongoTemplate, repository); + } +}