diff options
| author | mo khan <mo@mokhan.ca> | 2025-04-10 17:35:46 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2025-04-10 17:35:46 -0600 |
| commit | d8fd76b1c0c0bd86b2114dcf6af0b6e34d4783f3 (patch) | |
| tree | 32d71c0e6a9a0c25789ab90a29ef742001898afc /pkg/web/server.go | |
| parent | a722bd0ef4f69547229921eb0fe2eefce3ed6397 (diff) | |
feat: add a single API endpoint to return a list of sparkles
Diffstat (limited to 'pkg/web/server.go')
| -rw-r--r-- | pkg/web/server.go | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/pkg/web/server.go b/pkg/web/server.go new file mode 100644 index 0000000..02f3a41 --- /dev/null +++ b/pkg/web/server.go @@ -0,0 +1,33 @@ +package web + +import ( + "net/http" + + "github.com/google/jsonapi" + "github.com/xlgmokha/x/pkg/serde" + "gitlab.com/mokhax/sparkled/pkg/db" +) + +type Server struct { + db db.Repository + fileserver http.Handler +} + +func NewServer(storage db.Repository) *Server { + return &Server{ + db: storage, + fileserver: http.FileServer(http.Dir("public")), + } +} + +func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) { + switch r.URL.String() { + case "/sparkles.json": + switch r.Method { + case "GET": + w.Header().Set("Content-Type", jsonapi.MediaType) + serde.ToJSONAPI(w, s.db.All()) + } + break + } +} |
