Implement HTTP POST in Connection.
This commit is contained in:
parent
f222215116
commit
a6139b4390
|
@ -124,6 +124,43 @@ public:
|
||||||
return get(endpoint, {});
|
return get(endpoint, {});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* @brief Make a HTTP POST call with parameters.
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
* @code
|
||||||
|
* auto answer{connection.post(
|
||||||
|
* mastodonpp::API::v1::statuses,
|
||||||
|
* {
|
||||||
|
* {"status", "How is the wheather?"},
|
||||||
|
* {"poll[options]", vector<string_view>{"Nice", "not nice"}},
|
||||||
|
* {"poll[expires_in]", to_string(poll_seconds)}
|
||||||
|
* })};
|
||||||
|
* @endcode
|
||||||
|
*
|
||||||
|
* @param endpoint Endpoint as API::endpoint_type or `std::string_view`.
|
||||||
|
* @param parameters A map of parameters.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @since 0.1.0
|
||||||
|
*/
|
||||||
|
[[nodiscard]]
|
||||||
|
answer_type post(const endpoint_variant &endpoint,
|
||||||
|
const parametermap ¶meters);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* @brief Make a HTTP POST call.
|
||||||
|
*
|
||||||
|
* @param endpoint Endpoint as API::endpoint_type or `std::string_view`.
|
||||||
|
*
|
||||||
|
* @since 0.1.0
|
||||||
|
*/
|
||||||
|
[[nodiscard]]
|
||||||
|
inline answer_type post(const endpoint_variant &endpoint)
|
||||||
|
{
|
||||||
|
return post(endpoint, {});
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* @brief Copy new stream contents and delete the “original”.
|
* @brief Copy new stream contents and delete the “original”.
|
||||||
*
|
*
|
||||||
|
@ -147,6 +184,8 @@ public:
|
||||||
private:
|
private:
|
||||||
Instance &_instance;
|
Instance &_instance;
|
||||||
const string_view _baseuri;
|
const string_view _baseuri;
|
||||||
|
|
||||||
|
string endpoint_to_uri(const endpoint_variant &endpoint) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace mastodonpp
|
} // namespace mastodonpp
|
||||||
|
|
|
@ -32,20 +32,28 @@ Connection::Connection(Instance &instance)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
string Connection::endpoint_to_uri(const endpoint_variant &endpoint) const
|
||||||
|
{
|
||||||
|
if (holds_alternative<API::endpoint_type>(endpoint))
|
||||||
|
{
|
||||||
|
return string(_baseuri)
|
||||||
|
+= API{std::get<API::endpoint_type>(endpoint)}.to_string_view();
|
||||||
|
}
|
||||||
|
return string(_baseuri) += std::get<string_view>(endpoint);
|
||||||
|
}
|
||||||
|
|
||||||
answer_type Connection::get(const endpoint_variant &endpoint,
|
answer_type Connection::get(const endpoint_variant &endpoint,
|
||||||
const parametermap ¶meters)
|
const parametermap ¶meters)
|
||||||
{
|
{
|
||||||
const string uri{[&]
|
return make_request(http_method::GET,
|
||||||
{
|
endpoint_to_uri(endpoint), parameters);
|
||||||
if (holds_alternative<API::endpoint_type>(endpoint))
|
}
|
||||||
{
|
|
||||||
return string(_baseuri)
|
|
||||||
+= API{std::get<API::endpoint_type>(endpoint)}.to_string_view();
|
|
||||||
}
|
|
||||||
return string(_baseuri) += std::get<string_view>(endpoint);
|
|
||||||
}()};
|
|
||||||
|
|
||||||
return make_request(http_method::GET, uri, parameters);
|
answer_type Connection::post(const endpoint_variant &endpoint,
|
||||||
|
const parametermap ¶meters)
|
||||||
|
{
|
||||||
|
return make_request(http_method::POST,
|
||||||
|
endpoint_to_uri(endpoint), parameters);
|
||||||
}
|
}
|
||||||
|
|
||||||
string Connection::get_new_stream_contents()
|
string Connection::get_new_stream_contents()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user