feat:support generate mock sql

This commit is contained in:
vran
2022-04-06 18:19:07 +08:00
parent 30765be4d4
commit ff1a186134
49 changed files with 2330 additions and 82 deletions

View File

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

View 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();
}
}

View File

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