| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 | 
							- import { Toast } from "vue-roaster";
 
- import io from "../io";
 
- // when Vuex needs to interact with socket.io
 
- export default {
 
- 	register(user) {
 
- 		return new Promise((resolve, reject) => {
 
- 			const { username, email, password, recaptchaToken } = user;
 
- 			io.getSocket(socket => {
 
- 				socket.emit(
 
- 					"users.register",
 
- 					username,
 
- 					email,
 
- 					password,
 
- 					recaptchaToken,
 
- 					res => {
 
- 						if (res.status === "success") {
 
- 							if (res.SID) {
 
- 								return lofig.get("cookie", cookie => {
 
- 									const date = new Date();
 
- 									date.setTime(
 
- 										new Date().getTime() +
 
- 											2 * 365 * 24 * 60 * 60 * 1000
 
- 									);
 
- 									const secure = cookie.secure
 
- 										? "secure=true; "
 
- 										: "";
 
- 									document.cookie = `SID=${
 
- 										res.SID
 
- 									}; expires=${date.toGMTString()}; domain=${
 
- 										cookie.domain
 
- 									}; ${secure}path=/`;
 
- 									return resolve({ status: "success" });
 
- 								});
 
- 							}
 
- 							return reject(new Error("You must login"));
 
- 						}
 
- 						return reject(new Error(res.message));
 
- 					}
 
- 				);
 
- 			});
 
- 		});
 
- 	},
 
- 	login(user) {
 
- 		return new Promise((resolve, reject) => {
 
- 			const { email, password } = user;
 
- 			io.getSocket(socket => {
 
- 				socket.emit("users.login", email, password, res => {
 
- 					if (res.status === "success") {
 
- 						return lofig.get("cookie", cookie => {
 
- 							const date = new Date();
 
- 							date.setTime(
 
- 								new Date().getTime() +
 
- 									2 * 365 * 24 * 60 * 60 * 1000
 
- 							);
 
- 							const secure = cookie.secure ? "secure=true; " : "";
 
- 							let domain = "";
 
- 							if (cookie.domain !== "localhost")
 
- 								domain = ` domain=${cookie.domain};`;
 
- 							document.cookie = `SID=${
 
- 								res.SID
 
- 							}; expires=${date.toGMTString()}; ${domain}${secure}path=/`;
 
- 							return resolve({ status: "success" });
 
- 						});
 
- 					}
 
- 					return reject(new Error(res.message));
 
- 				});
 
- 			});
 
- 		});
 
- 	},
 
- 	logout() {
 
- 		return new Promise((resolve, reject) => {
 
- 			io.getSocket(socket => {
 
- 				socket.emit("users.logout", result => {
 
- 					if (result.status === "success") {
 
- 						document.cookie =
 
- 							"SID=;expires=Thu, 01 Jan 1970 00:00:01 GMT;";
 
- 						return window.location.reload();
 
- 					}
 
- 					Toast.methods.addToast(result.message, 4000);
 
- 					return reject(new Error(result.message));
 
- 				});
 
- 			});
 
- 		});
 
- 	}
 
- };
 
 
  |