sermoni

"Service monitor" / cronjob status service
Log | Files | Refs

services.go (916B)


      1 package http
      2 
      3 import (
      4 	"encoding/json"
      5 	"io/ioutil"
      6 	"log"
      7 	"net/http"
      8 	"sermoni/internal/services"
      9 	"strconv"
     10 
     11 	"github.com/gorilla/mux"
     12 )
     13 
     14 func getServices(w http.ResponseWriter, r *http.Request) {
     15 	s := services.GetAll()
     16 	data, err := json.Marshal(s)
     17 	check(err)
     18 	w.Write(data)
     19 }
     20 
     21 func postService(w http.ResponseWriter, r *http.Request) {
     22 	content, err := ioutil.ReadAll(r.Body)
     23 	check(err)
     24 	service := new(services.Service)
     25 	// TODO: Handle json parse error
     26 	err = json.Unmarshal(content, service)
     27 	check(err)
     28 	services.Add(service)
     29 	w.WriteHeader(http.StatusCreated)
     30 }
     31 
     32 func deleteService(w http.ResponseWriter, r *http.Request) {
     33 	vars := mux.Vars(r)
     34 	id, _ := strconv.ParseUint(vars["id"], 10, 64)
     35 	err := services.Delete(id)
     36 	if err != nil {
     37 		// TODO: "Non-existing" error is not an internal server error
     38 		log.Printf("deleteService error: %v\n", err)
     39 		w.WriteHeader(http.StatusInternalServerError)
     40 	}
     41 }