File: MethodTest.h

package info (click to toggle)
drogon 1.9.0%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 4,096 kB
  • sloc: cpp: 52,222; sh: 249; xml: 20; makefile: 11
file content (37 lines) | stat: -rw-r--r-- 1,497 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#pragma once
#include <drogon/HttpController.h>
using namespace drogon;

class MethodTest : public drogon::HttpController<MethodTest>
{
  public:
    METHOD_LIST_BEGIN
    ADD_METHOD_TO(MethodTest::get, "/api/method/test", Get);
    ADD_METHOD_TO(MethodTest::post, "/api/method/test?test={}", Post);
    ADD_METHOD_TO(MethodTest::getReg, "/api/method/{}/test", Get);
    ADD_METHOD_TO(MethodTest::postReg, "/api/method/{}/test?test={}", Post);
    ADD_METHOD_VIA_REGEX(MethodTest::getReg,
                         "/api/method/regex/(.*)/test",
                         Get);
    ADD_METHOD_VIA_REGEX(MethodTest::postRegex,
                         "/api/method/regex/(.*)/test",
                         Post);
    METHOD_LIST_END

    void get(const HttpRequestPtr &req,
             std::function<void(const HttpResponsePtr &)> &&callback);
    void post(const HttpRequestPtr &req,
              std::function<void(const HttpResponsePtr &)> &&callback,
              std::string str);

    void getReg(const HttpRequestPtr &req,
                std::function<void(const HttpResponsePtr &)> &&callback,
                std::string regStr);
    void postReg(const HttpRequestPtr &req,
                 std::function<void(const HttpResponsePtr &)> &&callback,
                 std::string regStr,
                 std::string str);
    void postRegex(const HttpRequestPtr &req,
                   std::function<void(const HttpResponsePtr &)> &&callback,
                   std::string regStr);
};