Skip to content
Snippets Groups Projects
Commit 4504265d authored by ForkBench's avatar ForkBench
Browse files

Adding updates in frontend, and interface implementations in backend

parent 5650f072
No related branches found
No related tags found
No related merge requests found
......@@ -28,9 +28,25 @@ func CreateCompetition(competitionID uint8, competitionName string, competitionC
c.CompetitionStages = map[uint8]*Stage{}
c.CompetitionPlayers = map[uint16]*Player{}
c.InitCompetition()
return c
}
func (c *Competition) InitCompetition() bool {
if c.CompetitionState != REGISTERING {
return false
}
// Add new stage
var poolStage = CreateSeedingStage(0, 300, 300)
// TODO: Max player number should be dynamic
c.AddStage(poolStage)
return true
}
func (c *Competition) StartCompetition() bool {
if c.CompetitionState != REGISTERING {
return false
......@@ -78,11 +94,11 @@ func (c *Competition) RemovePlayer(player *Player) bool {
}
func (c *Competition) AddPlayerToStage(player Player, stage Stage) bool {
return stage.AddPlayer(player)
return stage.AddPlayer(&player)
}
func (c *Competition) RemovePlayerFromStage(player Player, stage Stage) bool {
return stage.RemovePlayer(player)
return stage.RemovePlayer(&player)
}
func (c *Competition) UpdatePlayer(player *Player) bool {
......@@ -95,3 +111,13 @@ func (c *Competition) UpdatePlayer(player *Player) bool {
return true
}
func (c *Competition) AddStage(stage Stage) bool {
if c.CompetitionState != REGISTERING {
return false
}
c.CompetitionStages[stage.GetID()] = &stage
return true
}
......@@ -26,7 +26,7 @@ func (s *SeedingStage) String() string {
return str
}
func CreateSeedingStage(seedingStageID uint8, enteringPlayerNumber uint16, leavingPlayerNumber uint16) SeedingStage {
func CreateSeedingStage(seedingStageID uint8, enteringPlayerNumber uint16, leavingPlayerNumber uint16) *SeedingStage {
var s SeedingStage
s.SeedingStageID = seedingStageID
......@@ -35,16 +35,16 @@ func CreateSeedingStage(seedingStageID uint8, enteringPlayerNumber uint16, leavi
s.SeedingState = IDLE
s.SeedingSize = 0
return s
return &s
}
// From interface
func (s *SeedingStage) PlayerPosition(player Player) uint16 {
func (s *SeedingStage) PlayerPosition(player *Player) uint16 {
return s.SeedingSeedings[player.PlayerID].SeedingPosition
}
// From interface
func (s *SeedingStage) AddPlayer(player Player) bool {
func (s *SeedingStage) AddPlayer(player *Player) bool {
if s.SeedingState != REGISTERING {
return false
}
......@@ -55,7 +55,7 @@ func (s *SeedingStage) AddPlayer(player Player) bool {
s.SeedingSeedings[player.PlayerID] = &Seeding{
SeedingPosition: s.SeedingSize,
SeedingPlayer: &player,
SeedingPlayer: player,
}
s.SeedingSize++
......@@ -64,7 +64,7 @@ func (s *SeedingStage) AddPlayer(player Player) bool {
}
// From interface
func (s *SeedingStage) RemovePlayer(player Player) bool {
func (s *SeedingStage) RemovePlayer(player *Player) bool {
if s.SeedingState != REGISTERING {
return false
}
......@@ -91,11 +91,11 @@ func (s *SeedingStage) GetState() State {
}
// From interface
func (s *SeedingStage) GetPlayers() []Player {
players := []Player{}
func (s *SeedingStage) GetPlayers() []*Player {
players := []*Player{}
for _, seeding := range s.SeedingSeedings {
players = append(players, *seeding.SeedingPlayer)
players = append(players, seeding.SeedingPlayer)
}
return players
......
......@@ -2,12 +2,12 @@ package services
// Stage : Stage details
type Stage interface {
PlayerPosition(player Player) uint16
AddPlayer(player Player) bool
RemovePlayer(player Player) bool
PlayerPosition(player *Player) uint16
AddPlayer(player *Player) bool
RemovePlayer(player *Player) bool
GetID() uint8
GetState() State
GetPlayers() []Player
GetPlayers() []*Player
Register() bool
Start() bool
End() bool
......
......@@ -24,11 +24,21 @@ export function AddPlayerToStage(player: $models.Player, stage: $models.Stage):
return $resultPromise;
}
export function AddStage(stage: $models.Stage): Promise<boolean> & { cancel(): void } {
let $resultPromise = $Call.ByID(2261622806, stage) as any;
return $resultPromise;
}
export function FinishCompetition(): Promise<boolean> & { cancel(): void } {
let $resultPromise = $Call.ByID(826570137) as any;
return $resultPromise;
}
export function InitCompetition(): Promise<boolean> & { cancel(): void } {
let $resultPromise = $Call.ByID(582268878) as any;
return $resultPromise;
}
export function RemovePlayer(player: $models.Player | null): Promise<boolean> & { cancel(): void } {
let $resultPromise = $Call.ByID(1491269932, player) as any;
return $resultPromise;
......
......@@ -344,7 +344,12 @@ export enum State {
/**
* 3
*/
IDLE = 3,
LOCKED = 3,
/**
* 4
*/
IDLE = 4,
};
/**
......
......@@ -9,22 +9,25 @@ import {Call as $Call, Create as $Create} from "@wailsio/runtime";
// @ts-ignore: Unused imports
import * as $models from "./models.js";
export function AddPlayer(player: $models.Player): Promise<boolean> & { cancel(): void } {
export function AddPlayer(player: $models.Player | null): Promise<boolean> & { cancel(): void } {
let $resultPromise = $Call.ByID(2419770436, player) as any;
return $resultPromise;
}
export function PlayerPosition(player: $models.Player): Promise<number> & { cancel(): void } {
/**
* ------------------------------ Pool ------------------------------
*/
export function PlayerPosition(player: $models.Player | null): Promise<number> & { cancel(): void } {
let $resultPromise = $Call.ByID(199697208, player) as any;
return $resultPromise;
}
export function RemovePlayer(player: $models.Player): Promise<boolean> & { cancel(): void } {
export function RemovePlayer(player: $models.Player | null): Promise<boolean> & { cancel(): void } {
let $resultPromise = $Call.ByID(2585363663, player) as any;
return $resultPromise;
}
export function SetReferee(referee: $models.Referee): Promise<void> & { cancel(): void } {
export function SetReferee(referee: $models.Referee | null): Promise<boolean> & { cancel(): void } {
let $resultPromise = $Call.ByID(1520561734, referee) as any;
return $resultPromise;
}
......
......@@ -12,6 +12,11 @@
competitions = await Session.GetCompetitions();
loading = false;
});
// Listen for the "need-to-update" event
window.addEventListener("need-to-update", async () => {
competitions = await Session.GetCompetitions();
});
</script>
<div class="container">
......
......@@ -13,6 +13,9 @@
async function loadCompetitions() {
competitions = await GetCompetitions();
// Emit a signal to the parent component
dispatchEvent(new CustomEvent("need-to-update", {}));
}
onMount(loadCompetitions);
......
......@@ -130,6 +130,16 @@
sortBy = { key: "PlayerClub", asc: !sortBy.asc };
}}>Club</th
>
<th
on:click={() => {
sortBy = { key: "PlayerRegion", asc: !sortBy.asc };
}}>Region</th
>
<th
on:click={() => {
sortBy = { key: "PlayerCountry", asc: !sortBy.asc };
}}>Country</th
>
</tr>
</thead>
<tbody>
......@@ -233,6 +243,14 @@
>{#if player.PlayerClub}{player.PlayerClub
.club_name}{:else}Sans Nom{/if}</td
>
<td
>{#if player.PlayerRegion}{player.PlayerRegion
.region_name}{:else}Sans Nom{/if}</td
>
<td
>{#if player.PlayerNation}{player.PlayerNation
.nation_name}{:else}Sans Nom{/if}</td
>
</tr>
{/if}
{/each}
......
......@@ -14,11 +14,6 @@ var assets embed.FS
func main() {
session := services.Session{}
session.AddCompetition("Premier League", "U17", "Foil")
session.AddCompetition("Premier League", "U17", "Foil")
session.AddCompetition("Premier League", "U17", "Foil")
session.AddCompetition("Premier League", "U17", "Foil")
session.Competitions[0].AddPlayer(services.CreatePlayer(1, "John", "Doe"))
app := application.New(application.Options{
Name: "AstroProject",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment