import axios from '@/axios-client.js'; import { parseDate } from '@/utils'; const projects = { namespaced: true, state: { currentPage: 1, projects: [], project_slug: null, }, getters: { project: state => state.projects.find((project) => project.slug === state.project_slug), project_types: state => state.projects.filter(projet => projet.is_project_type), project_user: state => state.projects.filter(projet => projet.creator === state.user.id), }, mutations: { SET_CURRENT_PAGE (state, payload) { state.currentPage = payload; }, SET_PROJECTS(state, projects) { state.projects = projects; }, ADD_PROJECT(state, project) { state.projects = [project, ...state.projects]; }, SET_PROJECT_SLUG(state, slug) { state.project_slug = slug; }, }, actions: { async GET_ALL_PROJECTS({ rootState, commit }) { try { const response = await axios .get(`${rootState.configuration.VUE_APP_DJANGO_API_BASE}projects/`); if (response.status === 200 && response.data) { const orderedProjects = response.data.sort((a, b) => parseDate(b.created_on) - parseDate(a.created_on)); commit('SET_PROJECTS', orderedProjects); } } catch (error) { console.error(error); throw error; } }, } }; export default projects;