diff --git a/casdoorsdk/permission.go b/casdoorsdk/permission.go index f55b33c..e5a42f2 100644 --- a/casdoorsdk/permission.go +++ b/casdoorsdk/permission.go @@ -16,6 +16,7 @@ package casdoorsdk import ( "encoding/json" + "errors" "fmt" "strconv" ) @@ -109,16 +110,11 @@ func (c *Client) GetPaginationPermissions(p int, pageSize int, queryMap map[stri return nil, 0, fmt.Errorf(response.Msg) } - bytes, err := json.Marshal(response.Data) - if err != nil { - return nil, 0, err + permissions, ok := response.Data.([]*Permission) + if !ok { + return nil, 0, errors.New("response data format is incorrect") } - var permissions []*Permission - err = json.Unmarshal(bytes, &permissions) - if err != nil { - return nil, 0, err - } return permissions, int(response.Data2.(float64)), nil } diff --git a/casdoorsdk/provider.go b/casdoorsdk/provider.go index cc1afdc..07faf78 100644 --- a/casdoorsdk/provider.go +++ b/casdoorsdk/provider.go @@ -16,6 +16,7 @@ package casdoorsdk import ( "encoding/json" + "errors" "fmt" "strconv" ) @@ -124,16 +125,11 @@ func (c *Client) GetPaginationProviders(p int, pageSize int, queryMap map[string return nil, 0, err } - bytes, err := json.Marshal(response.Data) - if err != nil { - return nil, 0, err + providers, ok := response.Data.([]*Provider) + if !ok { + return nil, 0, errors.New("response data format is incorrect") } - var providers []*Provider - err = json.Unmarshal(bytes, &providers) - if err != nil { - return nil, 0, err - } return providers, int(response.Data2.(float64)), nil } diff --git a/casdoorsdk/record.go b/casdoorsdk/record.go index d8935e1..03e2c62 100644 --- a/casdoorsdk/record.go +++ b/casdoorsdk/record.go @@ -16,6 +16,7 @@ package casdoorsdk import ( "encoding/json" + "errors" "fmt" "strconv" ) @@ -101,16 +102,11 @@ func (c *Client) GetPaginationRecords(p int, pageSize int, queryMap map[string]s return nil, 0, err } - bytes, err := json.Marshal(response.Data) - if err != nil { - return nil, 0, err + records, ok := response.Data.([]*Record) + if !ok { + return nil, 0, errors.New("response data format is incorrect") } - var records []*Record - err = json.Unmarshal(bytes, &records) - if err != nil { - return nil, 0, err - } return records, int(response.Data2.(float64)), nil } diff --git a/casdoorsdk/role.go b/casdoorsdk/role.go index b3de636..d3138d3 100644 --- a/casdoorsdk/role.go +++ b/casdoorsdk/role.go @@ -16,6 +16,7 @@ package casdoorsdk import ( "encoding/json" + "errors" "fmt" "strconv" ) @@ -70,16 +71,11 @@ func (c *Client) GetPaginationRoles(p int, pageSize int, queryMap map[string]str return nil, 0, err } - bytes, err := json.Marshal(response.Data) - if err != nil { - return nil, 0, err + roles, ok := response.Data.([]*Role) + if !ok { + return nil, 0, errors.New("response data format is incorrect") } - var roles []*Role - err = json.Unmarshal(bytes, &roles) - if err != nil { - return nil, 0, err - } return roles, int(response.Data2.(float64)), nil } diff --git a/casdoorsdk/session.go b/casdoorsdk/session.go index a6f082a..91f9c8e 100644 --- a/casdoorsdk/session.go +++ b/casdoorsdk/session.go @@ -16,6 +16,7 @@ package casdoorsdk import ( "encoding/json" + "errors" "fmt" "strconv" ) @@ -70,16 +71,11 @@ func (c *Client) GetPaginationSessions(p int, pageSize int, queryMap map[string] return nil, 0, err } - bytes, err := json.Marshal(response.Data) - if err != nil { - return nil, 0, err + sessions, ok := response.Data.([]*Session) + if !ok { + return nil, 0, errors.New("response data format is incorrect") } - var sessions []*Session - err = json.Unmarshal(bytes, &sessions) - if err != nil { - return nil, 0, err - } return sessions, int(response.Data2.(float64)), nil } diff --git a/casdoorsdk/token.go b/casdoorsdk/token.go index 06898b9..ea0e015 100644 --- a/casdoorsdk/token.go +++ b/casdoorsdk/token.go @@ -120,16 +120,11 @@ func (c *Client) GetTokens(p int, pageSize int) ([]*Token, int, error) { return nil, 0, err } - bytes, err := json.Marshal(response.Data) - if err != nil { - return nil, 0, err + tokens, ok := response.Data.([]*Token) + if !ok { + return nil, 0, errors.New("response data format is incorrect") } - var tokens []*Token - err = json.Unmarshal(bytes, &tokens) - if err != nil { - return nil, 0, err - } return tokens, int(response.Data2.(float64)), nil } diff --git a/casdoorsdk/user.go b/casdoorsdk/user.go index abab01d..c253fc4 100644 --- a/casdoorsdk/user.go +++ b/casdoorsdk/user.go @@ -16,6 +16,7 @@ package casdoorsdk import ( "encoding/json" + "errors" "fmt" "strconv" ) @@ -291,16 +292,11 @@ func (c *Client) GetPaginationUsers(p int, pageSize int, queryMap map[string]str return nil, 0, fmt.Errorf(response.Msg) } - bytes, err := json.Marshal(response.Data) - if err != nil { - return nil, 0, err + users, ok := response.Data.([]*User) + if !ok { + return nil, 0, errors.New("response data format is incorrect") } - var users []*User - err = json.Unmarshal(bytes, &users) - if err != nil { - return nil, 0, err - } return users, int(response.Data2.(float64)), nil }