Skip to content

Commit 7f9ba6b

Browse files
chris.ditcherchris.ditcher
authored andcommitted
Added an event msg dispatch for updated district contact.
1 parent d922044 commit 7f9ba6b

File tree

3 files changed

+13
-5
lines changed

3 files changed

+13
-5
lines changed

api/src/main/java/ca/bc/gov/educ/api/institute/controller/v1/DistrictAPIController.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,10 +174,12 @@ public DistrictContact createDistrictContact(UUID districtId, DistrictContact co
174174
}
175175

176176
@Override
177-
public DistrictContact updateDistrictContact(UUID districtId, UUID contactId, DistrictContact contact) {
177+
public DistrictContact updateDistrictContact(UUID districtId, UUID contactId, DistrictContact contact) throws JsonProcessingException {
178178
validatePayload(() -> this.districtContactPayloadValidator.validateUpdatePayload(contact));
179179
RequestUtil.setAuditColumnsForUpdate(contact);
180-
return districtContactMapper.toStructure(districtService.updateDistrictContact(contact, districtId, contactId));
180+
var pair = districtService.updateDistrictContact(contact, districtId, contactId);
181+
publisher.dispatchChoreographyEvent(pair.getRight());
182+
return districtContactMapper.toStructure(pair.getLeft());
181183
}
182184

183185
@Override

api/src/main/java/ca/bc/gov/educ/api/institute/endpoint/v1/DistrictAPIEndpoint.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ CompletableFuture<Page<DistrictContact>> findAllContacts(@RequestParam(name = "p
112112
@ApiResponses(value = {@ApiResponse(responseCode = "201", description = "CREATED"), @ApiResponse(responseCode = "400", description = "BAD REQUEST")})
113113
@Tag(name = "District Contact Entity", description = "Endpoints for district contact entity.")
114114
@Schema(name = "DistrictContact", implementation = DistrictContact.class)
115-
DistrictContact updateDistrictContact(@PathVariable UUID districtId, @PathVariable UUID contactId, @Validated @RequestBody DistrictContact contact);
115+
DistrictContact updateDistrictContact(@PathVariable UUID districtId, @PathVariable UUID contactId, @Validated @RequestBody DistrictContact contact) throws JsonProcessingException;
116116

117117
@DeleteMapping("/{districtId}/contact/{contactId}")
118118
@PreAuthorize("hasAuthority('SCOPE_DELETE_DISTRICT_CONTACT')")

api/src/main/java/ca/bc/gov/educ/api/institute/service/v1/DistrictService.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ public Pair<DistrictContactEntity, InstituteEvent> createDistrictContact(Distric
172172
}
173173

174174
@Transactional(propagation = Propagation.REQUIRES_NEW)
175-
public DistrictContactEntity updateDistrictContact(DistrictContact contact, UUID districtId, UUID contactId) {
175+
public Pair<DistrictContactEntity, InstituteEvent> updateDistrictContact(DistrictContact contact, UUID districtId, UUID contactId) throws JsonProcessingException {
176176
var contactEntity = DistrictContactMapper.mapper.toModel(contact);
177177
if (contactId == null || !contactId.equals(contactEntity.getDistrictContactId())) {
178178
throw new EntityNotFoundException(DistrictContactEntity.class, CONTACT_ID_ATTR, String.valueOf(contactId));
@@ -195,7 +195,13 @@ public DistrictContactEntity updateDistrictContact(DistrictContact contact, UUID
195195
TransformUtil.uppercaseFields(currentContactEntity); // convert the input to upper case.
196196
currentContactEntity.setDistrictEntity(curDistrictEntityOptional.get());
197197
districtContactRepository.save(currentContactEntity);
198-
return currentContactEntity;
198+
final InstituteEvent instituteEvent = EventUtil.createInstituteEvent(
199+
contact.getCreateUser(), contact.getUpdateUser(),
200+
JsonUtil.getJsonStringFromObject(DistrictContactMapper.mapper.toStructure(contactEntity)),
201+
UPDATE_CONTACT, CONTACT_UPDATED
202+
);
203+
instituteEventRepository.save(instituteEvent);
204+
return Pair.of(contactEntity, instituteEvent);
199205
} else {
200206
throw new EntityNotFoundException(DistrictContactEntity.class, CONTACT_ID_ATTR, String.valueOf(contactId));
201207
}

0 commit comments

Comments
 (0)