From 6af5f9dc72caec6d17d43adc71f8557669e93efe Mon Sep 17 00:00:00 2001 From: Jonny Date: Tue, 23 Apr 2019 11:27:02 +0200 Subject: [PATCH 1/2] Add logic for creation of the data for group stages --- pages/create.js | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/pages/create.js b/pages/create.js index 77ed3aa..799252e 100644 --- a/pages/create.js +++ b/pages/create.js @@ -217,7 +217,8 @@ class CreateTournamentForm extends React.Component { 'name': this.state.name, 'description': this.state.description, 'public': this.state.public, - 'teams': this.createTeamArray(this.state.teams) + 'group_stage': this.state.groupPhaseEnabled, + 'teams': this.createTeamArray(this.state.groupPhaseEnabled, this.state.groups, this.state.teams) }, () => { notify.show('Das Turnier wurde erfolgreich erstellt.', 'success', 5000); }, () => { @@ -225,11 +226,22 @@ class CreateTournamentForm extends React.Component { }); } - createTeamArray(teamnames) { + createTeamArray(/* boolean */ groupphase, /* String[][] */ groups, /* String[] */ teams) { let result = []; - for(let i = 0; i < teamnames.length; i++) { - result[i] = { 'name': teamnames[i] }; + if(groupphase) { + for(let groupNumber = 0; groupNumber < groups.length; groupNumber++) { + for(let groupMember = 0; groupMember < groups[groupNumber].length; groupMember++) { + result[result.length] = { + 'name': groups[groupNumber][groupMember], + 'group': groupNumber + }; + } + } + } else { + for(let i = 0; i < teams.length; i++) { + result[i] = { 'name': teams[i] }; + } } return result; From 2217212a4aad29158a90b431e59a82535512dd5c Mon Sep 17 00:00:00 2001 From: JP1998 Date: Tue, 23 Apr 2019 23:52:22 +0200 Subject: [PATCH 2/2] Refactoring the createTeamArray-method --- pages/create.js | 51 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 34 insertions(+), 17 deletions(-) diff --git a/pages/create.js b/pages/create.js index 799252e..0eb32b3 100644 --- a/pages/create.js +++ b/pages/create.js @@ -218,7 +218,7 @@ class CreateTournamentForm extends React.Component { 'description': this.state.description, 'public': this.state.public, 'group_stage': this.state.groupPhaseEnabled, - 'teams': this.createTeamArray(this.state.groupPhaseEnabled, this.state.groups, this.state.teams) + 'teams': createTeamArray(this.state.groupPhaseEnabled, this.state.groups, this.state.teams) }, () => { notify.show('Das Turnier wurde erfolgreich erstellt.', 'success', 5000); }, () => { @@ -226,24 +226,41 @@ class CreateTournamentForm extends React.Component { }); } - createTeamArray(/* boolean */ groupphase, /* String[][] */ groups, /* String[] */ teams) { - let result = []; +} - if(groupphase) { - for(let groupNumber = 0; groupNumber < groups.length; groupNumber++) { - for(let groupMember = 0; groupMember < groups[groupNumber].length; groupMember++) { - result[result.length] = { - 'name': groups[groupNumber][groupMember], - 'group': groupNumber - }; - } - } - } else { - for(let i = 0; i < teams.length; i++) { - result[i] = { 'name': teams[i] }; +/** + * This method creates an array of team objects that conform to the currently + * api specs available at https://apidoc.turnie.re/ + * + * @param {boolean} groupphase Whether a group phase is to be created + * @param {string[][]} groups The teams split into the groups that are + * to be used in the group phase of the tournament. Please note that + * according to the api every team can only occur once (not enforced + * by this method) and that every team from {@param teams} will have + * to be in one of the groups (also not enforced by this method, but + * might lead to inconsistencies) + * @param {string[]} teams An array containing all names of the teams + * that are to be created for the tournament + * @return {Object[]} an array of teams that can be directly sent to the + * backend + */ +function createTeamArray(groupphase, groups, teams) { + let result = []; + + if(groupphase) { + for(let groupNumber = 0; groupNumber < groups.length; groupNumber++) { + for(let groupMember = 0; groupMember < groups[groupNumber].length; groupMember++) { + result[result.length] = { + 'name': groups[groupNumber][groupMember], + 'group': groupNumber + }; } } - - return result; + } else { + for(let i = 0; i < teams.length; i++) { + result[i] = { 'name': teams[i] }; + } } + + return result; }