37 lines
761 B
Go
37 lines
761 B
Go
package rest_handler
|
|
|
|
import (
|
|
"encoding/base64"
|
|
"net/http"
|
|
|
|
"gitea.elara.ws/Hazel/hangman/internal/game"
|
|
"github.com/labstack/echo/v4"
|
|
)
|
|
|
|
func CreateUser(c echo.Context) error {
|
|
session, err := game.GetSession(c.Param("session"))
|
|
if err != nil {
|
|
return c.String(http.StatusBadRequest, err.Error())
|
|
}
|
|
|
|
type BodyContent struct {
|
|
Name string
|
|
PublicKey string
|
|
}
|
|
var bodyContent BodyContent
|
|
|
|
err = c.Bind(&bodyContent)
|
|
if err != nil {
|
|
return c.String(http.StatusBadRequest, err.Error())
|
|
}
|
|
|
|
pub, err := base64.StdEncoding.DecodeString(bodyContent.PublicKey)
|
|
if err != nil {
|
|
return c.String(http.StatusBadRequest, err.Error())
|
|
}
|
|
user := game.NewUser(bodyContent.Name, pub)
|
|
session.AddUser(user)
|
|
|
|
return c.JSON(http.StatusOK, user)
|
|
}
|