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 0a4575300c..717836e17d 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 @@ -29,19 +29,19 @@ public class WidgetController extends BaseController { @GetMapping("") public Flux> getAllWidgets() { return widgetService.get() - .map(user -> new ResponseDto<>(HttpStatus.OK.value(), user, null)); + .map(widgets -> new ResponseDto<>(HttpStatus.OK.value(), widgets, null)); } @GetMapping("/{name}") - public Mono> getByName(@PathVariable String id) { - return widgetService.getByName(id) - .map(user -> new ResponseDto<>(HttpStatus.OK.value(), user, null)); + public Mono> getByName(@PathVariable String name) { + return widgetService.getByName(name) + .map(widget -> new ResponseDto<>(HttpStatus.OK.value(), widget, null)); } - @PutMapping("/{id}") - public Mono> getCureFitUser(@PathVariable Long id) { - return widgetService.update(id) - .map(cfUser -> new ResponseDto<>(HttpStatus.OK.value(), cfUser, null)); + @PutMapping("") + public Mono> update(@RequestBody Widget widget) throws Exception { + return widgetService.update(widget) + .map(updatedWidget -> new ResponseDto<>(HttpStatus.OK.value(), updatedWidget, 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 d25c5ee07e..9539c62fbe 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 @@ -3,6 +3,7 @@ package com.mobtools.server.domains; import lombok.Getter; import lombok.Setter; import lombok.ToString; +import org.hibernate.annotations.DynamicUpdate; import org.springframework.data.annotation.CreatedBy; import org.springframework.data.annotation.CreatedDate; import org.springframework.data.annotation.LastModifiedBy; @@ -18,6 +19,7 @@ import java.util.Date; @Getter @Setter @ToString +@DynamicUpdate public abstract class BaseDomain implements Serializable { private static final long serialVersionUID = 7459916000501322517L; diff --git a/app/server/server/src/main/java/com/mobtools/server/domains/Tenant.java b/app/server/server/src/main/java/com/mobtools/server/domains/Tenant.java index eab549f987..e40fc2e720 100644 --- a/app/server/server/src/main/java/com/mobtools/server/domains/Tenant.java +++ b/app/server/server/src/main/java/com/mobtools/server/domains/Tenant.java @@ -6,7 +6,6 @@ import lombok.Setter; import lombok.ToString; import javax.persistence.*; -import javax.validation.constraints.NotNull; @Entity @Getter diff --git a/app/server/server/src/main/java/com/mobtools/server/domains/User.java b/app/server/server/src/main/java/com/mobtools/server/domains/User.java index 85c3dfb4af..81103d4f6a 100644 --- a/app/server/server/src/main/java/com/mobtools/server/domains/User.java +++ b/app/server/server/src/main/java/com/mobtools/server/domains/User.java @@ -6,7 +6,6 @@ import lombok.Setter; import lombok.ToString; import javax.persistence.*; -import javax.validation.constraints.NotNull; @Entity // Specially adding the table name here because the keyword "User" is reserved in Postgres diff --git a/app/server/server/src/main/java/com/mobtools/server/domains/Widget.java b/app/server/server/src/main/java/com/mobtools/server/domains/Widget.java index dcf8ef3ff5..b0cc9ef331 100644 --- a/app/server/server/src/main/java/com/mobtools/server/domains/Widget.java +++ b/app/server/server/src/main/java/com/mobtools/server/domains/Widget.java @@ -6,7 +6,6 @@ import lombok.Setter; import lombok.ToString; import javax.persistence.*; -import javax.validation.constraints.NotNull; @Entity @Getter diff --git a/app/server/server/src/main/java/com/mobtools/server/repositories/WidgetRepository.java b/app/server/server/src/main/java/com/mobtools/server/repositories/WidgetRepository.java index b95b24e6c6..319ca38962 100644 --- a/app/server/server/src/main/java/com/mobtools/server/repositories/WidgetRepository.java +++ b/app/server/server/src/main/java/com/mobtools/server/repositories/WidgetRepository.java @@ -6,4 +6,5 @@ import org.springframework.stereotype.Repository; @Repository public interface WidgetRepository extends BaseRepository { + Widget findByName(String name); } diff --git a/app/server/server/src/main/java/com/mobtools/server/services/WidgetService.java b/app/server/server/src/main/java/com/mobtools/server/services/WidgetService.java index e501a16a3a..9f0751778b 100644 --- a/app/server/server/src/main/java/com/mobtools/server/services/WidgetService.java +++ b/app/server/server/src/main/java/com/mobtools/server/services/WidgetService.java @@ -6,11 +6,11 @@ import reactor.core.publisher.Mono; public interface WidgetService { - Mono getByName(String id); + Mono getByName(String name); Flux get(); Mono create(Widget widget); - Mono update(Long id); + Mono update(Widget widget) throws Exception; } diff --git a/app/server/server/src/main/java/com/mobtools/server/services/WidgetServiceImpl.java b/app/server/server/src/main/java/com/mobtools/server/services/WidgetServiceImpl.java index 8fa01a3eaf..0e1edae772 100644 --- a/app/server/server/src/main/java/com/mobtools/server/services/WidgetServiceImpl.java +++ b/app/server/server/src/main/java/com/mobtools/server/services/WidgetServiceImpl.java @@ -22,13 +22,16 @@ public class WidgetServiceImpl extends BaseService implements WidgetService { } @Override - public Mono getByName(String id) { - return null; + public Mono getByName(String name) { + return Mono.fromCallable(() -> widgetRepository.findByName(name)) + .subscribeOn(scheduler); } @Override public Flux get() { - return null; + return Mono.fromCallable(() -> widgetRepository.findAll()) + .flatMapMany(Flux::fromIterable) + .subscribeOn(scheduler); } @Override @@ -39,7 +42,13 @@ public class WidgetServiceImpl extends BaseService implements WidgetService { } @Override - public Mono update(Long id) { - return null; + public Mono update(Widget widget) throws Exception { + if(widget.getId() == null) { + throw new Exception("Invalid id provided"); + } + + return Mono.fromCallable( + () -> widgetRepository.save(widget) + ).subscribeOn(this.scheduler); } }