import { configureAxios, request } from "../requests"; import { addAlertOk, dismissAlert } from "./alerts"; import { getManagedPolochons } from "./polochon"; export function userLogout() { return { type: "USER_LOGOUT", }; } export function loginUser(username, password) { return request( "USER_LOGIN", configureAxios().post("/users/login", { username: username.trim(), password: password, }), [() => dismissAlert()] ); } export function updateUser(config) { return request("USER_UPDATE", configureAxios().post("/users/edit", config), [ addAlertOk("User updated"), () => getManagedPolochons(), ]); } export function userSignUp(config) { if (config.username) { config.username = config.username.trim(); } return request( "USER_SIGNUP", configureAxios().post("/users/signup", config), [() => loginUser(config.username, config.password)] ); } export function getUserInfos() { return request("GET_USER", configureAxios().get("/users/details")); } export function setUserToken(token) { return { type: "USER_SET_TOKEN", payload: { token: token, }, }; } export function getUserTokens() { return request("GET_USER_TOKENS", configureAxios().get("/users/tokens")); } export function deleteUserToken(token) { return request( "DELETE_USER_TOKEN", configureAxios().delete(`/users/tokens/${token}`), [() => getUserTokens()] ); } export function getUserModules() { return request( "GET_USER_MODULES", configureAxios().get("/users/modules/status") ); }