47 Commits

Author SHA1 Message Date
Jonas Platte
12ec0fb168
api: Rename SendAccessToken methods to be clearer
Co-authored-by: Johannes Becker <j.becker@famedly.com>
2021-04-23 15:01:57 +02:00
Jonas Platte
f818b53ca1
Make conversions from Ruma types to http types generic
So users can select the Body type that makes the most sense for them.
2021-04-23 13:26:10 +02:00
Jonas Platte
ae26be88c5
api-macros: Refactor access token sending logic 2021-04-23 13:22:20 +02:00
Johannes Becker
0ca5785ead api: Replace access_token Option with SendAccessToken enum 2021-04-23 10:56:04 +02:00
Jonas Platte
c1693569f1
api: Replace bytes::Buf by AsRef<u8> for reading
This allows us to switch back to serde_json::from_slice instead of
serde_json::from_reader, because the latter is significantly slower.

See https://github.com/serde-rs/json/issues/160
2021-04-13 22:12:16 +02:00
Jonas Platte
6585aeb628
api: Make OutgoingResponse a supertrait of EndpointError 2021-04-13 13:15:57 +02:00
Jonas Platte
0e197aae0b
api: Update try_from_http_request to be generic like try_from_http_response 2021-04-12 20:38:22 +02:00
Jonas Platte
b122dcc135
api: Introduce OutgoingResponse trait 2021-04-12 20:38:22 +02:00
Jonas Platte
6f5c1ee953
api: Stop storing the http::Request in RequestDeserializationError 2021-04-12 20:38:22 +02:00
Jonas Platte
2ac020173b
api: Introduce IncomingResponse trait 2021-04-12 20:38:22 +02:00
Jonas Platte
effb53444d
api: Stop storing the http::Response in ResponseDeserializationError 2021-04-12 20:38:22 +02:00
Johannes Becker
dbc6bb29d0
api: Add trait OutgoingRequestAppserviceExt
Provides the method `try_into_http_request_with_user_id`.
2021-04-12 13:30:04 +02:00
Jonas Platte
a68b854734
api: Refactor macro code and improve error handling
* Inline lots of methods that were only used once
* Create a separate error case for missing headers
2021-04-10 14:50:01 +02:00
Akshay
06a2a27a99
api: Check http method in try_from_http_request 2021-04-09 17:21:05 +02:00
Jonas Platte
85f152fccc
api: Normalize std::fmt import 2021-04-09 12:51:50 +02:00
Jonas Platte
1ab1a24e1d
Remove outdated documentation 2021-04-09 10:58:37 +02:00
Kévin Commaille
963400979b
docs: Harmonize ruma modules descriptions 2021-04-07 12:14:49 +02:00
Jonas Platte
1bf4157a89
Add favicon and logo URLs for rustdoc 2021-04-05 11:42:07 +02:00
Jonas Platte
e843ccdb90
ruma-api: Force client and server Cargo features to always be on 2021-03-09 19:58:36 +01:00
Jonas Platte
ed6e55a22f
Re-format 2021-02-09 15:42:40 +01:00
Jonas Platte
44a0bebd09
Fix links in docs 2021-02-08 20:46:57 +01:00
Amanda Graven
85037832d1
Minor comment spelling and formatting fixes 2021-01-18 16:12:28 +01:00
Jonas Platte
95d21552e0
Use a dedicated method for conversion from http::Request to Ruma request types 2020-12-13 12:59:21 +01:00
Jonas Platte
b38ae1bb76
api: Improve docs for AuthScheme variants 2020-12-13 12:21:19 +01:00
Jonas Platte
5562a23aaa
Move Raw, Outgoing and all macro code from ruma-common to ruma-serde 2020-11-28 03:45:39 +01:00
Jonas Platte
e7f55ea2c6
Rewrap comments 2020-11-27 18:22:18 +01:00
Jonas Platte
d34a270919
Allow custom values for more enums 2020-11-02 00:29:47 +01:00
Jonas Platte
e1975c2035
Be more consistent about whitespace 2020-10-24 00:44:01 +02:00
Jonas Platte
fdd326edf7
Move Outgoing from ruma-api to ruma-common
The derive macro moves from ruma-api-macros to a new ruma-common-macros
crate likewise.
2020-09-22 21:35:10 +02:00
Jonas Platte
d36f82faeb
api: Use thiserror to derive many Display + Error implementations 2020-09-22 01:48:45 +02:00
Jonas Platte
bf27285766
api: Import-rename std::error::Error 2020-09-22 01:43:16 +02:00
Vincent Lee
d36d005b97
Change requires_authentication: bool to authentication: AuthScheme 2020-09-18 16:28:51 +02:00
Jonas Platte
01c7eef72f
Consistently put an empty line after inner module docs 2020-08-24 21:42:48 +02:00
Jonas Platte
987d48666c
Split Endpoint trait into OutgoingRequest, IncomingRequest 2020-08-12 23:33:27 +02:00
Jonas Platte
abc34eeb7e
Move manual endpoint impl test into its own file 2020-08-12 23:33:27 +02:00
Jonas Platte
52f7546c47
Make most things in ruma_api::error actually public (no more #[doc(hidden)])
So people can implement their own endpoints without the macros and
without using undocumented parts of the API
2020-08-12 23:33:27 +02:00
Jonas Platte
835c721a12
Fix non-empty Void 2020-08-12 14:21:50 +02:00
Devin Ragotzy
906465d0c3
Replace all ::ruma_api:: with the discovered crate name or $crate 2020-08-12 14:01:43 +02:00
florianjacob
467e7afd5e
Require std::error::Error for EndpointError
and implement it for ruma_api::error::FromHttpResponseError and Void.
This allows integrating EndpointErrors in the common rust error
ecosystem like thiserror and anyhow.
2020-08-12 14:00:44 +02:00
Jonas Platte
9cf552f361
Add Endpoint::{IncomingRequest, IncomingResponse}
With these, it is no longer necessary to copy over the Endpoint trait's
where clauses whenever it is used as a bound
2020-08-09 03:18:14 +02:00
Jonas Platte
1fbf05d71f
Fix some bad formatting 2020-08-08 21:52:58 +02:00
Jonas Platte
10184cb9ca
Use a dedicated method for conversion from Ruma request type to http::Request 2020-08-01 01:01:15 +02:00
Devin Ragotzy
c86f0b106b Re-add the Outgoing trait and derive macro
The Outgoing trait now has no attributes except incoming_no_deserialize,
it looks for any references and lifetimes in a struct declaration and
removes them. The point of the Outgoing trait is to allow references to
be serialized and owned values to come out of deserialization. It has no
ability to wrap values in Raw (then EventResult).
2020-07-31 12:59:19 -04:00
Devin Ragotzy
b68b63ab8d Remove runtime panic caused by header <-> string conversion 2020-07-28 17:13:33 -04:00
Ragotzy.devin
4ff6c6ecbe
Refactor Request/Response's TryFrom impl by generating match stmt
... by moving repetitive parts into a macro_rules macro
2020-07-08 01:44:25 +02:00
Ragotzy.devin
5376a3fc6e
Add colons to ruma_api! macro after each keyword 2020-06-30 13:06:37 +02:00
Jonas Platte
51d7875b2f Add 'ruma-api/' from commit '2151711f64e99a5da370d48fa92795f2d4799866'
git-subtree-dir: ruma-api
git-subtree-mainline: bb037a5c42c51567a3b9e41c2c131cef9867a4aa
git-subtree-split: 2151711f64e99a5da370d48fa92795f2d4799866
2020-06-05 01:56:19 +02:00