Skip to content

Commit 8146f25

Browse files
committed
return space limits in the space status
1 parent ee53d58 commit 8146f25

File tree

1 file changed

+26
-2
lines changed

1 file changed

+26
-2
lines changed

coordinator/rpchandler.go

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
"github.com/gogo/protobuf/proto"
1414
"go.uber.org/zap"
1515

16+
"github.com/anyproto/any-sync-coordinator/accountlimit"
1617
"github.com/anyproto/any-sync-coordinator/spacestatus"
1718
)
1819

@@ -109,6 +110,15 @@ func (r *rpcHandler) SpaceStatusCheck(ctx context.Context, req *coordinatorproto
109110
}
110111
if status.Identity == accountIdentity {
111112
resp.Payload.Permissions = coordinatorproto.SpacePermissions_SpacePermissionsOwner
113+
var aLimits accountlimit.Limits
114+
aLimits, err = r.c.accountLimit.GetLimits(ctx, accountIdentity)
115+
if err != nil {
116+
return nil, err
117+
}
118+
resp.Payload.Limits = &coordinatorproto.SpaceLimits{
119+
ReadMembers: aLimits.SpaceMembersRead,
120+
WriteMembers: aLimits.SpaceMembersWrite,
121+
}
112122
}
113123
return resp, nil
114124
}
@@ -132,9 +142,11 @@ func (r *rpcHandler) SpaceStatusCheckMany(ctx context.Context, req *coordinatorp
132142
}
133143
accountIdentity := accountPubKey.Account()
134144

145+
var limits *coordinatorproto.SpaceLimits
146+
147+
var status spacestatus.StatusEntry
135148
for _, spaceId := range req.SpaceIds {
136-
var status spacestatus.StatusEntry
137-
status, err := r.c.StatusCheck(ctx, spaceId)
149+
status, err = r.c.StatusCheck(ctx, spaceId)
138150
if err != nil {
139151
if errors.Is(err, coordinatorproto.ErrSpaceNotExists) {
140152
resp.Payloads = append(resp.Payloads, &coordinatorproto.SpaceStatusPayload{
@@ -147,6 +159,18 @@ func (r *rpcHandler) SpaceStatusCheckMany(ctx context.Context, req *coordinatorp
147159
st := r.convertStatus(status)
148160
if status.Identity == accountIdentity {
149161
st.Permissions = coordinatorproto.SpacePermissions_SpacePermissionsOwner
162+
if limits == nil {
163+
var aLimits accountlimit.Limits
164+
aLimits, err = r.c.accountLimit.GetLimits(ctx, accountIdentity)
165+
if err != nil {
166+
return nil, err
167+
}
168+
limits = &coordinatorproto.SpaceLimits{
169+
ReadMembers: aLimits.SpaceMembersRead,
170+
WriteMembers: aLimits.SpaceMembersWrite,
171+
}
172+
}
173+
st.Limits = limits
150174
}
151175
resp.Payloads = append(resp.Payloads, st)
152176
}

0 commit comments

Comments
 (0)