Skip to content

Commit

Permalink
[Mission] move useCases and entity in mission feature
Browse files Browse the repository at this point in the history
  • Loading branch information
claire2212 committed May 9, 2024
1 parent bf10600 commit 25d00c5
Show file tree
Hide file tree
Showing 145 changed files with 1,191 additions and 1,248 deletions.
@@ -1,4 +1,4 @@
import { attachReportingToMissionSliceActions } from '@features/Mission/MissionForm/AttachReporting/slice'
import { attachReportingToMissionSliceActions } from '@features/Mission/components/MissionForm/AttachReporting/slice'
import { setGeometry } from 'domain/shared_slices/Draw'

import type { GeoJSON } from 'domain/types/GeoJSON'
Expand Down
16 changes: 8 additions & 8 deletions frontend/src/api/missionsAPI.ts
@@ -1,13 +1,13 @@
import { Mission } from '@features/Mission/mission.type'
import { type ControlUnit } from '@mtes-mct/monitor-ui'

import { monitorenvPrivateApi, monitorenvPublicApi } from './api'
import { ApiErrorCode } from './types'
import { MissionSourceEnum, type Mission, type MissionData } from '../domain/entities/missions'
import { FrontendApiError } from '../libs/FrontendApiError'

const CAN_DELETE_MISSION_ERROR_MESSAGE = "Nous n'avons pas pu vérifier si cette mission est supprimable."

type MissionsResponse = Mission[]
type MissionsResponse = Mission.Mission[]
type MissionsFilter = {
missionSource?: string
missionStatus?: string[]
Expand All @@ -20,11 +20,11 @@ type MissionsFilter = {

type CanDeleteMissionResponseType = {
canDelete: boolean
sources: MissionSourceEnum[]
sources: Mission.MissionSourceEnum[]
}

type MissionResponseType = {
mission: Mission
mission: Mission.Mission
status: number
}

Expand All @@ -46,7 +46,7 @@ export const missionsAPI = monitorenvPrivateApi.injectEndpoints({
forceRefetch: () => true,
query: id => ({
method: 'GET',
url: `/v1/missions/${id}/can_delete?source=${MissionSourceEnum.MONITORENV}`
url: `/v1/missions/${id}/can_delete?source=${Mission.MissionSourceEnum.MONITORENV}`
}),
transformErrorResponse: error => new FrontendApiError(CAN_DELETE_MISSION_ERROR_MESSAGE, error),
transformResponse: (response: CanDeleteMissionResponseType) => {
Expand All @@ -65,7 +65,7 @@ export const missionsAPI = monitorenvPrivateApi.injectEndpoints({
return response
}
}),
createMission: builder.mutation<Mission, MissionData>({
createMission: builder.mutation<Mission.Mission, Mission.MissionData>({
invalidatesTags: (_, __, { attachedReportingIds = [] }) => [
{ id: 'LIST', type: 'Missions' },
{ id: 'LIST', type: 'Reportings' },
Expand All @@ -91,7 +91,7 @@ export const missionsAPI = monitorenvPrivateApi.injectEndpoints({
keepUnusedDataFor: 0,
providesTags: (_, __, id) => [{ id, type: 'Missions' }],
query: id => `/v1/missions/${id}`,
transformResponse: (mission: Mission, meta: any) => {
transformResponse: (mission: Mission.Mission, meta: any) => {
const status = meta?.response?.status

return { mission, status }
Expand All @@ -117,7 +117,7 @@ export const missionsAPI = monitorenvPrivateApi.injectEndpoints({
.filter(v => v)
.join('&')
}),
updateMission: builder.mutation<Mission, MissionData>({
updateMission: builder.mutation<Mission.Mission, Mission.MissionData>({
invalidatesTags: (_, __, { attachedReportingIds = [], detachedReportingIds = [], id }) => [
{ id, type: 'Missions' },
{ id: 'LIST', type: 'Missions' },
Expand Down
15 changes: 8 additions & 7 deletions frontend/src/context/MissionEventContext.tsx
@@ -1,21 +1,22 @@
import { Mission } from '@features/Mission/mission.type'
import { createContext, useState, useMemo } from 'react'

import type { Mission } from 'domain/entities/missions'

type MissionEventContextProps = {
contextMissionEvent: Mission | undefined
getMissionEventById: (missionId: number | string | undefined) => Mission | undefined
setMissionEventInContext: React.Dispatch<React.SetStateAction<Mission | undefined>>
contextMissionEvent: Mission.Mission | undefined
getMissionEventById: (missionId: number | string | undefined) => Mission.Mission | undefined
setMissionEventInContext: React.Dispatch<React.SetStateAction<Mission.Mission | undefined>>
}
export const MissionEventContext = createContext<MissionEventContextProps | undefined>(undefined)

export function MissionEventProvider({ children }) {
const [contextMissionEvent, setMissionEventInContext] = useState<Mission | undefined>(undefined)
const [contextMissionEvent, setMissionEventInContext] = useState<Mission.Mission | undefined>(undefined)
const contextValue = useMemo(
() => ({
contextMissionEvent,
getMissionEventById: (missionId: number | string | undefined) =>
missionId && contextMissionEvent?.id === missionId ? (contextMissionEvent as Mission | undefined) : undefined,
missionId && contextMissionEvent?.id === missionId
? (contextMissionEvent as Mission.Mission | undefined)
: undefined,
setMissionEventInContext
}),
[contextMissionEvent, setMissionEventInContext]
Expand Down
32 changes: 0 additions & 32 deletions frontend/src/domain/entities/__tests__/getMissionStatus.test.ts

This file was deleted.

0 comments on commit 25d00c5

Please sign in to comment.