qswiki/response.h

61 lines
1.2 KiB
C++

#ifndef RESPONSE_H
#define RESPONSE_H
#include <string>
#include <map>
#include <vector>
#include "cookie.h"
class Response
{
private:
int status_code = 200;
std::string html;
std::string content_type = "text/html";
std::map<std::string, std::string> responseHeaders;
std::vector<Cookie> cookies;
public:
Response();
Response(int http_status_code, std::string html);
int getStatus() const { return this->status_code; }
std::string getBody() const { return this->html; }
void addHeader(const std::string &key, const std::string &value);
static Response redirectTemporarily(const std::string &url);
void setStatus(int status) { this->status_code = status; }
void setBody(std::string body) { this->html = body; }
const std::map<std::string, std::string> &getResponseHeaders() const
{
return this->responseHeaders;
}
//TODO: maybe "getEffectiveResponseHeaders?" that would include cookies etc.
const std::vector<Cookie> &getCookies() const
{
return this->cookies;
}
void addCookie(Cookie cookie)
{
this->cookies.push_back(cookie);
}
void setContentType(const std::string &type)
{
this->content_type = type;
}
std::string getContentType() const
{
return this->content_type;
}
};
#endif // RESPONSE_H