responseHttp.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package controller
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "net/http"
  6. "github.com/gravitl/netmaker/models"
  7. )
  8. func formatError(err error, errType string) models.ErrorResponse {
  9. var status = http.StatusInternalServerError
  10. switch errType {
  11. case "internal":
  12. status = http.StatusInternalServerError
  13. case "badrequest":
  14. status = http.StatusBadRequest
  15. case "notfound":
  16. status = http.StatusNotFound
  17. case "unauthorized":
  18. status = http.StatusUnauthorized
  19. case "forbidden":
  20. status = http.StatusForbidden
  21. default:
  22. status = http.StatusInternalServerError
  23. }
  24. var response = models.ErrorResponse{
  25. Message: err.Error(),
  26. Code: status,
  27. }
  28. return response
  29. }
  30. func returnSuccessResponse(response http.ResponseWriter, request *http.Request, message string) {
  31. var httpResponse models.SuccessResponse
  32. httpResponse.Code = http.StatusOK
  33. httpResponse.Message = message
  34. response.Header().Set("Content-Type", "application/json")
  35. response.WriteHeader(http.StatusOK)
  36. json.NewEncoder(response).Encode(httpResponse)
  37. }
  38. func returnErrorResponse(response http.ResponseWriter, request *http.Request, errorMessage models.ErrorResponse) {
  39. httpResponse := &models.ErrorResponse{Code: errorMessage.Code, Message: errorMessage.Message}
  40. jsonResponse, err := json.Marshal(httpResponse)
  41. if err != nil {
  42. panic(err)
  43. }
  44. fmt.Println(errorMessage)
  45. response.Header().Set("Content-Type", "application/json")
  46. response.WriteHeader(errorMessage.Code)
  47. response.Write(jsonResponse)
  48. }