|
|
@ -16,6 +16,8 @@ export enum Mutation { |
|
|
|
|
|
|
|
FreeMovies = "FREE_MOVIES", |
|
|
|
StoreMovies = "STORE_MOVIES", |
|
|
|
RemoveMovieTicket = "REMOVE_MOVIE_TICKET", |
|
|
|
StoreMovieTicket = "STORE_MOVIE_TICKET", |
|
|
|
UpdateMovieTickets = "UPDATE_MOVIE_TICKETS" |
|
|
|
} |
|
|
|
|
|
|
@ -31,6 +33,8 @@ export type MutationsTypes<S = IState> = { |
|
|
|
// Movie Store
|
|
|
|
[Mutation.FreeMovies] : (state: S, movies: IMovie[]) => void, |
|
|
|
[Mutation.StoreMovies] : (state: S, movies: IMovie[]) => void, |
|
|
|
[Mutation.RemoveMovieTicket] : (state: S, ticketId: number) => void, |
|
|
|
[Mutation.StoreMovieTicket] : (state: S, payload: { tmdbId: string|number, ticketId: number}) => void, |
|
|
|
[Mutation.UpdateMovieTickets]: (state: S) => void |
|
|
|
} |
|
|
|
|
|
|
@ -131,6 +135,32 @@ export const mutations: MutationsTypes & MutationTree<IState> = { |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
/** |
|
|
|
* Remove the given movie ticket |
|
|
|
*/ |
|
|
|
[Mutation.RemoveMovieTicket](state, ticketId) { |
|
|
|
let tmdbId = state.movieTickets[ticketId]; |
|
|
|
if (tmdbId === undefined) { |
|
|
|
return; |
|
|
|
} |
|
|
|
delete state.movieTickets[ticketId]; |
|
|
|
state.movies[tmdbId].movie.ticketId = null; |
|
|
|
state.movies[tmdbId].movie.progress = null; |
|
|
|
}, |
|
|
|
|
|
|
|
/** |
|
|
|
* Store a new ticket for the given movie |
|
|
|
*/ |
|
|
|
[Mutation.StoreMovieTicket](state, {tmdbId, ticketId}) { |
|
|
|
let entry = state.movies[tmdbId]; |
|
|
|
if (entry === undefined) { |
|
|
|
return; |
|
|
|
} |
|
|
|
entry.movie.ticketId = ticketId; |
|
|
|
entry.movie.progress = 0; |
|
|
|
state.movieTickets[ticketId] = <string>tmdbId; |
|
|
|
}, |
|
|
|
|
|
|
|
/** |
|
|
|
* Update the cached movie tickets in the store |
|
|
|
*/ |
|
|
|