This is an automated email from the ASF dual-hosted git repository.
klesh pushed a commit to branch kw-5519-remoteapi-dshelper
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git
The following commit(s) were added to refs/heads/kw-5519-remoteapi-dshelper by
this push:
new 1feef512a fix: connection listing is working now
1feef512a is described below
commit 1feef512a149fa4d8ca08c614652f9b28df5185e
Author: Klesh Wong <[email protected]>
AuthorDate: Tue May 14 17:32:43 2024 +0800
fix: connection listing is working now
---
backend/helpers/pluginhelper/api/ds_helper.go | 12 +++++-------
backend/helpers/pluginhelper/api/ds_model_api_helper.go | 8 +++++---
backend/helpers/srvhelper/typed_connection_service_helper.go | 4 ++++
backend/helpers/srvhelper/typed_model_service_helper.go | 2 +-
.../helpers/srvhelper/typed_scope_config_service_helper.go | 4 ++++
backend/helpers/srvhelper/typed_scope_service_helper.go | 4 ++++
backend/plugins/jira/api/init.go | 7 +++----
backend/plugins/jira/models/connection.go | 5 +++--
8 files changed, 29 insertions(+), 17 deletions(-)
diff --git a/backend/helpers/pluginhelper/api/ds_helper.go
b/backend/helpers/pluginhelper/api/ds_helper.go
index 74f065b6b..603f9613e 100644
--- a/backend/helpers/pluginhelper/api/ds_helper.go
+++ b/backend/helpers/pluginhelper/api/ds_helper.go
@@ -95,23 +95,21 @@ func NewDataSourceHelper[
basicRes context.BasicRes,
pluginName string,
scopeSearchColumns []string,
- connectionSterilizer func(c C) C,
- scopeSterilizer func(s S) S,
- scopeConfigSterilizer func(s SC) SC,
+ connectionSterilizer func(c *C) *C,
) *DsHelper[C, S, SC] {
- var connectionModelInfo = &srvhelper.GenericConnectionModelInfo[C]{}
- var scopeModelInfo = &srvhelper.GenericScopeModelInfo[S]{}
+ var connectionModelInfo = srvhelper.NewConnectionModelInfo[C]()
+ var scopeModelInfo = srvhelper.NewScopeModelInfo[S]()
var scopeConfigModelInfo *srvhelper.GenericScopeConfigModelInfo[SC]
scType := reflect.TypeOf(new(SC))
if scType != noScopeConfig {
- scopeConfigModelInfo =
&srvhelper.GenericScopeConfigModelInfo[SC]{}
+ scopeConfigModelInfo = srvhelper.NewScopeConfigModelInfo[SC]()
}
anyDsHelper := NewDataSourceAnyHelper(
basicRes,
pluginName,
scopeSearchColumns,
func(c any) any {
- return connectionSterilizer(c.(C))
+ return connectionSterilizer(c.(*C))
},
connectionModelInfo,
scopeModelInfo,
diff --git a/backend/helpers/pluginhelper/api/ds_model_api_helper.go
b/backend/helpers/pluginhelper/api/ds_model_api_helper.go
index 813199664..fa27f8d40 100644
--- a/backend/helpers/pluginhelper/api/ds_model_api_helper.go
+++ b/backend/helpers/pluginhelper/api/ds_model_api_helper.go
@@ -116,7 +116,7 @@ func (modelApi *AnyModelApiHelper) Sanitize(model any) any {
if modelApi.sterilizers != nil {
for _, sterilizer := range modelApi.sterilizers {
sanitizedModel := sterilizer(model)
- model = &sanitizedModel
+ model = sanitizedModel
}
}
return model
@@ -125,8 +125,10 @@ func (modelApi *AnyModelApiHelper) Sanitize(model any) any
{
func (modelApi *AnyModelApiHelper) BatchSanitize(models any) any {
array := reflect.ValueOf(models)
for i := 0; i < array.Len(); i++ {
- model := array.Index(i)
- model.Set(reflect.ValueOf(modelApi.Sanitize(model.Interface())))
+ elem := array.Index(i)
+ model := elem.Interface()
+ sanitized := modelApi.Sanitize(model)
+ elem.Set(reflect.ValueOf(sanitized))
}
return models
}
diff --git a/backend/helpers/srvhelper/typed_connection_service_helper.go
b/backend/helpers/srvhelper/typed_connection_service_helper.go
index 15aec70c7..0f3f7109e 100644
--- a/backend/helpers/srvhelper/typed_connection_service_helper.go
+++ b/backend/helpers/srvhelper/typed_connection_service_helper.go
@@ -30,6 +30,10 @@ func (*GenericConnectionModelInfo[C])
GetConnectionId(connection any) uint64 {
return connection.(plugin.ToolLayerConnection).ConnectionId()
}
+func NewConnectionModelInfo[C plugin.ToolLayerConnection]()
*GenericConnectionModelInfo[C] {
+ return &GenericConnectionModelInfo[C]{NewGenericModelInfo[C]()}
+}
+
// ConnectionSrvHelper
type ConnectionSrvHelper[C plugin.ToolLayerConnection, S
plugin.ToolLayerScope, SC plugin.ToolLayerScopeConfig] struct {
*AnyConnectionSrvHelper
diff --git a/backend/helpers/srvhelper/typed_model_service_helper.go
b/backend/helpers/srvhelper/typed_model_service_helper.go
index 7ffd53600..36cc424c3 100644
--- a/backend/helpers/srvhelper/typed_model_service_helper.go
+++ b/backend/helpers/srvhelper/typed_model_service_helper.go
@@ -51,7 +51,7 @@ func (info *GenericModelInfo[M]) New() interface{} {
}
func (info *GenericModelInfo[M]) NewSlice() interface{} {
- return new([]*M)
+ return make([]*M, 0)
}
type ModelSrvHelper[M dal.Tabler] struct {
diff --git a/backend/helpers/srvhelper/typed_scope_config_service_helper.go
b/backend/helpers/srvhelper/typed_scope_config_service_helper.go
index 4276cdccb..84fa1b921 100644
--- a/backend/helpers/srvhelper/typed_scope_config_service_helper.go
+++ b/backend/helpers/srvhelper/typed_scope_config_service_helper.go
@@ -34,6 +34,10 @@ func (*GenericScopeConfigModelInfo[SC])
GetScopeConfigId(scopeConfig any) uint64
return scopeConfig.(plugin.ToolLayerScopeConfig).ScopeConfigId()
}
+func NewScopeConfigModelInfo[SC plugin.ToolLayerScopeConfig]()
*GenericScopeConfigModelInfo[SC] {
+ return &GenericScopeConfigModelInfo[SC]{NewGenericModelInfo[SC]()}
+}
+
// ScopeConfigSrvHelper
type ScopeConfigSrvHelper[C plugin.ToolLayerConnection, S
plugin.ToolLayerScope, SC plugin.ToolLayerScopeConfig] struct {
*AnyScopeConfigSrvHelper
diff --git a/backend/helpers/srvhelper/typed_scope_service_helper.go
b/backend/helpers/srvhelper/typed_scope_service_helper.go
index 7875489e6..1d44e2a50 100644
--- a/backend/helpers/srvhelper/typed_scope_service_helper.go
+++ b/backend/helpers/srvhelper/typed_scope_service_helper.go
@@ -43,6 +43,10 @@ func (*GenericScopeModelInfo[S]) GetScopeParams(scope any)
any {
return scope.(plugin.ToolLayerScope).ScopeScopeConfigId()
}
+func NewScopeModelInfo[S plugin.ToolLayerScope]() *GenericScopeModelInfo[S] {
+ return &GenericScopeModelInfo[S]{NewGenericModelInfo[S]()}
+}
+
type ScopeDetail[S plugin.ToolLayerScope, SC plugin.ToolLayerScopeConfig]
struct {
Scope S `json:"scope"`
ScopeConfig *SC `json:"scopeConfig,omitempty"`
diff --git a/backend/plugins/jira/api/init.go b/backend/plugins/jira/api/init.go
index 86ca5caa4..161cf66cf 100644
--- a/backend/plugins/jira/api/init.go
+++ b/backend/plugins/jira/api/init.go
@@ -44,11 +44,10 @@ func Init(br context.BasicRes, p plugin.PluginMeta) {
br,
p.Name(),
[]string{"name"},
- func(c models.JiraConnection) models.JiraConnection {
- return c.Sanitize()
+ func(c *models.JiraConnection) *models.JiraConnection {
+ santized := c.Sanitize()
+ return santized
},
- nil,
- nil,
)
raProxy =
api.NewDsRemoteApiProxyHelper[models.JiraConnection](dsHelper.ConnApi.ModelApiHelper)
raScopeList = api.NewDsRemoteApiScopeListHelper[models.JiraConnection,
models.JiraBoard, JiraRemotePagination](raProxy, listJiraRemoteScopes)
diff --git a/backend/plugins/jira/models/connection.go
b/backend/plugins/jira/models/connection.go
index 8060c308a..5eb1e63cb 100644
--- a/backend/plugins/jira/models/connection.go
+++ b/backend/plugins/jira/models/connection.go
@@ -18,9 +18,10 @@ limitations under the License.
package models
import (
- "github.com/apache/incubator-devlake/core/utils"
"net/http"
+ "github.com/apache/incubator-devlake/core/utils"
+
"github.com/apache/incubator-devlake/core/errors"
helper "github.com/apache/incubator-devlake/helpers/pluginhelper/api"
)
@@ -93,7 +94,7 @@ func (connection *JiraConnection) MergeFromRequest(target
*JiraConnection, body
return nil
}
-func (connection JiraConnection) Sanitize() JiraConnection {
+func (connection *JiraConnection) Sanitize() *JiraConnection {
connection.JiraConn = connection.JiraConn.Sanitize()
return connection
}