Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package fr.gouv.dgampa.rapportnav.config

import com.github.tomakehurst.wiremock.WireMockServer
import com.github.tomakehurst.wiremock.core.WireMockConfiguration
import fr.gouv.dgampa.rapportnav.infrastructure.api.bff.wiremock.*
import org.slf4j.LoggerFactory

Expand All @@ -10,7 +11,11 @@ class WireMockConfig {
private val logger = LoggerFactory.getLogger(WireMockConfig::class.java)

fun startWireMock(): WireMockServer {
val wireMockServer = WireMockServer(8089)
val wireMockServer = WireMockServer(
WireMockConfiguration.options()
.port(8089)
.globalTemplating(true)
)
wireMockServer.start()

logger.info("WireMock server started on http://localhost:8089")
Expand All @@ -23,6 +28,7 @@ class WireMockConfig {
FishActionsStubs.configureStubs(wireMockServer)
MissionByIdStubs.configureStubs(wireMockServer)
FishVesselsStubs.configureStubs(wireMockServer)
ActionStubs.configureStubs(wireMockServer)

return wireMockServer
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,4 +52,6 @@ abstract class EnvActionEntity(
open val coverMissionZone: Boolean? = null,
open val tags: List<TagEntity>? = listOf(),
open var themes: List<ThemeEntity>? = listOf(),
open var hasDivingDuringOperation: Boolean? = null,
open var incidentDuringOperation: Boolean? = null
)
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,6 @@ data class PatchedEnvActionEntity(
val actionStartDateTimeUtc: Instant? = null,
val actionEndDateTimeUtc: Instant? = null,
val observationsByUnit: String? = null,
val hasDivingDuringOperation: Boolean? = null,
val incidentDuringOperation: Boolean? = null
)
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,6 @@ interface BaseMissionActionEntity {
val isSafetyEquipmentAndStandardsComplianceControl: Boolean?
val isSeafarersControl: Boolean?
val targets: List<TargetEntity>?
var hasDivingDuringOperation: Boolean?
var incidentDuringOperation: Boolean?
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,5 +27,7 @@ interface BaseMissionEnvAction {
val coverMissionZone: Boolean?
val availableControlTypesForInfraction: List<ControlType>?
val tags: List<TagEntity>?
var themes: List<ThemeEntity>?
val themes: List<ThemeEntity>?
val hasDivingDuringOperation: Boolean?
val incidentDuringOperation: Boolean?
}
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,9 @@ abstract class MissionActionEntity(
DependentFieldValue(field = "actionType", value = ["CONTROL"])
]
)
override var targets: List<TargetEntity>? = null
override var targets: List<TargetEntity>? = null,
override var hasDivingDuringOperation: Boolean? = null,
override var incidentDuringOperation: Boolean? = null

) : BaseMissionActionEntity {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ data class MissionEnvActionEntity(
override var targets: List<TargetEntity>? = null,
override val tags: List<TagEntity>? = listOf(),
override var themes: List<ThemeEntity>? = listOf(),
override var hasDivingDuringOperation: Boolean? = null,
override var incidentDuringOperation: Boolean? = null
) : MissionActionEntity(
missionId = missionId,
isCompleteForStats = false,
Expand All @@ -51,7 +53,9 @@ data class MissionEnvActionEntity(
isAdministrativeControl = isAdministrativeControl,
isComplianceWithWaterRegulationsControl = isComplianceWithWaterRegulationsControl,
isSafetyEquipmentAndStandardsComplianceControl = isSafetyEquipmentAndStandardsComplianceControl,
targets = targets
targets = targets,
hasDivingDuringOperation = hasDivingDuringOperation,
incidentDuringOperation = incidentDuringOperation,
),
BaseMissionEnvAction {

Expand Down Expand Up @@ -162,6 +166,8 @@ data class MissionEnvActionEntity(
envInfractions = action.infractions,
tags = action.tags,
themes = action.themes,
hasDivingDuringOperation = action.hasDivingDuringOperation,
incidentDuringOperation = action.incidentDuringOperation,
)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ class PatchEnvAction(private val envRepository: IEnvMissionRepository) {
observationsByUnit = input.observationsByUnit,
actionStartDateTimeUtc = input.startDateTimeUtc,
actionEndDateTimeUtc = input.endDateTimeUtc,
incidentDuringOperation = input.incidentDuringOperation,
hasDivingDuringOperation = input.hasDivingDuringOperation,
)
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,9 @@ class UpdateEnvAction(
missionId = action.missionId,
startDateTimeUtc = action.startDateTimeUtc,
endDateTimeUtc = action.endDateTimeUtc,
observationsByUnit = action.observationsByUnit
observationsByUnit = action.observationsByUnit,
hasDivingDuringOperation = action.hasDivingDuringOperation,
incidentDuringOperation = action.incidentDuringOperation,
)
)
action.targets = processMissionActionTarget.execute(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,6 @@ data class ActionEnvInput(
val observationsByUnit: String? = null,
val startDateTimeUtc: Instant? = null,
val endDateTimeUtc: Instant? = null,
val hasDivingDuringOperation: Boolean? = null,
val incidentDuringOperation: Boolean? = null
)
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,6 @@ interface BaseMissionEnvActionData {
val availableControlTypesForInfraction: List<ControlType>?
val tags: List<TagEntity>?
var themes: List<ThemeEntity>?
val hasDivingDuringOperation: Boolean?
val incidentDuringOperation: Boolean?
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,7 @@ open class MissionActionData(
open val startDateTimeUtc: Instant? = null,
open val endDateTimeUtc: Instant? = null,
open val observations: String? = null,
open val targets: List<Target>? = null
open val targets: List<Target>? = null,
open val hasDivingDuringOperation: Boolean? = null,
open val incidentDuringOperation: Boolean? = null
)
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@ class MissionEnvAction(
coverMissionZone = envAction.coverMissionZone,
tags = envAction.tags,
themes = envAction.themes,
incidentDuringOperation = envAction.incidentDuringOperation,
hasDivingDuringOperation = envAction.hasDivingDuringOperation,
)
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,14 @@ class MissionEnvActionData(
override val targets: List<Target>? = null,
override val tags: List<TagEntity>? = listOf(),
override var themes: List<ThemeEntity>? = listOf(),
override var hasDivingDuringOperation: Boolean? = null,
override var incidentDuringOperation: Boolean? = null
) : MissionActionData(
startDateTimeUtc = startDateTimeUtc,
endDateTimeUtc = endDateTimeUtc,
targets = targets
targets = targets,
hasDivingDuringOperation = hasDivingDuringOperation,
incidentDuringOperation = incidentDuringOperation,
),
BaseMissionEnvActionData {
companion object {
Expand All @@ -59,7 +63,9 @@ class MissionEnvActionData(
observationsByUnit = data.observationsByUnit,
envActionType = ActionTypeEnum.valueOf(input.actionType.toString()),
tags = data.tags,
themes = data.themes.orEmpty()
themes = data.themes.orEmpty(),
incidentDuringOperation = data.incidentDuringOperation,
hasDivingDuringOperation = data.hasDivingDuringOperation,
)
return action
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package fr.gouv.dgampa.rapportnav.infrastructure.api.bff.wiremock

import com.github.tomakehurst.wiremock.WireMockServer
import com.github.tomakehurst.wiremock.client.WireMock

object ActionStubs {

fun configureStubs(wireMockServer: WireMockServer) {
wireMockServer.stubFor(
WireMock.patch(WireMock.urlMatching("/api/v1/actions/.*"))
.willReturn(
WireMock.aResponse()
.withStatus(200)
.withHeader("Content-Type", "application/json")
.withTransformers("response-template")
.withBody(
"""
{
"id": "{{request.pathSegments.[3]}}",
"actionType": "CONTROL",
"observationsByUnit": {{#if (jsonPath request.body '$.observationsByUnit')}}"{{jsonPath request.body '$.observationsByUnit'}}"{{else}}null{{/if}},
"actionStartDateTimeUtc": {{#if (jsonPath request.body '$.actionStartDateTimeUtc')}}"{{jsonPath request.body '$.actionStartDateTimeUtc'}}"{{else}}null{{/if}},
"actionEndDateTimeUtc": {{#if (jsonPath request.body '$.actionEndDateTimeUtc')}}"{{jsonPath request.body '$.actionEndDateTimeUtc'}}"{{else}}null{{/if}},
"hasDivingDuringOperation": {{jsonPath request.body '$.hasDivingDuringOperation' default='null'}},
"incidentDuringOperation": {{jsonPath request.body '$.incidentDuringOperation' default='null'}}
}
""".trimIndent()
)
)
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,6 @@ data class PatchActionInput(
val observationsByUnit: String? = null,
val actionStartDateTimeUtc: Instant? = null,
val actionEndDateTimeUtc: Instant? = null,
val hasDivingDuringOperation: Boolean? = null,
val incidentDuringOperation: Boolean? = null
)
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,18 @@ data class MissionEnvActionDataOutput(
val id: UUID,
val actionStartDateTimeUtc: ZonedDateTime? = null,
val actionEndDateTimeUtc: ZonedDateTime? = null,
val actionType: ActionTypeEnum,
val observationsByUnit: String? = null,
val hasDivingDuringOperation: Boolean? = null,
val incidentDuringOperation: Boolean? = null
) {
fun toPatchableEnvActionEntity(): PatchedEnvActionEntity {
return PatchedEnvActionEntity(
id = this.id,
actionStartDateTimeUtc = this.actionStartDateTimeUtc?.toInstant(),
actionEndDateTimeUtc = this.actionEndDateTimeUtc?.toInstant(),
observationsByUnit = this.observationsByUnit
observationsByUnit = this.observationsByUnit,
hasDivingDuringOperation = this.hasDivingDuringOperation,
incidentDuringOperation = this.incidentDuringOperation
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ class MissionEnvActionTest {
assertThat(output.data.actionTargetType).isEqualTo(entity.actionTargetType)
assertThat(output.data.isComplianceWithWaterRegulationsControl).isEqualTo(entity.isComplianceWithWaterRegulationsControl)
assertThat(output.data.isSafetyEquipmentAndStandardsComplianceControl).isEqualTo(entity.isSafetyEquipmentAndStandardsComplianceControl)
assertThat(output.data.hasDivingDuringOperation).isEqualTo(entity.hasDivingDuringOperation)
assertThat(output.data.incidentDuringOperation).isEqualTo(entity.incidentDuringOperation)
}


Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package fr.gouv.gmampa.rapportnav.infrastructure.monitorenv.output.action

import fr.gouv.dgampa.rapportnav.domain.entities.mission.env.envActions.ActionTypeEnum
import fr.gouv.dgampa.rapportnav.infrastructure.monitorenv.output.action.MissionEnvActionDataOutput
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test
Expand All @@ -13,15 +12,15 @@ class MissionEnvActionDataOutputTest {
val id = UUID.randomUUID()
val startTime = ZonedDateTime.parse("2022-01-02T12:00:00Z")
val endTime = startTime.plusHours(1)
val actionType = ActionTypeEnum.CONTROL
val observations = "Some observations"

val actionOutput = MissionEnvActionDataOutput(
id = id,
actionStartDateTimeUtc = startTime,
actionEndDateTimeUtc = endTime,
actionType = actionType,
observationsByUnit = observations
observationsByUnit = observations,
hasDivingDuringOperation = true,
incidentDuringOperation = false
)

val result = actionOutput.toPatchableEnvActionEntity()
Expand All @@ -33,5 +32,7 @@ class MissionEnvActionDataOutputTest {
assertEquals(expectedStart, result.actionStartDateTimeUtc)
assertEquals(expectedEnd, result.actionEndDateTimeUtc)
assertEquals(observations, result.observationsByUnit)
assertEquals(true, result.hasDivingDuringOperation)
assertEquals(false, result.incidentDuringOperation)
}
}
2 changes: 2 additions & 0 deletions frontend/src/v2/features/common/types/mission-action.ts
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,8 @@ export interface MissionEnvActionData extends MissionActionData {
availableControlTypesForInfraction: ControlType[]
tags: EnvTag[]
themes: EnvTheme[]
incidentDuringOperation?: boolean
hasDivingDuringOperation?: boolean
}

export interface MissionEnvAction extends MissionAction {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import Text from '@common/components/ui/text'
import { FormikEffect, THEME } from '@mtes-mct/monitor-ui'
import { FormikEffect, FormikTextarea, THEME } from '@mtes-mct/monitor-ui'
import { Field, FieldArray, FieldArrayRenderProps, FieldProps, Formik } from 'formik'
import React from 'react'
import { Divider, Stack } from 'rsuite'
Expand All @@ -16,6 +16,8 @@ import { ActionEnvControlInput } from '../../types/action-type'
import MissionActionEnvControlSummary from '../ui/mission-action-env-control-summary'
import MissionActionEnvThemes from '../ui/mission-action-env-themes.tsx'
import { MissionActionFormikCoordinateInputDMD } from '../ui/mission-action-formik-coordonate-input-dmd'
import MissionActionDivingOperation from '../ui/mission-action-diving-operation.tsx'
import MissionActionIncidentDonwload from '../ui/mission-action-incident-download.tsx'

export type MissionActionItemEnvControlProps = {
action: MissionAction
Expand Down Expand Up @@ -144,11 +146,23 @@ const MissionActionItemEnvControl: React.FC<MissionActionItemEnvControlProps> =
</Stack.Item>

<Stack.Item style={{ width: '100%' }}>
<FormikTextAreaInput
name="observationsByUnit"
data-testid="observationsByUnit"
label="Observation de l'unité sur le contrôle"
/>
<Stack direction={'column'}>
<Stack.Item style={{ width: '100%' }}>
<FormikTextarea
isLight={true}
name="observationsByUnit"
data-testid="observationsByUnit"
label="Observation de l'unité sur le contrôle"
/>
</Stack.Item>
<Stack.Item style={{ width: '100%' }}>
<MissionActionIncidentDonwload />
</Stack.Item>
</Stack>
</Stack.Item>

<Stack.Item style={{ width: '100%' }}>
<MissionActionDivingOperation />
</Stack.Item>
</Stack>
</>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@ export function useMissionActionEnvControl(
const { initValue, handleSubmit, errors } = useAbstractFormik<MissionEnvActionData, ActionEnvControlInput>(
value,
fromFieldValueToInput,
fromInputToFieldValue
fromInputToFieldValue,
['incidentDuringOperation', 'hasDivingDuringOperation']
)

const onSubmit = async (valueToSubmit?: MissionEnvActionData) => {
Expand Down
Loading