Skip to content
This repository has been archived by the owner on Jan 23, 2025. It is now read-only.

Commit

Permalink
remove member channels, groups and things
Browse files Browse the repository at this point in the history
Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com>
  • Loading branch information
ianmuchyri committed Nov 24, 2023
1 parent 3165d91 commit bbbf425
Show file tree
Hide file tree
Showing 14 changed files with 334 additions and 2,216 deletions.
168 changes: 24 additions & 144 deletions ui/api/endpoint.go
Original file line number Diff line number Diff line change
Expand Up @@ -490,22 +490,10 @@ func AddMemberToChannelEndpoint(svc ui.Service) endpoint.Endpoint {
return nil, err
}

var ret uiRes

switch req.Item {
case usersItem:
ret = uiRes{
code: http.StatusSeeOther,
headers: map[string]string{"Location": usersAPIEndpoint + "/" + req.UserID + channelsAPIEndpoint},
}
case channelsItem:
ret = uiRes{
code: http.StatusSeeOther,
headers: map[string]string{"Location": channelsAPIEndpoint + "/" + req.ChannelID + usersAPIEndpoint},
}
}

return ret, nil
return uiRes{
code: http.StatusSeeOther,
headers: map[string]string{"Location": channelsAPIEndpoint + "/" + req.ChannelID + usersAPIEndpoint},
}, nil
}
}

Expand All @@ -525,22 +513,10 @@ func RemoveMemberFromChannelEndpoint(svc ui.Service) endpoint.Endpoint {
return nil, err
}

var ret uiRes

switch req.Item {
case usersItem:
ret = uiRes{
code: http.StatusSeeOther,
headers: map[string]string{"Location": usersAPIEndpoint + "/" + req.UserID + channelsAPIEndpoint},
}
case channelsItem:
ret = uiRes{
code: http.StatusSeeOther,
headers: map[string]string{"Location": channelsAPIEndpoint + "/" + req.ChannelID + usersAPIEndpoint},
}
}

return ret, nil
return uiRes{
code: http.StatusSeeOther,
headers: map[string]string{"Location": channelsAPIEndpoint + "/" + req.ChannelID + usersAPIEndpoint},
}, nil
}
}

Expand All @@ -560,22 +536,10 @@ func assignGroupEndpoint(svc ui.Service) endpoint.Endpoint {
return nil, err
}

var ret uiRes

switch req.Item {
case usersItem:
ret = uiRes{
code: http.StatusSeeOther,
headers: map[string]string{"Location": usersAPIEndpoint + "/" + req.UserID + groupsAPIEndpoint},
}
case groupsItem:
ret = uiRes{
code: http.StatusSeeOther,
headers: map[string]string{"Location": groupsAPIEndpoint + "/" + req.GroupID + usersAPIEndpoint},
}
}

return ret, nil
return uiRes{
code: http.StatusSeeOther,
headers: map[string]string{"Location": groupsAPIEndpoint + "/" + req.GroupID + usersAPIEndpoint},
}, nil
}
}

Expand All @@ -595,22 +559,10 @@ func unassignGroupEndpoint(svc ui.Service) endpoint.Endpoint {
return nil, err
}

var ret uiRes

switch req.Item {
case usersItem:
ret = uiRes{
code: http.StatusSeeOther,
headers: map[string]string{"Location": usersAPIEndpoint + "/" + req.UserID + groupsAPIEndpoint},
}
case groupsItem:
ret = uiRes{
code: http.StatusSeeOther,
headers: map[string]string{"Location": groupsAPIEndpoint + "/" + req.GroupID + usersAPIEndpoint},
}
}

return ret, nil
return uiRes{
code: http.StatusSeeOther,
headers: map[string]string{"Location": groupsAPIEndpoint + "/" + req.GroupID + usersAPIEndpoint},
}, nil
}
}

Expand Down Expand Up @@ -814,7 +766,7 @@ func listThingMembersEndpoint(svc ui.Service) endpoint.Endpoint {
return func(ctx context.Context, request interface{}) (response interface{}, err error) {
req := request.(listEntityByIDReq)

res, err := svc.ListThingUsers(req.token, req.id, req.page, req.limit)
res, err := svc.ListThingUsers(req.token, req.id, req.relation, req.page, req.limit)
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -1554,7 +1506,7 @@ func getEntitiesEndpoint(svc ui.Service) endpoint.Endpoint {
return nil, err
}

res, err := svc.GetEntities(req.token, req.Item, req.Name, req.OrgID, req.Page, req.Limit)
res, err := svc.GetEntities(req.token, req.Item, req.Name, req.OrgID, req.Permission, req.Page, req.Limit)
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -1788,38 +1740,6 @@ func viewMemberEndpoint(svc ui.Service) endpoint.Endpoint {
}
}

func listMemberGroupsEndpoint(svc ui.Service) endpoint.Endpoint {
return func(ctx context.Context, request interface{}) (response interface{}, err error) {
req := request.(listEntityByIDReq)

res, err := svc.ListMemberGroups(req.token, req.id, req.relation, req.name, req.page, req.limit)
if err != nil {
return nil, err
}

return uiRes{
html: res,
code: http.StatusOK,
}, nil
}
}

func listMemberThingsEndpoint(svc ui.Service) endpoint.Endpoint {
return func(ctx context.Context, request interface{}) (response interface{}, err error) {
req := request.(listEntityByIDReq)

res, err := svc.ListMemberThings(req.token, req.id, req.name, req.page, req.limit)
if err != nil {
return nil, err
}

return uiRes{
html: res,
code: http.StatusOK,
}, nil
}
}

func shareThingEndpoint(svc ui.Service) endpoint.Endpoint {
return func(_ context.Context, request interface{}) (interface{}, error) {
req := request.(shareThingReq)
Expand All @@ -1836,22 +1756,10 @@ func shareThingEndpoint(svc ui.Service) endpoint.Endpoint {
return nil, err
}

var ret uiRes

switch req.Item {
case usersItem:
ret = uiRes{
code: http.StatusSeeOther,
headers: map[string]string{"Location": membersAPIEndpoint + "/" + req.UserID + thingsAPIEndpoint},
}
case thingsItem:
ret = uiRes{
code: http.StatusSeeOther,
headers: map[string]string{"Location": thingsAPIEndpoint + "/" + req.ThingID + usersAPIEndpoint},
}
}

return ret, nil
return uiRes{
code: http.StatusSeeOther,
headers: map[string]string{"Location": thingsAPIEndpoint + "/" + req.ThingID + usersAPIEndpoint},
}, nil
}
}

Expand All @@ -1871,37 +1779,9 @@ func unshareThingEndpoint(svc ui.Service) endpoint.Endpoint {
return nil, err
}

var ret uiRes

switch req.Item {
case usersItem:
ret = uiRes{
code: http.StatusSeeOther,
headers: map[string]string{"Location": membersAPIEndpoint + "/" + req.UserID + thingsAPIEndpoint},
}
case thingsItem:
ret = uiRes{
code: http.StatusSeeOther,
headers: map[string]string{"Location": thingsAPIEndpoint + "/" + req.ThingID + usersAPIEndpoint},
}
}

return ret, nil
}
}

func listMemberChannelsEndpoint(svc ui.Service) endpoint.Endpoint {
return func(ctx context.Context, request interface{}) (response interface{}, err error) {
req := request.(listEntityByIDReq)

res, err := svc.ListMemberChannels(req.token, req.id, req.relation, req.name, req.page, req.limit)
if err != nil {
return nil, err
}

return uiRes{
html: res,
code: http.StatusOK,
code: http.StatusSeeOther,
headers: map[string]string{"Location": thingsAPIEndpoint + "/" + req.ThingID + usersAPIEndpoint},
}, nil
}
}
50 changes: 4 additions & 46 deletions ui/api/logging.go
Original file line number Diff line number Diff line change
Expand Up @@ -472,7 +472,7 @@ func (lm *loggingMiddleware) UnshareThing(token, thingID string, req sdk.UsersRe
}

// ListThingUsers adds logging middleware to list thing users method.
func (lm *loggingMiddleware) ListThingUsers(token, thingID string, page, limit uint64) (b []byte, err error) {
func (lm *loggingMiddleware) ListThingUsers(token, thingID, relation string, page, limit uint64) (b []byte, err error) {
defer func(begin time.Time) {
message := fmt.Sprintf("Method list_thing_users took %s to complete", time.Since(begin))
if err != nil {
Expand All @@ -482,7 +482,7 @@ func (lm *loggingMiddleware) ListThingUsers(token, thingID string, page, limit u
lm.logger.Info(fmt.Sprintf("%s without errors.", message))
}(time.Now())

return lm.svc.ListThingUsers(token, thingID, page, limit)
return lm.svc.ListThingUsers(token, thingID, relation, page, limit)
}

// ListChannelsByThing adds logging middleware to list channels by thing method.
Expand Down Expand Up @@ -1049,7 +1049,7 @@ func (lm *loggingMiddleware) ProcessTerminalCommand(ctx context.Context, id, tok
}

// GetEntities adds logging middleware to get entities method.
func (lm *loggingMiddleware) GetEntities(token, item, name, orgID string, page, limit uint64) (b []byte, err error) {
func (lm *loggingMiddleware) GetEntities(token, item, name, orgID, permission string, page, limit uint64) (b []byte, err error) {
defer func(begin time.Time) {
message := fmt.Sprintf("Method get_entities took %s to complete", time.Since(begin))
if err != nil {
Expand All @@ -1059,7 +1059,7 @@ func (lm *loggingMiddleware) GetEntities(token, item, name, orgID string, page,
lm.logger.Info(fmt.Sprintf("%s without errors.", message))
}(time.Now())

return lm.svc.GetEntities(token, item, name, orgID, page, limit)
return lm.svc.GetEntities(token, item, name, orgID, permission, page, limit)
}

// ErrorPage adds logging middleware to error page method.
Expand Down Expand Up @@ -1184,45 +1184,3 @@ func (lm *loggingMiddleware) ViewMember(token, id string) (b []byte, err error)

return lm.svc.ViewMember(token, id)
}

// ListMemberGroups adds logging middleware to list member groups method.
func (lm *loggingMiddleware) ListMemberGroups(token, memberID, relation, memberName string, page, limit uint64) (b []byte, err error) {
defer func(begin time.Time) {
message := fmt.Sprintf("Method list_member_groups took %s to complete", time.Since(begin))
if err != nil {
lm.logger.Warn(fmt.Sprintf("%s with error: %s.", message, err))
return
}
lm.logger.Info(fmt.Sprintf("%s without errors.", message))
}(time.Now())

return lm.svc.ListMemberGroups(token, memberID, relation, memberName, page, limit)
}

// ListMemberThings adds logging middleware to list member things method.
func (lm *loggingMiddleware) ListMemberThings(token, memberID, memberName string, page, limit uint64) (b []byte, err error) {
defer func(begin time.Time) {
message := fmt.Sprintf("Method list_member_things took %s to complete", time.Since(begin))
if err != nil {
lm.logger.Warn(fmt.Sprintf("%s with error: %s.", message, err))
return
}
lm.logger.Info(fmt.Sprintf("%s without errors.", message))
}(time.Now())

return lm.svc.ListMemberThings(token, memberID, memberName, page, limit)
}

// ListMemberChannels adds logging middleware to list member channels method.
func (lm *loggingMiddleware) ListMemberChannels(token, memberID, relation, memberName string, page, limit uint64) (b []byte, err error) {
defer func(begin time.Time) {
message := fmt.Sprintf("Method list_member_channels took %s to complete", time.Since(begin))
if err != nil {
lm.logger.Warn(fmt.Sprintf("%s with error: %s.", message, err))
return
}
lm.logger.Info(fmt.Sprintf("%s without errors.", message))
}(time.Now())

return lm.svc.ListMemberChannels(token, memberID, relation, memberName, page, limit)
}
38 changes: 4 additions & 34 deletions ui/api/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -351,13 +351,13 @@ func (mm *metricsMiddleware) UnshareThing(token, thingID string, req sdk.UsersRe
}

// ListThingUsers adds metrics middleware to list thing users method.
func (mm *metricsMiddleware) ListThingUsers(token, thingID string, page, limit uint64) (b []byte, err error) {
func (mm *metricsMiddleware) ListThingUsers(token, thingID, relation string, page, limit uint64) (b []byte, err error) {
defer func(begin time.Time) {
mm.counter.With("method", "list_thing_users").Add(1)
mm.latency.With("method", "list_thing_users").Observe(time.Since(begin).Seconds())
}(time.Now())

return mm.svc.ListThingUsers(token, thingID, page, limit)
return mm.svc.ListThingUsers(token, thingID, relation, page, limit)
}

// ListChannelsByThing adds metrics middleware to list channels by thing method.
Expand Down Expand Up @@ -761,13 +761,13 @@ func (mm *metricsMiddleware) ProcessTerminalCommand(ctx context.Context, id, tok
}

// GetEntities adds metrics middleware to get entities method.
func (mm *metricsMiddleware) GetEntities(token, item, name, orgID string, page, limit uint64) ([]byte, error) {
func (mm *metricsMiddleware) GetEntities(token, item, name, orgID, permission string, page, limit uint64) ([]byte, error) {
defer func(begin time.Time) {
mm.counter.With("method", "get_entities").Add(1)
mm.latency.With("method", "get_entities").Observe(time.Since(begin).Seconds())
}(time.Now())

return mm.svc.GetEntities(token, item, name, orgID, page, limit)
return mm.svc.GetEntities(token, item, name, orgID, permission, page, limit)
}

// ErrorPage adds metrics middleware to error page method.
Expand Down Expand Up @@ -859,33 +859,3 @@ func (mm *metricsMiddleware) ViewMember(token, id string) (b []byte, err error)

return mm.svc.ViewMember(token, id)
}

// ListMemberGroups adds metrics middleware to list member groups method.
func (mm *metricsMiddleware) ListMemberGroups(token, memberID, relation, memberName string, page, limit uint64) (b []byte, err error) {
defer func(begin time.Time) {
mm.counter.With("method", "list_member_groups").Add(1)
mm.latency.With("method", "list_member_groups").Observe(time.Since(begin).Seconds())
}(time.Now())

return mm.svc.ListMemberGroups(token, memberID, relation, memberName, page, limit)
}

// ListMemberThings adds metrics middleware to list member things method.
func (mm *metricsMiddleware) ListMemberThings(token, memberID, memberName string, page, limit uint64) (b []byte, err error) {
defer func(begin time.Time) {
mm.counter.With("method", "list_member_things").Add(1)
mm.latency.With("method", "list_member_things").Observe(time.Since(begin).Seconds())
}(time.Now())

return mm.svc.ListMemberThings(token, memberID, memberName, page, limit)
}

// ListMemberChannels adds metrics middleware to list member channels method.
func (mm *metricsMiddleware) ListMemberChannels(token, memberID, relation, memberName string, page, limit uint64) (b []byte, err error) {
defer func(begin time.Time) {
mm.counter.With("method", "list_member_channels").Add(1)
mm.latency.With("method", "list_member_channels").Observe(time.Since(begin).Seconds())
}(time.Now())

return mm.svc.ListMemberChannels(token, memberID, relation, memberName, page, limit)
}
Loading

0 comments on commit bbbf425

Please sign in to comment.