hangman/internal/rest_handler/create_user.go

43 lines
824 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 := session.AddUser(game.User{
Name: bodyContent.Name,
PublicKey: pub,
})
return c.JSON(http.StatusOK, ResponseData{
Session: session,
User: user,
})
}