diff --git a/pkg/onelogin/models/user.go b/pkg/onelogin/models/user.go index 1023655..c9f3b1b 100644 --- a/pkg/onelogin/models/user.go +++ b/pkg/onelogin/models/user.go @@ -80,7 +80,7 @@ type User struct { ManagerUserID int32 `json:"manager_user_id,omitempty"` ExternalID int32 `json:"external_id,omitempty"` ID int32 `json:"id,omitempty"` - CustomAttributes map[string]interface{} `json:"custom_attributes,omitempty"` + CustomAttributes map[string]string `json:"custom_attributes,omitempty"` } func (q *UserQuery) GetKeyValidators() map[string]func(interface{}) bool { diff --git a/pkg/onelogin/users.go b/pkg/onelogin/users.go index bcaeb4d..3f68257 100644 --- a/pkg/onelogin/users.go +++ b/pkg/onelogin/users.go @@ -5,6 +5,7 @@ import ( "encoding/json" "errors" + "github.com/onelogin/onelogin-go-sdk/v4/pkg/onelogin/models" mod "github.com/onelogin/onelogin-go-sdk/v4/pkg/onelogin/models" utl "github.com/onelogin/onelogin-go-sdk/v4/pkg/onelogin/utilities" ) @@ -48,6 +49,40 @@ func (sdk *OneloginSDK) GetUsers(query mod.Queryable) (interface{}, error) { } return utl.CheckHTTPResponse(resp) } +func (sdk *OneloginSDK) GetUsersModels(query mod.Queryable) ([]models.User, error) { + p, err := utl.BuildAPIPath(UserPathV2) + if err != nil { + return nil, err + } + + // Validate query parameters + validators := query.GetKeyValidators() + if !utl.ValidateQueryParams(query, validators) { + return nil, errors.New("invalid query parameters") + } + + + resp, err := sdk.Client.Get(&p, query) + if err != nil { + return nil, err + } + + tmp,err := utl.CheckHTTPResponse(resp) + if err != nil { + return nil, err + } + + var users []models.User + tmpBytes,err := json.Marshal(tmp) + if err != nil { + return nil, err + } + err= json.Unmarshal(tmpBytes,&users) + if err != nil { + return nil, err + } + return users,nil +} func (sdk *OneloginSDK) GetUserByID(id int, queryParams mod.Queryable) (interface{}, error) { p, err := utl.BuildAPIPath(UserPathV2, id)