import { get, post, del } from '../api';
function initAuthActions(store, _router) {
	async function fetchMe({ commit }) {
		try {
			const user = await get('/session');
			commit('setUser', user);
			return user;
		} catch (error) {
			// continue as guest
			return null;
		}
	}
	async function login({ commit }, credentials) {
		const user = await post('/session', credentials);
		commit('setUser', user);
		await store.dispatch('fetchNotifications');
		return user;
	}
	async function signup({ commit }, credentials) {
		const user = await post('/users', credentials);
		commit('setUser', user);
		return user;
	}
	async function logout({ commit }) {
		await del('/session');
		commit('setUser', null);
	}
	return {
		fetchMe,
		login,
		logout,
		signup,
	};
}
export default initAuthActions;