github.com/seeker-insurance/kit@v0.0.13/web/handlers.go (about)

     1  package web
     2  
     3  import (
     4  	"fmt"
     5  	"net/http"
     6  
     7  	"github.com/labstack/echo"
     8  	"github.com/seeker-insurance/kit/jsonapi"
     9  	"github.com/spf13/viper"
    10  )
    11  
    12  func Healthz(c ApiContext) error {
    13  	badParam := func(param string) bool { return c.QueryParam(param) == "1" }
    14  	switch {
    15  	case badParam("oops"):
    16  		panic("oops")
    17  	case badParam("apiErr"):
    18  		return &jsonapi.ErrorObject{
    19  			Title:  "Api Error",
    20  			Status: fmt.Sprintf("%d", http.StatusBadRequest),
    21  			Detail: "missing parameters: foo,bar",
    22  		}
    23  	case badParam("500"):
    24  		return echo.NewHTTPError(http.StatusInternalServerError)
    25  	case badParam("400"):
    26  		return echo.NewHTTPError(http.StatusBadRequest, "Missing value.")
    27  	default:
    28  		return c.String(http.StatusOK, "live")
    29  	}
    30  }
    31  
    32  func Config(c ApiContext) error {
    33  	return c.JSON(http.StatusOK, viper.AllSettings())
    34  }