summaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2024-05-06 20:32:35 +0300
committerPaul Buetow <paul@buetow.org>2024-05-06 20:32:35 +0300
commit8c2e75df51d1a74d8bca1d3d1a423f777159ba82 (patch)
treeb340984869230f92d0aea54d104efc5618c54954 /cmd
parentd06809e50aa20b7f2e12ed43374aebb39e77a220 (diff)
refactor project file structure
Diffstat (limited to 'cmd')
-rw-r--r--cmd/gosd/main.go57
1 files changed, 57 insertions, 0 deletions
diff --git a/cmd/gosd/main.go b/cmd/gosd/main.go
new file mode 100644
index 0000000..8f43d3f
--- /dev/null
+++ b/cmd/gosd/main.go
@@ -0,0 +1,57 @@
+package main
+
+import (
+ "flag"
+ "fmt"
+ "log"
+ "net/http"
+
+ "codeberg.org/snonux/gos/internal/server/handle"
+ "codeberg.org/snonux/gos/internal/server/health"
+)
+
+func main() {
+ listenAddr := flag.String("listenAddr", "localhost:8080", "The listen address")
+ dataDir := flag.String("dataDir", "data", "The data directory")
+ hs := health.NewStatus()
+
+ http.HandleFunc("/health", func(w http.ResponseWriter, r *http.Request) {
+ log.Println("Someone requested /health")
+ fmt.Fprint(w, hs.String())
+ })
+
+ http.HandleFunc("/submit", func(w http.ResponseWriter, r *http.Request) {
+ log.Println("Someone requested /submit")
+ if err := handle.Submit(w, r, *dataDir); err != nil {
+ http.Error(w, err.Error(), http.StatusInternalServerError)
+ hs.Set(health.Critical, "submitHandler", err.Error())
+ return
+ }
+ hs.Clear("submitHandler")
+ })
+
+ http.HandleFunc("/list", func(w http.ResponseWriter, r *http.Request) {
+ log.Println("Someone requested /list")
+ if err := handle.List(w, r, *dataDir); err != nil {
+ http.Error(w, err.Error(), http.StatusInternalServerError)
+ hs.Set(health.Critical, "listHandler", err.Error())
+ return
+ }
+ hs.Clear("listHandler")
+ })
+
+ http.HandleFunc("/get", func(w http.ResponseWriter, r *http.Request) {
+ log.Println("Someone requested /get")
+ if err := handle.Get(w, r, *dataDir); err != nil {
+ http.Error(w, err.Error(), http.StatusInternalServerError)
+ hs.Set(health.Critical, "getHandler", err.Error())
+ return
+ }
+ hs.Clear("getHandler")
+ })
+
+ log.Println("Server is starting on ", *listenAddr)
+ if err := http.ListenAndServe(*listenAddr, nil); err != err {
+ log.Fatal("Error starting server: ", err)
+ }
+}