123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- import auth from "../../api/auth.js";
- import validation from "../../validation.js";
- const state = {};
- const getters = {};
- const actions = {};
- const mutations = {};
- const modules = {
- auth: {
- namespaced: true,
- state: {},
- getters: {},
- actions: {
- register: ({ commit }, user, recaptchaId) => {
- return new Promise((resolve, reject) => {
- const { username, email, password } = user;
- if (!email || !username || !password)
- return reject({
- status: "error",
- message: "Please fill in all fields"
- });
- if (!validation.isLength(email, 3, 254))
- return reject({
- status: "error",
- message: "Email must have between 3 and 254 characters."
- });
- if (
- email.indexOf("@") !== email.lastIndexOf("@") ||
- !validation.regex.emailSimple.test(email)
- )
- return reject({
- status: "error",
- message: "Invalid email format."
- });
- if (!validation.isLength(username, 2, 32))
- return reject({
- status: "error",
- message: "Username must have between 2 and 32 characters."
- });
- if (!validation.regex.azAZ09_.test(username))
- return reject({
- status: "error",
- message:
- "Invalid username format. Allowed characters: a-z, A-Z, 0-9 and _."
- });
- if (!validation.isLength(password, 6, 200))
- return reject({
- status: "error",
- message: "Password must have between 6 and 200 characters."
- });
- if (!validation.regex.password.test(password))
- return reject({
- status: "error",
- message:
- "Invalid password format. Must have one lowercase letter, one uppercase letter, one number and one special character."
- });
- auth
- .register(user, recaptchaId)
- .then(res => {
- return resolve({
- status: "success",
- message: "Account registered!"
- });
- })
- .catch(err => {
- return reject({ status: "error", message: err.message });
- });
- });
- },
- login: ({ commit }, user) => {
- return new Promise((resolve, reject) => {
- auth
- .login(user)
- .then(res => {
- return resolve({
- status: "success",
- message: "Logged in!"
- });
- })
- .catch(err => {
- return reject({ status: "error", message: err.message });
- });
- });
- }
- },
- mutations: {}
- },
- playlists: {
- namespaced: true,
- state: {
- editing: ""
- },
- getters: {},
- actions: {
- editPlaylist: ({ commit }, id) => commit("editPlaylist", id)
- },
- mutations: {
- editPlaylist(state, id) {
- state.editing = id;
- }
- }
- }
- };
- export default {
- namespaced: true,
- state,
- getters,
- actions,
- mutations,
- modules
- };
|