1
1
import { Request , Response , NextFunction } from 'express'
2
2
import StrengthsBasedNeedsAssessmentsApiService , {
3
3
AssessmentResponse ,
4
+ SessionData ,
5
+ userDetailsFromSession ,
4
6
} from '../../server/services/strengthsBasedNeedsService'
5
- import ArnsHandoverService , { HandoverContextData } from '../../server/services/arnsHandoverService'
7
+ import ArnsHandoverService , { HandoverSubject } from '../../server/services/arnsHandoverService'
6
8
import { createAnswerDto , isReadOnly } from './saveAndContinue.utils'
7
9
import thinkingBehavioursFields from '../form/v1_0/fields/thinking-behaviours-attitudes'
8
10
import { stepUrls } from '../form/v1_0/steps/thinking-behaviours-attitudes'
@@ -22,13 +24,15 @@ const startController = async (req: Request, res: Response, next: NextFunction)
22
24
const assessment = await apiService . fetchAssessment ( contextData . assessmentContext . assessmentId )
23
25
const version = assessment . metaData . formVersion . replace ( / \. / g, '/' )
24
26
25
- if ( ! isReadOnly ( contextData . principal ) ) await setSexuallyMotivatedOffenceHistory ( assessment , contextData )
26
-
27
27
req . session . sessionData = {
28
28
...contextData . assessmentContext ,
29
29
user : contextData . principal ,
30
30
}
31
31
req . session . subjectDetails = contextData . subject
32
+
33
+ if ( ! isReadOnly ( contextData . principal ) )
34
+ await setSexuallyMotivatedOffenceHistory ( assessment , contextData . subject , req . session . sessionData as SessionData )
35
+
32
36
req . session . save ( error => {
33
37
if ( error ) {
34
38
return next ( error )
@@ -43,9 +47,13 @@ const startController = async (req: Request, res: Response, next: NextFunction)
43
47
}
44
48
}
45
49
46
- const setSexuallyMotivatedOffenceHistory = async ( assessment : AssessmentResponse , contextData : HandoverContextData ) => {
50
+ const setSexuallyMotivatedOffenceHistory = async (
51
+ assessment : AssessmentResponse ,
52
+ subject : HandoverSubject ,
53
+ session : SessionData ,
54
+ ) => {
47
55
const field = thinkingBehavioursFields . thinkingBehavioursAttitudesRiskSexualHarm
48
- const oasysAnswer = contextData . subject . sexuallyMotivatedOffenceHistory
56
+ const oasysAnswer = subject . sexuallyMotivatedOffenceHistory
49
57
const sanAnswer = assessment . assessment [ field . code ] ?. value
50
58
const sectionCompleteField = thinkingBehavioursFields . sectionComplete ( )
51
59
const isUserSubmittedField = thinkingBehavioursFields . isUserSubmitted ( stepUrls . thinkingBehavioursAttitudes )
@@ -59,6 +67,7 @@ const setSexuallyMotivatedOffenceHistory = async (assessment: AssessmentResponse
59
67
[ assessmentComplete . code ] : createAnswerDto ( assessmentComplete , 'NO' ) ,
60
68
} ,
61
69
answersToRemove : [ ] ,
70
+ userDetails : userDetailsFromSession ( session ) ,
62
71
} )
63
72
}
64
73
}
0 commit comments