diff --git a/js/api.js b/js/api.js index 7d81418..a8ae841 100644 --- a/js/api.js +++ b/js/api.js @@ -80,8 +80,11 @@ export function deleteRequest(state, url) { }); } -// PATCH /teams/{ id } -// { 'name' : ... } +export function patchRequest(state, url, data) { + return axios.patch(api_url + url, data, { + headers : generateHeaders(state) + }); +} function generateHeaders(state) { if(state.userinfo.isSignedIn) { @@ -260,7 +263,6 @@ const reducer_tournamentinfo = (state = defaultstate_tournamentinfo, action) => storeOptionalToken(resp); action.parameters.successCallback(); }).catch((error) => { - console.log(error); action.parameters.errorCallback(); }); return Object.assign({}, state, {}); @@ -275,7 +277,17 @@ const reducer_tournamentinfo = (state = defaultstate_tournamentinfo, action) => teams : action.parameters.teams }); case actiontypes_tournamentinfo.MODIFY_TOURNAMENT: - + patchRequest(action.state, '/teams/' + action.parameters.teamid, { + name: action.parameters.name + }).then((resp) => { + storeOptionalToken(resp); + action.parameters.onSuccess(); + }).catch((error) => { + if(error.response) { + storeOptionalToken(error.response); + } + action.parameters.onError(); + }); return Object.assign({}, state, {}); case actiontypes_tournamentinfo.MODIFY_TOURNAMENT_SUCCESS: @@ -371,6 +383,19 @@ export function requestTournament(code, successCallback, errorCallback) { }); } +export function updateTeamName(team, successCB, errorCB) { + __store.dispatch({ + type: actiontypes_tournamentinfo.MODIFY_TOURNAMENT, + parameters: { + teamid: team.id, + name: team.name, + onSuccess : successCB, + onError : errorCB + }, + state: __store.getState() + }); +} + function rehydrateApplicationState() { const persistedState = localStorage.getItem('reduxState') ? JSON.parse(localStorage.getItem('reduxState')) : diff --git a/package.json b/package.json index 50ad571..601fd1b 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "next": "^7.0.2", "react": "^16.6.1", "react-dom": "^16.6.1", + "react-notify-toast": "^0.5.0", "react-redux": "^5.1.1", "reactstrap": "^6.5.0", "redux": "^4.0.1", diff --git a/pages/tournament-edit.js b/pages/tournament-edit.js index 7d56a1e..d1a85d6 100644 --- a/pages/tournament-edit.js +++ b/pages/tournament-edit.js @@ -1,6 +1,8 @@ import Head from 'next/head'; import React from 'react'; import 'bootstrap/dist/css/bootstrap.min.css'; +import { connect } from 'react-redux'; +import { notify } from 'react-notify-toast'; import { requestTournament } from '../js/api'; import { BigImage, Footer, TurniereNavigation } from '../js/CommonComponents.js'; @@ -15,7 +17,9 @@ import { Table } from 'reactstrap'; -import { connect } from 'react-redux'; +import { + updateTeamName +} from '../js/api'; import '../static/everypage.css'; import '../static/css/index.css'; @@ -237,8 +241,8 @@ class EditTeamNamesForm extends React.Component { { teams.map((team, index) =>