diff --git a/go.mod b/go.mod index cbe05de..03c53d4 100644 --- a/go.mod +++ b/go.mod @@ -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 diff --git a/go.sum b/go.sum index 468f9ba..01e6449 100644 --- a/go.sum +++ b/go.sum @@ -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= diff --git a/ober.go b/ober.go index 06720af..8cc46ed 100644 --- a/ober.go +++ b/ober.go @@ -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) diff --git a/schaffer.go b/schaffer.go index 2563e98..4c28f24 100644 --- a/schaffer.go +++ b/schaffer.go @@ -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 +}