From aeeb7b34485fc54b5c4ba6c9e9e07437d6d933f5 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Mon, 2 Dec 2024 16:53:32 +0100 Subject: [PATCH] refactor: Go Baseline --- go.mod | 18 ++++++++++++++++++ go.sum | 27 +++++++++++++++++++++++++++ handlers/contract.go | 7 +++++++ handlers/util.go | 7 +++++++ main.go | 35 +++++++++++++++++++++++++++++++++++ 5 files changed, 94 insertions(+) create mode 100644 go.mod create mode 100644 go.sum create mode 100644 handlers/contract.go create mode 100644 handlers/util.go create mode 100644 main.go diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..e67035c --- /dev/null +++ b/go.mod @@ -0,0 +1,18 @@ +module git.odit.services/lfk/document-server + +go 1.22.1 + +require ( + github.com/andybalholm/brotli v1.0.5 // indirect + github.com/gofiber/fiber/v2 v2.52.5 // indirect + github.com/google/uuid v1.5.0 // indirect + github.com/klauspost/compress v1.17.0 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect + github.com/rivo/uniseg v0.2.0 // indirect + github.com/valyala/bytebufferpool v1.0.0 // indirect + github.com/valyala/fasthttp v1.51.0 // indirect + github.com/valyala/tcplisten v1.0.0 // indirect + golang.org/x/sys v0.15.0 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..fab6978 --- /dev/null +++ b/go.sum @@ -0,0 +1,27 @@ +github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs= +github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/gofiber/fiber/v2 v2.52.5 h1:tWoP1MJQjGEe4GB5TUGOi7P2E0ZMMRx5ZTG4rT+yGMo= +github.com/gofiber/fiber/v2 v2.52.5/go.mod h1:KEOE+cXMhXG0zHc9d8+E38hoX+ZN7bhOtgeF2oT6jrQ= +github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= +github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/klauspost/compress v1.17.0 h1:Rnbp4K9EjcDuVuHtd0dgA4qNuv9yKDYKK1ulpJwgrqM= +github.com/klauspost/compress v1.17.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +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.51.0 h1:8b30A5JlZ6C7AS81RsWjYMQmrZG6feChmgAolCl1SqA= +github.com/valyala/fasthttp v1.51.0/go.mod h1:oI2XroL+lI7vdXyYoQk03bXBThfFl2cVdIA3Xl7cH8g= +github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVSA8= +github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= diff --git a/handlers/contract.go b/handlers/contract.go new file mode 100644 index 0000000..ddc796a --- /dev/null +++ b/handlers/contract.go @@ -0,0 +1,7 @@ +package handlers + +import "github.com/gofiber/fiber/v2" + +func GenerateContract(c *fiber.Ctx) error { + return c.SendString("Generate Contract") +} diff --git a/handlers/util.go b/handlers/util.go new file mode 100644 index 0000000..cb483e4 --- /dev/null +++ b/handlers/util.go @@ -0,0 +1,7 @@ +package handlers + +import "github.com/gofiber/fiber/v2" + +func NotFoundHandler(c *fiber.Ctx) error { + return c.Status(404).SendString("Not Found") +} diff --git a/main.go b/main.go new file mode 100644 index 0000000..7bf6be1 --- /dev/null +++ b/main.go @@ -0,0 +1,35 @@ +package main + +import ( + "flag" + "log" + + "git.odit.services/lfk/document-server/handlers" + "github.com/gofiber/fiber/v2" +) + +var ( + port = flag.String("port", ":3000", "Port to listen on") + prod = flag.Bool("prod", false, "Enable prefork in Production") +) + +func main() { + // Parse command-line flags + flag.Parse() + + // Create a new Fiber instance + app := fiber.New(fiber.Config{ + Prefork: *prod, + }) + + v1 := app.Group("/v1") + + v1.Get("/", func(c *fiber.Ctx) error { + return c.SendString("Hello, World!") + }) + v1.Post("/contracts", handlers.GenerateContract) + + app.Use(handlers.NotFoundHandler) + + log.Fatal(app.Listen(*port)) +}