Skip to content

Commit

Permalink
Merging in hotfix to develop
Browse files Browse the repository at this point in the history
  • Loading branch information
DomWestAnd committed Aug 8, 2023
1 parent 3fc57fe commit cc78c97
Show file tree
Hide file tree
Showing 7 changed files with 36 additions and 36 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@
public interface SubmissionRepository extends JpaRepository<Submission, UUID> {
List<Submission> findByApplicantId(long applicantId);

Optional<Submission> findByIdAndApplicantUserId(UUID id, UUID userId);
Optional<Submission> findByIdAndApplicantUserId(UUID id, String userId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ public class SubmissionService {
private final Clock clock;
private final EnvironmentProperties envProperties;

public Submission getSubmissionFromDatabaseBySubmissionId(final UUID userId, final UUID submissionId) {
public Submission getSubmissionFromDatabaseBySubmissionId(final String userId, final UUID submissionId) {
Submission submission = submissionRepository
.findByIdAndApplicantUserId(submissionId, userId)
.orElseThrow(() -> new NotFoundException(
Expand All @@ -65,7 +65,7 @@ public Submission getSubmissionFromDatabaseBySubmissionId(final UUID userId, fin
return submission;
}

public SubmissionSection getSectionBySectionId(final UUID userId, final UUID submissionId, String sectionId) {
public SubmissionSection getSectionBySectionId(final String userId, final UUID submissionId, String sectionId) {
return submissionRepository
.findByIdAndApplicantUserId(submissionId, userId)
.orElseThrow(() -> new NotFoundException(
Expand All @@ -78,7 +78,7 @@ public SubmissionSection getSectionBySectionId(final UUID userId, final UUID sub
String.format("No Section with ID %s was found", sectionId)));
}

public SubmissionQuestion getQuestionByQuestionId(final UUID userId, final UUID submissionId, String questionId) {
public SubmissionQuestion getQuestionByQuestionId(final String userId, final UUID submissionId, String questionId) {
return this.getSubmissionFromDatabaseBySubmissionId(userId, submissionId)
.getDefinition()
.getSections()
Expand All @@ -94,7 +94,7 @@ public Submission saveSubmission(final Submission submission) {
return this.submissionRepository.save(submission);
}

public void saveQuestionResponse(final CreateQuestionResponseDto questionResponse, final UUID userId, final UUID submissionId, final String sectionId) {
public void saveQuestionResponse(final CreateQuestionResponseDto questionResponse, final String userId, final UUID submissionId, final String sectionId) {

final Submission submission = this.getSubmissionFromDatabaseBySubmissionId(userId, submissionId);
final SubmissionSection submissionSection = submission.getDefinition()
Expand Down Expand Up @@ -139,7 +139,7 @@ public void saveQuestionResponse(final CreateQuestionResponseDto questionRespons
submissionRepository.save(submission);
}

public GetNavigationParamsDto getNextNavigation(final UUID userId, final UUID submissionId, final String sectionId, final String questionId, final boolean saveAndExit) {
public GetNavigationParamsDto getNextNavigation(final String userId, final UUID submissionId, final String sectionId, final String questionId, final boolean saveAndExit) {

final SubmissionSection section = this.getSectionBySectionId(userId, submissionId, sectionId);
final Map<String, Object> nextNavigation = this.buildNextNavigationMap(section, questionId, saveAndExit);
Expand Down Expand Up @@ -178,7 +178,7 @@ private Optional<String> getNextQuestionIdInSection(SubmissionSection section, S
return nextQuestionId;
}

public boolean isSubmissionReadyToBeSubmitted(final UUID userId, final UUID submissionId) {
public boolean isSubmissionReadyToBeSubmitted(final String userId, final UUID submissionId) {
final Submission submission = getSubmissionFromDatabaseBySubmissionId(userId, submissionId);
GrantApplication grantApplication = submission.getApplication();
if (!grantApplication.getApplicationStatus().equals(GrantApplicantStatus.PUBLISHED)) {
Expand All @@ -204,7 +204,7 @@ public boolean isSubmissionReadyToBeSubmitted(final UUID userId, final UUID subm
}

@Transactional
public void submit(final Submission submission, final UUID userId, final String emailAddress) {
public void submit(final Submission submission, final String userId, final String emailAddress) {

if (!isSubmissionReadyToBeSubmitted(userId, submission.getId())) {
throw new SubmissionNotReadyException(String
Expand Down Expand Up @@ -349,7 +349,7 @@ private boolean containsLocation(String[] locations, String locationToFind) {
return Arrays.asList(locations).contains(locationToFind);
}

public boolean hasSubmissionBeenSubmitted(final UUID userId, final UUID submissionId) {
public boolean hasSubmissionBeenSubmitted(final String userId, final UUID submissionId) {
return !this.getSubmissionFromDatabaseBySubmissionId(userId, submissionId)
.getStatus().equals(SubmissionStatus.IN_PROGRESS);
}
Expand All @@ -362,7 +362,7 @@ public boolean doesSubmissionExist(GrantApplicant grantApplicant, GrantApplicati
}


public CreateSubmissionResponseDto createSubmissionFromApplication(final UUID userId,
public CreateSubmissionResponseDto createSubmissionFromApplication(final String userId,
final GrantApplicant grantApplicant,
final GrantApplication grantApplication) throws JsonProcessingException {
final GrantScheme grantScheme = grantApplication.getGrantScheme();
Expand Down Expand Up @@ -399,7 +399,7 @@ public CreateSubmissionResponseDto createSubmissionFromApplication(final UUID us
return submissionResponseDto;
}

private void populateEssentialInformation(final UUID userId, final Submission submission) {
private void populateEssentialInformation(final String userId, final Submission submission) {
GrantApplicantOrganisationProfile grantApplicantOrgProfile = submission.getApplicant().getOrganisationProfile();

if (grantApplicantOrgProfile != null) {
Expand Down Expand Up @@ -428,7 +428,7 @@ private void populateEssentialInformation(final UUID userId, final Submission su
}
}

public void deleteQuestionResponse(final UUID userId, final UUID submissionId, final String questionId) {
public void deleteQuestionResponse(final String userId, final UUID submissionId, final String questionId) {
final Submission submission = this.getSubmissionFromDatabaseBySubmissionId(userId, submissionId);
submission.getDefinition()
.getSections()
Expand Down Expand Up @@ -468,7 +468,7 @@ private void getMultiResponseForEssentialInfo(SubmissionQuestion question, Submi
}


public SubmissionSectionStatus handleSectionReview(final UUID userId,
public SubmissionSectionStatus handleSectionReview(final String userId,
final UUID submissionId,
final String sectionId,
final boolean isComplete) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
import java.util.UUID;

public class SecurityContextHelper {
public static UUID getUserIdFromSecurityContext() {
public static String getUserIdFromSecurityContext() {
final JwtPayload jwtPayload = (JwtPayload) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
return UUID.fromString(jwtPayload.getSub());
return jwtPayload.getSub();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
import java.util.UUID;
import java.util.stream.Stream;

import static gov.cabinetoffice.gap.applybackend.utils.SecurityContextHelper.getUserIdFromSecurityContext;


@RequiredArgsConstructor
public class QuestionResponseValidator implements ConstraintValidator<ValidQuestionResponse, Object> {
Expand Down Expand Up @@ -61,8 +63,7 @@ private SubmissionQuestion getQuestionFromDatabase(CreateQuestionResponseDto sub
throw new IllegalArgumentException("Question ID must not be null.");
}

final JwtPayload jwtPayload = (JwtPayload) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
final UUID applicantId = UUID.fromString(jwtPayload.getSub());
final String applicantId = getUserIdFromSecurityContext();
return submissionService.getQuestionByQuestionId(applicantId, submittedQuestion.getSubmissionId(), submittedQuestion.getQuestionId());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public class SubmissionController {

@GetMapping
public ResponseEntity<List<GetSubmissionDto>> getSubmissions() {
final UUID applicantId = getUserIdFromSecurityContext();
final String applicantId = getUserIdFromSecurityContext();
GrantApplicant applicant = grantApplicantService.getApplicantById((applicantId));
return ResponseEntity.ok(applicant.getSubmissions().stream()
.map(this::buildSubmissionDto)
Expand All @@ -54,19 +54,19 @@ public ResponseEntity<List<GetSubmissionDto>> getSubmissions() {

@GetMapping("/{submissionId}")
public ResponseEntity<GetSubmissionDto> getSubmission(@PathVariable final UUID submissionId) {
final UUID applicantId = getUserIdFromSecurityContext();
final String applicantId = getUserIdFromSecurityContext();
return ResponseEntity.ok(buildSubmissionDto(submissionService.getSubmissionFromDatabaseBySubmissionId(applicantId, submissionId)));
}

@GetMapping("/{submissionId}/sections/{sectionId}")
public ResponseEntity<SubmissionSection> getSection(@PathVariable final UUID submissionId, @PathVariable final String sectionId) {
final UUID applicantId = getUserIdFromSecurityContext();
final String applicantId = getUserIdFromSecurityContext();
return ResponseEntity.ok(submissionService.getSectionBySectionId(applicantId, submissionId, sectionId));
}

@PostMapping("/{submissionId}/sections/{sectionId}/review")
public ResponseEntity<String> postSectionReview(@PathVariable final UUID submissionId, @PathVariable final String sectionId, final @RequestBody @Valid SubmissionReviewBodyDto body) {
final UUID applicantId = getUserIdFromSecurityContext();
final String applicantId = getUserIdFromSecurityContext();
final SubmissionSectionStatus sectionStatus = submissionService.handleSectionReview(applicantId, submissionId, sectionId, body.getIsComplete());
return ResponseEntity.ok(String.format("Section with ID %s status has been updated to %s.", sectionId, sectionStatus.toString()));
}
Expand All @@ -77,8 +77,7 @@ public ResponseEntity<GetQuestionDto> getQuestion(
@PathVariable final UUID submissionId,
@PathVariable final String sectionId,
@PathVariable final String questionId) {

final UUID applicantId = getUserIdFromSecurityContext();
final String applicantId = getUserIdFromSecurityContext();

Submission submission = submissionService.getSubmissionFromDatabaseBySubmissionId(applicantId, submissionId);
SubmissionSection section = submission
Expand Down Expand Up @@ -156,27 +155,27 @@ public ResponseEntity<GetNavigationParamsDto> save(@PathVariable final UUID subm
@PathVariable final String sectionId,
@PathVariable final String questionId,
@Valid @RequestBody CreateQuestionResponseDto questionResponse) {
final UUID applicantId = getUserIdFromSecurityContext();
final String applicantId = getUserIdFromSecurityContext();
submissionService.saveQuestionResponse(questionResponse, applicantId, submissionId, sectionId);
return ResponseEntity.ok(submissionService.getNextNavigation(applicantId, submissionId, sectionId, questionId, false));
}

@GetMapping("/{submissionId}/ready")
public ResponseEntity<Boolean> isSubmissionReadyToBeSubmitted(@PathVariable final UUID submissionId) {
final UUID applicantId = getUserIdFromSecurityContext();
final String applicantId = getUserIdFromSecurityContext();
return ResponseEntity.ok(submissionService.isSubmissionReadyToBeSubmitted(applicantId, submissionId));
}

@GetMapping("/{submissionId}/isSubmitted")
public ResponseEntity<Boolean> isSubmissionSubmitted(@PathVariable final UUID submissionId) {
final UUID applicantId = getUserIdFromSecurityContext();
final String applicantId = getUserIdFromSecurityContext();
return ResponseEntity.ok(submissionService.hasSubmissionBeenSubmitted(applicantId, submissionId));
}

@PostMapping("/submit")
public ResponseEntity<String> submitApplication(@RequestBody SubmitApplicationDto applicationSubmission) {
final JwtPayload jwtPayload = (JwtPayload) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
final UUID applicantId = getUserIdFromSecurityContext();
final String applicantId = getUserIdFromSecurityContext();
final Submission submission = submissionService.getSubmissionFromDatabaseBySubmissionId(applicantId, applicationSubmission.getSubmissionId());
submissionService.submit(submission, applicantId, jwtPayload.getEmail());

Expand All @@ -185,7 +184,7 @@ public ResponseEntity<String> submitApplication(@RequestBody SubmitApplicationDt

@PostMapping("/createSubmission/{applicationId}")
public ResponseEntity<CreateSubmissionResponseDto> createApplication(@PathVariable final int applicationId) throws JsonProcessingException {
final UUID applicantId = getUserIdFromSecurityContext();
final String applicantId = getUserIdFromSecurityContext();
final boolean isGrantApplicationPublished = grantApplicationService.isGrantApplicationPublished(applicationId);
if (!isGrantApplicationPublished) {
logger.debug("Grant Application {} is not been published yet.", applicationId);
Expand All @@ -210,7 +209,7 @@ public ResponseEntity<String> updateAttachment(@PathVariable final UUID submissi
@PathVariable final String questionId,
@RequestBody final UpdateAttachmentDto updateDetails,
@RequestHeader(HttpHeaders.AUTHORIZATION) final String authHeader) {
final UUID applicantId = getUserIdFromSecurityContext();
final String applicantId = getUserIdFromSecurityContext();

secretAuthService.authenticateSecret(authHeader);

Expand All @@ -234,7 +233,7 @@ public ResponseEntity<GetNavigationParamsDto> postAttachment(@PathVariable final
@PathVariable final String sectionId,
@PathVariable final String questionId,
@RequestBody final MultipartFile attachment) {
final UUID applicantId = getUserIdFromSecurityContext();
final String applicantId = getUserIdFromSecurityContext();
final GrantApplicant applicant = grantApplicantService.getApplicantFromPrincipal();
final Submission submission = submissionService.getSubmissionFromDatabaseBySubmissionId(applicantId, submissionId);
final GrantApplication application = submission.getApplication();
Expand Down Expand Up @@ -286,7 +285,7 @@ public ResponseEntity<GetNavigationParamsDto> removeAttachment(@PathVariable fin
@PathVariable final String sectionId,
@PathVariable final String questionId,
@PathVariable final UUID attachmentId) {
final UUID applicantId = getUserIdFromSecurityContext();
final String applicantId = getUserIdFromSecurityContext();
final Submission submission = submissionService.getSubmissionFromDatabaseBySubmissionId(applicantId, submissionId);
final int applicationId = submission.getApplication().getId();

Expand All @@ -311,7 +310,7 @@ public ResponseEntity<GetNavigationParamsDto> getNextNavigationForQuestion(@Path
@PathVariable final String sectionId,
@PathVariable final String questionId,
@RequestParam(required = false, defaultValue = "false") final boolean saveAndExit) {
final UUID applicantId = getUserIdFromSecurityContext();
final String applicantId = getUserIdFromSecurityContext();
return ResponseEntity.ok(submissionService.getNextNavigation(applicantId, submissionId, sectionId, questionId, saveAndExit));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ class QuestionResponseValidatorTest {

static final String questionId = "1";
static final UUID submissionId = UUID.fromString("3a6cfe2d-bf58-440d-9e07-3579c7dcf205");
private final UUID USER_ID = UUID.randomUUID();
private final String USER_ID = String.valueOf(UUID.randomUUID());

@BeforeEach
void setup() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ class SubmissionControllerTest {
.postcode("G2 1QQ")
.county("Renfrewshire")
.build();
private final UUID APPLICANT_USER_ID = UUID.fromString("75ab5fbd-0682-4d3d-a467-01c7a447f07c");
private final String APPLICANT_USER_ID ="75ab5fbd-0682-4d3d-a467-01c7a447f07c";
final GrantApplicant grantApplicant = GrantApplicant.builder()
.id(APPLICANT_ID)
.userId(APPLICANT_USER_ID)
Expand Down Expand Up @@ -483,8 +483,8 @@ void createApplication() throws JsonProcessingException {
.build();
when(securityContext.getAuthentication()).thenReturn(authentication);
SecurityContextHolder.setContext(securityContext);
JwtPayload jwtPayload = JwtPayload.builder().sub(APPLICANT_USER_ID.toString()).build();
final UUID applicantId = UUID.fromString(jwtPayload.getSub());
JwtPayload jwtPayload = JwtPayload.builder().sub(APPLICANT_USER_ID).build();
final String applicantId = jwtPayload.getSub();
final GrantApplicant grantApplicant = GrantApplicant.builder().userId(applicantId).build();
when(SecurityContextHolder.getContext().getAuthentication().getPrincipal()).thenReturn(jwtPayload);

Expand Down

0 comments on commit cc78c97

Please sign in to comment.