diff --git a/frontend/src/modules/contributor/components/edit/identity/contributor-identity-add.vue b/frontend/src/modules/contributor/components/edit/identity/contributor-identity-add.vue index 0a04d44b07..f84bb75a6c 100644 --- a/frontend/src/modules/contributor/components/edit/identity/contributor-identity-add.vue +++ b/frontend/src/modules/contributor/components/edit/identity/contributor-identity-add.vue @@ -166,7 +166,10 @@ const isModalOpen = computed({ const addIdentities = () => { sending.value = true; - createContributorIdentities(props.contributor.id, form) + createContributorIdentities( + props.contributor.id, + form.map(({ id, ...identity }) => identity), + ) .then(() => { ToastStore.success('Identities successfully added'); isModalOpen.value = false; diff --git a/frontend/src/modules/contributor/services/contributor.identities.api.service.ts b/frontend/src/modules/contributor/services/contributor.identities.api.service.ts index 969d00bb51..e907a5e56e 100644 --- a/frontend/src/modules/contributor/services/contributor.identities.api.service.ts +++ b/frontend/src/modules/contributor/services/contributor.identities.api.service.ts @@ -1,5 +1,5 @@ import authAxios from '@/shared/axios/auth-axios'; -import { ContributorIdentity, UpdateContributorIdentityPayload } from '@/modules/contributor/types/Contributor'; +import { CreateContributorIdentity, UpdateContributorIdentityPayload } from '@/modules/contributor/types/Contributor'; import { storeToRefs } from 'pinia'; import { useLfSegmentsStore } from '@/modules/lf/segments/store'; @@ -22,7 +22,7 @@ export class ContributorIdentitiesApiService { ).then(({ data }) => Promise.resolve(data)); } - static async createMultiple(memberId: string, identities: ContributorIdentity[]) { + static async createMultiple(memberId: string, identities: CreateContributorIdentity[]) { return authAxios.put( `/member/${memberId}/identity`, { diff --git a/frontend/src/modules/contributor/store/contributor.actions.ts b/frontend/src/modules/contributor/store/contributor.actions.ts index 6a8f304bc5..6d47316d15 100644 --- a/frontend/src/modules/contributor/store/contributor.actions.ts +++ b/frontend/src/modules/contributor/store/contributor.actions.ts @@ -2,7 +2,7 @@ import { useLfSegmentsStore } from '@/modules/lf/segments/store'; import { storeToRefs } from 'pinia'; import { ContributorApiService } from '@/modules/contributor/services/contributor.api.service'; import { - Contributor, ContributorAffiliation, ContributorIdentity, UpdateContributorIdentityPayload, + Contributor, ContributorAffiliation, ContributorIdentity, CreateContributorIdentity, UpdateContributorIdentityPayload, } from '@/modules/contributor/types/Contributor'; import { ContributorIdentitiesApiService } from '@/modules/contributor/services/contributor.identities.api.service'; import { MergeActionsService } from '@/shared/modules/merge/services/merge-actions.service'; @@ -70,7 +70,7 @@ export default { return ContributorIdentitiesApiService.list(id, [selectedProjectGroup.value?.id as string]) .then(this.setIdentities); }, - createContributorIdentities(memberId: string, identities: ContributorIdentity[]): Promise { + createContributorIdentities(memberId: string, identities: CreateContributorIdentity[]): Promise { return ContributorIdentitiesApiService.createMultiple(memberId, identities) .then(this.setIdentities); }, diff --git a/frontend/src/modules/contributor/types/Contributor.ts b/frontend/src/modules/contributor/types/Contributor.ts index 9f4b2050dc..4ff5876ef4 100644 --- a/frontend/src/modules/contributor/types/Contributor.ts +++ b/frontend/src/modules/contributor/types/Contributor.ts @@ -73,6 +73,11 @@ export interface ContributorIdentity { duplicatedIdentities?: ContributorIdentity[]; } +export type CreateContributorIdentity = Omit< + ContributorIdentity, + 'id' | 'platforms' | 'url' | 'duplicatedIdentities' +>; + export interface UpdateContributorIdentityPayload { value?: string; type?: string; diff --git a/services/libs/data-access-layer/src/members/identities.ts b/services/libs/data-access-layer/src/members/identities.ts index 0e1b05e33f..d4b4666e7d 100644 --- a/services/libs/data-access-layer/src/members/identities.ts +++ b/services/libs/data-access-layer/src/members/identities.ts @@ -273,7 +273,7 @@ export async function insertMemberIdentities( ], identities.map((i) => ({ ...i, - id: i.id ?? generateUUIDv1(), + id: i.id || generateUUIDv1(), tenantId: DEFAULT_TENANT_ID, })), failOnConflict ? undefined : 'DO NOTHING',