diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ConfigController.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ConfigController.java index 17b6803360..df334a7424 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ConfigController.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ConfigController.java @@ -7,6 +7,8 @@ import com.appsmith.server.services.ConfigService; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import reactor.core.publisher.Mono; @@ -25,4 +27,9 @@ public class ConfigController extends BaseController new ResponseDTO<>(HttpStatus.OK.value(), resource, null)); } + @PutMapping("/name/{name}") + public Mono> updateByName(@PathVariable String name, @RequestBody Config config) { + return service.updateByName(name, config) + .map(resource -> new ResponseDTO<>(HttpStatus.OK.value(), resource, null)); + } } diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/PropertyPaneController.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/PropertyPaneController.java deleted file mode 100644 index 84cff74674..0000000000 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/PropertyPaneController.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.appsmith.server.controllers; - -import com.appsmith.server.constants.Url; -import com.appsmith.server.domains.PropertyPane; -import com.appsmith.server.services.PropertyPaneService; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping(Url.PROPERTY_URL) -public class PropertyPaneController extends BaseController { - public PropertyPaneController(PropertyPaneService service) { - super(service); - } -} diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/WidgetController.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/WidgetController.java deleted file mode 100644 index c96c596a5d..0000000000 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/WidgetController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.appsmith.server.controllers; - -import com.appsmith.server.constants.Url; -import com.appsmith.server.domains.Widget; -import com.appsmith.server.dtos.ResponseDTO; -import com.appsmith.server.services.WidgetService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import reactor.core.publisher.Mono; - -@RestController -@RequestMapping(Url.WIDGET_URL) -public class WidgetController extends BaseController { - - @Autowired - public WidgetController(WidgetService service) { - super(service); - } - - @GetMapping("/name/{name}") - public Mono> getByName(@PathVariable String name) { - return service.getByName(name) - .map(widget -> new ResponseDTO<>(HttpStatus.OK.value(), widget, null)); - } -} diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/Config.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/Config.java index f628448a66..f8cbd694bd 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/Config.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/Config.java @@ -5,19 +5,17 @@ import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import lombok.ToString; +import net.minidev.json.JSONObject; import org.springframework.data.mongodb.core.index.Indexed; import org.springframework.data.mongodb.core.mapping.Document; -import java.util.List; -import java.util.Map; - @Getter @Setter @ToString @NoArgsConstructor @Document public class Config extends BaseDomain { - Map> config; + JSONObject config; @Indexed(unique = true) String name; diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/PropertyPane.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/PropertyPane.java deleted file mode 100644 index e864686aca..0000000000 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/PropertyPane.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.appsmith.server.domains; - -import com.appsmith.external.models.BaseDomain; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import lombok.ToString; -import org.springframework.data.mongodb.core.mapping.Document; - -import java.util.List; -import java.util.Map; - -@Getter -@Setter -@ToString -@NoArgsConstructor -@Document -public class PropertyPane extends BaseDomain { - - Map> config; - -} diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/Widget.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/Widget.java deleted file mode 100644 index 8750812e7b..0000000000 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/Widget.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.appsmith.server.domains; - -import com.appsmith.external.models.BaseDomain; -import com.appsmith.external.models.Property; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import lombok.ToString; -import org.springframework.data.mongodb.core.index.Indexed; -import org.springframework.data.mongodb.core.mapping.Document; - -import java.util.List; - - -@Getter -@Setter -@ToString -@NoArgsConstructor -@Document -public class Widget extends BaseDomain { - - @Indexed(unique = true) - private String name; - - private WidgetType type; - - private PricingPlan pricingPlan; - - private List properties; -} diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/WidgetChildProperty.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/WidgetChildProperty.java deleted file mode 100644 index 67ab0f923c..0000000000 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/WidgetChildProperty.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.appsmith.server.domains; - -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import lombok.ToString; - -import java.util.List; - -@Getter -@Setter -@ToString -@NoArgsConstructor -public class WidgetChildProperty { - String id; - String propertyName; - String label; - String controlType; - String placeholderText; - List options; - String inputType; - Boolean isJSConvertible; -} diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/WidgetOption.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/WidgetOption.java deleted file mode 100644 index 3a99c676ad..0000000000 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/WidgetOption.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.appsmith.server.domains; - -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import lombok.ToString; - -@Getter -@Setter -@ToString -@NoArgsConstructor -public class WidgetOption { - String label; - String value; -} diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/WidgetSectionProperty.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/WidgetSectionProperty.java deleted file mode 100644 index c8e04116ea..0000000000 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/WidgetSectionProperty.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.appsmith.server.domains; - -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import lombok.ToString; - -import java.util.List; - -@Getter -@Setter -@ToString -@NoArgsConstructor -public class WidgetSectionProperty { - String sectionName; - String id; - List children; -} diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/WidgetType.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/WidgetType.java deleted file mode 100644 index 812406b6db..0000000000 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/WidgetType.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.appsmith.server.domains; - -public enum WidgetType { - DB, DISPLAY -} diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/PropertyPaneRepository.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/PropertyPaneRepository.java deleted file mode 100644 index d7f944e7b0..0000000000 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/PropertyPaneRepository.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.appsmith.server.repositories; - -import com.appsmith.server.domains.PropertyPane; -import org.springframework.stereotype.Repository; - -@Repository -public interface PropertyPaneRepository extends BaseRepository { -} diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/WidgetRepository.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/WidgetRepository.java deleted file mode 100644 index edd8142c46..0000000000 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/WidgetRepository.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.appsmith.server.repositories; - -import com.appsmith.server.domains.Widget; -import org.springframework.stereotype.Repository; -import reactor.core.publisher.Mono; - -@Repository -public interface WidgetRepository extends BaseRepository { - - Mono findByName(String name); -} diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ConfigService.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ConfigService.java index a635da8334..c930844130 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ConfigService.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ConfigService.java @@ -5,4 +5,6 @@ import reactor.core.publisher.Mono; public interface ConfigService extends CrudService { Mono getByName(String name); + + Mono updateByName(String name, Config config); } diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ConfigServiceImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ConfigServiceImpl.java index 96f4d11f96..88163b2dd1 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ConfigServiceImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ConfigServiceImpl.java @@ -5,6 +5,7 @@ import com.appsmith.server.domains.Config; import com.appsmith.server.exceptions.AppsmithError; import com.appsmith.server.exceptions.AppsmithException; import com.appsmith.server.repositories.ConfigRepository; +import lombok.extern.slf4j.Slf4j; import org.springframework.data.mongodb.core.ReactiveMongoTemplate; import org.springframework.data.mongodb.core.convert.MongoConverter; import org.springframework.stereotype.Service; @@ -13,6 +14,7 @@ import reactor.core.scheduler.Scheduler; import javax.validation.Validator; +@Slf4j @Service public class ConfigServiceImpl extends BaseService implements ConfigService { @@ -30,4 +32,15 @@ public class ConfigServiceImpl extends BaseService updateByName(String name, Config config) { + return repository.findByName(name) + .switchIfEmpty(Mono.error(new AppsmithException(AppsmithError.NO_RESOURCE_FOUND, FieldName.CONFIG, name))) + .flatMap(dbConfig -> { + log.debug("Found config with name: {} and id: {}", name, dbConfig.getId()); + dbConfig.setConfig(config.getConfig()); + return repository.save(dbConfig); + }); + } } diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/PropertyPaneService.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/PropertyPaneService.java deleted file mode 100644 index fd62caeee0..0000000000 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/PropertyPaneService.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.appsmith.server.services; - -import com.appsmith.server.domains.PropertyPane; - -public interface PropertyPaneService extends CrudService { -} diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/PropertyPaneServiceImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/PropertyPaneServiceImpl.java deleted file mode 100644 index e19afa0dc8..0000000000 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/PropertyPaneServiceImpl.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.appsmith.server.services; - -import com.appsmith.server.domains.PropertyPane; -import com.appsmith.server.domains.WidgetChildProperty; -import com.appsmith.server.domains.WidgetSectionProperty; -import com.appsmith.server.exceptions.AppsmithError; -import com.appsmith.server.exceptions.AppsmithException; -import com.appsmith.server.repositories.PropertyPaneRepository; -import lombok.extern.slf4j.Slf4j; -import org.bson.types.ObjectId; -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.publisher.Mono; -import reactor.core.scheduler.Scheduler; - -import javax.validation.Validator; -import java.util.List; -import java.util.Map; - -@Slf4j -@Service -public class PropertyPaneServiceImpl extends BaseService implements PropertyPaneService { - - @Autowired - public PropertyPaneServiceImpl(Scheduler scheduler, - Validator validator, - MongoConverter mongoConverter, - ReactiveMongoTemplate reactiveMongoTemplate, - PropertyPaneRepository repository, - AnalyticsService analyticsService) { - super(scheduler, validator, mongoConverter, reactiveMongoTemplate, repository, analyticsService); - } - - @Override - public Mono create(PropertyPane propertyPane) { - if (propertyPane.getId() != null) { - return Mono.error(new AppsmithException(AppsmithError.INVALID_PARAMETER, "id")); - } - if (propertyPane.getConfig() != null) { - Map> configMap = propertyPane.getConfig(); - configMap.forEach((key, sectionProperty) -> { - List widgetSectionProperties = sectionProperty; - for (WidgetSectionProperty widgetSectionProperty : widgetSectionProperties) { - widgetSectionProperty.setId(new ObjectId().toString()); - List widgetChildProperties = widgetSectionProperty.getChildren(); - for (WidgetChildProperty widgetChildProperty : widgetChildProperties) { - widgetChildProperty.setId(new ObjectId().toString()); - } - widgetSectionProperty.setChildren(widgetChildProperties); - } - configMap.put(key, widgetSectionProperties); - }); - propertyPane.setConfig(configMap); - } - return super.create(propertyPane); - } -} diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/WidgetService.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/WidgetService.java deleted file mode 100644 index a0e7b8f1f7..0000000000 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/WidgetService.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.appsmith.server.services; - -import com.appsmith.server.domains.Widget; -import reactor.core.publisher.Mono; - -public interface WidgetService extends CrudService { - - Mono getByName(String name); -} diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/WidgetServiceImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/WidgetServiceImpl.java deleted file mode 100644 index 2503da799d..0000000000 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/WidgetServiceImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.appsmith.server.services; - -import com.appsmith.server.domains.Widget; -import com.appsmith.server.repositories.WidgetRepository; -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.publisher.Mono; -import reactor.core.scheduler.Scheduler; - -import javax.validation.Validator; - -@Service -@Slf4j -public class WidgetServiceImpl extends BaseService implements WidgetService { - - private WidgetRepository widgetRepository; - - @Autowired - public WidgetServiceImpl(Scheduler scheduler, - Validator validator, - MongoConverter mongoConverter, - ReactiveMongoTemplate mongoTemplate, - WidgetRepository widgetRepository, - AnalyticsService analyticsService) { - super(scheduler, validator, mongoConverter, mongoTemplate, widgetRepository, analyticsService); - this.widgetRepository = widgetRepository; - } - - @Override - public Mono getByName(String name) { - return widgetRepository.findByName(name); - } - -}