Delete operations of functions

This commit is contained in:
suyue
2024-08-03 14:39:09 +08:00
parent 052a36b73e
commit 89e2eb30de
11 changed files with 173 additions and 13 deletions

View File

@ -1,16 +1,20 @@
package ai.chat2db.server.web.api.controller.rdb;
import ai.chat2db.server.domain.api.service.FunctionService;
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
import ai.chat2db.server.tools.base.wrapper.result.ListResult;
import ai.chat2db.server.tools.base.wrapper.result.web.WebPageResult;
import ai.chat2db.server.web.api.aspect.ConnectionInfoAspect;
import ai.chat2db.server.web.api.controller.rdb.converter.FunctionConverter;
import ai.chat2db.server.web.api.controller.rdb.request.FunctionDetailRequest;
import ai.chat2db.server.web.api.controller.rdb.request.FunctionPageRequest;
import ai.chat2db.server.web.api.controller.rdb.request.FunctionUpdateRequest;
import ai.chat2db.spi.model.Function;
import jakarta.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -22,16 +26,25 @@ public class FunctionController {
@Autowired
private FunctionService functionService;
@Autowired
private FunctionConverter functionConverter;
@GetMapping("/list")
public WebPageResult<Function> list(@Valid FunctionPageRequest request) {
ListResult<Function> functionListResult = functionService.functions(request.getDatabaseName(),
request.getSchemaName());
request.getSchemaName());
return WebPageResult.of(functionListResult.getData(), Long.valueOf(functionListResult.getData().size()), 1,
functionListResult.getData().size());
functionListResult.getData().size());
}
@GetMapping("/detail")
public DataResult<Function> detail(@Valid FunctionDetailRequest request) {
return functionService.detail(request.getDatabaseName(), request.getSchemaName(), request.getFunctionName());
}
@PostMapping("/delete")
public ActionResult delete(@Valid FunctionUpdateRequest request) {
Function function = functionConverter.request2param(request);
return functionService.delete(request.getDatabaseName(), request.getSchemaName(), function);
}
}

View File

@ -0,0 +1,15 @@
package ai.chat2db.server.web.api.controller.rdb.converter;
import ai.chat2db.server.web.api.controller.rdb.request.FunctionUpdateRequest;
import ai.chat2db.spi.model.Function;
import org.mapstruct.Mapper;
/**
* @author Juechen
* @version : FunctionConverter.java
*/
@Mapper(componentModel = "spring")
public abstract class FunctionConverter {
public abstract Function request2param(FunctionUpdateRequest request);
}

View File

@ -0,0 +1,20 @@
package ai.chat2db.server.web.api.controller.rdb.request;
import ai.chat2db.server.web.api.controller.data.source.request.DataSourceBaseRequest;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author Juechen
* @version : FunctionUpdateRequest.java
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class FunctionUpdateRequest extends DataSourceBaseRequest {
private String functionName;
private String functionBody;
}