Skip to content

Commit de8ad17

Browse files
committed
refactor: add stream for list invitee invitations method
Signed-off-by: Felix Gateru <[email protected]>
1 parent f2998cd commit de8ad17

File tree

3 files changed

+27
-29
lines changed

3 files changed

+27
-29
lines changed

domains/events/events.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ const (
2626
invitationAccept = invitationPrefix + "accept"
2727
invitationReject = invitationPrefix + "reject"
2828
invitationList = invitationPrefix + "list"
29-
InvitationListInvitee = invitationPrefix + "list_invitee"
29+
invitationListInvitee = invitationPrefix + "list_invitee"
3030
invitationRetrieve = invitationPrefix + "retrieve"
3131
invitationDelete = invitationPrefix + "delete"
3232
)
@@ -43,7 +43,7 @@ var (
4343
_ events.Event = (*sendInvitationEvent)(nil)
4444
_ events.Event = (*viewInvitationEvent)(nil)
4545
_ events.Event = (*listInvitationsEvent)(nil)
46-
46+
_ events.Event = (*listInviteeInvitationsEvent)(nil)
4747
_ events.Event = (*acceptInvitationEvent)(nil)
4848
_ events.Event = (*rejectInvitationEvent)(nil)
4949
_ events.Event = (*deleteInvitationEvent)(nil)
@@ -387,7 +387,7 @@ type listInviteeInvitationsEvent struct {
387387

388388
func (lie listInviteeInvitationsEvent) Encode() (map[string]interface{}, error) {
389389
val := map[string]interface{}{
390-
"operation": InvitationListInvitee,
390+
"operation": invitationListInvitee,
391391
"offset": lie.Offset,
392392
"limit": lie.Limit,
393393
"invitee_user_id": lie.InviteeUserID,

domains/events/streams.go

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,21 @@ import (
1616
)
1717

1818
const (
19-
supermqPrefix = "supermq."
20-
createStream = supermqPrefix + domainCreate
21-
retrieveStream = supermqPrefix + domainRetrieve
22-
updateStream = supermqPrefix + domainUpdate
23-
enableStream = supermqPrefix + domainEnable
24-
disableStream = supermqPrefix + domainDisable
25-
freezeStream = supermqPrefix + domainFreeze
26-
listStream = supermqPrefix + domainList
27-
sendInvitationStream = supermqPrefix + invitationSend
28-
acceptInvitationStream = supermqPrefix + invitationAccept
29-
rejectInvitationStream = supermqPrefix + invitationReject
30-
listInvitationsStream = supermqPrefix + invitationList
31-
retrieveInvitationStream = supermqPrefix + invitationRetrieve
32-
deleteInvitationStream = supermqPrefix + invitationDelete
19+
supermqPrefix = "supermq."
20+
createStream = supermqPrefix + domainCreate
21+
retrieveStream = supermqPrefix + domainRetrieve
22+
updateStream = supermqPrefix + domainUpdate
23+
enableStream = supermqPrefix + domainEnable
24+
disableStream = supermqPrefix + domainDisable
25+
freezeStream = supermqPrefix + domainFreeze
26+
listStream = supermqPrefix + domainList
27+
sendInvitationStream = supermqPrefix + invitationSend
28+
acceptInvitationStream = supermqPrefix + invitationAccept
29+
rejectInvitationStream = supermqPrefix + invitationReject
30+
listInvitationsStream = supermqPrefix + invitationList
31+
listInviteeInvitationsStream = supermqPrefix + invitationListInvitee
32+
retrieveInvitationStream = supermqPrefix + invitationRetrieve
33+
deleteInvitationStream = supermqPrefix + invitationDelete
3334
)
3435

3536
var _ domains.Service = (*eventStore)(nil)
@@ -263,7 +264,7 @@ func (es *eventStore) ListInviteeInvitations(ctx context.Context, session authn.
263264
session: session,
264265
}
265266

266-
if err := es.Publish(ctx, listInvitationsStream, event); err != nil {
267+
if err := es.Publish(ctx, listInviteeInvitationsStream, event); err != nil {
267268
return ip, err
268269
}
269270

domains/postgres/invitations.go

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ func (repo domainRepo) RetrieveInvitation(ctx context.Context, inviteeUserID, do
5353
}
5454

5555
func (repo domainRepo) RetrieveAllInvitations(ctx context.Context, pm domains.InvitationPageMeta) (domains.InvitationPage, error) {
56-
query := pageQuery(pm, false)
56+
query := pageQuery(pm)
5757

5858
q := fmt.Sprintf(`
5959
SELECT
@@ -162,18 +162,24 @@ func (repo domainRepo) DeleteInvitation(ctx context.Context, inviteeUserID, doma
162162
return nil
163163
}
164164

165-
func pageQuery(pm domains.InvitationPageMeta, invitee bool) string {
165+
func pageQuery(pm domains.InvitationPageMeta) string {
166166
var query []string
167167
var emq string
168168
if pm.DomainID != "" {
169169
query = append(query, "i.domain_id = :domain_id")
170170
}
171+
if pm.InviteeUserID != "" {
172+
query = append(query, "i.invitee_user_id = :invitee_user_id")
173+
}
171174
if pm.InvitedBy != "" {
172175
query = append(query, "i.invited_by = :invited_by")
173176
}
174177
if pm.RoleID != "" {
175178
query = append(query, "i.role_id = :role_id")
176179
}
180+
if pm.InvitedByOrUserID != "" {
181+
query = append(query, "(i.invited_by = :invited_by_or_user_id OR i.invitee_user_id = :invited_by_or_user_id)")
182+
}
177183
if pm.State == domains.Accepted {
178184
query = append(query, "i.confirmed_at IS NOT NULL")
179185
}
@@ -183,15 +189,6 @@ func pageQuery(pm domains.InvitationPageMeta, invitee bool) string {
183189
if pm.State == domains.Rejected {
184190
query = append(query, "i.rejected_at IS NOT NULL")
185191
}
186-
if invitee && len(query) > 0 {
187-
return fmt.Sprintf("AND %s", strings.Join(query, " AND "))
188-
}
189-
if pm.InviteeUserID != "" {
190-
query = append(query, "i.invitee_user_id = :invitee_user_id")
191-
}
192-
if pm.InvitedByOrUserID != "" {
193-
query = append(query, "(i.invited_by = :invited_by_or_user_id OR i.invitee_user_id = :invited_by_or_user_id)")
194-
}
195192

196193
if len(query) > 0 {
197194
emq = fmt.Sprintf("WHERE %s", strings.Join(query, " AND "))

0 commit comments

Comments
 (0)