Client - delete a workout

This commit is contained in:
Sam
2021-09-28 09:10:01 +02:00
parent bde004f83b
commit 3dbdd5cb6b
20 changed files with 234 additions and 20 deletions

View File

@ -1,6 +1,7 @@
import { ActionContext, ActionTree } from 'vuex'
import authApi from '@/api/authApi'
import router from '@/router'
import { ROOT_STORE, WORKOUTS_STORE } from '@/store/constants'
import { IRootState } from '@/store/modules/root/types'
import {
@ -107,4 +108,19 @@ export const actions: ActionTree<IWorkoutsState, IRootState> &
context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)
)
},
[WORKOUTS_STORE.ACTIONS.DELETE_WORKOUT](
context: ActionContext<IWorkoutsState, IRootState>,
payload: IWorkoutPayload
): void {
context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)
authApi
.delete(`workouts/${payload.workoutId}`)
.then(() => {
context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)
router.push('/')
})
.catch((error) => {
handleError(context, error)
})
},
}

View File

@ -1,4 +1,5 @@
export enum WorkoutsActions {
DELETE_WORKOUT = 'DELETE_WORKOUT',
GET_CALENDAR_WORKOUTS = 'GET_CALENDAR_WORKOUTS',
GET_USER_WORKOUTS = 'GET_USER_WORKOUTS',
GET_WORKOUT_DATA = 'GET_WORKOUT_DATA',

View File

@ -1,7 +1,6 @@
import { MutationTree } from 'vuex'
import { WORKOUTS_STORE } from '@/store/constants'
import { initialWorkoutValue } from '@/store/modules/workouts/state'
import {
IWorkoutsState,
TWorkoutsMutations,
@ -50,6 +49,11 @@ export const mutations: MutationTree<IWorkoutsState> & TWorkoutsMutations = {
state.user_workouts = []
},
[WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT](state: IWorkoutsState) {
state.workoutData = initialWorkoutValue
state.workoutData = {
gpx: '',
loading: false,
workout: <IWorkout>{},
chartData: [],
}
},
}

View File

@ -1,15 +1,13 @@
import { IWorkoutsState } from '@/store/modules/workouts/types'
import { IWorkout } from '@/types/workouts'
export const initialWorkoutValue = {
gpx: '',
loading: false,
workout: <IWorkout>{},
chartData: [],
}
export const workoutsState: IWorkoutsState = {
calendar_workouts: [],
user_workouts: [],
workoutData: initialWorkoutValue,
workoutData: {
gpx: '',
loading: false,
workout: <IWorkout>{},
chartData: [],
},
}

View File

@ -34,6 +34,10 @@ export interface IWorkoutsActions {
context: ActionContext<IWorkoutsState, IRootState>,
payload: IWorkoutPayload
): void
[WORKOUTS_STORE.ACTIONS.DELETE_WORKOUT](
context: ActionContext<IWorkoutsState, IRootState>,
payload: IWorkoutPayload
): void
}
export interface IWorkoutsGetters {