/** * Copyright (C) 2018 Noah Loomans * * This file is part of rooster.hetmml.nl. * * rooster.hetmml.nl is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * rooster.hetmml.nl is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with rooster.hetmml.nl. If not, see . * */ import moment from 'moment'; import queryString from 'query-string'; import users from '../users'; import purifyWeek from './purifyWeek'; export function userFromMatch(match) { const user = `${match.params.type}/${match.params.value}`; if (!users.allIds.includes(user)) { return null; } return user; } export function weekFromLocation(location) { const weekStr = queryString.parse(location.search).week; if (!weekStr) { return moment().week(); } return purifyWeek(parseInt(weekStr, 10)); } export function setUser(userId, location, history) { const query = location.search; history.push(`/${userId}${query}`); } export function setWeek(week, location, history) { const query = queryString.stringify({ ...queryString.parse(location.search), week, }); history.push(`${location.pathname}?${query}`); }