40 lines
785 B
Go
40 lines
785 B
Go
package rest_handler
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/labstack/echo/v4"
|
|
)
|
|
|
|
func GuessLetter(c echo.Context) error {
|
|
session, user, err := GetData(c)
|
|
|
|
if err != nil {
|
|
return c.String(http.StatusBadRequest, err.Error())
|
|
}
|
|
|
|
if session.CurrentUser != user {
|
|
return c.String(http.StatusBadRequest, "It's not the turn of user "+user.Name+". It's the turn of "+session.CurrentUser.Name+".")
|
|
}
|
|
|
|
type BodyContent struct {
|
|
Guess string
|
|
}
|
|
var bodyContent BodyContent
|
|
|
|
err = c.Bind(&bodyContent)
|
|
if err != nil {
|
|
return c.String(http.StatusBadRequest, err.Error())
|
|
}
|
|
|
|
_, err = session.GuessLetter(bodyContent.Guess)
|
|
if err != nil {
|
|
return c.String(http.StatusBadRequest, err.Error())
|
|
}
|
|
|
|
return c.JSON(http.StatusOK, ResponseData{
|
|
User: user,
|
|
Session: session,
|
|
})
|
|
}
|