Conversation
Signed-off-by: Uroš Marolt <uros@marolt.me>
There was a problem hiding this comment.
Pull request overview
Adds a new public API endpoint to partially update a member’s per-project (segment) affiliation, including DAL helpers for fetching/updating the underlying memberSegmentAffiliations rows and making organization fields nullable.
Changes:
- Made
organizationId/organizationNamenullable inISegmentAffiliationWithOrg. - Added DAL helpers to fetch a single member+project affiliation and partially update it.
- Added
PATCH /:memberId/project-affiliations/:projectIdpublic API route + handler.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 7 comments.
| File | Description |
|---|---|
| services/libs/data-access-layer/src/members/projectAffiliations.ts | Adds single-affiliation fetch + partial update helpers; adjusts affiliation-with-org typing for null orgs. |
| backend/src/api/public/v1/members/project-affiliations/patchProjectAffiliation.ts | New PATCH handler to update project affiliation fields and trigger affiliation recalculation. |
| backend/src/api/public/v1/members/index.ts | Wires the new PATCH route into the public v1 members router. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
services/libs/data-access-layer/src/members/projectAffiliations.ts
Outdated
Show resolved
Hide resolved
services/libs/data-access-layer/src/members/projectAffiliations.ts
Outdated
Show resolved
Hide resolved
services/libs/data-access-layer/src/members/projectAffiliations.ts
Outdated
Show resolved
Hide resolved
backend/src/api/public/v1/members/project-affiliations/patchProjectAffiliation.ts
Outdated
Show resolved
Hide resolved
backend/src/api/public/v1/members/project-affiliations/patchProjectAffiliation.ts
Outdated
Show resolved
Hide resolved
Signed-off-by: Uroš Marolt <uros@marolt.me>
backend/src/api/public/v1/members/project-affiliations/patchProjectAffiliation.ts
Outdated
Show resolved
Hide resolved
Signed-off-by: Uroš Marolt <uros@marolt.me>
Signed-off-by: Uroš Marolt <uros@marolt.me>
backend/src/api/public/v1/members/project-affiliations/patchProjectAffiliation.ts
Outdated
Show resolved
Hide resolved
Signed-off-by: Uroš Marolt <uros@marolt.me>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
backend/src/api/public/v1/members/project-affiliations/patchProjectAffiliation.ts
Outdated
Show resolved
Hide resolved
Signed-off-by: Uroš Marolt <uros@marolt.me>
services/libs/data-access-layer/src/members/projectAffiliations.ts
Outdated
Show resolved
Hide resolved
Signed-off-by: Uroš Marolt <uros@marolt.me>
joanagmaia
left a comment
There was a problem hiding this comment.
LGTM!
@themarolt When you deploy can you also deploy the latest main in staging and apply the migrations to make sure that the recent verified fields are there as well?
Note
Medium Risk
Adds a new write API that deletes and reinserts per-project member affiliations and triggers downstream recalculation, so incorrect inputs or query assumptions could impact affiliation data. Also changes the segment selection filter in
fetchMemberProjectSegments, which may alter which projects appear in responses.Overview
Adds
PATCH /:memberId/project-affiliations/:projectIdto replace a member’s manual affiliations for a specific project, with request validation, audit-log capture, transactional delete+insert, and a follow-up affiliation recalculation trigger.Refactors affiliation response mapping into shared
mappers.ts, and extends the data-access layer with project-scoped affiliation fetch/delete/insert helpers plus an optionalsegmentIdfilter forfetchMemberProjectSegments(including an updatedgrandparentSlugfilter).Written by Cursor Bugbot for commit 3f27bb0. This will update automatically on new commits. Configure here.