feat: route registration

This commit is contained in:
2026-08-26 23:34:30 +08:00
parent 7c10fdb50b
commit c59654fcaa
7 changed files with 48 additions and 0 deletions
+35
View File
@@ -3,9 +3,11 @@ package server
import (
"crypto/rand"
"encoding/hex"
"net/http"
"sync"
"time"
"yoresee_dropbox/internal/store"
"yoresee_dropbox/web"
)
type Server struct {
@@ -36,3 +38,36 @@ func generateUUID() string {
rand.Read(b)
return hex.EncodeToString(b)
}
func (s *Server) Handler() http.Handler {
mux := http.NewServeMux()
mux.HandleFunc("POST /api/login", s.handleLogin)
mux.HandleFunc("POST /api/logout", s.requireAuth(s.handleLogout))
mux.HandleFunc("POST /api/upload", s.requireAuth(s.handleUpload))
mux.HandleFunc("GET /api/files", s.requireAuth(s.handleListFiles))
mux.HandleFunc("GET /api/files/{id}/download", s.requireAuth(s.handleDownload))
mux.HandleFunc("DELETE /api/files/{id}", s.requireAuth(s.handleDeleteFile))
mux.HandleFunc("POST /api/files/{id}/share", s.requireAuth(s.handleCreateShare))
mux.HandleFunc("GET /api/shares", s.requireAuth(s.handleListShares))
mux.HandleFunc("DELETE /api/shares/{id}", s.requireAuth(s.handleDeleteShare))
mux.HandleFunc("GET /s/{token}", s.handleShareAccess)
mux.HandleFunc("POST /s/{token}", s.handleSharePassword)
mux.HandleFunc("GET /login", func(w http.ResponseWriter, r *http.Request) {
data, _ := web.FS.ReadFile("login.html")
w.Write(data)
})
mux.HandleFunc("GET /{$}", s.requireAuthPage(func(w http.ResponseWriter, r *http.Request) {
data, _ := web.FS.ReadFile("index.html")
w.Write(data)
}))
mux.Handle("GET /style.css", http.FileServerFS(web.FS))
mux.Handle("GET /app.js", http.FileServerFS(web.FS))
mux.Handle("GET /alpine.min.js", http.FileServerFS(web.FS))
return mux
}