move
This commit is contained in:
125
src/store/modules/user/actions.js
Normal file
125
src/store/modules/user/actions.js
Normal file
@@ -0,0 +1,125 @@
|
||||
import axios from 'axios'
|
||||
import router from '../../../router'
|
||||
|
||||
export default {
|
||||
cleanHistory(context) {
|
||||
axios.delete(context.rootGetters.server + "/api/user/history", context.rootGetters.headers).then(() => {
|
||||
context.getters["user/history"] = [];
|
||||
});
|
||||
},
|
||||
load(context) {
|
||||
return new Promise((resolve, reject) => {
|
||||
axios.get(context.rootGetters.server + "/api/user/login", context.rootGetters.headers).then((res) => {
|
||||
context.commit("load", res.data);
|
||||
context.rootState["player"].shuffle = res.data.player.shuffle;
|
||||
context.rootState["player"].repeatType = res.data.player.repeat;
|
||||
resolve();
|
||||
}).catch(err => {
|
||||
context.commit("resetToken");
|
||||
reject(err);
|
||||
});
|
||||
});
|
||||
},
|
||||
login(context, user) {
|
||||
return new Promise((resolve, reject) => {
|
||||
axios.post(context.rootGetters.server + "/api/user/login", {
|
||||
username: user.username,
|
||||
password: user.password,
|
||||
})
|
||||
.then((res) => {
|
||||
context.commit("load", res.data);
|
||||
context.dispatch("setToken", res.data.token).then(() => {
|
||||
resolve();
|
||||
});
|
||||
})
|
||||
.catch((err) => {
|
||||
context.commit("resetToken");
|
||||
reject(err.response);
|
||||
});
|
||||
});
|
||||
},
|
||||
logout(context) {
|
||||
context.commit("resetToken");
|
||||
localStorage.setItem("token", "");
|
||||
router.push("/login")
|
||||
|
||||
this.dispatch("albums/clear");
|
||||
this.dispatch("artists/clear");
|
||||
this.dispatch("boxes/clear");
|
||||
this.dispatch("radios/clear");
|
||||
|
||||
this.commit("tracks/resetSelectedTrack");
|
||||
this.commit("radios/resetSelectedRadio");
|
||||
this.commit("videos/resetSelectedVideo");
|
||||
},
|
||||
toggleFavourite(context, item) {
|
||||
let fav = context.state.favourites;
|
||||
let f = fav.find(f => f.itemId == item.itemId);
|
||||
if (f == undefined) {
|
||||
axios.post(context.rootGetters.server + "/api/user/favourites", item, context.rootGetters.headers);
|
||||
fav.push(item);
|
||||
} else {
|
||||
axios.delete(context.rootGetters.server + "/api/user/favourites?itemId=" + item.itemId, context.rootGetters.headers);
|
||||
fav.splice(fav.indexOf(f), 1);
|
||||
}
|
||||
},
|
||||
setToken(context, token) {
|
||||
return new Promise((resolve) => {
|
||||
localStorage.setItem("token", token);
|
||||
context.commit("setToken", token);
|
||||
resolve();
|
||||
});
|
||||
},
|
||||
saveHistoryItem(context, item) {
|
||||
if (context.state._id == -1) {
|
||||
return;
|
||||
}
|
||||
axios
|
||||
.post(context.rootGetters.server + "/api/user/history", item, context.rootGetters.headers)
|
||||
.then((res) => {
|
||||
context.commit("setHistory", res.data);
|
||||
});
|
||||
},
|
||||
savePlayerSettings(context) {
|
||||
let body = {
|
||||
repeat: context.rootGetters["player/repeatType"],
|
||||
shuffle: context.rootGetters["player/shuffle"]
|
||||
};
|
||||
axios
|
||||
.put(context.rootGetters.server + "/api/user/settings", body, context.rootGetters.headers);
|
||||
},
|
||||
update(context, user) {
|
||||
return new Promise((resolve, reject) => {
|
||||
axios.post(
|
||||
context.rootGetters.server + "/api/user/update",
|
||||
{
|
||||
oldPassword: user.oldPass,
|
||||
newPassword: user.newPass,
|
||||
},
|
||||
context.rootGetters.headers
|
||||
).then((res) => {
|
||||
resolve(res);
|
||||
}).catch((err) => {
|
||||
reject(err);
|
||||
});
|
||||
});
|
||||
},
|
||||
updateConfig(context) {
|
||||
axios.post(context.rootGetters.server + "/api/user/update",
|
||||
{
|
||||
mobile_bpm: context.getters["settings"].mobile_bpm,
|
||||
desktop_bpm: context.getters["settings"].desktop_bpm,
|
||||
video_lang: context.getters["settings"].video_lang,
|
||||
video_quality: context.getters["settings"].video_quality,
|
||||
fullname: context.getters.user.fullname,
|
||||
},
|
||||
context.rootGetters.headers
|
||||
);
|
||||
},
|
||||
useGuestAccount(context) {
|
||||
return new Promise((resolve) => {
|
||||
context.commit("setGuestAccount");
|
||||
resolve();
|
||||
})
|
||||
}
|
||||
}
|
||||
29
src/store/modules/user/getters.js
Normal file
29
src/store/modules/user/getters.js
Normal file
@@ -0,0 +1,29 @@
|
||||
export default {
|
||||
favourites(state) {
|
||||
return state.favourites;
|
||||
},
|
||||
history(state) {
|
||||
return state.history;
|
||||
},
|
||||
roles(state) {
|
||||
return state.roles;
|
||||
},
|
||||
settings(state) {
|
||||
return state.settings;
|
||||
},
|
||||
token(state) {
|
||||
return state.token;
|
||||
},
|
||||
user(state) {
|
||||
return state;
|
||||
},
|
||||
isGuest(state) {
|
||||
return state._id == -1;
|
||||
},
|
||||
isAdministrator(state) {
|
||||
return state.roles.includes("admin");
|
||||
},
|
||||
isModerator(state) {
|
||||
return state.roles.includes("admin") || state.roles.includes("moderator");
|
||||
},
|
||||
}
|
||||
12
src/store/modules/user/index.js
Normal file
12
src/store/modules/user/index.js
Normal file
@@ -0,0 +1,12 @@
|
||||
import state from './state.js';
|
||||
import getters from './getters.js';
|
||||
import mutations from './mutations.js';
|
||||
import actions from './actions.js';
|
||||
|
||||
export default {
|
||||
namespaced: true,
|
||||
state,
|
||||
getters,
|
||||
mutations,
|
||||
actions
|
||||
}
|
||||
41
src/store/modules/user/mutations.js
Normal file
41
src/store/modules/user/mutations.js
Normal file
@@ -0,0 +1,41 @@
|
||||
export default {
|
||||
load(state, user) {
|
||||
user.history.forEach(item => {
|
||||
item._id = item.id;
|
||||
})
|
||||
state.settings.mobile_bpm = user.mobile_bpm;
|
||||
state.settings.desktop_bpm = user.desktop_bpm;
|
||||
state.settings.video_lang = user.video_lang;
|
||||
state.settings.video_quality = user.video_quality;
|
||||
state.name = user.name;
|
||||
state.roles = user.roles;
|
||||
state.favourites = user.favourites;
|
||||
state.history = user.history;
|
||||
state._id = user._id;
|
||||
},
|
||||
resetToken(state) {
|
||||
state.token = "";
|
||||
},
|
||||
setToken(state, token) {
|
||||
state.token = token;
|
||||
},
|
||||
setHistory(state, history) {
|
||||
history.forEach(item => {
|
||||
item._id = item.id;
|
||||
});
|
||||
state.history = history;
|
||||
},
|
||||
setSettings(state, settings) {
|
||||
state.settings = settings;
|
||||
},
|
||||
setGuestAccount(state) {
|
||||
state.settings.mobile_bpm = 64;
|
||||
state.settings.desktop_bpm = 128;
|
||||
state.settings.video_lang = "ENG";
|
||||
state.settings.video_quality = "realtime";
|
||||
state.name = 'Guest';
|
||||
state.roles = ['guest'];
|
||||
state.history = [];
|
||||
state._id = "-1";
|
||||
}
|
||||
}
|
||||
13
src/store/modules/user/state.js
Normal file
13
src/store/modules/user/state.js
Normal file
@@ -0,0 +1,13 @@
|
||||
export default {
|
||||
favourites: [],
|
||||
history: [],
|
||||
roles: [],
|
||||
token: "",
|
||||
name: "",
|
||||
settings: {
|
||||
mobile_bpm: 0,
|
||||
desktop_bpm: 0,
|
||||
video_lang: "ENG",
|
||||
video_quality: "480"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user