Merge pull request #1485 from miahemu/dev

Update and delete operations of procedures and functions
This commit is contained in:
Chat2DB
2024-10-28 11:57:15 +08:00
committed by GitHub
20 changed files with 728 additions and 43 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

@ -41,8 +41,14 @@ public class ProcedureController {
}
@PostMapping("/update")
public ActionResult update(@Valid @RequestBody ProcedureUpdateRequest request) throws SQLException {
public ActionResult update(@Valid ProcedureUpdateRequest request) throws SQLException {
Procedure procedure = procedureConverter.request2param(request);
return procedureService.update(request.getDatabaseName(), request.getSchemaName(), procedure);
}
@PostMapping("/delete")
public ActionResult delete(@Valid ProcedureUpdateRequest request) {
Procedure procedure = procedureConverter.request2param(request);
return procedureService.delete(request.getDatabaseName(), request.getSchemaName(), procedure);
}
}

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;
}