-
Notifications
You must be signed in to change notification settings - Fork 12
feat: use invite dialogue to invite visitors #1094
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
yoganandaness
merged 104 commits into
develop
from
SWAP-4726-new-user-selection-dialogue-not-working-with-visit
Oct 16, 2025
Merged
Changes from all commits
Commits
Show all changes
104 commits
Select commit
Hold shift + click to select a range
1e6ab84
feat: add co-proposer invite handling and related events to logging
jekabs-karklins 0449b66
Merge branch 'develop' into SWAP-4732-add-proposal_updated-event-when…
jekabs-karklins fbcab2e
feat: update event handling for co-proposer invitations and logging
jekabs-karklins d8834bc
feat: rename proposal invite events to co-proposer claim events
jekabs-karklins d48269b
feat: add Participants component for managing user invitations in pro…
jekabs-karklins 85755b8
fix: show chips
jekabs-karklins de7156f
fix: update dialog title in InviteUser component
jekabs-karklins fe29449
feat: add VisitRegistrationClaim model and data sources for managing …
jekabs-karklins d12fe0a
Adding resolver
jekabs-karklins eed9339
feat: enhance visit management with registration claims and invites
jekabs-karklins 0e6e934
Merge branch 'develop' into SWAP-4726-new-user-selection-dialogue-not…
jekabs-karklins 1c11cc6
feat: add VisitAuthorization and VisitRegistrationClaimDataSource map…
jekabs-karklins 05562bd
Merge branch 'develop' into SWAP-4726-new-user-selection-dialogue-not…
jekabs-karklins 98e351a
Merge branch 'develop' into SWAP-4726-new-user-selection-dialogue-not…
jekabs-karklins 4b59a32
Merge branch 'SWAP-4732-add-proposal_updated-event-when-user-accepts-…
jekabs-karklins 219710d
feat: implement visit registration claim acceptance event and related…
jekabs-karklins 5044a37
fix: update findByInviteId method to return an array of VisitRegistra…
jekabs-karklins 0d29afb
fix: update import path for VisitRegistrationClaim model
jekabs-karklins e9227a2
fix: update button label and title for joining proposal
jekabs-karklins 53283f1
feat: add co-proposer claim events and logging to invite mutations
jekabs-karklins 8de732a
refactor: remove legacy email invite handling and improve template ID…
jekabs-karklins 21db222
revert
jekabs-karklins 25df8b2
refactor: rename mock template ID stubs for clarity in checkInviteRem…
jekabs-karklins 5daa231
fix: update invite property to array in ProposalCoProposerClaimSentEvent
jekabs-karklins 67977d5
feat: add visit_registration_claims table to store visit registration…
jekabs-karklins e744b90
Merge branch 'develop' into SWAP-4726-new-user-selection-dialogue-not…
jekabs-karklins 80427f2
feat: update visit_registration_claims table structure and add confli…
jekabs-karklins e9669da
Merge branch 'develop' into SWAP-4726-new-user-selection-dialogue-not…
jekabs-karklins 7123ffe
fix test
jekabs-karklins 8de30d5
feat: enhance invite mutations to include email handling and logging
jekabs-karklins 3a456f6
feat: update invite handling and logging for co-proposer and visit re…
jekabs-karklins 4d7ad7a
fix: update dummy review values so after enabling evenbus the test pa…
jekabs-karklins 3e9443d
Merge branch 'develop' into SWAP-4726-new-user-selection-dialogue-not…
jekabs-karklins 04266e0
fix: update event descriptions for co-proposer and visit registration…
jekabs-karklins d25fa05
Merge branch 'SWAP-4726-new-user-selection-dialogue-not-working-with-…
jekabs-karklins e48dea7
feat: add email template IDs for co-proposer and visitor invite emails
jekabs-karklins d4b83ec
feat: enhance email template IDs for co-proposer and visit registrati…
jekabs-karklins 7b32c5d
Merge branch 'develop' into SWAP-4726-new-user-selection-dialogue-not…
jekabs-karklins 16cf3bc
refactor: remove unused file
jekabs-karklins 515905d
refactor: adjust eliEmailHandler to only have neccesary changes
jekabs-karklins ee04b77
feat: add template_id to invites and update related email handling logic
jekabs-karklins 4b30486
feat: add tests for co-proposer invite email and logging functionalit…
jekabs-karklins c48d509
feat: add tests for essEmailHandler and getTemplateIdForInvite functi…
jekabs-karklins 08f872b
refactor how email template id is obtained
jekabs-karklins b2eff61
fix test
jekabs-karklins 4ea30c4
Merge branch 'enable-event-bus-in-unit-testing' into refactor-email-t…
jekabs-karklins 980bcd2
Merge branch 'refactor-email-template-id-obtaining' into SWAP-4726-ne…
jekabs-karklins 0fe4edc
refactor: rename template to templateId in InviteDataSource classes
jekabs-karklins 6409ce4
refactor: remove findByVisitId method from VisitRegistrationClaimData…
jekabs-karklins 59ec9e6
refactor: improve initialization of invites in InviteDataSourceMock
jekabs-karklins b0992d1
Merge branch 'refactor-email-template-id-obtaining' into SWAP-4726-ne…
jekabs-karklins 06a57f1
refactor: improve initialization of invites in InviteDataSource
jekabs-karklins e7964a3
Merge branch 'refactor-email-template-id-obtaining' into SWAP-4726-ne…
jekabs-karklins b25cdda
feat: update logger configuration to use ConsoleLogger with colorization
jekabs-karklins 0964cf3
Merge branch 'enable-event-bus-in-unit-testing' into refactor-email-t…
jekabs-karklins d5d254d
test: add validation for templateId in co-proposer invite
jekabs-karklins 1c11808
Merge branch 'develop' into enable-event-bus-in-unit-testing
jekabs-karklins a4a6a5f
Merge branch 'enable-event-bus-in-unit-testing' into refactor-email-t…
jekabs-karklins 737e8a3
Merge branch 'refactor-email-template-id-obtaining' into SWAP-4726-ne…
jekabs-karklins 8a3947e
Merge branch 'refactor-email-template-id-obtaining' into SWAP-4726-ne…
jekabs-karklins 66c010c
feat: enhance email handling and logging for co-proposer invites and …
jekabs-karklins 1553cef
Merge branch 'enable-event-bus-in-unit-testing' into refactor-email-t…
jekabs-karklins 50a592f
Merge branch 'refactor-email-template-id-obtaining' of github.com:Use…
jekabs-karklins 7179beb
Merge branch 'refactor-email-template-id-obtaining' into refactor-inv…
jekabs-karklins 31cb2f8
Merge branch 'refactor-email-template-id-obtaining' of github.com:Use…
jekabs-karklins e55b11e
Merge branch 'refactor-email-template-id-obtaining' of github.com:Use…
jekabs-karklins 376200b
merged
jekabs-karklins 32157f3
Merge branch 'refactor-email-template-id-obtaining' into refactor-inv…
jekabs-karklins 752b19b
Merge branch 'refactor-invite-event-handling' into SWAP-4726-new-user…
jekabs-karklins a659438
Merge branch 'refactor-email-template-id-obtaining' into refactor-inv…
jekabs-karklins 06e2172
Merge branch 'refactor-invite-event-handling' of github.com:UserOffic…
jekabs-karklins b948bef
Merge branch 'refactor-invite-event-handling' of github.com:UserOffic…
jekabs-karklins a85baec
Merge branch 'refactor-invite-event-handling' of github.com:UserOffic…
jekabs-karklins ca82b54
Merge branch 'refactor-invite-event-handling' into SWAP-4726-new-user…
jekabs-karklins 307ed17
Add email template IDs and new event interfaces for visit registratio…
jekabs-karklins ff7bcad
Remove deprecated email invite events from Event enum
jekabs-karklins 923e4d2
Merge branch 'refactor-invite-event-handling' into SWAP-4726-new-user…
jekabs-karklins a7cd6e3
Update log message for co-proposer invite acceptance
jekabs-karklins 4d4c721
Refactor co-proposer invite handling to use proposalPKey instead of p…
jekabs-karklins 5963cc6
Merge branch 'refactor-invite-event-handling' into SWAP-4726-new-user…
jekabs-karklins c76322c
Update invite email descriptions to include user ID of the sender
jekabs-karklins e278df7
Enhance invite acceptance test to verify log entries and add data att…
jekabs-karklins d8b50cd
fix: remove leftover comment
jekabs-karklins 50d1d0e
Merge branch 'develop' into enable-event-bus-in-unit-testing
jekabs-karklins 7f4e3fa
Merge branch 'enable-event-bus-in-unit-testing' into refactor-email-t…
jekabs-karklins 2b96a41
Merge branch 'refactor-email-template-id-obtaining' into refactor-inv…
jekabs-karklins 23b55f5
Merge branch 'refactor-invite-event-handling' into SWAP-4726-new-user…
jekabs-karklins 1c0a72f
Merge branch 'develop' into SWAP-4726-new-user-selection-dialogue-not…
53e42a4
Merge branch 'develop' into SWAP-4726-new-user-selection-dialogue-not…
jekabs-karklins fc69433
Merge branch 'develop' into SWAP-4726-new-user-selection-dialogue-not…
1b8dbec
refactor: remove unnecessary blank line in InviteDataSourceMock const…
342807c
refactor: rename claim processing methods for clarity and consistency
5dbe4a3
Merge branch 'develop' into SWAP-4726-new-user-selection-dialogue-not…
jekabs-karklins 0ec64f0
Merge branch 'develop' into SWAP-4726-new-user-selection-dialogue-not…
9bdd4c5
Merge branch 'develop' into SWAP-4726-new-user-selection-dialogue-not…
jekabs-karklins a9687ec
Merge branch 'develop' into SWAP-4726-new-user-selection-dialogue-not…
jekabs-karklins c47f781
Merge branch 'develop' into SWAP-4726-new-user-selection-dialogue-not…
yoganandaness 09c0519
Merge branch 'develop' into SWAP-4726-new-user-selection-dialogue-not…
jekabs-karklins 5c2be03
Merge branch 'develop' into SWAP-4726-new-user-selection-dialogue-not…
yoganandaness db5cddc
Merge branch 'develop' into SWAP-4726-new-user-selection-dialogue-not…
yoganandaness 9ef4558
Merge branch 'develop' into SWAP-4726-new-user-selection-dialogue-not…
yoganandaness 884fcad
fixed e2e test clicking first proposal in the list
yoganandaness bdc17a0
Merge branch 'develop' into SWAP-4726-new-user-selection-dialogue-not…
yoganandaness ab14ff5
Merge branch 'develop' into SWAP-4726-new-user-selection-dialogue-not…
yoganandaness File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
26 changes: 26 additions & 0 deletions
26
apps/backend/db_patches/0183_AddVisitRegistrationClaim.sql
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,26 @@ | ||
| DO | ||
| $$ | ||
| BEGIN | ||
| IF register_patch( | ||
| 'AddVisitRegistrationClaim.sql', | ||
| 'Jekabs Karklins', | ||
| 'Adding table to store visit registration claims', | ||
| '2025-06-04' | ||
| ) THEN | ||
| BEGIN | ||
| -- Create the visit_registration_claims table | ||
| CREATE TABLE IF NOT EXISTS visit_registration_claims ( | ||
| invite_id INT NOT NULL, | ||
| visit_id INT NOT NULL, | ||
| FOREIGN KEY (invite_id) REFERENCES invites(invite_id) ON DELETE CASCADE, | ||
| FOREIGN KEY (visit_id) REFERENCES visits(visit_id) ON DELETE CASCADE, | ||
| UNIQUE (invite_id, visit_id) | ||
| ); | ||
|
|
||
| ALTER TABLE visit_registration_claims ADD CONSTRAINT visit_registration_unique | ||
| UNIQUE (invite_id, visit_id); | ||
| END; | ||
| END IF; | ||
| END; | ||
| $$ | ||
| LANGUAGE plpgsql; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
6 changes: 6 additions & 0 deletions
6
apps/backend/src/datasources/VisitRegistrationClaimDataSource.ts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| import { VisitRegistrationClaim } from '../models/VisitRegistrationClaim'; | ||
|
|
||
| export interface VisitRegistrationClaimDataSource { | ||
| create(inviteId: number, visitId: number): Promise<VisitRegistrationClaim>; | ||
| findByInviteId(inviteId: number): Promise<VisitRegistrationClaim[]>; | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
40 changes: 40 additions & 0 deletions
40
apps/backend/src/datasources/mockups/VisitRegistrationClaimDataSource.ts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,40 @@ | ||
| import { injectable } from 'tsyringe'; | ||
|
|
||
| import { VisitRegistrationClaim } from '../../models/VisitRegistrationClaim'; | ||
| import { VisitRegistrationClaimDataSource } from '../VisitRegistrationClaimDataSource'; | ||
|
|
||
| @injectable() | ||
| export class VisitRegistrationClaimDataSourceMock | ||
| implements VisitRegistrationClaimDataSource | ||
| { | ||
| private visitRegistrationClaims: VisitRegistrationClaim[]; | ||
|
|
||
| constructor() { | ||
| this.init(); | ||
| } | ||
|
|
||
| public init() { | ||
| this.visitRegistrationClaims = [ | ||
| new VisitRegistrationClaim(1, 1), | ||
| new VisitRegistrationClaim(2, 1), | ||
| new VisitRegistrationClaim(3, 2), | ||
| new VisitRegistrationClaim(1, 3), | ||
| ]; | ||
| } | ||
|
|
||
| async create( | ||
| inviteId: number, | ||
| visitId: number | ||
| ): Promise<VisitRegistrationClaim> { | ||
| const newClaim = new VisitRegistrationClaim(inviteId, visitId); | ||
| this.visitRegistrationClaims.push(newClaim); | ||
|
|
||
| return newClaim; | ||
| } | ||
|
|
||
| async findByInviteId(inviteId: number): Promise<VisitRegistrationClaim[]> { | ||
| return this.visitRegistrationClaims.filter( | ||
| (claim) => claim.inviteId === inviteId | ||
| ); | ||
| } | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
50 changes: 50 additions & 0 deletions
50
apps/backend/src/datasources/postgres/VisitRegistrationClaimDataSource.ts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,50 @@ | ||
| import { injectable } from 'tsyringe'; | ||
|
|
||
| import { VisitRegistrationClaim } from '../../models/VisitRegistrationClaim'; | ||
| import { VisitRegistrationClaimDataSource } from '../VisitRegistrationClaimDataSource'; | ||
| import database from './database'; | ||
| import { | ||
| VisitRegistrationClaimRecord, | ||
| createVisitRegistrationClaimObject, | ||
| } from './records'; | ||
|
|
||
| @injectable() | ||
| export default class PostgresVisitRegistrationClaimDataSource | ||
| implements VisitRegistrationClaimDataSource | ||
| { | ||
| async create( | ||
| inviteId: number, | ||
| visitId: number | ||
| ): Promise<VisitRegistrationClaim> { | ||
| const records = await database('visit_registration_claims') | ||
| .insert( | ||
| { | ||
| invite_id: inviteId, | ||
| visit_id: visitId, | ||
| }, | ||
| '*' | ||
| ) | ||
| .onConflict(['invite_id', 'visit_id']) | ||
| .ignore(); | ||
|
|
||
| if (records.length !== 1) { | ||
| throw new Error('Failed to create visit registration claim'); | ||
| } | ||
|
|
||
| return createVisitRegistrationClaimObject( | ||
| records[0] as VisitRegistrationClaimRecord | ||
| ); | ||
| } | ||
|
|
||
| async findByInviteId(inviteId: number): Promise<VisitRegistrationClaim[]> { | ||
| const records = await database<VisitRegistrationClaimRecord>( | ||
| 'visit_registration_claims' | ||
| ) | ||
| .select('*') | ||
| .where('invite_id', inviteId); | ||
|
|
||
| return records.map((record: VisitRegistrationClaimRecord) => | ||
| createVisitRegistrationClaimObject(record) | ||
| ); | ||
| } | ||
| } |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.