place/api/write/write.go

47 lines
887 B
Go

package write
import (
"errors"
"git.tek.govt.hu/dowerx/place/api/read"
"git.tek.govt.hu/dowerx/place/api/structs"
"git.tek.govt.hu/dowerx/place/auth"
"git.tek.govt.hu/dowerx/place/config"
"git.tek.govt.hu/dowerx/place/storage"
"github.com/gin-gonic/gin"
)
var timeout int = config.GetConfig().Timeout
func Pixel(c *gin.Context) {
var info structs.Pixel
if c.ShouldBind(&info) != nil {
c.AbortWithStatus(400)
return
}
cookie, err := c.Cookie("place")
if err != nil {
cookie = auth.SetCookie(timeout)
c.SetCookie("place", cookie, timeout, "/", "", false, false)
} else {
if auth.GetCookie(cookie) {
c.Status(403)
return
}
}
if err := storage.SetPixel(info.X, info.Y, &info); err != nil {
c.AbortWithError(500, err)
return
}
go read.Connections.Send(info)
c.Status(200)
}
func Bitmap(c *gin.Context) {
panic(errors.New("unimplomented"))
}