Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

namespace helpers->client #9

Merged
merged 3 commits into from
Oct 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions example/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,17 @@ int main(int argc, char **argv) {
connection.port = 80;

mochios::Client client(connection);
client.interceptors.request.use([](mochios::message::Request &request) {
client.interceptors.request.use([](mochios::messages::Request &request) {
logger::info("Intercepting request!");
request.print();
});
mochios::message::Response response;
mochios::messages::Response response;

mochios::message::Request healthRequest("/health");
mochios::messages::Request healthRequest("/health");
response = client.get(healthRequest);
logger::success(response.body);

mochios::message::Request request("/about");
mochios::messages::Request request("/about");
response = client.get(request);
logger::success(response.body.dumps(2));

Expand Down
18 changes: 10 additions & 8 deletions include/mochios/client/client.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

#include <mochios/client/options.h>
#include <mochios/interceptors/interceptor.h>
#include <mochios/interceptors/request/cookie.h>
#include <mochios/interceptors/request/user_agent.h>
#include <mochios/interceptors/response/json.h>

Expand All @@ -19,23 +20,24 @@ class Client {
struct addrinfo *server;

mochios::client::Connection connection;
mochios::interceptor::Interceptors internalInterceptors;

void connect();
mochios::message::Response sendHelper(mochios::message::Request &request);
mochios::messages::Response sendHelper(mochios::messages::Request &request);

public:
Client(const mochios::client::Connection &connection);
~Client();

mochios::interceptor::Interceptors interceptors;

mochios::message::Response get(mochios::message::Request &request);
mochios::message::Response post(mochios::message::Request &request);
mochios::message::Response put(mochios::message::Request &request);
mochios::message::Response patch(mochios::message::Request &request);
mochios::message::Response del(mochios::message::Request &request);
mochios::message::Response options(mochios::message::Request &request);
mochios::message::Response head(mochios::message::Request &request);
mochios::messages::Response get(mochios::messages::Request &request);
mochios::messages::Response post(mochios::messages::Request &request);
mochios::messages::Response put(mochios::messages::Request &request);
mochios::messages::Response patch(mochios::messages::Request &request);
mochios::messages::Response del(mochios::messages::Request &request);
mochios::messages::Response options(mochios::messages::Request &request);
mochios::messages::Response head(mochios::messages::Request &request);
};

} // namespace mochios
16 changes: 10 additions & 6 deletions include/mochios/helpers/client.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,25 @@
#include <brewtils/url.h>

#include <mochios/enums/method.h>
#include <mochios/message/request.h>
#include <mochios/message/response.h>
#include <mochios/messages/request.h>
#include <mochios/messages/response.h>

namespace mochios {

namespace helpers {

namespace client {

std::pair<std::string, std::string>
buildRequest(mochios::message::Request &request);
buildRequest(mochios::messages::Request &request);

void buildResponse(mochios::message::Response &res,
void buildResponse(mochios::messages::Response &res,
std::stringstream &response);

mochios::message::Response send(mochios::message::Request &request,
const int &socket);
mochios::messages::Response send(mochios::messages::Request &request,
const int &socket);

} // namespace client

} // namespace helpers

Expand Down
17 changes: 17 additions & 0 deletions include/mochios/helpers/cookie.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#pragma once

#include <mochios/messages/cookie.h>

namespace mochios {

namespace helpers {

namespace cookie {

std::string serialize(const mochios::messages::Cookie &cookie);

} // namespace cookie

} // namespace helpers

} // namespace mochios
8 changes: 4 additions & 4 deletions include/mochios/interceptors/interceptor.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

#include <functional>

#include <mochios/message/request.h>
#include <mochios/message/response.h>
#include <mochios/messages/request.h>
#include <mochios/messages/response.h>

namespace mochios {

Expand All @@ -30,8 +30,8 @@ template <typename T> class Manager {
};

typedef struct {
mochios::interceptor::Manager<mochios::message::Request> request;
mochios::interceptor::Manager<mochios::message::Response> response;
mochios::interceptor::Manager<mochios::messages::Request> request;
mochios::interceptor::Manager<mochios::messages::Response> response;
} Interceptors;

} // namespace interceptor
Expand Down
18 changes: 18 additions & 0 deletions include/mochios/interceptors/request/cookie.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#pragma once

#include <mochios/messages/cookie.h>
#include <mochios/messages/request.h>

namespace mochios {

namespace interceptor {

namespace request {

void cookie(mochios::messages::Request &request);

} // namespace request

} // namespace interceptor

} // namespace mochios
4 changes: 2 additions & 2 deletions include/mochios/interceptors/request/user_agent.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#pragma once

#include <mochios/message/request.h>
#include <mochios/messages/request.h>
#include <mochios/version.h>

namespace mochios {
Expand All @@ -9,7 +9,7 @@ namespace interceptor {

namespace request {

void userAgent(mochios::message::Request &request);
void userAgent(mochios::messages::Request &request);

} // namespace request

Expand Down
4 changes: 2 additions & 2 deletions include/mochios/interceptors/response/json.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@

#include <json/parse.h>

#include <mochios/message/response.h>
#include <mochios/messages/response.h>

namespace mochios {

namespace interceptor {

namespace response {

void json(mochios::message::Response &response);
void json(mochios::messages::Response &response);

} // namespace response

Expand Down
34 changes: 34 additions & 0 deletions include/mochios/messages/cookie.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#pragma once

#include <brewtils/string.h>
#include <brewtils/url.h>
#include <logger/log.h>

namespace mochios {

namespace messages {

class Cookie {
public:
bool secure;
bool httpOnly;
bool partitioned;

std::string name;
std::string value;
std::string domain;
std::string path;
std::string expires;
std::string maxAge;
std::string sameSite;

Cookie();
Cookie(const std::string &data);
~Cookie();

std::string serialize() const;
};

} // namespace messages

} // namespace mochios
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@
#include <brewtils/string.h>
#include <json/parse.h>

#include <mochios/messages/cookie.h>

namespace mochios {

namespace message {
namespace messages {

class Message {
private:
Expand All @@ -19,6 +21,7 @@ class Message {
std::map<std::string, std::string> headers;
std::map<std::string, std::string> params;
std::map<std::string, std::string> queries;
std::vector<mochios::messages::Cookie *> cookies;
json::object body;

void set(const std::string &key, const std::string &value);
Expand All @@ -27,6 +30,6 @@ class Message {
virtual void print() = 0;
};

} // namespace message
} // namespace messages

} // namespace mochios
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
#pragma once

#include <mochios/enums/method.h>
#include <mochios/message/message.h>
#include <mochios/messages/message.h>

namespace mochios {

namespace message {
namespace messages {

class Request : public Message {
private:
Expand All @@ -19,6 +19,6 @@ class Request : public Message {
void print() override;
};

} // namespace message
} // namespace messages

} // namespace mochios
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
#pragma once

#include <mochios/message/message.h>
#include <mochios/messages/message.h>

namespace mochios {

namespace message {
namespace messages {

class Response : public Message {
private:
Expand All @@ -18,6 +18,6 @@ class Response : public Message {
void print() override;
};

} // namespace message
} // namespace messages

} // namespace mochios
Loading
Loading