diff --git a/editor.go b/editor.go new file mode 100644 index 0000000..384acdd --- /dev/null +++ b/editor.go @@ -0,0 +1,42 @@ +package main + +import ( + "embed" + "io" + "log" + "net/http" + + "github.com/CalebQ42/darkstorm-server/internal/backend" + "github.com/CalebQ42/darkstorm-server/internal/blog" +) + +//go:embed embed +var editorFS embed.FS + +type Editor struct { + blogApp *blog.BlogApp + back *backend.Backend +} + +func NewBlogEditor(blogApp *blog.BlogApp, back *backend.Backend) Editor { + return Editor{blogApp: blogApp, back: back} +} + +func (e Editor) LoginPage(w http.ResponseWriter, r *http.Request) { + page, err := editorFS.Open("embed/login.html") + defer page.Close() + if err != nil { + log.Println("error getting login.html:", err) + sendContent(w, r, "error getting page", "", "") + return + } + dat, err := io.ReadAll(page) + if err != nil { + log.Println("error reading login.html:", err) + sendContent(w, r, "error getting page", "", "") + return + } + sendContent(w, r, string(dat), "", "") +} + +func (e Editor) Editor(w http.ResponseWriter, r *http.Request) {} diff --git a/embed/editor.html b/embed/editor.html new file mode 100644 index 0000000..e69de29 diff --git a/embed/login.html b/embed/login.html new file mode 100644 index 0000000..21d3f4a --- /dev/null +++ b/embed/login.html @@ -0,0 +1,14 @@ + + +
+ + + + + +
diff --git a/main.go b/main.go index 0ee2e75..6147731 100644 --- a/main.go +++ b/main.go @@ -147,9 +147,12 @@ func setupWebsite(mux *http.ServeMux) { url, _ := url.Parse("https://localhost:30000") mux.Handle("rpg.darkstorm.tech/", httputil.NewSingleHostReverseProxy(url)) } + edit := NewBlogEditor(blogApp, back) mux.HandleFunc("GET /files/{w...}", filesRequest) mux.HandleFunc("GET /portfolio", portfolioRequest) mux.HandleFunc("GET /list", blogListHandle) + mux.HandleFunc("GET /login", edit.LoginPage) + mux.HandleFunc("GET /editor/", edit.Editor) mux.HandleFunc("/", mainHandle) } @@ -159,10 +162,6 @@ func mainHandle(w http.ResponseWriter, r *http.Request) { latestBlogsHandle(w, r) return } - if path == "login" { - sendContent(w, r, loginScreen, "", "") - return - } stat, err := os.Stat(filepath.Join(*webRoot, path)) if err == nil && !stat.IsDir() { http.ServeFile(w, r, filepath.Join(*webRoot, path)) @@ -177,14 +176,3 @@ func mainHandle(w http.ResponseWriter, r *http.Request) { } blogHandle(w, r, path) } - -const loginScreen = ` - -
- - - - - -
-`