Skip to content

Commit

Permalink
refactor: rebase
Browse files Browse the repository at this point in the history
Signed-off-by: 1998-felix <felix.gateru@gmail.com>
  • Loading branch information
felixgateru committed Aug 14, 2024
1 parent 2ec2c94 commit 706a498
Show file tree
Hide file tree
Showing 23 changed files with 147 additions and 728 deletions.
14 changes: 7 additions & 7 deletions pkg/sdk/go/channels.go
Original file line number Diff line number Diff line change
Expand Up @@ -108,21 +108,21 @@ func (sdk mgSDK) ListUserChannels(pm PageMetadata, token string) (ChannelsPage,
return cp, nil
}

func (sdk mgSDK) ListGroupChannels(pm PageMetadata, token string) (GroupsPage, errors.SDKError) {
func (sdk mgSDK) ListGroupChannels(pm PageMetadata, token string) (ChannelsPage, errors.SDKError) {
url, err := sdk.withQueryParams(sdk.thingsURL, channelsEndpoint, pm)
if err != nil {
return GroupsPage{}, errors.NewSDKError(err)
return ChannelsPage{}, errors.NewSDKError(err)
}
_, body, sdkerr := sdk.processRequest(http.MethodGet, url, token, nil, nil, http.StatusOK)
if sdkerr != nil {
return GroupsPage{}, sdkerr
return ChannelsPage{}, sdkerr
}
gp := GroupsPage{}
if err := json.Unmarshal(body, &gp); err != nil {
return GroupsPage{}, errors.NewSDKError(err)
cp := ChannelsPage{}
if err := json.Unmarshal(body, &cp); err != nil {
return ChannelsPage{}, errors.NewSDKError(err)
}

return gp, nil
return cp, nil
}

func (sdk mgSDK) Channel(id, token string) (Channel, errors.SDKError) {
Expand Down
6 changes: 3 additions & 3 deletions pkg/sdk/go/channels_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1080,7 +1080,7 @@ func TestListChannelsByThing(t *testing.T) {
for _, tc := range cases {
t.Run(tc.desc, func(t *testing.T) {
svcCall := gsvc.On("ListGroups", mock.Anything, tc.token, auth.ThingsKind, tc.thingID, tc.listGroupsReq).Return(tc.svcRes, tc.svcErr)
resp, err := mgsdk.ChannelsByThing(tc.thingID, tc.pageMeta, tc.token)
resp, err := mgsdk.ChannelsByThing(tc.pageMeta, tc.token)
assert.Equal(t, tc.err, err)
assert.Equal(t, tc.response, resp)
if tc.err == nil {
Expand Down Expand Up @@ -2053,7 +2053,7 @@ func TestListChannelUserGroups(t *testing.T) {
for _, tc := range cases {
t.Run(tc.desc, func(t *testing.T) {
svcCall := gsvc.On("ListGroups", mock.Anything, tc.token, auth.ChannelsKind, tc.channelID, tc.listGroupsReq).Return(tc.svcRes, tc.svcErr)
resp, err := mgsdk.ListChannelUserGroups(tc.channelID, tc.pageMeta, tc.token)
resp, err := mgsdk.ListChannelUserGroups(tc.pageMeta, tc.token)
assert.Equal(t, tc.err, err)
assert.Equal(t, tc.response, resp)
if tc.err == nil {
Expand Down Expand Up @@ -2581,7 +2581,7 @@ func TestListGroupChannels(t *testing.T) {
for _, tc := range cases {
t.Run(tc.desc, func(t *testing.T) {
svcCall := gsvc.On("ListGroups", mock.Anything, tc.token, auth.GroupsKind, tc.groupID, tc.svcReq).Return(tc.svcRes, tc.svcErr)
resp, err := mgsdk.ListGroupChannels(tc.groupID, tc.pageMeta, tc.token)
resp, err := mgsdk.ListGroupChannels(tc.pageMeta, tc.token)
assert.Equal(t, tc.err, err)
assert.Equal(t, tc.response, resp)
if tc.err == nil {
Expand Down
2 changes: 1 addition & 1 deletion pkg/sdk/go/domains_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -761,7 +761,7 @@ func TestListUserDomains(t *testing.T) {
for _, tc := range cases {
t.Run(tc.desc, func(t *testing.T) {
svcCall := svc.On("ListUserDomains", mock.Anything, tc.token, tc.userID, tc.svcReq).Return(tc.svcRes, tc.svcErr)
resp, err := mgsdk.ListUserDomains(tc.userID, tc.pageMeta, tc.token)
resp, err := mgsdk.ListUserDomains(tc.pageMeta, tc.token)
assert.Equal(t, tc.err, err)
assert.Equal(t, tc.response, resp)
if tc.err == nil {
Expand Down
45 changes: 14 additions & 31 deletions pkg/sdk/go/groups.go
Original file line number Diff line number Diff line change
Expand Up @@ -197,52 +197,35 @@ func (sdk mgSDK) RemoveUserFromGroup(groupID string, req UsersRelationRequest, t
func (sdk mgSDK) ListChannelUserGroups(pm PageMetadata, token string) (GroupsPage, errors.SDKError) {
url, err := sdk.withQueryParams(sdk.usersURL, groupsEndpoint, pm)
if err != nil {
return UsersPage{}, errors.NewSDKError(err)
}
_, body, sdkerr := sdk.processRequest(http.MethodGet, url, token, nil, nil, http.StatusOK)
if sdkerr != nil {
return UsersPage{}, sdkerr
}
up := UsersPage{}
if err := json.Unmarshal(body, &up); err != nil {
return UsersPage{}, errors.NewSDKError(err)
}

return up, nil
}

func (sdk mgSDK) ListGroupChannels(groupID string, pm PageMetadata, token string) (ChannelsPage, errors.SDKError) {
url, err := sdk.withQueryParams(sdk.thingsURL, fmt.Sprintf("%s/%s/%s", groupsEndpoint, groupID, channelsEndpoint), pm)
if err != nil {
return ChannelsPage{}, errors.NewSDKError(err)
return GroupsPage{}, errors.NewSDKError(err)
}
_, body, sdkerr := sdk.processRequest(http.MethodGet, url, token, nil, nil, http.StatusOK)
if sdkerr != nil {
return ChannelsPage{}, sdkerr
return GroupsPage{}, sdkerr
}
cp := ChannelsPage{}
if err := json.Unmarshal(body, &cp); err != nil {
return ChannelsPage{}, errors.NewSDKError(err)
gp := GroupsPage{}
if err := json.Unmarshal(body, &gp); err != nil {
return GroupsPage{}, errors.NewSDKError(err)
}

return cp, nil
return gp, nil
}

func (sdk mgSDK) ListGroupChannels(groupID string, pm PageMetadata, token string) (GroupsPage, errors.SDKError) {
url, err := sdk.withQueryParams(sdk.thingsURL, fmt.Sprintf("%s/%s/%s", groupsEndpoint, groupID, channelsEndpoint), pm)
func (sdk mgSDK) ListUserGroups(pm PageMetadata, token string) (GroupsPage, errors.SDKError) {
url, err := sdk.withQueryParams(sdk.usersURL, groupsEndpoint, pm)
if err != nil {
return ChannelsPage{}, errors.NewSDKError(err)
return GroupsPage{}, errors.NewSDKError(err)
}
_, body, sdkerr := sdk.processRequest(http.MethodGet, url, token, nil, nil, http.StatusOK)
if sdkerr != nil {
return ChannelsPage{}, sdkerr
return GroupsPage{}, sdkerr
}
cp := ChannelsPage{}
if err := json.Unmarshal(body, &cp); err != nil {
return ChannelsPage{}, errors.NewSDKError(err)
gp := GroupsPage{}
if err := json.Unmarshal(body, &gp); err != nil {
return GroupsPage{}, errors.NewSDKError(err)
}

return cp, nil
return gp, nil
}

func (sdk mgSDK) DeleteGroup(id, token string) errors.SDKError {
Expand Down
4 changes: 2 additions & 2 deletions pkg/sdk/go/sdk.go
Original file line number Diff line number Diff line change
Expand Up @@ -339,7 +339,7 @@ type SDK interface {
// }
// things, _ := sdk.ListUserThings(pm, "token")
// fmt.Println(things)
ListUserThings(userID string, pm PageMetadata, token string) (ThingsPage, errors.SDKError)
ListUserThings(pm PageMetadata, token string) (ThingsPage, errors.SDKError)

// SeachUsers filters users and returns a page result.
//
Expand Down Expand Up @@ -648,7 +648,7 @@ type SDK interface {
// }
// groups, _ := sdk.ListGroupChannels(pm, "token")
// fmt.Println(groups)
ListGroupChannels(groupID string, pm PageMetadata, token string) (ChannelsPage, errors.SDKError)
ListGroupChannels(pm PageMetadata, token string) (ChannelsPage, errors.SDKError)

// DeleteGroup delete given group id.
//
Expand Down
4 changes: 2 additions & 2 deletions pkg/sdk/go/things_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -715,7 +715,7 @@ func TestListThingsByChannel(t *testing.T) {
for _, tc := range cases {
t.Run(tc.desc, func(t *testing.T) {
svcCall := tsvc.On("ListClientsByGroup", mock.Anything, tc.token, tc.channelID, tc.svcReq).Return(tc.svcRes, tc.svcErr)
resp, err := mgsdk.ThingsByChannel(tc.channelID, tc.pageMeta, tc.token)
resp, err := mgsdk.ThingsByChannel(tc.pageMeta, tc.token)
assert.Equal(t, tc.err, err)
assert.Equal(t, tc.response, resp)
if tc.err == nil {
Expand Down Expand Up @@ -1967,7 +1967,7 @@ func TestListUserThings(t *testing.T) {
for _, tc := range cases {
t.Run(tc.desc, func(t *testing.T) {
svcCall := tsvc.On("ListClients", mock.Anything, tc.token, tc.userID, tc.svcReq).Return(tc.svcRes, tc.svcErr)
resp, err := mgsdk.ListUserThings(tc.userID, tc.pageMeta, tc.token)
resp, err := mgsdk.ListUserThings(tc.pageMeta, tc.token)
assert.Equal(t, tc.err, err)
assert.Equal(t, tc.response, resp)
if tc.err == nil {
Expand Down
4 changes: 2 additions & 2 deletions pkg/sdk/go/users_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -543,7 +543,7 @@ func TestListUsers(t *testing.T) {
}

func TestListChannelUsers(t *testing.T) {
ts, crepo, _, auth := setupUsers()
ts, svc := setupUsers()
defer ts.Close()

var cls []sdk.User
Expand Down Expand Up @@ -2543,7 +2543,7 @@ func TestListUserGroups(t *testing.T) {
for _, tc := range cases {
t.Run(tc.desc, func(t *testing.T) {
svcCall := svc.On("ListGroups", mock.Anything, tc.token, "users", tc.userID, tc.svcReq).Return(tc.svcRes, tc.svcErr)
resp, err := mgsdk.ListUserGroups(tc.userID, tc.pageMeta, tc.token)
resp, err := mgsdk.ListUserGroups(tc.pageMeta, tc.token)
assert.Equal(t, tc.err, err)
assert.Equal(t, tc.response, resp)
if tc.err == nil {
Expand Down
51 changes: 10 additions & 41 deletions pkg/sdk/mocks/sdk.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion things/api/http/channels.go
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,6 @@ func groupsHandler(svc groups.Service, r *chi.Mux, logger *slog.Logger) http.Han
), "disconnect_channel_thing").ServeHTTP)
})


// Ideal location: things service, things endpoint
// Reason for placing here :
// SpiceDB provides list of channel ids to which thing id attached
Expand Down
51 changes: 5 additions & 46 deletions things/api/http/clients.go
Original file line number Diff line number Diff line change
Expand Up @@ -150,56 +150,15 @@ func decodeViewClientPerms(_ context.Context, r *http.Request) (interface{}, err
}

func decodeListClients(_ context.Context, r *http.Request) (interface{}, error) {
s, err := apiutil.ReadStringQuery(r, api.StatusKey, api.DefClientStatus)
if err != nil {
return nil, errors.Wrap(apiutil.ErrValidation, err)
}
o, err := apiutil.ReadNumQuery[uint64](r, api.OffsetKey, api.DefOffset)
if err != nil {
return nil, errors.Wrap(apiutil.ErrValidation, err)
}
l, err := apiutil.ReadNumQuery[uint64](r, api.LimitKey, api.DefLimit)
if err != nil {
return nil, errors.Wrap(apiutil.ErrValidation, err)
}
m, err := apiutil.ReadMetadataQuery(r, api.MetadataKey, nil)
if err != nil {
return nil, errors.Wrap(apiutil.ErrValidation, err)
}
n, err := apiutil.ReadStringQuery(r, api.NameKey, "")
if err != nil {
return nil, errors.Wrap(apiutil.ErrValidation, err)
}
t, err := apiutil.ReadStringQuery(r, api.TagKey, "")
if err != nil {
return nil, errors.Wrap(apiutil.ErrValidation, err)
}
id, err := apiutil.ReadStringQuery(r, api.IDOrder, "")
if err != nil {
return nil, errors.Wrap(apiutil.ErrValidation, err)
}
p, err := apiutil.ReadStringQuery(r, api.PermissionKey, api.DefPermission)
if err != nil {
return nil, errors.Wrap(apiutil.ErrValidation, err)
req := listClientsReq{
token: apiutil.ExtractBearerToken(r),
}

lp, err := apiutil.ReadBoolQuery(r, api.ListPerms, api.DefListPerms)
pm, err := queryPageParams(r)
if err != nil {
return nil, err
}
req := listClientsReq{
token: apiutil.ExtractBearerToken(r),
status: st,
offset: o,
limit: l,
metadata: m,
name: n,
tag: t,
permission: p,
listPerms: lp,
userID: chi.URLParam(r, "userID"),
id: id,
}
req.page = pm

return req, nil
}

Expand Down
14 changes: 1 addition & 13 deletions things/api/http/endpoints.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,19 +99,7 @@ func listClientsEndpoint(svc things.Service) endpoint.Endpoint {
return nil, errors.Wrap(apiutil.ErrValidation, err)
}

pm := mgclients.Page{
Status: req.status,
Offset: req.offset,
Limit: req.limit,
Name: req.name,
Tag: req.tag,
Permission: req.permission,
Metadata: req.metadata,
ListPerms: req.listPerms,
Role: mgclients.AllRole, // retrieve all things since things don't have roles
Id: req.id,
}
page, err := svc.ListClients(ctx, req.token, req.userID, pm)
page, err := svc.ListClients(ctx, req.token, req.page)
if err != nil {
return nil, err
}
Expand Down
12 changes: 1 addition & 11 deletions things/api/http/requests.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,17 +86,7 @@ func (req viewClientPermsReq) validate() error {

type listClientsReq struct {
token string
status mgclients.Status
offset uint64
limit uint64
name string
tag string
permission string
visibility string
userID string
listPerms bool
metadata mgclients.Metadata
id string
page mgclients.Page
}

func (req listClientsReq) validate() error {
Expand Down
Loading

0 comments on commit 706a498

Please sign in to comment.