Added basic rest framework
This commit is contained in:
89
Tubio/RestResponseTemplates.cpp
Normal file
89
Tubio/RestResponseTemplates.cpp
Normal file
@@ -0,0 +1,89 @@
|
||||
#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 : "Could be disabled in the config file!");
|
||||
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)
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user