Client - delete a workout
This commit is contained in:
@ -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)
|
||||
})
|
||||
},
|
||||
}
|
||||
|
@ -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',
|
||||
|
@ -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: [],
|
||||
}
|
||||
},
|
||||
}
|
||||
|
@ -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: [],
|
||||
},
|
||||
}
|
||||
|
@ -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 {
|
||||
|
Reference in New Issue
Block a user