diff options
| author | Paul Buetow <paul@buetow.org> | 2024-05-06 20:32:35 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2024-05-06 20:32:35 +0300 |
| commit | 8c2e75df51d1a74d8bca1d3d1a423f777159ba82 (patch) | |
| tree | b340984869230f92d0aea54d104efc5618c54954 /cmd | |
| parent | d06809e50aa20b7f2e12ed43374aebb39e77a220 (diff) | |
refactor project file structure
Diffstat (limited to 'cmd')
| -rw-r--r-- | cmd/gosd/main.go | 57 |
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) + } +} |
