Add meetings API
This commit is contained in:
parent
29eb14b232
commit
991a3dd5bb
@ -8,15 +8,20 @@ import (
|
||||
"net/http"
|
||||
)
|
||||
|
||||
type ErrorResponse struct {
|
||||
Message string `json:"Error"`
|
||||
}
|
||||
|
||||
var DB *sql.DB
|
||||
|
||||
func main() {
|
||||
DB = openOrCreateDb("./memos.db")
|
||||
defer DB.Close()
|
||||
|
||||
http.HandleFunc("/memos", endpoint)
|
||||
http.HandleFunc("/memos", memosEndpoint)
|
||||
http.HandleFunc("/meet", meetEndpoint)
|
||||
log.Println("starting server")
|
||||
err := http.ListenAndServe(":80", nil)
|
||||
err := http.ListenAndServe(":7000", nil)
|
||||
if errors.Is(err, http.ErrServerClosed) {
|
||||
log.Println("server closed")
|
||||
} else if err != nil {
|
41
meet.go
Normal file
41
meet.go
Normal file
@ -0,0 +1,41 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"log"
|
||||
"net/http"
|
||||
"time"
|
||||
)
|
||||
|
||||
type NewMeetingResponse struct {
|
||||
LastMeeting time.Time `json:"LastMeetingTime"`
|
||||
}
|
||||
|
||||
var lastMeeting time.Time
|
||||
|
||||
func httpGetMeeting(w http.ResponseWriter, r *http.Request) {
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
err := json.NewEncoder(w).Encode(NewMeetingResponse{lastMeeting})
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func httpCreateMeeting(w http.ResponseWriter, r *http.Request) {
|
||||
lastMeeting = time.Now()
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
json.NewEncoder(w).Encode(NewMeetingResponse{lastMeeting})
|
||||
}
|
||||
|
||||
func meetEndpoint(w http.ResponseWriter, r *http.Request) {
|
||||
switch r.Method {
|
||||
case "GET":
|
||||
httpGetMeeting(w, r)
|
||||
case "POST":
|
||||
httpCreateMeeting(w, r)
|
||||
default:
|
||||
w.WriteHeader(405)
|
||||
fmt.Fprintf(w, "HTTP method must be GET or POST")
|
||||
}
|
||||
}
|
@ -7,12 +7,8 @@ import (
|
||||
"net/http"
|
||||
)
|
||||
|
||||
type ErrorResponse struct {
|
||||
Message string `json:"message"`
|
||||
}
|
||||
|
||||
type NewMemoResponse struct {
|
||||
ID int64 `json:"id"`
|
||||
ID int64 `json:"ID"`
|
||||
}
|
||||
|
||||
func httpGetMemos(w http.ResponseWriter, r *http.Request) {
|
||||
@ -42,7 +38,7 @@ func httpCreateMemo(w http.ResponseWriter, r *http.Request) {
|
||||
json.NewEncoder(w).Encode(NewMemoResponse{id})
|
||||
}
|
||||
|
||||
func endpoint(w http.ResponseWriter, r *http.Request) {
|
||||
func memosEndpoint(w http.ResponseWriter, r *http.Request) {
|
||||
switch r.Method {
|
||||
case "GET":
|
||||
httpGetMemos(w, r)
|
Loading…
x
Reference in New Issue
Block a user