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
        }

Reply via email to