diff --git a/cmd/frontend/articles.go b/cmd/frontend/articles.go index 525675c..799d2c5 100644 --- a/cmd/frontend/articles.go +++ b/cmd/frontend/articles.go @@ -762,94 +762,3 @@ func EditArticle(c *b.Config, db *b.DB, s *b.CookieStore) http.HandlerFunc { template.Must(tmpl, err).ExecuteTemplate(w, "page-content", data) } } - -func SaveArticle(c *b.Config, db *b.DB, s *b.CookieStore) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - session, err := getSession(w, r, c, s) - if err != nil { - return - } - - session.Values["article"] = nil - if err = session.Save(r, w); err != nil { - log.Println(err) - http.Error(w, err.Error(), http.StatusInternalServerError) - return - } - - article := &b.Article{ - Title: r.PostFormValue("article-title"), - Description: r.PostFormValue("article-description"), - Published: false, - Rejected: false, - AuthorID: session.Values["id"].(int64), - IsInIssue: r.PostFormValue("issue") == "on", - AutoGenerated: false, - } - - oldID, err := strconv.ParseInt(r.PathValue("id"), 10, 64) - if err != nil { - log.Println(err) - http.Error(w, err.Error(), http.StatusInternalServerError) - return - } - - fmt.Println(oldID) - if oldID != 0 { - if err = db.DeleteArticle(oldID); err != nil { - log.Println(err) - http.Error(w, err.Error(), http.StatusInternalServerError) - return - } - - if err = os.Remove(fmt.Sprint(c.ArticleDir, "/", oldID, ".md")); err != nil { - log.Println(err) - http.Error(w, err.Error(), http.StatusInternalServerError) - return - } - - } - - article.ID, err = db.AddArticle(article) - if err != nil { - log.Println(err) - http.Error(w, err.Error(), http.StatusInternalServerError) - return - } - - articleAbsName := fmt.Sprint(c.ArticleDir, "/", article.ID, ".md") - if err = os.WriteFile(articleAbsName, []byte(r.PostFormValue("article-content")), 0644); err != nil { - log.Println(err) - http.Error(w, err.Error(), http.StatusInternalServerError) - return - } - - article.Link = fmt.Sprint(c.Domain, "/article/serve/", article.ID) - if err = db.UpdateAttributes(&b.Attribute{Table: "articles", ID: article.ID, AttName: "link", Value: article.Link}); err != nil { - log.Println(err) - http.Error(w, err.Error(), http.StatusInternalServerError) - return - } - - r.ParseForm() - tags := make([]int64, 0) - for _, tag := range r.Form["tags"] { - tagID, err := strconv.ParseInt(tag, 10, 64) - if err != nil { - log.Println(err) - http.Error(w, err.Error(), http.StatusInternalServerError) - return - } - tags = append(tags, tagID) - } - if err = db.WriteArticleTags(article.ID, tags); err != nil { - log.Println(err) - http.Error(w, err.Error(), http.StatusInternalServerError) - return - } - - tmpl, err := template.ParseFiles(c.WebDir + "/templates/hub.html") - tmpl = template.Must(tmpl, err) - tmpl.ExecuteTemplate(w, "page-content", session.Values["role"]) - } -} diff --git a/cmd/main.go b/cmd/main.go index 81cd90c..ff97803 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -62,7 +62,6 @@ func main() { mux.HandleFunc("GET /article/review-edit/{id}", f.ReviewArticle(config, db, store, "allow-edit", "Artikel bearbeiten", "Bearbeiten erlauben")) mux.HandleFunc("GET /article/review-rejected/{id}", f.ReviewRejectedArticle(config, db, store)) mux.HandleFunc("GET /article/review-unpublished/{id}", f.ReviewArticle(config, db, store, "publish", "Artikel veröffentlichen", "Veröffentlichen")) - mux.HandleFunc("GET /article/save/{id}", f.SaveArticle(config, db, store)) mux.HandleFunc("GET /article/serve/{id}", c.ServeArticle(config, db)) mux.HandleFunc("GET /article/write", f.WriteArticle(config, db, store)) mux.HandleFunc("GET /hub", f.ShowHub(config, db, store))