Skip to content

chore: implemented patch HTTP method for member project affiliations (CM-1041)#3912

Open
themarolt wants to merge 7 commits intomainfrom
feat/patch-project-affiliations-CM-1041
Open

chore: implemented patch HTTP method for member project affiliations (CM-1041)#3912
themarolt wants to merge 7 commits intomainfrom
feat/patch-project-affiliations-CM-1041

Conversation

@themarolt
Copy link
Contributor

@themarolt themarolt commented Mar 11, 2026

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/:projectId to 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 optional segmentId filter for fetchMemberProjectSegments (including an updated grandparentSlug filter).

Written by Cursor Bugbot for commit 3f27bb0. This will update automatically on new commits. Configure here.

Signed-off-by: Uroš Marolt <uros@marolt.me>
Copilot AI review requested due to automatic review settings March 11, 2026 14:20
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 / organizationName nullable in ISegmentAffiliationWithOrg.
  • Added DAL helpers to fetch a single member+project affiliation and partially update it.
  • Added PATCH /:memberId/project-affiliations/:projectId public 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.

Signed-off-by: Uroš Marolt <uros@marolt.me>
Signed-off-by: Uroš Marolt <uros@marolt.me>
@themarolt themarolt requested a review from joanagmaia March 12, 2026 10:20
Signed-off-by: Uroš Marolt <uros@marolt.me>
Signed-off-by: Uroš Marolt <uros@marolt.me>
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Signed-off-by: Uroš Marolt <uros@marolt.me>
Signed-off-by: Uroš Marolt <uros@marolt.me>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants