diff --git a/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/dto/AppRequestDto.kt b/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/dto/AppRequestDto.kt index 65a99a9..e60f182 100644 --- a/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/dto/AppRequestDto.kt +++ b/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/dto/AppRequestDto.kt @@ -1,10 +1,12 @@ package uk.gov.justice.digital.hmpps.managingprisonerappsapi.dto +import com.fasterxml.jackson.annotation.JsonFormat import java.time.LocalDateTime data class AppRequestDto( val reference: String, val type: String, + @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss'Z'") val requestedDate: LocalDateTime, val requests: List>, ) diff --git a/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/dto/AppResponseDto.kt b/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/dto/AppResponseDto.kt index d353902..abba049 100644 --- a/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/dto/AppResponseDto.kt +++ b/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/dto/AppResponseDto.kt @@ -1,5 +1,6 @@ package uk.gov.justice.digital.hmpps.managingprisonerappsapi.dto +import com.fasterxml.jackson.annotation.JsonFormat import uk.gov.justice.digital.hmpps.managingprisonerappsapi.model.AppType import java.time.LocalDateTime import java.util.* @@ -9,11 +10,15 @@ data class AppResponseDto( val reference: String, val assignedGroup: AssignedGroupDto, val appType: AppType, + @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss'Z'") + val requestedDate: LocalDateTime, + @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss'Z'") val createdDate: LocalDateTime, - val lastModifiedDateTime: LocalDateTime, - val lastModifiedBy: UUID, + val createdBy: String, + @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss'Z'") + val lastModifiedDate: LocalDateTime?, + val lastModifiedBy: String?, val comments: List?, val requests: List>?, - val requestedDateTime: LocalDateTime, val requestedBy: Any, ) diff --git a/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/model/App.kt b/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/model/App.kt index 761648c..775c4a0 100644 --- a/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/model/App.kt +++ b/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/model/App.kt @@ -15,16 +15,16 @@ data class App( val reference: String, val assignedGroup: UUID, val appType: AppType, + val requestedDate: LocalDateTime, val createdDate: LocalDateTime, - val lastModifiedDateTime: LocalDateTime, - val lastModifiedBy: UUID, + val createdBy: String, + val lastModifiedDate: LocalDateTime?, + val lastModifiedBy: String?, @ElementCollection val comments: List, @JdbcTypeCode(SqlTypes.JSON) val requests: List>, - val requestedDateTime: LocalDateTime, - val requestedBy: UUID, - val establishment: UUID, + val requestedBy: String, ) { override fun equals(other: Any?): Boolean { if (this === other) return true diff --git a/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/model/AppType.kt b/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/model/AppType.kt index 488a673..d2b0eaf 100644 --- a/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/model/AppType.kt +++ b/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/model/AppType.kt @@ -25,8 +25,8 @@ enum class AppType { if (type == PIN_PHONE_REMOVE_CONTACT.toString()) { return PIN_PHONE_REMOVE_CONTACT } - if (type == PIN_PHONE_REMOVE_CONTACT.toString()) { - return PIN_PHONE_REMOVE_CONTACT + if (type == PIN_PHONE_CREDIT_SWAP_VISITING_ORDERS.toString()) { + return PIN_PHONE_CREDIT_SWAP_VISITING_ORDERS } throw ApiException("$type do not match with any app type", HttpStatus.BAD_REQUEST) } diff --git a/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/model/Prisoner.kt b/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/model/Prisoner.kt index 54f607f..6f2bda3 100644 --- a/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/model/Prisoner.kt +++ b/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/model/Prisoner.kt @@ -1,26 +1,11 @@ package uk.gov.justice.digital.hmpps.managingprisonerappsapi.model -import jakarta.persistence.Entity -import jakarta.persistence.Id - -@Entity data class Prisoner( - @Id - val id: String, + val username: String, + val userId: String, val firstName: String, val lastName: String, val category: UserCategory, val location: String, val iep: String, -) { - override fun equals(other: Any?): Boolean { - if (this === other) return true - if (javaClass != other?.javaClass) return false - - other as Prisoner - - return id == other.id - } - - override fun hashCode(): Int = id.hashCode() -} +) diff --git a/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/model/Staff.kt b/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/model/Staff.kt index 87b4a93..f00d2e7 100644 --- a/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/model/Staff.kt +++ b/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/model/Staff.kt @@ -1,29 +1,13 @@ package uk.gov.justice.digital.hmpps.managingprisonerappsapi.model -import jakarta.persistence.ElementCollection -import jakarta.persistence.Entity -import jakarta.persistence.Id import java.util.* -@Entity data class Staff( - @Id - val id: UUID, + val username: String, + val userId: String, val firstName: String, val lastName: String, val category: UserCategory, - @ElementCollection val roles: Set, val jobTitle: String, -) { - override fun equals(other: Any?): Boolean { - if (this === other) return true - if (javaClass != other?.javaClass) return false - - other as Staff - - return id == other.id - } - - override fun hashCode(): Int = id.hashCode() -} +) diff --git a/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/repository/AppRepository.kt b/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/repository/AppRepository.kt index 677ef30..4cb5230 100644 --- a/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/repository/AppRepository.kt +++ b/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/repository/AppRepository.kt @@ -7,7 +7,7 @@ import java.util.UUID @Repository interface AppRepository : JpaRepository { - fun findAppsByRequestedBy(id: UUID): List + // fun findAppsByRequestedBy(id: UUID): List - fun findAppByEstablishment(id: UUID): List + // fun findAppByEstablishment(id: UUID): List } diff --git a/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/repository/StaffRepository.kt b/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/repository/StaffRepository.kt deleted file mode 100644 index 9909e66..0000000 --- a/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/repository/StaffRepository.kt +++ /dev/null @@ -1,9 +0,0 @@ -package uk.gov.justice.digital.hmpps.managingprisonerappsapi.repository - -import org.springframework.data.jpa.repository.JpaRepository -import org.springframework.stereotype.Repository -import uk.gov.justice.digital.hmpps.managingprisonerappsapi.model.Staff -import java.util.UUID - -@Repository -interface StaffRepository : JpaRepository diff --git a/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/service/AppServiceImpl.kt b/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/service/AppServiceImpl.kt index 0dd38bb..0a16699 100644 --- a/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/service/AppServiceImpl.kt +++ b/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/service/AppServiceImpl.kt @@ -15,6 +15,7 @@ import uk.gov.justice.digital.hmpps.managingprisonerappsapi.model.Staff import uk.gov.justice.digital.hmpps.managingprisonerappsapi.repository.AppRepository import uk.gov.justice.digital.hmpps.managingprisonerappsapi.resource.AppController import java.time.LocalDateTime +import java.time.ZoneOffset import java.util.* @Service @@ -94,20 +95,20 @@ class AppServiceImpl( private fun convertAppRequestToAppEntity(prisoner: Prisoner, staff: Staff, appRequest: AppRequestDto): App { // TODO("Not yet implemented") - val localDateTime = LocalDateTime.now() + val localDateTime = LocalDateTime.now(ZoneOffset.UTC) return App( - UUID.randomUUID(), - appRequest.reference, - UUID.randomUUID(), + UUID.randomUUID(), // id + appRequest.reference, // reference + UUID.randomUUID(), // group id AppType.getAppType(appRequest.type), - localDateTime, - localDateTime, - staff.id, + appRequest.requestedDate, + localDateTime, // created date + staff.username, + localDateTime, // last modified date + staff.username, // created by arrayListOf(), appRequest.requests, - localDateTime, - staff.id, - UUID.randomUUID(), + prisoner.username, ) } @@ -124,12 +125,13 @@ class AppServiceImpl( app.reference, assignedGroup, app.appType, + app.requestedDate, app.createdDate, - app.lastModifiedDateTime, + app.createdBy, + app.lastModifiedDate, app.lastModifiedBy, app.comments, app.requests, - app.requestedDateTime, prisoner, ) } diff --git a/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/service/PrisonerServiceImpl.kt b/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/service/PrisonerServiceImpl.kt index cdd2b59..a931883 100644 --- a/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/service/PrisonerServiceImpl.kt +++ b/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/service/PrisonerServiceImpl.kt @@ -13,6 +13,7 @@ class PrisonerServiceImpl : PrisonerService { // Implement it later just adding placeholder for returning a prisoner val prisoner = Prisoner( id, + UUID.randomUUID().toString(), "Test", "Prisoner", UserCategory.PRISONER, @@ -23,7 +24,7 @@ class PrisonerServiceImpl : PrisonerService { } fun convertPrisonerToRequestByDto(prisoner: Prisoner): RequestedByDto = RequestedByDto( - prisoner.id, + prisoner.username, prisoner.firstName, prisoner.lastName, prisoner.location, diff --git a/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/service/StaffServiceImpl.kt b/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/service/StaffServiceImpl.kt index 42c4fe2..fd291b3 100644 --- a/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/service/StaffServiceImpl.kt +++ b/src/main/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/service/StaffServiceImpl.kt @@ -10,7 +10,8 @@ class StaffServiceImpl : StaffService { override fun getStaffById(id: String): Optional { // TODO("Not yet implemented") val staff = Staff( - UUID.randomUUID(), + id, + UUID.randomUUID().toString(), "Test", "Staff", UserCategory.STAFF, diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/repository/AppRepositoryTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/repository/AppRepositoryTest.kt index 2653f52..e10d4da 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/repository/AppRepositoryTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/repository/AppRepositoryTest.kt @@ -36,14 +36,14 @@ class AppRepositoryTest(@Autowired val appRepository: AppRepository) { "new reference 123", createdApp.assignedGroup, createdApp.appType, + createdApp.requestedDate, createdApp.createdDate, - createdApp.lastModifiedDateTime, + createdApp.createdBy, + createdApp.lastModifiedDate, createdApp.lastModifiedBy, createdApp.comments, listOf(HashMap()), - createdApp.requestedDateTime, createdApp.requestedBy, - UUID.randomUUID(), ) app = appRepository.save(app) Assertions.assertEquals("new reference 123", app.reference) diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/repository/StaffRepositoryTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/repository/StaffRepositoryTest.kt deleted file mode 100644 index 595f505..0000000 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/repository/StaffRepositoryTest.kt +++ /dev/null @@ -1,17 +0,0 @@ -package uk.gov.justice.digital.hmpps.managingprisonerappsapi.repository - -import org.junit.jupiter.api.extension.ExtendWith -import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.autoconfigure.EnableAutoConfiguration -import org.springframework.boot.autoconfigure.domain.EntityScan -import org.springframework.boot.test.context.SpringBootTest -import org.springframework.data.jpa.repository.config.EnableJpaRepositories -import org.springframework.test.context.junit.jupiter.SpringExtension -import uk.gov.justice.digital.hmpps.managingprisonerappsapi.model.Staff - -@SpringBootTest(classes = [Staff::class]) -@EnableAutoConfiguration -@EnableJpaRepositories(basePackages = ["uk.gov.justice.digital.hmpps.managingprisonerappsapi.repository"]) -@EntityScan("uk.gov.justice.digital.hmpps.managingprisonerappsapi.model") -@ExtendWith(SpringExtension::class) -class StaffRepositoryTest(@Autowired val staffRepository: StaffRepository) diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/utils/DataGenerator.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/utils/DataGenerator.kt index 02ddbee..32852aa 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/utils/DataGenerator.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/managingprisonerappsapi/utils/DataGenerator.kt @@ -31,7 +31,8 @@ class DataGenerator { ) fun generateStaff(): Staff = Staff( - UUID.randomUUID(), + "TEST_USER", + "Test", "Test", "Staff", UserCategory.STAFF, @@ -46,12 +47,12 @@ class DataGenerator { AppType.PIN_PHONE_ADD_NEW_CONTACT, LocalDateTime.now(), LocalDateTime.now(), - UUID.randomUUID(), + "testStaaf@moj", + LocalDateTime.now(), + "testStaaf@moj", arrayListOf(UUID.randomUUID()), listOf(HashMap().apply { put("contact", 123456) }), - LocalDateTime.now(), - UUID.randomUUID(), - UUID.randomUUID(), + "testprisoner@moj", ) fun generateAppRequestDto(): AppRequestDto = AppRequestDto(