From 97850725a22616c333026aa71214c249cd9ef90c Mon Sep 17 00:00:00 2001 From: daru Date: Sun, 17 Apr 2022 15:43:16 +0200 Subject: [PATCH] Local server flag --- huso.go | 1 + ober.go | 34 ++++++++++++++++++++++++++-------- 2 files changed, 27 insertions(+), 8 deletions(-) diff --git a/huso.go b/huso.go index 2727dfb..8b8597c 100644 --- a/huso.go +++ b/huso.go @@ -36,6 +36,7 @@ var ( malApiBaseUri = flag.String("malApiBaseUri", "https://api.myanimelist.net/v2/", "MyAnimeList API base URL") jikanApiBaseUri = flag.String("jikanApiBaseUri", "https://api.jikan.moe/v4/", "Jikan API base URL") malApiId = flag.String("malApiId", "cc17dcf40581b9dfc8a5a12dba458153", "MyAnimeList API Client ID") + localServer = flag.Bool("localServer", false, "Set varius headers for running locally") cache *bigcache.BigCache animeCache *bigcache.BigCache db *nutsdb.DB diff --git a/ober.go b/ober.go index d258b2d..4645cfa 100644 --- a/ober.go +++ b/ober.go @@ -14,14 +14,14 @@ import ( func RunWebserv() { r := router.New() - r.GET("/", Start) - r.GET("/api/season", Season) - r.GET("/api/anime/{id}", AnimeGet) - r.GET("/api/watch/{user?}", WatchGet) - r.POST("/api/register", Register) - r.POST("/api/watch/{user}", WatchPost) - r.DELETE("/api/register", UnRegister) - r.DELETE("/api/watch/{user}", WatchDelete) + r.GET("/", Headers(Start)) + r.GET("/api/season", Headers(Season)) + r.GET("/api/anime/{id}", Headers(AnimeGet)) + r.GET("/api/watch/{user?}", Headers(WatchGet)) + r.POST("/api/register", Headers(Register)) + r.POST("/api/watch/{user}", Headers(WatchPost)) + r.DELETE("/api/register", Headers(UnRegister)) + r.DELETE("/api/watch/{user}", Headers(WatchDelete)) log.Fatal(fasthttp.ListenAndServe(":"+strconv.Itoa(*webServerPort), r.Handler)) } @@ -50,6 +50,9 @@ func Season(ctx *fasthttp.RequestCtx) { addErrorToCtx(ctx, err) return } + + ctx.SetContentType("application/json; charset=utf-8") + ctx.SetStatusCode(fasthttp.StatusOK) } func AnimeGet(ctx *fasthttp.RequestCtx) { @@ -86,6 +89,7 @@ func AnimeGet(ctx *fasthttp.RequestCtx) { addErrorToCtx(ctx, err) return } + ctx.SetContentType("application/json; charset=utf-8") ctx.SetStatusCode(fasthttp.StatusOK) } @@ -198,6 +202,7 @@ func Register(ctx *fasthttp.RequestCtx) { } ctx.SetBody(body) + ctx.SetContentType("application/json; charset=utf-8") ctx.SetStatusCode(fasthttp.StatusOK) } @@ -244,6 +249,7 @@ func UnRegister(ctx *fasthttp.RequestCtx) { } ctx.SetBody(body) + ctx.SetContentType("application/json; charset=utf-8") ctx.SetStatusCode(fasthttp.StatusOK) } @@ -313,6 +319,7 @@ func processUpdateReq(ctx *fasthttp.RequestCtx, update bool) { addErrorToCtx(ctx, err) return } + ctx.SetContentType("application/json; charset=utf-8") } func GheddoAuth(username, auth string) (bool, int64) { @@ -323,6 +330,17 @@ func GheddoAuth(username, auth string) (bool, int64) { return user.Secret == auth, user.MalID } +func Headers(h fasthttp.RequestHandler) fasthttp.RequestHandler { + return fasthttp.RequestHandler(func(ctx *fasthttp.RequestCtx) { + if *localServer { + ctx.Response.Header.Set("Access-Control-Allow-Origin", "*") + ctx.Response.Header.Set("Access-Control-Allow-Headers", "*") + ctx.Response.Header.Set("Access-Control-Allow-Methods", "*") + } + h(ctx) + }) +} + func writeResponseBody(ctx *fasthttp.RequestCtx, bytes []byte) error { _, err := ctx.Write(bytes) if err != nil {