This is an automated email from the ASF dual-hosted git repository.
lynwee pushed a commit to branch dev-1
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git
The following commit(s) were added to refs/heads/dev-1 by this push:
new c72ede012 fix(framework): update trigger api's request body schema
c72ede012 is described below
commit c72ede012fd8b22da189248ff7a5cbe3d6a6e8f2
Author: d4x1 <[email protected]>
AuthorDate: Tue Aug 13 17:21:16 2024 +0800
fix(framework): update trigger api's request body schema
---
backend/core/models/blueprint.go | 12 ++++++++----
backend/server/api/blueprints/blueprints.go | 12 ++++++------
backend/server/services/blueprint.go | 12 ++++++++----
3 files changed, 22 insertions(+), 14 deletions(-)
diff --git a/backend/core/models/blueprint.go b/backend/core/models/blueprint.go
index 354c94408..f30adec9f 100644
--- a/backend/core/models/blueprint.go
+++ b/backend/core/models/blueprint.go
@@ -82,9 +82,13 @@ func (BlueprintScope) TableName() string {
return "_devlake_blueprint_scopes"
}
+type TriggerSyncPolicy struct {
+ SkipCollectors bool `json:"skipCollectors"`
+ FullSync bool `json:"fullSync"`
+}
+
type SyncPolicy struct {
- SkipOnFail bool `json:"skipOnFail"`
- SkipCollectors bool `json:"skipCollectors"`
- FullSync bool `json:"fullSync"`
- TimeAfter *time.Time `json:"timeAfter"`
+ SkipOnFail bool `json:"skipOnFail"`
+ TimeAfter *time.Time `json:"timeAfter"`
+ TriggerSyncPolicy
}
diff --git a/backend/server/api/blueprints/blueprints.go
b/backend/server/api/blueprints/blueprints.go
index cbe36cb43..23383d468 100644
--- a/backend/server/api/blueprints/blueprints.go
+++ b/backend/server/api/blueprints/blueprints.go
@@ -165,7 +165,7 @@ func Patch(c *gin.Context) {
// @Tags framework/blueprints
// @Accept application/json
// @Param blueprintId path string true "blueprintId"
-// @Param skipCollectors body models.SyncPolicy false "json"
+// @Param skipCollectors body models.TriggerSyncPolicy false "json"
// @Success 200 {object} models.Pipeline
// @Failure 400 {object} shared.ApiBody "Bad Request"
// @Failure 500 {object} shared.ApiBody "Internal Error"
@@ -178,18 +178,18 @@ func Trigger(c *gin.Context) {
return
}
- syncPolicy := &models.SyncPolicy{}
+ triggerSyncPolicy := &models.TriggerSyncPolicy{}
if c.Request.Body == nil || c.Request.ContentLength == 0 {
- syncPolicy.SkipCollectors = false
- syncPolicy.FullSync = false
+ triggerSyncPolicy.SkipCollectors = false
+ triggerSyncPolicy.FullSync = false
} else {
- err = c.ShouldBindJSON(syncPolicy)
+ err = c.ShouldBindJSON(triggerSyncPolicy)
if err != nil {
shared.ApiOutputError(c, errors.BadInput.Wrap(err,
"error binding request body"))
return
}
}
- pipeline, err := services.TriggerBlueprint(id, syncPolicy, true)
+ pipeline, err := services.TriggerBlueprint(id, triggerSyncPolicy, true)
if err != nil {
shared.ApiOutputError(c, errors.Default.Wrap(err, "error
triggering blueprint"))
return
diff --git a/backend/server/services/blueprint.go
b/backend/server/services/blueprint.go
index cf7d20ccf..d400abae2 100644
--- a/backend/server/services/blueprint.go
+++ b/backend/server/services/blueprint.go
@@ -400,7 +400,7 @@ func SequentializePipelinePlans(plans
...models.PipelinePlan) models.PipelinePla
}
// TriggerBlueprint triggers blueprint immediately
-func TriggerBlueprint(id uint64, syncPolicy *models.SyncPolicy, shouldSanitize
bool) (*models.Pipeline, errors.Error) {
+func TriggerBlueprint(id uint64, triggerSyncPolicy *models.TriggerSyncPolicy,
shouldSanitize bool) (*models.Pipeline, errors.Error) {
// load record from db
blueprint, err := GetBlueprint(id, false)
if err != nil {
@@ -410,9 +410,13 @@ func TriggerBlueprint(id uint64, syncPolicy
*models.SyncPolicy, shouldSanitize b
if !blueprint.Enable {
return nil, errors.BadInput.New("blueprint is not enabled")
}
- blueprint.SkipCollectors = syncPolicy.SkipCollectors
- blueprint.FullSync = syncPolicy.FullSync
- pipeline, err := createPipelineByBlueprint(blueprint, syncPolicy)
+ blueprint.SkipCollectors = triggerSyncPolicy.SkipCollectors
+ blueprint.FullSync = triggerSyncPolicy.FullSync
+ pipeline, err := createPipelineByBlueprint(blueprint,
&models.SyncPolicy{
+ SkipOnFail: false,
+ TimeAfter: nil,
+ TriggerSyncPolicy: *triggerSyncPolicy,
+ })
if err != nil {
return nil, err
}