errors.cpp 907 B

123456789101112131415161718192021222324252627
  1. #include "errors.hpp"
  2. namespace svapi {
  3. int httpStatus(ErrCode code) {
  4. switch (code) {
  5. case ErrCode::BadRequest: return 400;
  6. case ErrCode::Unauthorized: return 401;
  7. case ErrCode::Forbidden: return 403;
  8. case ErrCode::NotFound: return 404;
  9. case ErrCode::Conflict: return 409;
  10. case ErrCode::Unprocessable: return 422;
  11. case ErrCode::TooManyRequests: return 429;
  12. case ErrCode::Unavailable: return 503;
  13. case ErrCode::Internal: return 500;
  14. }
  15. return 500;
  16. }
  17. nlohmann::json errorBody(const std::string& code, const std::string& message,
  18. const nlohmann::json& details) {
  19. nlohmann::json err{{"code", code}, {"message", message}};
  20. if (!details.is_null() && !details.empty()) err["details"] = details;
  21. return nlohmann::json{{"error", err}};
  22. }
  23. } // namespace svapi