aboutsummaryrefslogtreecommitdiffstats
path: root/include/Response.hpp
blob: 82edb536ac07152d29f044326daaed22e78aaad2 (plain) (blame)
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
#pragma once

#include "crow.h"

#include "AnnotationTypes.hpp"

namespace Response {
    using Reply::AnnotationType;
    typedef crow::json::wvalue json;

    // create a full response of just plain text
    json simple_response(std::string const &text, std::string const &session = "null", bool success = true);

    // "nested" annotations: the extra field is again an array of text-annotation pairs
    json create_annotation(AnnotationType annotation, std::vector<json> &&extra);
    // construct an extra field with no special annotations in the extra
    json create_annotation(AnnotationType annotation = AnnotationType::none, std::string const &extra = "");

    // text with no special annotation
    json create_text(std::string const &text);
    // text with annotations
    json create_text(std::string const &text, std::vector<json> &&annotations);

    // create a response from multiple texts
    json create_response(std::vector<json> &&reply, std::string const &session = "null", bool success = true);
}