handlers.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package handlers
  2. import (
  3. "encoding/json"
  4. "net/http"
  5. "asterisk.is/dimesheet/internal/services"
  6. )
  7. func write_json(w http.ResponseWriter, data interface{}) error {
  8. w.Header().Set("Content-Type", "application/json")
  9. return json.NewEncoder(w).Encode(data)
  10. }
  11. // EventsHandler serves the /api endpoint.
  12. func RootHandler(w http.ResponseWriter, r *http.Request) {
  13. write_json(w, map[string]interface{}{})
  14. }
  15. // EventsHandler serves the /api/clients endpoint.
  16. func GetClients(w http.ResponseWriter, r *http.Request) {
  17. clients, err := services.GetClients()
  18. if err != nil {
  19. http.Error(w, "Unable to retrieve clients, "+err.Error(), http.StatusInternalServerError)
  20. return
  21. }
  22. if err := write_json(w, clients); err != nil {
  23. http.Error(w, "Unable to encode clients to JSON", http.StatusInternalServerError)
  24. }
  25. }
  26. func EventsHandler(w http.ResponseWriter, r *http.Request) {
  27. events, err := services.GetEvents()
  28. if err != nil {
  29. http.Error(w, "Unable to retrieve events, "+err.Error(), http.StatusInternalServerError)
  30. return
  31. }
  32. if err := write_json(w, events); err != nil {
  33. http.Error(w, "Unable to encode events to JSON", http.StatusInternalServerError)
  34. }
  35. }