package messages import ( "encoding/json" "net/http" ) func getMessages(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") err := json.NewEncoder(w).Encode(getAllMessages()) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) } } func postMessages(w http.ResponseWriter, r *http.Request) { var payload Message err := json.NewDecoder(r.Body).Decode(&payload) if err != nil { http.Error(w, err.Error(), http.StatusBadRequest) return } msg := Message{ Author_id: payload.Author_id, Text: payload.Text, } err = insertMessage(msg) if err != nil { http.Error(w, err.Error(), http.StatusBadRequest) return } w.Write([]byte("OK")) } func NewMessagesAPI() *http.ServeMux { initMessages() mux := http.NewServeMux() mux.HandleFunc("GET /", getMessages) mux.HandleFunc("POST /", postMessages) return mux }