@@ -20,10 +20,12 @@ import (
2020type DirectAuditReqV2 struct {
2121 InstanceType string `json:"instance_type" form:"instance_type" example:"MySQL" valid:"required"`
2222 // 调用方不应该关心SQL是否被完美的拆分成独立的条目, 拆分SQL由SQLE实现
23- SQLContent string `json:"sql_content" form:"sql_content" example:"select * from t1; select * from t2;" valid:"required"`
24- SQLType string `json:"sql_type" form:"sql_type" example:"sql" enums:"sql,mybatis," valid:"omitempty,oneof=sql mybatis"`
25- ProjectId string `json:"project_id" form:"project_id" example:"700300" valid:"required"`
26- RuleTemplateName string `json:"rule_template_name" form:"rule_template_name" example:"default" valid:"required"`
23+ SQLContent string `json:"sql_content" form:"sql_content" example:"select * from t1; select * from t2;" valid:"required"`
24+ SQLType string `json:"sql_type" form:"sql_type" example:"sql" enums:"sql,mybatis," valid:"omitempty,oneof=sql mybatis"`
25+ ProjectId string `json:"project_id" form:"project_id" example:"700300" valid:"required"`
26+ RuleTemplateName string `json:"rule_template_name" form:"rule_template_name" example:"default" valid:"required"`
27+ InstanceName * string `json:"instance_name" form:"instance_name" example:"instance1"`
28+ SchemaName * string `json:"schema_name" form:"schema_name" example:"schema1"`
2729}
2830
2931type AuditResDataV2 struct {
@@ -72,7 +74,24 @@ func DirectAudit(c echo.Context) error {
7274
7375 l := log .NewEntry ().WithField (c .Path (), "direct audit failed" )
7476
75- task , err := server .AuditSQLByDBType (l , sql , req .InstanceType , req .ProjectId , req .RuleTemplateName )
77+ var instance * model.Instance
78+ if req .ProjectId != "" && req .InstanceName != nil {
79+ var exist bool
80+ instance , exist , err = dms .GetInstanceInProjectByName (c .Request ().Context (), req .ProjectId , * req .InstanceName )
81+ if err != nil {
82+ return controller .JSONBaseErrorReq (c , err )
83+ }
84+ if ! exist {
85+ return controller .JSONBaseErrorReq (c , v1 .ErrInstanceNotExist )
86+ }
87+ }
88+
89+ var task * model.Task
90+ if instance != nil && req .SchemaName != nil {
91+ task , err = server .DirectAuditByInstance (l , sql , * req .SchemaName , instance , req .RuleTemplateName )
92+ } else {
93+ task , err = server .AuditSQLByDBType (l , sql , req .InstanceType , req .ProjectId , req .RuleTemplateName )
94+ }
7695 if err != nil {
7796 l .Errorf ("audit sqls failed: %v" , err )
7897 return controller .JSONBaseErrorReq (c , v1 .ErrDirectAudit )
@@ -180,7 +199,7 @@ func DirectAuditFiles(c echo.Context) error {
180199
181200 var task * model.Task
182201 if instance != nil && schemaName != "" {
183- task , err = server .DirectAuditByInstance (l , sqls , schemaName , instance )
202+ task , err = server .DirectAuditByInstance (l , sqls , schemaName , instance , "" )
184203 } else {
185204 task , err = server .AuditSQLByDBType (l , sqls , req .InstanceType , projectUid , "" )
186205 }
0 commit comments