92 lines
2.3 KiB
C++
92 lines
2.3 KiB
C++
#include "RestResponseTemplates.h"
|
|
|
|
using namespace JasonPP;
|
|
|
|
/*
|
|
Every query MUST have a value for "status"
|
|
Every query with status = "ERROR" MUST have a value for "description" and "message"!
|
|
*/
|
|
|
|
JsonBlock Rest::RestResponseTemplates::GetByCode(HTTP_STATUS_CODE code, std::string message)
|
|
{
|
|
switch (code)
|
|
{
|
|
case HTTP_STATUS_CODE::OK:
|
|
return OK();
|
|
case HTTP_STATUS_CODE::BAD_REQUEST:
|
|
return BadRequest(message);
|
|
case HTTP_STATUS_CODE::FORBIDDEN:
|
|
return Forbidden((message.length() > 0) ? message : "Forbidden!");
|
|
case HTTP_STATUS_CODE::UNAUTHORIZED:
|
|
return Unauthorized((message.length() > 0) ? message : "Unauthorized");
|
|
case HTTP_STATUS_CODE::NOT_FOUND:
|
|
return NotFound((message.length() > 0) ? message : "not found");
|
|
case HTTP_STATUS_CODE::INTERNAL_SERVER_ERROR:
|
|
return InternalServerError((message.length() > 0) ? message : "Well, that's not good.");
|
|
case HTTP_STATUS_CODE::NOT_IMPLEMENTED:
|
|
return NotImplemented(message);
|
|
}
|
|
return InternalServerError("No template found for this http-status-code");
|
|
}
|
|
|
|
JsonBlock Rest::RestResponseTemplates::OK()
|
|
{
|
|
return JsonBlock({
|
|
Ele("status", "OK"),
|
|
});
|
|
}
|
|
|
|
JsonBlock Rest::RestResponseTemplates::BadRequest(std::string message)
|
|
{
|
|
return JsonBlock({
|
|
Ele("status", "ERROR"),
|
|
Ele("description", "Bad request"),
|
|
Ele("message", message)
|
|
});
|
|
}
|
|
|
|
JsonBlock Rest::RestResponseTemplates::Unauthorized(std::string message)
|
|
{
|
|
return JsonBlock({
|
|
Ele("status", "ERROR"),
|
|
Ele("description", "Unauthorized"),
|
|
Ele("message", message)
|
|
});
|
|
}
|
|
|
|
JsonBlock Rest::RestResponseTemplates::Forbidden(std::string message)
|
|
{
|
|
return JsonBlock({
|
|
Ele("status", "ERROR"),
|
|
Ele("description", "Forbidden"),
|
|
Ele("message", message)
|
|
});
|
|
}
|
|
|
|
JsonBlock Rest::RestResponseTemplates::NotFound(std::string message)
|
|
{
|
|
return JsonBlock({
|
|
Ele("status", "ERROR"),
|
|
Ele("description", "Not found"),
|
|
Ele("message", message)
|
|
});
|
|
}
|
|
|
|
JsonBlock Rest::RestResponseTemplates::InternalServerError(std::string message)
|
|
{
|
|
return JsonBlock({
|
|
Ele("status", "ERROR"),
|
|
Ele("description", "Internal server error"),
|
|
Ele("message", message)
|
|
});
|
|
}
|
|
|
|
JsonBlock Rest::RestResponseTemplates::NotImplemented(std::string message)
|
|
{
|
|
return JsonBlock({
|
|
Ele("status", "ERROR"),
|
|
Ele("description", "Not implemented"),
|
|
Ele("message", message)
|
|
});
|
|
}
|