mirror of
https://github.com/vran-dev/databasir.git
synced 2025-10-09 15:03:27 +08:00
feat:support generate mock sql
This commit is contained in:
@@ -2,10 +2,7 @@ package com.databasir.api;
|
||||
|
||||
import com.databasir.common.JsonData;
|
||||
import com.databasir.core.diff.data.RootDiff;
|
||||
import com.databasir.core.domain.document.data.DatabaseDocumentResponse;
|
||||
import com.databasir.core.domain.document.data.DatabaseDocumentSimpleResponse;
|
||||
import com.databasir.core.domain.document.data.DatabaseDocumentVersionResponse;
|
||||
import com.databasir.core.domain.document.data.TableDocumentResponse;
|
||||
import com.databasir.core.domain.document.data.*;
|
||||
import com.databasir.core.domain.document.generator.DocumentFileType;
|
||||
import com.databasir.core.domain.document.service.DocumentService;
|
||||
import com.databasir.core.domain.log.annotation.Operation;
|
||||
@@ -94,4 +91,9 @@ public class DocumentController {
|
||||
return JsonData.ok(documentService.getTableDetails(projectId, documentId, tableIds));
|
||||
}
|
||||
|
||||
@GetMapping(Routes.Document.LIST_TABLES)
|
||||
public JsonData<List<TableResponse>> listTables(@PathVariable Integer projectId,
|
||||
@RequestParam(required = false) Long version) {
|
||||
return JsonData.ok(documentService.getTableAndColumns(projectId, version));
|
||||
}
|
||||
}
|
||||
|
49
api/src/main/java/com/databasir/api/MockDataController.java
Normal file
49
api/src/main/java/com/databasir/api/MockDataController.java
Normal file
@@ -0,0 +1,49 @@
|
||||
package com.databasir.api;
|
||||
|
||||
import com.databasir.common.JsonData;
|
||||
import com.databasir.core.domain.mock.MockDataService;
|
||||
import com.databasir.core.domain.mock.data.ColumnMockRuleSaveRequest;
|
||||
import com.databasir.core.domain.mock.data.MockDataGenerateCondition;
|
||||
import com.databasir.core.domain.mock.data.MockDataRuleListCondition;
|
||||
import com.databasir.core.domain.mock.data.MockDataRuleResponse;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@Validated
|
||||
public class MockDataController {
|
||||
|
||||
private final MockDataService mockDataService;
|
||||
|
||||
@GetMapping(Routes.MockData.GET_SQL_MOCK_DATA)
|
||||
public JsonData<String> getMockSql(@PathVariable("groupId") Integer groupId,
|
||||
@PathVariable("projectId") Integer projectId,
|
||||
@Valid MockDataGenerateCondition condition) {
|
||||
String sql = mockDataService.generateMockInsertSql(projectId, condition);
|
||||
return JsonData.ok(sql);
|
||||
}
|
||||
|
||||
@GetMapping(Routes.MockData.GET_MOCK_RULE)
|
||||
public JsonData<List<MockDataRuleResponse>> getMockRules(@PathVariable("groupId") Integer groupId,
|
||||
@PathVariable("projectId") Integer projectId,
|
||||
@Valid MockDataRuleListCondition condition) {
|
||||
List<MockDataRuleResponse> rules = mockDataService.listRules(projectId, condition);
|
||||
return JsonData.ok(rules);
|
||||
}
|
||||
|
||||
@PostMapping(Routes.MockData.SAVE_MOCK_RULE)
|
||||
@PreAuthorize("hasAnyAuthority('SYS_OWNER', 'GROUP_OWNER?groupId='+#groupId, 'GROUP_MEMBER?groupId='+#groupId)")
|
||||
public JsonData<Void> saveMockRules(@PathVariable Integer groupId,
|
||||
@PathVariable Integer projectId,
|
||||
@PathVariable Integer tableId,
|
||||
@RequestBody @Valid List<ColumnMockRuleSaveRequest> rules) {
|
||||
mockDataService.saveMockRules(projectId, tableId, rules);
|
||||
return JsonData.ok();
|
||||
}
|
||||
}
|
@@ -85,6 +85,8 @@ public interface Routes {
|
||||
String DIFF = BASE + "/projects/{projectId}/diff_documents";
|
||||
|
||||
String EXPORT = BASE + "/projects/{projectId}/document_files";
|
||||
|
||||
String LIST_TABLES = BASE + "/projects/{projectId}/tables";
|
||||
}
|
||||
|
||||
interface DocumentDiscussion {
|
||||
@@ -160,4 +162,14 @@ public interface Routes {
|
||||
|
||||
String CREATE = BASE + "/database_types";
|
||||
}
|
||||
|
||||
interface MockData {
|
||||
|
||||
String SAVE_MOCK_RULE = BASE + "/groups/{groupId}/projects/{projectId}/tables/{tableId}/mock_rules";
|
||||
|
||||
String GET_MOCK_RULE = BASE + "/groups/{groupId}/projects/{projectId}/mock_rules";
|
||||
|
||||
String GET_SQL_MOCK_DATA = BASE + "/groups/{groupId}/projects/{projectId}/mock_data/sql";
|
||||
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user