mirror of
https://gitlab.com/niansa/discordlistforbots.git
synced 2025-03-06 20:49:22 +01:00
46 lines
2.1 KiB
C++
46 lines
2.1 KiB
C++
#pragma once
|
|
#include <drogon/HttpController.h>
|
|
using namespace std;
|
|
|
|
|
|
struct Bot {
|
|
string name, short_description, long_description, avatar_url, owner, support_server, prefix;
|
|
uint64_t owner_id, app_id;
|
|
uint32_t votes = 0;
|
|
bool approved = false;
|
|
};
|
|
|
|
class LoginFilter:public drogon::HttpFilter<LoginFilter>
|
|
{
|
|
public:
|
|
virtual void doFilter(const drogon::HttpRequestPtr &,
|
|
drogon::FilterCallback &&,
|
|
drogon::FilterChainCallback &&) override;
|
|
};
|
|
|
|
using namespace drogon;
|
|
class views: public drogon::HttpController<views> {
|
|
orm::DbClientPtr db;
|
|
public:
|
|
views();
|
|
void start(const HttpRequestPtr&, std::function<void (const HttpResponsePtr &)> &&);
|
|
void botlist(const HttpRequestPtr&, std::function<void (const HttpResponsePtr &)> &&);
|
|
void botdetail(const HttpRequestPtr&, std::function<void (const HttpResponsePtr &)> &&, uint64_t);
|
|
void botvote(const HttpRequestPtr&, std::function<void (const HttpResponsePtr &)> &&, uint64_t);
|
|
void botregister_view(const HttpRequestPtr&, std::function<void (const HttpResponsePtr &)> &&, const std::string&);
|
|
void botregister_submit(const HttpRequestPtr&, std::function<void (const HttpResponsePtr &)> &&);
|
|
void discordauth(const HttpRequestPtr&, std::function<void (const HttpResponsePtr &)> &&, const std::string&);
|
|
void discorddeauth(const HttpRequestPtr&, std::function<void (const HttpResponsePtr &)> &&);
|
|
|
|
METHOD_LIST_BEGIN
|
|
ADD_METHOD_TO(views::start, "/", Get);
|
|
ADD_METHOD_TO(views::botlist, "/bots/@all", Get);
|
|
ADD_METHOD_TO(views::botlist, "/bots/@me", Get, "LoginFilter");
|
|
ADD_METHOD_TO(views::botregister_view, "/bots/register?error={1}", Get, "LoginFilter");
|
|
ADD_METHOD_TO(views::botregister_submit, "/bots/register", Post, "LoginFilter");
|
|
ADD_METHOD_TO(views::botdetail, "/bots/{1}/detail", Get);
|
|
ADD_METHOD_TO(views::botvote, "/bots/{1}/vote", Get, "LoginFilter");
|
|
ADD_METHOD_TO(views::discordauth, "/discordauth?code={1}", Get);
|
|
ADD_METHOD_TO(views::discorddeauth, "/discorddeauth", Get);
|
|
METHOD_LIST_END
|
|
};
|