Merge branch 'feat/delete-datasources-api' into 'release'

Add delete service operation for datasources.

See merge request theappsmith/internal-tools-server!305
This commit is contained in:
Shrikant Kandula 2020-04-27 08:01:16 +00:00
commit d0e47ea2ea
3 changed files with 17 additions and 1 deletions

View File

@ -3,6 +3,7 @@ package com.appsmith.server.services;
import com.appsmith.external.models.DatasourceConfiguration;
import com.appsmith.external.models.DatasourceTestResult;
import com.appsmith.external.plugins.PluginExecutor;
import com.appsmith.server.constants.AnalyticsEvents;
import com.appsmith.server.constants.FieldName;
import com.appsmith.server.domains.Datasource;
import com.appsmith.server.domains.Organization;
@ -49,7 +50,7 @@ public class DatasourceServiceImpl extends BaseService<DatasourceRepository, Dat
ReactiveMongoTemplate reactiveMongoTemplate,
DatasourceRepository repository,
OrganizationService organizationService,
AnalyticsService analyticsService,
AnalyticsService<Datasource> analyticsService,
SessionUserService sessionUserService,
ObjectMapper objectMapper,
PluginService pluginService,
@ -210,4 +211,18 @@ public class DatasourceServiceImpl extends BaseService<DatasourceRepository, Dat
.switchIfEmpty(Mono.error(new AppsmithException(AppsmithError.NO_RESOURCE_FOUND, FieldName.DATASOURCE, id)));
}
@Override
public Mono<Datasource> delete(String id) {
Mono<Datasource> datasourceMono = repository.findById(id)
.switchIfEmpty(Mono.error(new AppsmithException(AppsmithError.NO_RESOURCE_FOUND, "datasource", id)));
return datasourceMono
.flatMap(toDelete -> repository.archive(toDelete).thenReturn(toDelete))
.flatMap(deletedObj ->
analyticsService.sendEvent(
AnalyticsEvents.DELETE + "_" + deletedObj.getClass().getSimpleName().toUpperCase(),
deletedObj
)
);
}
}

View File

@ -85,6 +85,7 @@ authenticated_operations = [
{"method": "GET", "resource": "datasources", "permission": "read:datasources"},
{"method": "POST", "resource": "datasources", "permission": "create:datasources"},
{"method": "PUT", "resource": "datasources", "permission": "update:datasources"},
{"method": "DELETE", "resource": "datasources", "permission": "delete:datasources"},
{"method": "GET", "resource": "configs", "permission": "read:configs"},
{"method": "POST", "resource": "configs", "permission": "create:configs"},