initial commit
This commit is contained in:
60
backend/main.go
Normal file
60
backend/main.go
Normal file
@ -0,0 +1,60 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"log"
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-contrib/cors"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
type RelayRequest struct {
|
||||
SolverTimes SolverTimes `json:"solvers"`
|
||||
Events []Event `json:"events"`
|
||||
}
|
||||
|
||||
func main() {
|
||||
r := gin.Default()
|
||||
r.Use(cors.Default())
|
||||
|
||||
r.POST("/relay", func(c *gin.Context) {
|
||||
var req RelayRequest
|
||||
if c.BindJSON(&req) == nil {
|
||||
log.Println(req)
|
||||
|
||||
participants := []Solver{}
|
||||
for s := range req.SolverTimes {
|
||||
participants = append(participants, s)
|
||||
}
|
||||
|
||||
if len(participants) == 0 {
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"error": "list of participants is empty",
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
if len(participants) > 4 {
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"error": "too many participants",
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
if len(req.Events) > 10 {
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"error": "too many events",
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
assignment := Assign(participants, req.SolverTimes, req.Events)
|
||||
log.Println(assignment)
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"response": assignment,
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
|
||||
}
|
||||
Reference in New Issue
Block a user