SNode.C
Loading...
Searching...
No Matches
express::Request Class Reference

#include <Request.h>

Inheritance diagram for express::Request:
Collaboration diagram for express::Request:

Public Member Functions

 Request ()=default
 
 Request (const std::shared_ptr< web::http::server::Request > &request) noexcept
 
 Request (Request &)=delete
 
 Request (Request &&) noexcept=delete
 
Requestoperator= (Request &)=delete
 
Requestoperator= (Request &&) noexcept=delete
 
const std::string & param (const std::string &id, const std::string &fallBack="")
 
const std::string & get (const std::string &key, int i=0) const
 
const std::string & cookie (const std::string &key) const
 
const std::string & query (const std::string &key) const
 
- Public Member Functions inherited from utils::MultibleAttributeInjector
template<InjectableAttribute Attribute, fixed_string key = "">
constexpr bool setAttribute (const Attribute &attribute, const std::string &subKey="", bool overwrite=false)
 
template<InjectableAttribute Attribute, fixed_string key = "">
constexpr bool setAttribute (const Attribute &&attribute, const std::string &subKey="", bool overwrite=false)
 
template<InjectableAttribute Attribute, fixed_string key = "">
constexpr bool delAttribute (const std::string &subKey="")
 
template<InjectableAttribute Attribute, fixed_string key = "">
constexpr bool hasAttribute (const std::string &subKey="") const
 
template<InjectableAttribute Attribute, fixed_string key = "">
bool getAttribute (const std::function< void(Attribute &)> &onFound, const std::string &subKey="") const
 
template<InjectableAttribute Attribute, fixed_string key = "">
void getAttribute (const std::function< void(Attribute &)> &onFound, const std::function< void(const std::string &)> &onNotFound, const std::string &subKey="") const
 
void reset ()
 

Public Attributes

std::string originalUrl
 
std::string path
 
std::map< std::string, std::string > params
 
std::string method
 
std::string url
 
std::string httpVersion
 
int httpMajor = 0
 
int httpMinor = 0
 
web::http::CiStringMap< std::string > queries
 
web::http::CiStringMap< std::string > headers
 
web::http::CiStringMap< std::string > cookies
 
std::vector< char > body
 

Private Member Functions

Requestextend ()
 

Private Attributes

std::shared_ptr< web::http::server::RequestrequestBase
 
std::string nullstr
 

Friends

class Response
 

Detailed Description

Definition at line 41 of file Request.h.

Constructor & Destructor Documentation

◆ Request() [1/4]

express::Request::Request ( )
default

◆ Request() [2/4]

express::Request::Request ( const std::shared_ptr< web::http::server::Request > & request)
explicitnoexcept

Definition at line 34 of file Request.cpp.

35 : requestBase(request)
36 , method(request->method)
37 , url(request->url)
38 , httpVersion(request->httpVersion)
39 , httpMajor(request->httpMajor)
40 , httpMinor(request->httpMinor)
41 , queries(std::move(request->queries))
42 , headers(request->headers) // Do not move headers as they are possibly still needed in the source request
43 , cookies(std::move(request->cookies))
44 , body(std::move(request->body)) {
45 extend();
46 }
Request & extend()
Definition Request.cpp:52
std::string httpVersion
Definition Request.h:74
web::http::CiStringMap< std::string > cookies
Definition Request.h:80
std::string url
Definition Request.h:73
std::vector< char > body
Definition Request.h:81
web::http::CiStringMap< std::string > queries
Definition Request.h:78
std::string method
Definition Request.h:72
std::shared_ptr< web::http::server::Request > requestBase
Definition Request.h:61
web::http::CiStringMap< std::string > headers
Definition Request.h:79
std::vector< char > body
Definition Request.h:66
CiStringMap< std::string > cookies
Definition Request.h:65
CiStringMap< std::string > headers
Definition Request.h:64
CiStringMap< std::string > queries
Definition Request.h:63
std::string httpVersion
Definition Request.h:59

References extend(), and Request().

Referenced by Request().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Request() [3/4]

express::Request::Request ( Request & )
explicitdelete

◆ Request() [4/4]

express::Request::Request ( Request && )
explicitdeletenoexcept

Member Function Documentation

◆ cookie()

const std::string & express::Request::cookie ( const std::string & key) const

Definition at line 67 of file Request.cpp.

67 {
68 const std::map<std::string, std::string>::const_iterator it = cookies.find(key);
69
70 if (it != cookies.end()) {
71 return it->second;
72 }
73
74 return nullstr;
75 }
std::string nullstr
Definition Request.h:84

◆ extend()

Request & express::Request::extend ( )
private

Definition at line 52 of file Request.cpp.

52 {
56 if (path.empty()) {
57 path = std::string("/");
58 }
59
60 return *this;
61 }
std::string originalUrl
Definition Request.h:54
std::string path
Definition Request.h:55
std::pair< std::string, std::string > str_split_last(const std::string &base, char c_middle)
std::string url_decode(const std::string &text)

Referenced by Request().

Here is the caller graph for this function:

◆ get()

const std::string & express::Request::get ( const std::string & key,
int i = 0 ) const

Definition at line 63 of file Request.cpp.

63 {
64 return requestBase->get(key, i);
65 }
const std::string & get(const std::string &key, int i=0) const
Definition Request.cpp:31

◆ operator=() [1/2]

Request & express::Request::operator= ( Request && )
deletenoexcept

◆ operator=() [2/2]

Request & express::Request::operator= ( Request & )
delete

◆ param()

const std::string & express::Request::param ( const std::string & id,
const std::string & fallBack = "" )

Definition at line 48 of file Request.cpp.

48 {
49 return params.contains(id) ? params[id] : fallBack;
50 }
std::map< std::string, std::string > params
Definition Request.h:56

◆ query()

const std::string & express::Request::query ( const std::string & key) const

Definition at line 77 of file Request.cpp.

77 {
78 const std::map<std::string, std::string>::const_iterator it = queries.find(key);
79
80 if (it != queries.end()) {
81 return it->second;
82 }
83
84 return nullstr;
85 }

Friends And Related Symbol Documentation

◆ Response

friend class Response
friend

Definition at line 63 of file Request.h.

Member Data Documentation

◆ body

std::vector<char> express::Request::body

Definition at line 81 of file Request.h.

◆ cookies

web::http::CiStringMap<std::string> express::Request::cookies

Definition at line 80 of file Request.h.

◆ headers

web::http::CiStringMap<std::string> express::Request::headers

Definition at line 79 of file Request.h.

◆ httpMajor

int express::Request::httpMajor = 0

Definition at line 75 of file Request.h.

◆ httpMinor

int express::Request::httpMinor = 0

Definition at line 76 of file Request.h.

◆ httpVersion

std::string express::Request::httpVersion

Definition at line 74 of file Request.h.

◆ method

std::string express::Request::method

Definition at line 72 of file Request.h.

◆ nullstr

std::string express::Request::nullstr
private

Definition at line 84 of file Request.h.

◆ originalUrl

std::string express::Request::originalUrl

Definition at line 54 of file Request.h.

◆ params

std::map<std::string, std::string> express::Request::params

Definition at line 56 of file Request.h.

◆ path

std::string express::Request::path

Definition at line 55 of file Request.h.

◆ queries

web::http::CiStringMap<std::string> express::Request::queries

Definition at line 78 of file Request.h.

◆ requestBase

std::shared_ptr<web::http::server::Request> express::Request::requestBase
private

Definition at line 61 of file Request.h.

◆ url

std::string express::Request::url

Definition at line 73 of file Request.h.


The documentation for this class was generated from the following files: