diff --git a/apps/backend/src/models/questionTypes/TechniquePicker.ts b/apps/backend/src/models/questionTypes/TechniquePicker.ts index 6648d76b09..1ef6b19f10 100644 --- a/apps/backend/src/models/questionTypes/TechniquePicker.ts +++ b/apps/backend/src/models/questionTypes/TechniquePicker.ts @@ -4,8 +4,10 @@ import { GraphQLError } from 'graphql'; import { container } from 'tsyringe'; import { Tokens } from '../../config/Tokens'; +import { InstrumentDataSource } from '../../datasources/InstrumentDataSource'; import { ProposalDataSource } from '../../datasources/ProposalDataSource'; import { TechniqueDataSource } from '../../datasources/TechniqueDataSource'; +import InstrumentMutations from '../../mutations/InstrumentMutations'; import TechniqueMutations from '../../mutations/TechniqueMutations'; import { TechniquePickerConfig } from '../../resolvers/types/FieldConfig'; import { QuestionFilterCompareOperator } from '../Questionary'; @@ -80,6 +82,12 @@ export const techniquePickerDefinition: Question = { Tokens.ProposalDataSource ); + const instrumentDataSource = container.resolve( + Tokens.InstrumentDataSource + ); + + const instrumentMutations = container.resolve(InstrumentMutations); + const techniqueMutations = container.resolve(TechniqueMutations); const proposal = await proposalDataSource.getByQuestionaryId(questionaryId); @@ -103,5 +111,15 @@ export const techniquePickerDefinition: Question = { techniqueIds, proposalPk: proposal.primaryKey, }); + + const allInstrumentsOnCall = + await instrumentDataSource.getInstrumentsByCallId( + Array.from([proposal.callId]) + ); + + await instrumentMutations.assignProposalsToInstrumentsInternal(null, { + proposalPks: [proposal.primaryKey], + instrumentIds: allInstrumentsOnCall.map((inst) => inst.id), + }); }, };