@@ -15,7 +15,6 @@ import type {
1515import { Prisma } from '@prisma/client' ;
1616import type { Session } from '@prisma/client' ;
1717import { isNumber , pickBy } from 'lodash-es' ;
18- import pLimit from 'p-limit' ;
1918
2019import type { EntityOperationOptions } from '@/core/types' ;
2120import { GroupsService } from '@/groups/groups.service' ;
@@ -276,51 +275,47 @@ export class InstrumentRecordsService {
276275
277276 const createdSessionsArray : Session [ ] = [ ] ;
278277
279- const transactionLimit = pLimit ( 10 ) ;
280278 try {
281279 const preProcessedRecords = await Promise . all (
282- records . map ( ( record ) =>
283- transactionLimit ( async ( ) => {
284- const { data : rawData , date, subjectId } = record ;
285-
286- // Validate data
287- const parseResult = instrument . validationSchema . safeParse ( this . parseJson ( rawData ) ) ;
288- if ( ! parseResult . success ) {
289- console . error ( parseResult . error . issues ) ;
290- throw new UnprocessableEntityException (
291- `Data received for record does not pass validation schema of instrument '${ instrument . id } '`
292- ) ;
293- }
280+ records . map ( async ( record ) => {
281+ const { data : rawData , date, subjectId } = record ;
282+
283+ // Validate data
284+ const parseResult = instrument . validationSchema . safeParse ( this . parseJson ( rawData ) ) ;
285+ if ( ! parseResult . success ) {
286+ console . error ( parseResult . error . issues ) ;
287+ throw new UnprocessableEntityException (
288+ `Data received for record does not pass validation schema of instrument '${ instrument . id } '`
289+ ) ;
290+ }
294291
295- // Ensure subject exists
296- await this . createSubjectIfNotFound ( subjectId ) ;
297-
298- const session = await this . sessionsService . create ( {
299- date : date ,
300- groupId : groupId ?? null ,
301- subjectData : { id : subjectId } ,
302- type : 'RETROSPECTIVE'
303- } ) ;
304-
305- createdSessionsArray . push ( session ) ;
306-
307- const computedMeasures = instrument . measures
308- ? this . instrumentMeasuresService . computeMeasures ( instrument . measures , parseResult . data )
309- : null ;
310-
311- return {
312- computedMeasures,
313- data : this . serializeData ( parseResult . data ) ,
314- date,
315- groupId,
316- instrumentId,
317- sessionId : session . id ,
318- subjectId
319- } ;
320- } )
321- )
292+ // Ensure subject exists
293+ await this . createSubjectIfNotFound ( subjectId ) ;
294+
295+ const session = await this . sessionsService . create ( {
296+ date : date ,
297+ groupId : groupId ?? null ,
298+ subjectData : { id : subjectId } ,
299+ type : 'RETROSPECTIVE'
300+ } ) ;
301+
302+ createdSessionsArray . push ( session ) ;
303+
304+ const computedMeasures = instrument . measures
305+ ? this . instrumentMeasuresService . computeMeasures ( instrument . measures , parseResult . data )
306+ : null ;
307+
308+ return {
309+ computedMeasures,
310+ data : this . serializeData ( parseResult . data ) ,
311+ date,
312+ groupId,
313+ instrumentId,
314+ sessionId : session . id ,
315+ subjectId
316+ } ;
317+ } )
322318 ) ;
323-
324319 await this . instrumentRecordModel . createMany ( {
325320 data : preProcessedRecords
326321 } ) ;
0 commit comments