Add gSheet specific entity write

This commit is contained in:
forceoranj
2021-11-14 23:23:29 +01:00
parent c33b9d8f79
commit b76fbc78ff
22 changed files with 457 additions and 101 deletions

View File

@@ -2,14 +2,14 @@ import { PayloadAction, createSlice, createEntityAdapter } from "@reduxjs/toolki
import { toast } from "react-toastify"
import { StateRequest } from "./utils"
import { Envie, EnvieWithoutId, addEnvie } from "../services/envies"
import { Envie, EnvieWithoutId, envieAdd } from "../services/envies"
import { AppThunk } from "."
const envieAdapter = createEntityAdapter<Envie>({
selectId: (envie) => envie.id,
})
const envieAdd = createSlice({
const envieAddSlice = createSlice({
name: "addEnvie",
initialState: envieAdapter.getInitialState({
readyStatus: "idle",
@@ -29,15 +29,15 @@ const envieAdd = createSlice({
},
})
export default envieAdd.reducer
export const { getRequesting, getSuccess, getFailure } = envieAdd.actions
export default envieAddSlice.reducer
export const { getRequesting, getSuccess, getFailure } = envieAddSlice.actions
export const postEnvie =
export const sendAddEnvie =
(envieWithoutId: EnvieWithoutId): AppThunk =>
async (dispatch) => {
dispatch(getRequesting())
const { error, data } = await addEnvie(envieWithoutId)
const { error, data } = await envieAdd(envieWithoutId)
if (error) {
dispatch(getFailure(error.message))

View File

@@ -2,7 +2,7 @@ import { PayloadAction, createSlice, createEntityAdapter } from "@reduxjs/toolki
import { toast } from "react-toastify"
import { StateRequest } from "./utils"
import { Envie, getEnvieList } from "../services/envies"
import { Envie, envieListGet } from "../services/envies"
import { AppThunk, AppState } from "."
const envieAdapter = createEntityAdapter<Envie>({
@@ -35,7 +35,7 @@ export const { getRequesting, getSuccess, getFailure } = envieList.actions
export const fetchEnvieList = (): AppThunk => async (dispatch) => {
dispatch(getRequesting())
const { error, data } = await getEnvieList()
const { error, data } = await envieListGet()
if (error) {
dispatch(getFailure(error.message))

View File

@@ -2,7 +2,7 @@ import { PayloadAction, createSlice } from "@reduxjs/toolkit"
import { toast } from "react-toastify"
import { StateRequest } from "./utils"
import { Membre, getMembre } from "../services/membres"
import { Membre, membreGet } from "../services/membres"
import { AppThunk, AppState } from "."
type StateMembre = { entity?: Membre } & StateRequest
@@ -37,7 +37,7 @@ export const fetchMembreData =
async (dispatch) => {
dispatch(getRequesting())
const { error, data } = await getMembre(id)
const { error, data } = await membreGet(id)
if (error) {
dispatch(getFailure(error.message))

View File

@@ -2,7 +2,7 @@ import { PayloadAction, createSlice, createEntityAdapter } from "@reduxjs/toolki
import { toast } from "react-toastify"
import { StateRequest } from "./utils"
import { Membre, getMembreList } from "../services/membres"
import { Membre, membreListGet } from "../services/membres"
import { AppThunk, AppState } from "."
const membreAdapter = createEntityAdapter<Membre>()
@@ -35,7 +35,7 @@ export const { getRequesting, getSuccess, getFailure } = membreList.actions
export const fetchMembreList = (): AppThunk => async (dispatch) => {
dispatch(getRequesting())
const { error, data } = await getMembreList()
const { error, data } = await membreListGet()
if (error) {
dispatch(getFailure(error.message))

65
src/store/membreSet.ts Normal file
View File

@@ -0,0 +1,65 @@
import { PayloadAction, createSlice, createEntityAdapter } from "@reduxjs/toolkit"
import { toast } from "react-toastify"
import { StateRequest } from "./utils"
import { Membre, membreSet } from "../services/membres"
import { AppThunk } from "."
const membreAdapter = createEntityAdapter<Membre>({
selectId: (membre) => membre.id,
})
const membreSetSlice = createSlice({
name: "membreSet",
initialState: membreAdapter.getInitialState({
readyStatus: "idle",
} as StateRequest),
reducers: {
getRequesting: (state) => {
state.readyStatus = "request"
},
getSuccess: (state, { payload }: PayloadAction<Membre>) => {
state.readyStatus = "success"
membreAdapter.addOne(state, payload)
},
getFailure: (state, { payload }: PayloadAction<string>) => {
state.readyStatus = "failure"
state.error = payload
},
},
})
export default membreSetSlice.reducer
export const { getRequesting, getSuccess, getFailure } = membreSetSlice.actions
export const sendMembreSet =
(membre: Membre): AppThunk =>
async (dispatch) => {
dispatch(getRequesting())
const { error, data } = await membreSet(membre)
if (error) {
dispatch(getFailure(error.message))
toast.error(`Erreur lors de la modification d'un membre: ${error.message}`, {
position: "top-center",
autoClose: 6000,
hideProgressBar: true,
closeOnClick: true,
pauseOnHover: true,
draggable: true,
progress: undefined,
})
} else {
dispatch(getSuccess(data as Membre))
toast.success("Membre modifié !", {
position: "top-center",
autoClose: 3000,
hideProgressBar: true,
closeOnClick: true,
pauseOnHover: true,
draggable: true,
progress: undefined,
})
}
}