Kea  2.1.7-git
post_request_json.h
Go to the documentation of this file.
1 // Copyright (C) 2016-2020 Internet Systems Consortium, Inc. ("ISC")
2 //
3 // This Source Code Form is subject to the terms of the Mozilla Public
4 // License, v. 2.0. If a copy of the MPL was not distributed with this
5 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
6 
7 #ifndef HTTP_POST_REQUEST_JSON_H
8 #define HTTP_POST_REQUEST_JSON_H
9 
10 #include <cc/data.h>
11 #include <exceptions/exceptions.h>
12 #include <http/post_request.h>
13 #include <boost/shared_ptr.hpp>
14 #include <string>
15 
16 namespace isc {
17 namespace http {
18 
21 public:
22  HttpRequestJsonError(const char* file, size_t line, const char* what) :
23  HttpRequestError(file, line, what) { };
24 };
25 
27 
29 typedef boost::shared_ptr<PostHttpRequestJson> PostHttpRequestJsonPtr;
30 
38 public:
39 
41  explicit PostHttpRequestJson();
42 
55  explicit PostHttpRequestJson(const Method& method, const std::string& uri,
56  const HttpVersion& version,
57  const HostHttpHeader& host_header = HostHttpHeader(),
58  const BasicHttpAuthPtr& basic_auth = BasicHttpAuthPtr());
59 
64  virtual void finalize();
65 
67  virtual void reset();
68 
73  data::ConstElementPtr getBodyAsJson() const;
74 
83  void setBodyAsJson(const data::ConstElementPtr& body);
84 
94  data::ConstElementPtr getJsonElement(const std::string& element_name) const;
95 
96 protected:
97 
100  void parseBodyAsJson();
101 
104 
105 };
106 
107 } // namespace http
108 } // namespace isc
109 
110 #endif
Represents HTTP Host header.
Definition: http_header.h:68
Represents HTTP POST request with JSON body.
Generic exception thrown by HttpRequest class.
Definition: request.h:21
HTTP protocol version.
Definition: http_types.h:14
Represents HTTP POST request.
Definition: post_request.h:29
virtual const char * what() const
Returns a C-style character string of the cause of the exception.
Exception thrown when body of the HTTP message is not JSON.
boost::shared_ptr< PostHttpRequestJson > PostHttpRequestJsonPtr
Pointer to PostHttpRequestJson.
HttpRequestJsonError(const char *file, size_t line, const char *what)
boost::shared_ptr< const Element > ConstElementPtr
Definition: data.h:27
int version()
returns Kea hooks version.
Method
HTTP methods.
Definition: request.h:61
Defines the logger used by the top-level component of kea-lfc.
data::ConstElementPtr json_
Pointer to the parsed JSON body.
boost::shared_ptr< BasicHttpAuth > BasicHttpAuthPtr
Type of pointers to basic HTTP authentication objects.
Definition: basic_auth.h:70