From c7ab6d7782486fda6d6327ba8306e474daef677a Mon Sep 17 00:00:00 2001 From: Mitch Riedstra Date: Sun, 5 Feb 2017 17:59:11 -0500 Subject: Initial development on web GUI --- web.go | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 web.go diff --git a/web.go b/web.go new file mode 100644 index 0000000..444c2ce --- /dev/null +++ b/web.go @@ -0,0 +1,64 @@ +package main + +import ( + "log" + + "git.riedstra.us/mitch/steam-export/lib/config" + "git.riedstra.us/mitch/steam-export/lib/steam" + + "github.com/kataras/iris" +) + +func main() { + config, err := config.LoadConfig() + if err != nil { + log.Fatal(err) + } + + api := iris.New() + + api.Get("/api/libraries/", listLibraries(config)) + api.Get("/api/libraries/:id", listLibrary(config)) + + api.Get("/data/:value/:and/:some/:giggles", dataTest()) + api.Get("/data/:value/:and", dataTest()) + api.Get("/data/:value", dataTest()) + + api.Listen(config.Listen) +} + +func dataTest() iris.HandlerFunc { + return func(ctx *iris.Context) { + ctx.JSON(200, ctx.ParamsSentence()) + } +} + +func listLibraries(c *config.Config) iris.HandlerFunc { + return func(ctx *iris.Context) { + libs, err := steam.ProcessMultipleLibraries(c.SteamRepositories) + if err != nil { + ctx.JSON(500, err) + } + ctx.JSON(200, libs) + } +} + +func listLibrary(c *config.Config) iris.HandlerFunc { + return func(ctx *iris.Context) { + id, err := ctx.ParamInt("id") + if err != nil { + ctx.JSON(500, err) + } + + libs, err := steam.ProcessMultipleLibraries(c.SteamRepositories) + if err != nil { + ctx.JSON(500, err) + } + + if id >= len(libs) { + ctx.JSON(500, &struct{ Error string }{Error: "Index out of bounds"}) + } + + ctx.JSON(200, libs[id]) + } +} -- cgit v1.2.3