scinote-web/app/javascript/packs/shared/actions/TeamsActions.js

51 lines
1.3 KiB
JavaScript
Raw Normal View History

import axios from "../../app/axios";
2017-08-03 22:03:15 +08:00
import _ from "lodash";
import { TEAMS_PATH, CHANGE_TEAM_PATH } from "../../app/routes";
2017-08-09 21:21:02 +08:00
import { GET_LIST_OF_TEAMS, SET_CURRENT_TEAM } from "../../app/action_types";
2017-08-03 22:03:15 +08:00
function addTeamsData(data) {
return {
type: GET_LIST_OF_TEAMS,
payload: data
};
}
export function setCurrentUser(user) {
return {
2017-08-07 19:51:22 +08:00
user,
type: SET_CURRENT_TEAM
2017-08-03 22:03:15 +08:00
};
}
export function getTeamsList() {
return dispatch => {
axios
.get(TEAMS_PATH, { withCredentials: true })
.then(response => {
2017-08-25 14:54:32 +08:00
const teams = response.data.teams.collection;
2017-08-03 22:03:15 +08:00
dispatch(addTeamsData(teams));
2017-08-25 14:54:32 +08:00
const currentTeam = _.find(teams, team => team.current_team);
dispatch(setCurrentUser(currentTeam));
2017-08-03 22:03:15 +08:00
})
.catch(error => {
console.log("get Teams Error: ", error);
});
};
}
export function changeTeam(team_id) {
return dispatch => {
axios
.post(CHANGE_TEAM_PATH, { team_id }, { withCredentials: true })
.then(response => {
2017-08-09 18:46:04 +08:00
let teams = _.values(response.data);
2017-08-03 22:03:15 +08:00
dispatch(addTeamsData(teams));
let current_team = _.find(teams, team => team.current_team);
dispatch(setCurrentUser(current_team));
})
.catch(error => {
console.log("get Teams Error: ", error);
});
};
}