Skip to content

Commit

Permalink
Refactor bff and publicapi adapters packages
Browse files Browse the repository at this point in the history
  • Loading branch information
louptheron committed Jul 18, 2023
1 parent b204dec commit 51b849b
Show file tree
Hide file tree
Showing 30 changed files with 50 additions and 51 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package fr.gouv.cacem.monitorenv.infrastructure.api

import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.outputs.ApiError
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.outputs.MissingParameterApiError
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.bff.outputs.ApiError
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.bff.outputs.MissingParameterApiError
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.core.Ordered.HIGHEST_PRECEDENCE
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package fr.gouv.cacem.monitorenv.infrastructure.api.adapters.inputs
package fr.gouv.cacem.monitorenv.infrastructure.api.adapters.bff.inputs

import fr.gouv.cacem.monitorenv.domain.entities.controlResources.ControlUnitEntity
import fr.gouv.cacem.monitorenv.domain.entities.missions.EnvActionEntity
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package fr.gouv.cacem.monitorenv.infrastructure.api.adapters.outputs
package fr.gouv.cacem.monitorenv.infrastructure.api.adapters.bff.outputs

import fr.gouv.cacem.monitorenv.domain.entities.amp.AMPEntity
import org.locationtech.jts.geom.MultiPolygon
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package fr.gouv.cacem.monitorenv.infrastructure.api.adapters.outputs
package fr.gouv.cacem.monitorenv.infrastructure.api.adapters.bff.outputs

class ApiError(val error: String, val type: String) {
constructor(exception: Throwable) : this(exception.cause?.message ?: "", exception.cause?.javaClass?.simpleName.toString())
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package fr.gouv.cacem.monitorenv.infrastructure.api.adapters.outputs
package fr.gouv.cacem.monitorenv.infrastructure.api.adapters.bff.outputs

import fr.gouv.cacem.monitorenv.domain.entities.controlResources.ControlResourceEntity

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package fr.gouv.cacem.monitorenv.infrastructure.api.adapters.outputs
package fr.gouv.cacem.monitorenv.infrastructure.api.adapters.bff.outputs

import fr.gouv.cacem.monitorenv.domain.entities.controlThemes.ControlThemeEntity

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package fr.gouv.cacem.monitorenv.infrastructure.api.adapters.outputs
package fr.gouv.cacem.monitorenv.infrastructure.api.adapters.bff.outputs

import fr.gouv.cacem.monitorenv.domain.entities.controlResources.ControlUnitEntity

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package fr.gouv.cacem.monitorenv.infrastructure.api.adapters.outputs
package fr.gouv.cacem.monitorenv.infrastructure.api.adapters.bff.outputs

import org.n52.jackson.datatype.jts.GeometrySerializer

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package fr.gouv.cacem.monitorenv.infrastructure.api.adapters.outputs
package fr.gouv.cacem.monitorenv.infrastructure.api.adapters.bff.outputs

import fr.gouv.cacem.monitorenv.domain.entities.health.Health

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package fr.gouv.cacem.monitorenv.infrastructure.api.adapters.bff.outputs

data class MissingParameterApiError(val error: String)
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package fr.gouv.cacem.monitorenv.infrastructure.api.adapters.outputs
package fr.gouv.cacem.monitorenv.infrastructure.api.adapters.bff.outputs

import fr.gouv.cacem.monitorenv.domain.entities.controlResources.ControlUnitEntity
import fr.gouv.cacem.monitorenv.domain.entities.missions.EnvActionEntity
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package fr.gouv.cacem.monitorenv.infrastructure.api.adapters.outputs
package fr.gouv.cacem.monitorenv.infrastructure.api.adapters.bff.outputs

import fr.gouv.cacem.monitorenv.domain.entities.natinfs.NatinfEntity

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package fr.gouv.cacem.monitorenv.infrastructure.api.adapters.outputs
package fr.gouv.cacem.monitorenv.infrastructure.api.adapters.bff.outputs

import fr.gouv.cacem.monitorenv.domain.entities.regulatoryAreas.RegulatoryAreaEntity
import org.locationtech.jts.geom.MultiPolygon
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package fr.gouv.cacem.monitorenv.infrastructure.api.adapters.outputs
package fr.gouv.cacem.monitorenv.infrastructure.api.adapters.bff.outputs

import fr.gouv.cacem.monitorenv.domain.entities.semaphores.SemaphoreEntity
import org.locationtech.jts.geom.Point
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package fr.gouv.cacem.monitorenv.infrastructure.api.adapters.inputs
package fr.gouv.cacem.monitorenv.infrastructure.api.adapters.publicapi.inputs

import fr.gouv.cacem.monitorenv.domain.entities.controlResources.ControlUnitEntity
import fr.gouv.cacem.monitorenv.domain.entities.missions.EnvActionEntity
Expand All @@ -8,7 +8,7 @@ import fr.gouv.cacem.monitorenv.domain.entities.missions.MissionTypeEnum
import org.locationtech.jts.geom.MultiPolygon
import java.time.ZonedDateTime

data class CreateOrUpdatePublicMissionDataInput(
data class CreateOrUpdateMissionDataInput(
val id: Int? = null,
val missionTypes: List<MissionTypeEnum>,
val controlUnits: List<ControlUnitEntity> = listOf(),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package fr.gouv.cacem.monitorenv.infrastructure.api.adapters.outputs
package fr.gouv.cacem.monitorenv.infrastructure.api.adapters.publicapi.outputs

import fr.gouv.cacem.monitorenv.domain.entities.controlResources.ControlUnitEntity
import fr.gouv.cacem.monitorenv.domain.entities.missions.EnvActionEntity
Expand All @@ -8,7 +8,7 @@ import fr.gouv.cacem.monitorenv.domain.entities.missions.MissionTypeEnum
import org.locationtech.jts.geom.MultiPolygon
import java.time.ZonedDateTime

data class PublicMissionDataOutput(
data class MissionDataOutput(
val id: Int,
val missionTypes: List<MissionTypeEnum>,
val controlUnits: List<ControlUnitEntity>? = listOf(),
Expand All @@ -28,12 +28,12 @@ data class PublicMissionDataOutput(
val isGeometryComputedFromControls: Boolean
) {
companion object {
fun fromMission(mission: MissionEntity): PublicMissionDataOutput {
fun fromMission(mission: MissionEntity): MissionDataOutput {
requireNotNull(mission.id) {
"a mission must have an id"
}

return PublicMissionDataOutput(
return MissionDataOutput(
id = mission.id,
missionTypes = mission.missionTypes,
controlUnits = mission.controlUnits,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package fr.gouv.cacem.monitorenv.infrastructure.api.endpoints.bff

import com.fasterxml.jackson.databind.ObjectMapper
import fr.gouv.cacem.monitorenv.domain.use_cases.amps.GetAMPs
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.outputs.AMPDataOutput
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.bff.outputs.AMPDataOutput
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.tags.Tag
import org.springframework.web.bind.annotation.GetMapping
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package fr.gouv.cacem.monitorenv.infrastructure.api.endpoints.bff

import fr.gouv.cacem.monitorenv.domain.use_cases.controlThemes.GetControlThemeById
import fr.gouv.cacem.monitorenv.domain.use_cases.controlThemes.GetControlThemes
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.outputs.ControlThemeDataOutput
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.bff.outputs.ControlThemeDataOutput
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.tags.Tag
import jakarta.websocket.server.PathParam
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package fr.gouv.cacem.monitorenv.infrastructure.api.endpoints.bff

import fr.gouv.cacem.monitorenv.domain.use_cases.controlResources.GetControlUnits
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.outputs.ControlUnitDataOutput
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.bff.outputs.ControlUnitDataOutput
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.tags.Tag
import org.springframework.web.bind.annotation.GetMapping
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package fr.gouv.cacem.monitorenv.infrastructure.api.endpoints.bff

import fr.gouv.cacem.monitorenv.domain.use_cases.healthcheck.GetHealthcheck
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.outputs.HealthDataOutput
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.bff.outputs.HealthDataOutput
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.tags.Tag
import org.springframework.web.bind.annotation.GetMapping
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import fr.gouv.cacem.monitorenv.domain.use_cases.missions.CreateOrUpdateMission
import fr.gouv.cacem.monitorenv.domain.use_cases.missions.DeleteMission
import fr.gouv.cacem.monitorenv.domain.use_cases.missions.GetMissionById
import fr.gouv.cacem.monitorenv.domain.use_cases.missions.GetMonitorEnvMissions
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.inputs.CreateOrUpdateMissionDataInput
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.outputs.MissionDataOutput
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.bff.inputs.CreateOrUpdateMissionDataInput
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.bff.outputs.MissionDataOutput
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.Parameter
import io.swagger.v3.oas.annotations.tags.Tag
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package fr.gouv.cacem.monitorenv.infrastructure.api.endpoints.bff

import fr.gouv.cacem.monitorenv.domain.use_cases.natinfs.GetNatinfs
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.outputs.NatinfDataOutput
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.bff.outputs.NatinfDataOutput
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.tags.Tag
import org.springframework.web.bind.annotation.GetMapping
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package fr.gouv.cacem.monitorenv.infrastructure.api.endpoints.bff

import fr.gouv.cacem.monitorenv.domain.use_cases.regulatoryAreas.GetRegulatoryAreaById
import fr.gouv.cacem.monitorenv.domain.use_cases.regulatoryAreas.GetRegulatoryAreas
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.outputs.RegulatoryAreaDataOutput
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.bff.outputs.RegulatoryAreaDataOutput
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.tags.Tag
import jakarta.websocket.server.PathParam
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package fr.gouv.cacem.monitorenv.infrastructure.api.endpoints.bff

import fr.gouv.cacem.monitorenv.domain.use_cases.semaphores.GetSemaphoreById
import fr.gouv.cacem.monitorenv.domain.use_cases.semaphores.GetSemaphores
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.outputs.SemaphoreDataOutput
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.bff.outputs.SemaphoreDataOutput
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.tags.Tag
import jakarta.websocket.server.PathParam
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package fr.gouv.cacem.monitorenv.infrastructure.api.endpoints.publicapi

import fr.gouv.cacem.monitorenv.domain.use_cases.controlResources.GetControlUnits
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.outputs.ControlUnitDataOutput
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.bff.outputs.ControlUnitDataOutput
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.tags.Tag
import org.springframework.web.bind.annotation.GetMapping
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package fr.gouv.cacem.monitorenv.infrastructure.api.endpoints.publicapi

import fr.gouv.cacem.monitorenv.domain.use_cases.healthcheck.GetHealthcheck
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.outputs.HealthDataOutput
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.bff.outputs.HealthDataOutput
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.tags.Tag
import org.springframework.web.bind.annotation.GetMapping
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,8 @@ import fr.gouv.cacem.monitorenv.domain.use_cases.missions.CreateOrUpdateMission
import fr.gouv.cacem.monitorenv.domain.use_cases.missions.DeleteMission
import fr.gouv.cacem.monitorenv.domain.use_cases.missions.GetMissionById
import fr.gouv.cacem.monitorenv.domain.use_cases.missions.GetMissions
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.inputs.CreateOrUpdatePublicMissionDataInput
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.outputs.MissionDataOutput
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.outputs.PublicMissionDataOutput
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.publicapi.inputs.CreateOrUpdateMissionDataInput
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.publicapi.outputs.MissionDataOutput
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.Parameter
import io.swagger.v3.oas.annotations.tags.Tag
Expand Down Expand Up @@ -62,7 +61,7 @@ class ApiMissionsController(
@Parameter(description = "Facades")
@RequestParam(name = "seaFronts", required = false)
seaFronts: List<String>?,
): List<PublicMissionDataOutput> {
): List<MissionDataOutput> {
val missions = getMissions.execute(
startedAfterDateTime = startedAfterDateTime,
startedBeforeDateTime = startedBeforeDateTime,
Expand All @@ -73,18 +72,18 @@ class ApiMissionsController(
pageNumber = pageNumber,
pageSize = pageSize,
)
return missions.map { PublicMissionDataOutput.fromMission(it) }
return missions.map { MissionDataOutput.fromMission(it) }
}

@PostMapping("", consumes = ["application/json"])
@Operation(summary = "Create a new mission")
fun createMissionController(
@RequestBody
createMissionDataInput: CreateOrUpdatePublicMissionDataInput,
): PublicMissionDataOutput {
createMissionDataInput: CreateOrUpdateMissionDataInput,
): MissionDataOutput {
val newMission = createMissionDataInput.toMissionEntity()
val createdMission = createOrUpdateMission.execute(mission = newMission)
return PublicMissionDataOutput.fromMission(createdMission)
return MissionDataOutput.fromMission(createdMission)
}

@GetMapping("/{missionId}")
Expand All @@ -93,10 +92,10 @@ class ApiMissionsController(
@PathParam("Mission id")
@PathVariable(name = "missionId")
missionId: Int,
): PublicMissionDataOutput {
): MissionDataOutput {
val mission = getMissionById.execute(missionId = missionId)

return PublicMissionDataOutput.fromMission(mission)
return MissionDataOutput.fromMission(mission)
}

@PostMapping(value = ["/{missionId}"], consumes = ["application/json"])
Expand All @@ -106,15 +105,15 @@ class ApiMissionsController(
@PathVariable(name = "missionId")
missionId: Int,
@RequestBody
updateMissionDataInput: CreateOrUpdatePublicMissionDataInput,
): PublicMissionDataOutput {
updateMissionDataInput: CreateOrUpdateMissionDataInput,
): MissionDataOutput {
if ((updateMissionDataInput.id == null) || (missionId != updateMissionDataInput.id)) {
throw java.lang.IllegalArgumentException("missionId doesn't match with request param")
}
return createOrUpdateMission.execute(
mission = updateMissionDataInput.toMissionEntity(),
).let {
PublicMissionDataOutput.fromMission(it)
MissionDataOutput.fromMission(it)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import fr.gouv.cacem.monitorenv.domain.use_cases.missions.CreateOrUpdateMission
import fr.gouv.cacem.monitorenv.domain.use_cases.missions.DeleteMission
import fr.gouv.cacem.monitorenv.domain.use_cases.missions.GetMissionById
import fr.gouv.cacem.monitorenv.domain.use_cases.missions.GetMonitorEnvMissions
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.inputs.CreateOrUpdateMissionDataInput
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.bff.inputs.CreateOrUpdateMissionDataInput
import org.hamcrest.Matchers.equalTo
import org.junit.jupiter.api.Test
import org.locationtech.jts.geom.MultiPolygon
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import fr.gouv.cacem.monitorenv.domain.use_cases.missions.CreateOrUpdateMission
import fr.gouv.cacem.monitorenv.domain.use_cases.missions.DeleteMission
import fr.gouv.cacem.monitorenv.domain.use_cases.missions.GetMissionById
import fr.gouv.cacem.monitorenv.domain.use_cases.missions.GetMissions
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.inputs.CreateOrUpdatePublicMissionDataInput
import fr.gouv.cacem.monitorenv.infrastructure.api.adapters.publicapi.inputs.CreateOrUpdateMissionDataInput
import org.hamcrest.Matchers.equalTo
import org.junit.jupiter.api.Test
import org.locationtech.jts.geom.MultiPolygon
Expand Down Expand Up @@ -81,7 +81,7 @@ class ApiMissionsControllerITests {
isUnderJdp = true,
isGeometryComputedFromControls = false
)
val newMissionRequest = CreateOrUpdatePublicMissionDataInput(
val newMissionRequest = CreateOrUpdateMissionDataInput(
missionTypes = listOf(MissionTypeEnum.LAND),
observationsCnsp = null,
facade = "Outre-Mer",
Expand Down Expand Up @@ -198,7 +198,7 @@ class ApiMissionsControllerITests {
vehicleType = VehicleTypeEnum.VESSEL,
actionNumberOfControls = 4,
)
val requestBody = CreateOrUpdatePublicMissionDataInput(
val requestBody = CreateOrUpdateMissionDataInput(
id = 14,
missionTypes = listOf(MissionTypeEnum.SEA),
observationsCacem = "updated observations",
Expand Down

0 comments on commit 51b849b

Please sign in to comment.