Grégoire Delattre bcadc48d5a Launch prettier with the --fix option
They've changed their default settings, this changes a lot of stuff in
our code base.
2020-04-01 17:55:34 +02:00

111 lines
2.2 KiB
JavaScript

import { configureAxios, request } from "../requests";
import { addAlertOk } from "./alerts";
import { sendNotification } from "./notifications";
export function updateLastMovieFetchUrl(url) {
return {
type: "UPDATE_LAST_MOVIE_FETCH_URL",
payload: {
url: url,
},
};
}
export function selectMovie(imdbId) {
return {
type: "SELECT_MOVIE",
payload: {
imdbId,
},
};
}
export function updateFilter(filter) {
return {
type: "MOVIE_UPDATE_FILTER",
payload: {
filter,
},
};
}
export function getMovieExploreOptions() {
return request(
"MOVIE_GET_EXPLORE_OPTIONS",
configureAxios().get("/movies/explore/options")
);
}
export function getMovieDetails(imdbId) {
return request(
"MOVIE_GET_DETAILS",
configureAxios().post(`/movies/${imdbId}/refresh`),
null,
{
imdbId,
}
);
}
export function deleteMovie(imdbId, lastFetchUrl) {
return request("MOVIE_DELETE", configureAxios().delete(`/movies/${imdbId}`), [
fetchMovies(lastFetchUrl),
addAlertOk("Movie deleted"),
]);
}
export function movieWishlistToggle(imdbId, currentState) {
if (currentState == true) {
return deleteMovieFromWishlist(imdbId);
} else {
return addMovieToWishlist(imdbId);
}
}
export function addMovieToWishlist(imdbId) {
return request(
"MOVIE_ADD_TO_WISHLIST",
configureAxios().post(`/wishlist/movies/${imdbId}`),
[updateMovieWishlistStore(imdbId, true)]
);
}
export function deleteMovieFromWishlist(imdbId) {
return request(
"MOVIE_DELETE_FROM_WISHLIST",
configureAxios().delete(`/wishlist/movies/${imdbId}`),
[updateMovieWishlistStore(imdbId, false)]
);
}
export function updateMovieWishlistStore(imdbId, wishlisted) {
return {
type: "MOVIE_UPDATE_STORE_WISHLIST",
payload: {
imdbId,
wishlisted,
},
};
}
export function fetchMovies(url) {
return request("MOVIE_LIST_FETCH", configureAxios().get(url), [
updateLastMovieFetchUrl(url),
]);
}
export const newMovieEvent = (data) => {
return (dispatch) => {
dispatch(
sendNotification({
icon: "film",
autohide: true,
delay: 10000,
title: `${data.title} added to the library`,
imageUrl: data.thumb,
})
);
};
};