morffix/server/file.go

26 lines
580 B
Go

package server
import (
"log/slog"
"net/http"
)
func handleFile(w http.ResponseWriter, r *http.Request) {
id := r.PathValue("id")
if id == "" {
http.Error(w, "No id", http.StatusBadRequest)
return
}
// TODO check if worker is working on a task involving this file
var path string
err := db.QueryRow(r.Context(), "SELECT path FROM files WHERE id = $1", id).Scan(&path)
if err != nil {
http.Error(w, "Error Getting Path: "+err.Error(), http.StatusBadRequest)
slog.ErrorContext(r.Context(), "Getting Path", "err", err)
return
}
http.ServeFile(w, r, path)
}