Improve chat endpoints

This commit is contained in:
daru
2022-05-17 20:24:52 +02:00
parent 83ff446836
commit 011103395d
4 changed files with 35 additions and 3 deletions

2
go.mod
View File

@@ -6,7 +6,7 @@ require (
github.com/allegro/bigcache/v3 v3.0.2
github.com/fasthttp/router v1.4.9
github.com/gookit/color v1.5.0
github.com/valyala/fasthttp v1.36.0
github.com/valyala/fasthttp v1.37.0
github.com/valyala/quicktemplate v1.7.0
github.com/xujiajun/nutsdb v0.8.0
golang.org/x/time v0.0.0-20220411224347-583f2d630306

3
go.sum
View File

@@ -30,8 +30,9 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
github.com/valyala/fasthttp v1.30.0/go.mod h1:2rsYD01CKFrjjsvFxx75KlEUNpWNBY9JWD3K/7o2Cus=
github.com/valyala/fasthttp v1.36.0 h1:NhqfO/cB7Ajn1czkKnWkMHyPYr5nyND14ZGPk23g0/c=
github.com/valyala/fasthttp v1.36.0/go.mod h1:t/G+3rLek+CyY9bnIE+YlMRddxVAAGjhxndDB4i4C0I=
github.com/valyala/fasthttp v1.37.0 h1:7WHCyI7EAkQMVmrfBhWTCOaeROb1aCBiTopx63LkMbE=
github.com/valyala/fasthttp v1.37.0/go.mod h1:t/G+3rLek+CyY9bnIE+YlMRddxVAAGjhxndDB4i4C0I=
github.com/valyala/quicktemplate v1.7.0 h1:LUPTJmlVcb46OOUY3IeD9DojFpAVbsG+5WFTcjMJzCM=
github.com/valyala/quicktemplate v1.7.0/go.mod h1:sqKJnoaOF88V07vkO+9FL8fb9uZg/VPSJnLYn+LmLk8=
github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc=

20
ober.go
View File

@@ -155,11 +155,20 @@ func ChatGet(ctx *fasthttp.RequestCtx) {
ctx.SetStatusCode(fasthttp.StatusBadRequest)
return
}
found, err := CheckAnimeExistInDb(animeId)
if err != nil {
addErrorToCtx(ctx, err)
return
}
if !found {
ctx.SetStatusCode(fasthttp.StatusNotFound)
return
}
text, err := ReadChat(animeId)
if err != nil {
if strings.Contains(err.Error(), "not found") {
ctx.WriteString(err.Error())
ctx.SetStatusCode(fasthttp.StatusNotFound)
ctx.SetStatusCode(fasthttp.StatusNoContent)
return
}
addErrorToCtx(ctx, err)
@@ -367,6 +376,15 @@ func ChatPost(ctx *fasthttp.RequestCtx) {
ctx.SetStatusCode(fasthttp.StatusBadRequest)
return
}
found, err := CheckAnimeExistInDb(animeId)
if err != nil {
addErrorToCtx(ctx, err)
return
}
if !found {
ctx.SetStatusCode(fasthttp.StatusNotFound)
return
}
sent := strings.TrimSpace(string(ctx.PostBody()))
if sent == "" {
ctx.SetStatusCode(fasthttp.StatusBadRequest)

View File

@@ -173,3 +173,16 @@ func AddToChat(old, new, user string) string {
buf.Write([]byte(fmt.Sprintf("[%s][%s]: %s\n", time.Now().Format("02.01.|15:04:05"), user, new)))
return buf.String()
}
func CheckAnimeExistInDb(animeId int64) (bool, error) {
dbAnime, err := ReadAnimeUsers()
if err != nil {
return false, err
}
for _, a := range dbAnime {
if a.Anime == animeId {
return true, err
}
}
return false, err
}