mirror of
https://github.com/vran-dev/databasir.git
synced 2025-08-08 17:32:14 +08:00
feat: support custom database types
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
package com.databasir.api;
|
||||
|
||||
import com.databasir.common.JsonData;
|
||||
import com.databasir.core.domain.database.data.*;
|
||||
import com.databasir.core.domain.database.service.DatabaseTypeService;
|
||||
import com.databasir.core.domain.log.annotation.Operation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.web.PageableDefault;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import static org.springframework.data.domain.Sort.Direction.DESC;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
@Validated
|
||||
@RestController
|
||||
public class DatabaseTypeController {
|
||||
|
||||
private final DatabaseTypeService databaseTypeService;
|
||||
|
||||
@GetMapping(Routes.DatabaseType.LIST_SIMPLE)
|
||||
public JsonData<List<String>> listSimpleDatabaseTypes() {
|
||||
List<String> types = databaseTypeService.listSimpleDatabaseTypes();
|
||||
return JsonData.ok(types);
|
||||
}
|
||||
|
||||
@GetMapping(Routes.DatabaseType.LIST_PAGE)
|
||||
public JsonData<Page<DatabaseTypePageResponse>> listPage(@PageableDefault(sort = "id", direction = DESC)
|
||||
Pageable page,
|
||||
DatabaseTypePageCondition condition) {
|
||||
Page<DatabaseTypePageResponse> data = databaseTypeService.findByPage(page, condition);
|
||||
return JsonData.ok(data);
|
||||
}
|
||||
|
||||
@PostMapping(Routes.DatabaseType.CREATE)
|
||||
@Operation(module = Operation.Modules.DATABASE_TYPE, name = "创建数据库类型")
|
||||
public JsonData<Integer> create(@RequestBody @Valid DatabaseTypeCreateRequest request) {
|
||||
Integer id = databaseTypeService.create(request);
|
||||
return JsonData.ok(id);
|
||||
}
|
||||
|
||||
@PatchMapping(Routes.DatabaseType.UPDATE)
|
||||
@Operation(module = Operation.Modules.DATABASE_TYPE, name = "更新数据库类型")
|
||||
public JsonData<Void> update(@RequestBody @Valid DatabaseTypeUpdateRequest request) {
|
||||
databaseTypeService.update(request);
|
||||
return JsonData.ok();
|
||||
}
|
||||
|
||||
@DeleteMapping(Routes.DatabaseType.DELETE_ONE)
|
||||
@Operation(module = Operation.Modules.DATABASE_TYPE, name = "删除数据库类型")
|
||||
public JsonData<Void> delete(@PathVariable Integer id) {
|
||||
databaseTypeService.deleteById(id);
|
||||
return JsonData.ok();
|
||||
}
|
||||
|
||||
@GetMapping(Routes.DatabaseType.GET_ONE)
|
||||
public JsonData<DatabaseTypeDetailResponse> getOne(@PathVariable Integer id) {
|
||||
Optional<DatabaseTypeDetailResponse> data = databaseTypeService.selectOne(id);
|
||||
return JsonData.ok(data);
|
||||
}
|
||||
}
|
@@ -130,4 +130,19 @@ public interface Routes {
|
||||
String GET_ONE = BASE + "/oauth2_apps/{id}";
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
interface DatabaseType {
|
||||
|
||||
String LIST_SIMPLE = BASE + "/simple_database_types";
|
||||
|
||||
String LIST_PAGE = BASE + "/database_types";
|
||||
|
||||
String GET_ONE = BASE + "/database_types/{id}";
|
||||
|
||||
String DELETE_ONE = BASE + "/database_types/{id}";
|
||||
|
||||
String UPDATE = BASE + "/database_types";
|
||||
|
||||
String CREATE = BASE + "/database_types";
|
||||
}
|
||||
}
|
@@ -1,10 +1,11 @@
|
||||
server.port=8080
|
||||
logging.level.org.jooq=INFO
|
||||
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
|
||||
spring.datasource.username=root
|
||||
spring.datasource.password=123456
|
||||
spring.datasource.url=jdbc:mysql://localhost:3306/databasir
|
||||
spring.jooq.sql-dialect=mysql
|
||||
# flyway
|
||||
spring.flyway.enabled=true
|
||||
spring.flyway.baseline-on-migrate=true
|
||||
spring.flyway.locations=classpath:db/migration
|
||||
# db
|
||||
databasir.db.url=localhost:3306
|
||||
databasir.db.username=root
|
||||
databasir.db.password=123456
|
||||
databasir.db.driver-directory=drivers
|
Reference in New Issue
Block a user