|
|
|
@ -11,6 +11,7 @@ import ( |
|
|
|
|
|
|
|
|
|
|
|
"dread.land/deepgram-demo/internal/audio" |
|
|
|
"dread.land/deepgram-demo/internal/audio" |
|
|
|
"dread.land/deepgram-demo/internal/metadata" |
|
|
|
"dread.land/deepgram-demo/internal/metadata" |
|
|
|
|
|
|
|
"github.com/go-chi/chi/v5" |
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
type ApiServer struct { |
|
|
|
type ApiServer struct { |
|
|
|
@ -49,7 +50,7 @@ func (apiServer *ApiServer) filesHandler(w http.ResponseWriter, r *http.Request) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func (apiServer *ApiServer) metadataHandler(w http.ResponseWriter, r *http.Request) { |
|
|
|
func (apiServer *ApiServer) metadataHandler(w http.ResponseWriter, r *http.Request) { |
|
|
|
filename := path.Base(r.URL.Path) |
|
|
|
filename := path.Base(path.Dir(r.URL.Path)) |
|
|
|
switch r.Method { |
|
|
|
switch r.Method { |
|
|
|
case "GET": |
|
|
|
case "GET": |
|
|
|
// get metadata
|
|
|
|
// get metadata
|
|
|
|
@ -93,14 +94,11 @@ func (apiServer *ApiServer) listHandler(w http.ResponseWriter, r *http.Request) |
|
|
|
|
|
|
|
|
|
|
|
func (apiServer *ApiServer) Serve() { |
|
|
|
func (apiServer *ApiServer) Serve() { |
|
|
|
|
|
|
|
|
|
|
|
// POST and GET media
|
|
|
|
r := chi.NewRouter() |
|
|
|
http.HandleFunc("/files/", apiServer.filesHandler) |
|
|
|
r.Get("/files", apiServer.listHandler) |
|
|
|
// list media
|
|
|
|
r.Get("/files/{filename}", apiServer.filesHandler) |
|
|
|
http.HandleFunc("/files", apiServer.listHandler) |
|
|
|
r.Post("/files/{filename}", apiServer.filesHandler) |
|
|
|
// list metadata (with filter)
|
|
|
|
r.Get("/files/{filename}/metadata", apiServer.metadataHandler) |
|
|
|
http.HandleFunc("/metadata", apiServer.listHandler) |
|
|
|
|
|
|
|
// GET metadata
|
|
|
|
|
|
|
|
http.HandleFunc("/metadata/", apiServer.metadataHandler) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
log.Fatal(http.ListenAndServe(":3030", nil)) |
|
|
|
log.Fatal(http.ListenAndServe(":3030", r)) |
|
|
|
} |
|
|
|
} |
|
|
|
|