1#include "users_controller.h"
2#include "filters/AuthFilter.h"
3#include "model/sessions/game_session.h"
5namespace cavoke::server::controllers {
6void UsersController::get_me(
7 const drogon::HttpRequestPtr &req,
8 std::function<
void(
const drogon::HttpResponsePtr &)> &&callback) {
10 auto user = mp_users.findByPrimaryKey(user_id);
11 auto resp = newNlohmannJsonResponse(
12 cavoke::server::model::GameSessionAccessObject::UserInfo::from_user(
14 return callback(resp);
16void UsersController::change_name(
17 const drogon::HttpRequestPtr &req,
18 std::function<
void(
const drogon::HttpResponsePtr &)> &&callback) {
21 auto new_name = req->getOptionalParameter<std::string>(
"new_name");
22 if (!new_name.has_value()) {
23 return CALLBACK_STATUS_CODE(k400BadRequest);
27 {drogon_model::cavoke_orm::Users::Cols::_display_name},
28 drogon::orm::Criteria(drogon_model::cavoke_orm::Users::Cols::_id,
29 drogon::orm::CompareOperator::EQ, user_id),
31 auto user = mp_users.findByPrimaryKey(user_id);
32 auto resp = newNlohmannJsonResponse(
33 cavoke::server::model::GameSessionAccessObject::UserInfo::from_user(
35 return callback(resp);
37void UsersController::get_user(
38 const drogon::HttpRequestPtr &req,
39 std::function<
void(
const drogon::HttpResponsePtr &)> &&callback) {
40 auto req_user_id = req->getOptionalParameter<std::string>(
"req_user_id");
41 if (!req_user_id.has_value()) {
42 return CALLBACK_STATUS_CODE(k400BadRequest);
46 auto user = mp_users.findByPrimaryKey(req_user_id.value());
47 auto resp = newNlohmannJsonResponse(
48 cavoke::server::model::GameSessionAccessObject::UserInfo::from_user(
50 return callback(resp);
51 }
catch (
const drogon::orm::UnexpectedRows &) {
52 return CALLBACK_STATUS_CODE(k404NotFound);
static std::string get_user_id(const HttpRequestPtr &)
Acquires user_id parsed during AuthFilter's execution.