Local server flag

This commit is contained in:
daru
2022-04-17 15:43:16 +02:00
parent 379a22e336
commit 97850725a2
2 changed files with 27 additions and 8 deletions

View File

@@ -36,6 +36,7 @@ var (
malApiBaseUri = flag.String("malApiBaseUri", "https://api.myanimelist.net/v2/", "MyAnimeList API base URL") 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") jikanApiBaseUri = flag.String("jikanApiBaseUri", "https://api.jikan.moe/v4/", "Jikan API base URL")
malApiId = flag.String("malApiId", "cc17dcf40581b9dfc8a5a12dba458153", "MyAnimeList API Client ID") malApiId = flag.String("malApiId", "cc17dcf40581b9dfc8a5a12dba458153", "MyAnimeList API Client ID")
localServer = flag.Bool("localServer", false, "Set varius headers for running locally")
cache *bigcache.BigCache cache *bigcache.BigCache
animeCache *bigcache.BigCache animeCache *bigcache.BigCache
db *nutsdb.DB db *nutsdb.DB

34
ober.go
View File

@@ -14,14 +14,14 @@ import (
func RunWebserv() { func RunWebserv() {
r := router.New() r := router.New()
r.GET("/", Start) r.GET("/", Headers(Start))
r.GET("/api/season", Season) r.GET("/api/season", Headers(Season))
r.GET("/api/anime/{id}", AnimeGet) r.GET("/api/anime/{id}", Headers(AnimeGet))
r.GET("/api/watch/{user?}", WatchGet) r.GET("/api/watch/{user?}", Headers(WatchGet))
r.POST("/api/register", Register) r.POST("/api/register", Headers(Register))
r.POST("/api/watch/{user}", WatchPost) r.POST("/api/watch/{user}", Headers(WatchPost))
r.DELETE("/api/register", UnRegister) r.DELETE("/api/register", Headers(UnRegister))
r.DELETE("/api/watch/{user}", WatchDelete) r.DELETE("/api/watch/{user}", Headers(WatchDelete))
log.Fatal(fasthttp.ListenAndServe(":"+strconv.Itoa(*webServerPort), r.Handler)) log.Fatal(fasthttp.ListenAndServe(":"+strconv.Itoa(*webServerPort), r.Handler))
} }
@@ -50,6 +50,9 @@ func Season(ctx *fasthttp.RequestCtx) {
addErrorToCtx(ctx, err) addErrorToCtx(ctx, err)
return return
} }
ctx.SetContentType("application/json; charset=utf-8")
ctx.SetStatusCode(fasthttp.StatusOK)
} }
func AnimeGet(ctx *fasthttp.RequestCtx) { func AnimeGet(ctx *fasthttp.RequestCtx) {
@@ -86,6 +89,7 @@ func AnimeGet(ctx *fasthttp.RequestCtx) {
addErrorToCtx(ctx, err) addErrorToCtx(ctx, err)
return return
} }
ctx.SetContentType("application/json; charset=utf-8") ctx.SetContentType("application/json; charset=utf-8")
ctx.SetStatusCode(fasthttp.StatusOK) ctx.SetStatusCode(fasthttp.StatusOK)
} }
@@ -198,6 +202,7 @@ func Register(ctx *fasthttp.RequestCtx) {
} }
ctx.SetBody(body) ctx.SetBody(body)
ctx.SetContentType("application/json; charset=utf-8")
ctx.SetStatusCode(fasthttp.StatusOK) ctx.SetStatusCode(fasthttp.StatusOK)
} }
@@ -244,6 +249,7 @@ func UnRegister(ctx *fasthttp.RequestCtx) {
} }
ctx.SetBody(body) ctx.SetBody(body)
ctx.SetContentType("application/json; charset=utf-8")
ctx.SetStatusCode(fasthttp.StatusOK) ctx.SetStatusCode(fasthttp.StatusOK)
} }
@@ -313,6 +319,7 @@ func processUpdateReq(ctx *fasthttp.RequestCtx, update bool) {
addErrorToCtx(ctx, err) addErrorToCtx(ctx, err)
return return
} }
ctx.SetContentType("application/json; charset=utf-8")
} }
func GheddoAuth(username, auth string) (bool, int64) { func GheddoAuth(username, auth string) (bool, int64) {
@@ -323,6 +330,17 @@ func GheddoAuth(username, auth string) (bool, int64) {
return user.Secret == auth, user.MalID 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 { func writeResponseBody(ctx *fasthttp.RequestCtx, bytes []byte) error {
_, err := ctx.Write(bytes) _, err := ctx.Write(bytes)
if err != nil { if err != nil {