80 lines
No EOL
3.6 KiB
C++
80 lines
No EOL
3.6 KiB
C++
#pragma once
|
|
#include <drogon/HttpController.h>
|
|
#include "../services/AuthService.h"
|
|
|
|
using namespace drogon;
|
|
|
|
class UserController : public HttpController<UserController> {
|
|
public:
|
|
METHOD_LIST_BEGIN
|
|
ADD_METHOD_TO(UserController::register_, "/api/auth/register", Post);
|
|
ADD_METHOD_TO(UserController::login, "/api/auth/login", Post);
|
|
ADD_METHOD_TO(UserController::logout, "/api/auth/logout", Post);
|
|
ADD_METHOD_TO(UserController::pgpChallenge, "/api/auth/pgp-challenge", Post);
|
|
ADD_METHOD_TO(UserController::pgpVerify, "/api/auth/pgp-verify", Post);
|
|
ADD_METHOD_TO(UserController::getCurrentUser, "/api/user/me", Get);
|
|
ADD_METHOD_TO(UserController::updateProfile, "/api/user/profile", Put);
|
|
ADD_METHOD_TO(UserController::updatePassword, "/api/user/password", Put);
|
|
ADD_METHOD_TO(UserController::togglePgpOnly, "/api/user/pgp-only", Put);
|
|
ADD_METHOD_TO(UserController::addPgpKey, "/api/user/pgp-key", Post);
|
|
ADD_METHOD_TO(UserController::getPgpKeys, "/api/user/pgp-keys", Get);
|
|
ADD_METHOD_TO(UserController::uploadAvatar, "/api/user/avatar", Post);
|
|
ADD_METHOD_TO(UserController::getProfile, "/api/users/{1}", Get);
|
|
ADD_METHOD_TO(UserController::getUserPgpKeys, "/api/users/{1}/pgp-keys", Get);
|
|
ADD_METHOD_TO(UserController::updateColor, "/api/user/color", Put);
|
|
ADD_METHOD_TO(UserController::getAvailableColors, "/api/colors/available", Get);
|
|
METHOD_LIST_END
|
|
|
|
void register_(const HttpRequestPtr &req,
|
|
std::function<void(const HttpResponsePtr &)> &&callback);
|
|
|
|
void login(const HttpRequestPtr &req,
|
|
std::function<void(const HttpResponsePtr &)> &&callback);
|
|
|
|
void logout(const HttpRequestPtr &req,
|
|
std::function<void(const HttpResponsePtr &)> &&callback);
|
|
|
|
void pgpChallenge(const HttpRequestPtr &req,
|
|
std::function<void(const HttpResponsePtr &)> &&callback);
|
|
|
|
void pgpVerify(const HttpRequestPtr &req,
|
|
std::function<void(const HttpResponsePtr &)> &&callback);
|
|
|
|
void getCurrentUser(const HttpRequestPtr &req,
|
|
std::function<void(const HttpResponsePtr &)> &&callback);
|
|
|
|
void updateProfile(const HttpRequestPtr &req,
|
|
std::function<void(const HttpResponsePtr &)> &&callback);
|
|
|
|
void updatePassword(const HttpRequestPtr &req,
|
|
std::function<void(const HttpResponsePtr &)> &&callback);
|
|
|
|
void togglePgpOnly(const HttpRequestPtr &req,
|
|
std::function<void(const HttpResponsePtr &)> &&callback);
|
|
|
|
void addPgpKey(const HttpRequestPtr &req,
|
|
std::function<void(const HttpResponsePtr &)> &&callback);
|
|
|
|
void getPgpKeys(const HttpRequestPtr &req,
|
|
std::function<void(const HttpResponsePtr &)> &&callback);
|
|
|
|
void uploadAvatar(const HttpRequestPtr &req,
|
|
std::function<void(const HttpResponsePtr &)> &&callback);
|
|
|
|
void getProfile(const HttpRequestPtr &req,
|
|
std::function<void(const HttpResponsePtr &)> &&callback,
|
|
const std::string &username);
|
|
|
|
void getUserPgpKeys(const HttpRequestPtr &req,
|
|
std::function<void(const HttpResponsePtr &)> &&callback,
|
|
const std::string &username);
|
|
|
|
void updateColor(const HttpRequestPtr &req,
|
|
std::function<void(const HttpResponsePtr &)> &&callback);
|
|
|
|
void getAvailableColors(const HttpRequestPtr &req,
|
|
std::function<void(const HttpResponsePtr &)> &&callback);
|
|
|
|
private:
|
|
UserInfo getUserFromRequest(const HttpRequestPtr &req);
|
|
}; |