fix(zentao): fix GetTotalPages (#3799)
diff --git a/plugins/zentao/tasks/api_client.go b/plugins/zentao/tasks/api_client.go
index aff7b4d..07cac64 100644
--- a/plugins/zentao/tasks/api_client.go
+++ b/plugins/zentao/tasks/api_client.go
@@ -91,5 +91,6 @@
}
type ZentaoPagination struct {
- Page int `json:"page"`
+ Total int `json:"total"`
+ Limit int `json:"limit"`
}
diff --git a/plugins/zentao/tasks/execution_collector.go b/plugins/zentao/tasks/execution_collector.go
index 8f6d2c6..6092b79 100644
--- a/plugins/zentao/tasks/execution_collector.go
+++ b/plugins/zentao/tasks/execution_collector.go
@@ -46,8 +46,6 @@
Table: RAW_EXECUTION_TABLE,
},
ApiClient: data.ApiClient,
-
- PageSize: 100,
// TODO write which api would you want request
UrlTemplate: "executions/{{ .Params.ExecutionId }}",
Query: func(reqData *helper.RequestData) (url.Values, errors.Error) {
@@ -56,7 +54,6 @@
query.Set("limit", fmt.Sprintf("%v", reqData.Pager.Size))
return query, nil
},
- GetTotalPages: GetTotalPagesFromResponse,
ResponseParser: func(res *http.Response) ([]json.RawMessage, errors.Error) {
body, err := io.ReadAll(res.Body)
if err != nil {
diff --git a/plugins/zentao/tasks/product_collector.go b/plugins/zentao/tasks/product_collector.go
index cc1e9d8..68956cc 100644
--- a/plugins/zentao/tasks/product_collector.go
+++ b/plugins/zentao/tasks/product_collector.go
@@ -46,7 +46,6 @@
Table: RAW_PRODUCT_TABLE,
},
ApiClient: data.ApiClient,
- PageSize: 100,
// TODO write which api would you want request
UrlTemplate: "products/{{ .Params.ProductId }}",
Query: func(reqData *helper.RequestData) (url.Values, errors.Error) {
@@ -55,7 +54,6 @@
query.Set("limit", fmt.Sprintf("%v", reqData.Pager.Size))
return query, nil
},
- GetTotalPages: GetTotalPagesFromResponse,
ResponseParser: func(res *http.Response) ([]json.RawMessage, errors.Error) {
body, err := io.ReadAll(res.Body)
if err != nil {
diff --git a/plugins/zentao/tasks/project_collector.go b/plugins/zentao/tasks/project_collector.go
index 6d737a0..6b895b8 100644
--- a/plugins/zentao/tasks/project_collector.go
+++ b/plugins/zentao/tasks/project_collector.go
@@ -45,8 +45,6 @@
Table: RAW_PROJECT_TABLE,
},
ApiClient: data.ApiClient,
-
- PageSize: 100,
// TODO write which api would you want request
UrlTemplate: "projects",
Query: func(reqData *helper.RequestData) (url.Values, errors.Error) {
@@ -55,7 +53,6 @@
query.Set("limit", fmt.Sprintf("%v", reqData.Pager.Size))
return query, nil
},
- GetTotalPages: GetTotalPagesFromResponse,
ResponseParser: func(res *http.Response) ([]json.RawMessage, errors.Error) {
var data struct {
Projects []json.RawMessage `json:"projects"`
diff --git a/plugins/zentao/tasks/shared.go b/plugins/zentao/tasks/shared.go
index 39fc863..8c60991 100644
--- a/plugins/zentao/tasks/shared.go
+++ b/plugins/zentao/tasks/shared.go
@@ -31,8 +31,11 @@
if err != nil {
return 0, err
}
- return body.Page, nil
-
+ pages := body.Total / args.PageSize
+ if body.Total%args.PageSize > 0 {
+ pages++
+ }
+ return pages, nil
}
func getAccountId(account *models.ZentaoAccount) int64 {
diff --git a/plugins/zentao/tasks/task_collector.go b/plugins/zentao/tasks/task_collector.go
index 8094870..89b0aad 100644
--- a/plugins/zentao/tasks/task_collector.go
+++ b/plugins/zentao/tasks/task_collector.go
@@ -45,8 +45,7 @@
Table: RAW_TASK_TABLE,
},
ApiClient: data.ApiClient,
-
- PageSize: 100,
+ PageSize: 100,
// TODO write which api would you want request
UrlTemplate: "/executions/{{ .Params.ExecutionId }}/tasks",
Query: func(reqData *helper.RequestData) (url.Values, errors.Error) {