save surfer - delete heat

This commit is contained in:
Linux User 2023-12-30 19:25:11 +00:00
parent 35b24c95e1
commit 6b86375ce9
6 changed files with 45 additions and 12 deletions

View file

@ -34,18 +34,24 @@ func (db *DB) Write(table string, key string, value interface{}) error {
err := db.Db.Write(table, key, value) err := db.Db.Write(table, key, value)
if err != nil { if err != nil {
fmt.Println("Error", err) fmt.Println("Error", err)
return err
} }
return nil return err
} }
func (db *DB) Read(table string, key string, value interface{}) error { func (db *DB) Read(table string, key string, value interface{}) error {
err := db.Db.Read(table, key, value) err := db.Db.Read(table, key, value)
if err != nil { if err != nil {
fmt.Println("Error", err) fmt.Println("Error", err)
}
return err return err
} }
return nil
func (db *DB) Delete(table string, key string) error {
err := db.Db.Delete(table, key)
if err != nil {
fmt.Println("Error", err)
}
return err
} }
func (db *DB) loadHeats() []Heat { func (db *DB) loadHeats() []Heat {

View file

@ -63,3 +63,26 @@ func (app *App) LoadHeats(c *gin.Context) {
log.Printf("heats: %+v", heats) log.Printf("heats: %+v", heats)
} }
func (app *App) DeleteHeat(c *gin.Context) {
var heat Heat
err := c.ShouldBind(&heat)
if err != nil {
log.Printf("req error: %+v", err)
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
log.Printf("heat: %+v", heat)
err = app.DB.Delete("Heat", heatName(heat))
if err != nil {
log.Printf("set error: %+v", err)
c.JSON(http.StatusInternalServerError, gin.H{"status": fmt.Sprintf("Error: %+v", err)})
return
}
c.JSON(http.StatusOK, gin.H{"status": "deleted"})
}

View file

@ -88,7 +88,7 @@ func (app *App) RegisterApiRoutes() {
// api.POST("/startheat", app.StartHeatTimer) // api.POST("/startheat", app.StartHeatTimer)
// api.GET("/stopheat", app.StopHeatTimer) // api.GET("/stopheat", app.StopHeatTimer)
api.POST("/saveheat", app.SaveHeat) api.POST("/saveheat", app.SaveHeat)
// api.POST("/deleteheat", app.DeleteHeat) api.POST("/deleteheat", app.DeleteHeat)
api.GET("/loadheats", app.LoadHeats) api.GET("/loadheats", app.LoadHeats)
// api.GET("/runningheat", app.LoadRunning) // api.GET("/runningheat", app.LoadRunning)
api.GET("/loadsurfers", app.LoadSurfers) api.GET("/loadsurfers", app.LoadSurfers)

View file

@ -10,13 +10,12 @@ import (
) )
type Athlete struct { type Athlete struct {
Firstname string `json:"firstname"` Name string `json:"name"`
Lastname string `json:"lastname"`
Category string `json:"category"` Category string `json:"category"`
} }
func surferName(athlete Athlete) string { func surferName(athlete Athlete) string {
str := fmt.Sprintf("%s.%s.%s", athlete.Firstname, athlete.Lastname, athlete.Category) str := fmt.Sprintf("%s.%s", athlete.Name, athlete.Category)
str = strings.ReplaceAll(str, " ", "_") str = strings.ReplaceAll(str, " ", "_")
return str return str
} }

View file

@ -3,9 +3,7 @@
import Header from '$lib/header-setup.svelte'; import Header from '$lib/header-setup.svelte';
import { categories } from '$lib/stores/categories.js'; import { categories } from '$lib/stores/categories.js';
import { rounds } from '$lib/stores/rounds.js'; import { rounds } from '$lib/stores/rounds.js';
import { colors } from '$lib/stores/colors.js';
import Number from '$lib/number.svelte'; import Number from '$lib/number.svelte';
import Input from '$lib/input.svelte';
import Select from '$lib/select.svelte'; import Select from '$lib/select.svelte';
import Color from '$lib/color.svelte'; import Color from '$lib/color.svelte';
import Button from '../../lib/button.svelte'; import Button from '../../lib/button.svelte';
@ -225,7 +223,7 @@
id="name{surfer}" id="name{surfer}"
bind:value={surfer_list[surfer].name} bind:value={surfer_list[surfer].name}
options={athletes} options={athletes}
element="firstname" element="name"
/> />
<!-- <Input label="Name" id="name{surfer}" bind:value={surfer_list[surfer].name} /> --> <!-- <Input label="Name" id="name{surfer}" bind:value={surfer_list[surfer].name} /> -->
</div> </div>

View file

@ -16,6 +16,7 @@
surfer = { surfer = {
firstname: '', firstname: '',
lastname: '', lastname: '',
name: '',
category: '' category: ''
}; };
} }
@ -24,7 +25,11 @@
const res = await fetch(`/api/loadsurfers`); const res = await fetch(`/api/loadsurfers`);
const data = await res.json(); const data = await res.json();
for (let i in data) { for (let i in data) {
const flname = data[i].name.split(" ");
data[i].firstname = flname[0];
data[i].lastname = flname[1];
surfers[i] = data[i]; surfers[i] = data[i];
console.log(`${i} retval: ${JSON.stringify(data[i])}`); console.log(`${i} retval: ${JSON.stringify(data[i])}`);
} }
} }
@ -45,6 +50,8 @@
return; return;
} }
surfer.name = `${surfer.firstname} ${surfer.lastname}`
const res = await fetch(`/api/savesurfer`, { const res = await fetch(`/api/savesurfer`, {
method: 'POST', method: 'POST',
body: JSON.stringify(surfer), body: JSON.stringify(surfer),