Please don’t rely on this Gitea instance being around forever. If any of your build scripts use my (kageru’s) projects hosted here, check my Github or IEW on Github for encoding projects. If you can’t find what you’re looking for there, tell me to migrate it.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

67 lines
1.5 KiB
Go

package main
import (
"net/http"
"encoding/json"
"log"
"encoding/hex"
"crypto/sha512"
"io"
"html/template"
)
type OutputFormatter struct {
Author string
Content string
}
type Blog struct {
Posts []BlogPost
}
func startServer() {
http.HandleFunc("/", get)
http.HandleFunc("/add", post)
log.Fatal(http.ListenAndServe(":12345", nil))
}
func get(w http.ResponseWriter, r *http.Request) {
t, err := template.ParseFiles("templates/overview.html")
if err != nil {
log.Panic(err)
}
w.WriteHeader(http.StatusOK)
/*
w.Write([]byte("response:\n"))
for _, post := range readBlogpostsFromDB() {
w.Write([]byte(post.Content))
}
*/
results := readBlogpostsFromDB()
t.ExecuteTemplate(w, "overview.html", Blog{results})
}
func post(w http.ResponseWriter, r *http.Request) {
var post BlogPost
json.NewDecoder(r.Body).Decode(&post)
if verifyPassword(post.Secret) {
messages = append(messages, &post.Content)
writeToDB(post)
w.WriteHeader(http.StatusCreated)
} else {
w.WriteHeader(http.StatusForbidden)
}
}
func hash(pass string) string {
h := sha512.New()
io.WriteString(h, pass)
return hex.EncodeToString(h.Sum(nil))
}
func verifyPassword(pass string) bool {
return hash(pass) == "401b09eab3c013d4ca54922bb802bec8fd5318192b0a75f201d8b3727429080fb337591abd3e44453b954555b7a0812e1081c39b740293f765eae731f5a65ed1"
}