feat(PostgreSQL): delete the PostgreSQL sequences

This commit is contained in:
Sylphy
2025-04-12 01:59:47 +08:00
parent 5968485f51
commit b4cc48bdb9
15 changed files with 116 additions and 23 deletions

View File

@ -1,16 +1,18 @@
package ai.chat2db.server.web.api.controller.rdb;
import ai.chat2db.server.domain.api.param.DropParam;
import ai.chat2db.server.domain.api.param.SequencePageQueryParam;
import ai.chat2db.server.domain.api.param.ShowCreateSequenceParam;
import ai.chat2db.server.domain.api.service.DatabaseService;
import ai.chat2db.server.domain.api.service.SequenceService;
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.web.api.aspect.ConnectionInfoAspect;
import ai.chat2db.server.web.api.controller.rdb.converter.RdbWebConverter;
import ai.chat2db.server.web.api.controller.rdb.request.DdlExportRequest;
import ai.chat2db.server.web.api.controller.rdb.request.SequenceBriefQueryRequest;
import ai.chat2db.server.web.api.controller.rdb.request.SequenceDeleteRequest;
import ai.chat2db.server.web.api.controller.rdb.request.SequenceModifySqlRequest;
import ai.chat2db.server.web.api.controller.rdb.vo.SqlVO;
import ai.chat2db.spi.model.*;
@ -31,7 +33,6 @@ import org.springframework.web.bind.annotation.*;
@RequestMapping("/api/rdb/sequence")
public class SequenceController {
private final RdbWebConverter rdbWebConverter;
private final DatabaseService databaseService;
private final SequenceService sequenceService;
/**
@ -70,4 +71,16 @@ public class SequenceController {
return sequenceService.buildSql(rdbWebConverter.sequenceRequest2param(request.getOldSequence()), sequence)
.map(rdbWebConverter::dto2vo);
}
/**
* Delete sequence
*
* @param request
* @return
*/
@PostMapping("/delete")
public ActionResult delete(@Valid @RequestBody SequenceDeleteRequest request){
DropParam dropParam = rdbWebConverter.sequenceDelete2dropParam(request);
return sequenceService.drop(dropParam);
}
}

View File

@ -149,8 +149,24 @@ public abstract class RdbWebConverter {
* @param request
* @return
*/
@Mappings({
@Mapping(source = "tableName", target = "name"),
@Mapping(source = "schemaName", target = "schema")
})
public abstract DropParam tableDelete2dropParam(TableDeleteRequest request);
/**
* Parameter conversion
*
* @param request
* @return
*/
@Mappings({
@Mapping(source = "sequenceName", target = "name"),
@Mapping(source = "schemaName", target = "schema")
})
public abstract DropParam sequenceDelete2dropParam(SequenceDeleteRequest request);
/**
* Model conversion

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 jakarta.validation.constraints.NotNull;
import lombok.Data;
/**
* Delete sequence sql request
*
* @author Sylphy
*/
@Data
public class SequenceDeleteRequest extends DataSourceBaseRequest {
/**
* Sequence Name
*/
@NotNull
private String sequenceName;
}