feat: Integrate CIE authentication flow
This commit is contained in:
+31
-1
@@ -1,5 +1,9 @@
|
||||
#include "common/Http.h"
|
||||
|
||||
#include <drogon/HttpRequest.h>
|
||||
|
||||
#include <sstream>
|
||||
|
||||
namespace visione::http
|
||||
{
|
||||
drogon::HttpResponsePtr json(Json::Value body, drogon::HttpStatusCode status)
|
||||
@@ -22,6 +26,14 @@ drogon::HttpResponsePtr error(const std::string &code,
|
||||
return json(std::move(body), status);
|
||||
}
|
||||
|
||||
drogon::HttpResponsePtr redirect(const std::string &url,
|
||||
drogon::HttpStatusCode status)
|
||||
{
|
||||
auto response = drogon::HttpResponse::newRedirectionResponse(url);
|
||||
response->setStatusCode(status);
|
||||
return response;
|
||||
}
|
||||
|
||||
Json::Value requireJson(const drogon::HttpRequestPtr &request)
|
||||
{
|
||||
const auto &body = request->getJsonObject();
|
||||
@@ -31,5 +43,23 @@ Json::Value requireJson(const drogon::HttpRequestPtr &request)
|
||||
}
|
||||
return *body;
|
||||
}
|
||||
} // namespace visione::http
|
||||
|
||||
Json::Value parseJsonBody(const std::string &body)
|
||||
{
|
||||
if (body.empty())
|
||||
{
|
||||
return Json::Value(Json::nullValue);
|
||||
}
|
||||
|
||||
Json::CharReaderBuilder builder;
|
||||
builder["collectComments"] = false;
|
||||
std::string errors;
|
||||
Json::Value parsed;
|
||||
std::istringstream stream(body);
|
||||
if (!Json::parseFromStream(builder, stream, &parsed, &errors))
|
||||
{
|
||||
return Json::Value(Json::nullValue);
|
||||
}
|
||||
return parsed;
|
||||
}
|
||||
} // namespace visione::http
|
||||
|
||||
Reference in New Issue
Block a user