mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-11 15:17:33 +00:00
convert: Add UserByMetadata to GRPC converter
This commit is contained in:
@@ -9,7 +9,23 @@ import (
|
|||||||
user "github.com/zitadel/zitadel/pkg/grpc/user/v2beta"
|
user "github.com/zitadel/zitadel/pkg/grpc/user/v2beta"
|
||||||
)
|
)
|
||||||
|
|
||||||
func ListUsersByMetadataRequestToModel(req *user.ListUsersByMetadataRequest, sysDefaults systemdefaults.SystemDefaults) (*query.UserSearchQueries, error) {
|
func UsersByMetadataModelToGRPC(usersAndMetas []*query.UserByMetadata, assetPrefix string) []*user.UserByMetadata {
|
||||||
|
toReturn := make([]*user.UserByMetadata, len(usersAndMetas))
|
||||||
|
|
||||||
|
for i, userAndMeta := range usersAndMetas {
|
||||||
|
userWithMeta := &user.UserByMetadata{
|
||||||
|
User: UserToPb(userAndMeta.User, assetPrefix),
|
||||||
|
Key: userAndMeta.Key,
|
||||||
|
Value: userAndMeta.Value,
|
||||||
|
}
|
||||||
|
|
||||||
|
toReturn[i] = userWithMeta
|
||||||
|
}
|
||||||
|
|
||||||
|
return toReturn
|
||||||
|
}
|
||||||
|
|
||||||
|
func ListUsersByMetadataRequestToModel(req *user.ListUsersByMetadataRequest, sysDefaults systemdefaults.SystemDefaults) (*query.UsersByMetadataSearchQueries, error) {
|
||||||
offset, limit, asc, err := filter.PaginationPbToQuery(sysDefaults, req.GetPagination())
|
offset, limit, asc, err := filter.PaginationPbToQuery(sysDefaults, req.GetPagination())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -20,7 +36,7 @@ func ListUsersByMetadataRequestToModel(req *user.ListUsersByMetadataRequest, sys
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return &query.UserSearchQueries{
|
return &query.UsersByMetadataSearchQueries{
|
||||||
SearchRequest: query.SearchRequest{
|
SearchRequest: query.SearchRequest{
|
||||||
Offset: offset,
|
Offset: offset,
|
||||||
Limit: limit,
|
Limit: limit,
|
||||||
|
@@ -271,3 +271,86 @@ func Test_ListUsersByMetadataRequestToModel(t *testing.T) {
|
|||||||
assert.Nil(t, model)
|
assert.Nil(t, model)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
func Test_UsersByMetadataModelToGRPC(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
inputUsers []*query.UserByMetadata
|
||||||
|
inputAssetPrefix string
|
||||||
|
expectedUsers []*user.UserByMetadata
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "nil input",
|
||||||
|
inputAssetPrefix: "prefix",
|
||||||
|
expectedUsers: nil,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "empty UsersByMeta",
|
||||||
|
inputUsers: []*query.UserByMetadata{},
|
||||||
|
inputAssetPrefix: "prefix",
|
||||||
|
expectedUsers: []*user.UserByMetadata{},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "single user",
|
||||||
|
inputUsers: []*query.UserByMetadata{
|
||||||
|
{
|
||||||
|
User: &query.User{ID: "user1", Username: "testuser"},
|
||||||
|
Key: "key1",
|
||||||
|
Value: []byte("value1"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
inputAssetPrefix: "prefix",
|
||||||
|
expectedUsers: []*user.UserByMetadata{
|
||||||
|
{
|
||||||
|
User: &user.User{UserId: "user1", Username: "testuser"},
|
||||||
|
Key: "key1",
|
||||||
|
Value: []byte("value1"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "multiple users",
|
||||||
|
inputUsers: []*query.UserByMetadata{
|
||||||
|
{
|
||||||
|
User: &query.User{ID: "u1", Username: "user1"},
|
||||||
|
Key: "k1",
|
||||||
|
Value: []byte("v1"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
User: &query.User{ID: "u2", Username: "user2"},
|
||||||
|
Key: "k2",
|
||||||
|
Value: []byte("v2"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
inputAssetPrefix: "prefix",
|
||||||
|
expectedUsers: []*user.UserByMetadata{
|
||||||
|
{
|
||||||
|
User: &user.User{UserId: "u1", Username: "user1"},
|
||||||
|
Key: "k1",
|
||||||
|
Value: []byte("v1"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
User: &user.User{UserId: "u2", Username: "user2"},
|
||||||
|
Key: "k2",
|
||||||
|
Value: []byte("v2"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tc := range tests {
|
||||||
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
result := UsersByMetadataModelToGRPC(tc.inputUsers, tc.inputAssetPrefix)
|
||||||
|
|
||||||
|
require.Len(t, result, len(tc.expectedUsers))
|
||||||
|
for i := range tc.expectedUsers {
|
||||||
|
assert.Equal(t, tc.expectedUsers[i].User.UserId, result[i].User.UserId)
|
||||||
|
assert.Equal(t, tc.expectedUsers[i].User.Username, result[i].User.Username)
|
||||||
|
assert.Equal(t, tc.expectedUsers[i].Key, result[i].Key)
|
||||||
|
assert.Equal(t, tc.expectedUsers[i].Value, result[i].Value)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user