Commit Graph

312 Commits (8ed1e37cef1b5ac33c81920c0569f8b70a9fb3ad)

Author SHA1 Message Date
Denis Kasak 03e53e991b Hoist prev_content to top-level in both timeline and state events.
Also refactor and document why this hoisting is needed.

This change makes the user_presence test fail because the hoisting
exposes an error encoded into the test's expected result.

Previously, the test expected 2 members in the room at the end. This is
incorrect since one of the members in the test data leaves the room.
However, since the prev_content of state events was previously not
hoisted to the top level, the `membership_change` method would not
notice it and thus not realize the member had left the room. The test
was corrected to expect only a single member in the room.

Another test change was made due to a limitation of EventBuilder: due to
the fact that it makes the test data go through a de/ser cycle, it
cannot easily hoist prev_content to the top level. Because of this, the
tests were change to put prev_content into the top level from the
outset.
2020-06-15 17:21:26 +02:00
Damir Jelić c3373f796b Merge branch 'export-base-error' 2020-06-15 09:47:51 +02:00
Damir Jelić 311e41ee0d matrix-sdk: Fix the author field in the cargo files. 2020-06-15 09:47:13 +02:00
Devin R f8b5fceeb1 matrix-sdk: Export matrix-sdk-base Error type as BaseError 2020-06-14 20:00:41 -04:00
Denis Kasak 97b1bb6004 Must not take our user into account when calculating room name. 2020-06-10 22:53:31 +02:00
Denis Kasak 331cb02266 Split joined/invited users and handle removing users. 2020-06-10 18:12:27 +02:00
Denis Kasak 7751605e37 Nix RoomMember::update_member and tracking membership.
After discussing with poljar, we concluded we don't actually need to
tracking membership state, since we won't be tracking users that
left (banned, kicked, disinvited).

The only thing we need to keep track of is the difference between joined
and invited users which will be dealt with in a separate commit.
2020-06-10 16:36:51 +02:00
Damir Jelić 442464add6 matrix-sdk: Implement sending of Http DELETE requests. 2020-06-09 16:29:17 +02:00
Damir Jelić abe40dff11 matrix_sdk: Remove code duplication in our send methods. 2020-06-09 16:28:54 +02:00
Devin R 6df1f12b45 async_client: add docs/test for register_user, send_uiaa and RegistrationBuilder 2020-06-02 17:13:29 -04:00
Devin R 5abac19b72 request_builder/async_client: add register endpoint and RegistrationBuilder for making the request 2020-06-02 17:13:01 -04:00
Damir Jelić 62e959a94d Merge branch 'expose-send' 2020-06-02 11:20:47 +02:00
Damir Jelić 54871f2af9 matrix-sdk: Make the example for the send method comiple. 2020-06-02 11:15:04 +02:00
Marcel 6a323525b5 Add example to the Client::send() doccomment 2020-06-02 10:40:50 +02:00
Marcel 1d00f79675 Run cargo fmt for the get_profiles example 2020-06-02 10:40:32 +02:00
Marcel 7201749280 Add small example on how to use Client::send 2020-06-02 10:39:50 +02:00
Damir Jelić 21b33f4e61 Merge branch 'doc-fix' 2020-06-02 10:31:09 +02:00
Damir Jelić 587614cdd7 Merge branch 'unrecognized' 2020-06-02 10:28:57 +02:00
Devin R db38bf1276 event_emitter: use enum to represent custom events and raw json 2020-06-01 17:02:12 -04:00
Devin R 761071dac5 base_client: fix doc grammer and consistency, group request methods together 2020-06-01 07:50:45 -04:00
Devin R b1864887aa matrix-sdk: enable messages feature by default 2020-06-01 06:45:38 -04:00
Damir Jelić 8ee6c3bdc8 matrix-sdk: Don't require Send for the sync callback. 2020-05-29 09:39:17 +02:00
Damir Jelić 5637cdd133 matrix-sdk: Add a bunch of readmes to the crates. 2020-05-26 19:33:13 +02:00
Damir Jelić f3e04b5a74 Merge branch 'read-marker' 2020-05-25 14:23:58 +02:00
Damir Jelić ba66ee214f matrix-sdk: Move most of the configuration to the base client. 2020-05-25 14:21:04 +02:00
Devin R 621b1b08e4 async_client: read_marker/receipt doc fixes 2020-05-25 07:46:50 -04:00
stoically 7edb42b75c matrix-sdk: Use futures-timer's wasm-bindgen feature 2020-05-24 16:11:56 +02:00
Devin R a6303d041b async_client: add test for read_marker endpoint 2020-05-23 06:38:55 -04:00
Devin R f31357c4e1 async_client: read_marker endpoint, fix read_receipt docs 2020-05-22 18:05:12 -04:00
Damir Jelić b8a9e05ebb examples: Fix the wasm bot example. 2020-05-22 16:19:30 +02:00
Damir Jelić ea5f7f1d19 matrix-sdk: Don't require the the session at client creation time.
The client objects in the sdk accepted an optional session argument at
creation time. If provided this would restore the client into a logged
in state.

Since we need to restore the client state and encryption state at some
point it makes sense to do it when the client transitions into a logged
in state. At the same time we would like to avoid the client creation to
be async.

This introduces a restore_login() method which can be called instead of
the login() method to restore a session.
2020-05-22 15:23:58 +02:00
Emi Simpson 53876ea6e8
Make Client::send a public method, add a short doccomment 2020-05-20 14:24:35 -04:00
Devin R 0f6caec93d state_store: move room file when room state changes, test room_state_change method, doc edits 2020-05-18 16:26:27 -04:00
Damir Jelić e51e89d9d5 matrix-sdk: Re-enable joins by id or alias. 2020-05-15 12:32:36 +02:00
Damir Jelić 8c6c34e01a matrix-sdk: Don't require coverage for some debug implementations. 2020-05-14 15:26:22 +02:00
Damir Jelić 269a01e480 matrix-sdk: Remove some unused imports. 2020-05-14 14:39:39 +02:00
Damir Jelić b1de56478d matrix-sdk: Disable for now joins by roomid or alias. 2020-05-14 14:30:29 +02:00
Damir Jelić ecbd801c70 crypto: Invalidate group sessions if they fail to be shared. 2020-05-14 11:55:12 +02:00
stoically 0d12a5571f
matrix-sdk: VERSION isn't used for the wasm target 2020-05-13 15:02:48 +02:00
Damir Jelić 5b1188a38b matrix-sdk: Add more strict lints. 2020-05-13 12:47:24 +02:00
Damir Jelić f1d12ff1f3 matrix-sdk: Remove all mentions of the AsyncClient. 2020-05-13 10:06:08 +02:00
Devin R 21bf631f47 Merge branch 'master' into store-room 2020-05-12 18:08:51 -04:00
stoically 1241fd718e base: Only disable sleep in WASM but still `continue` 2020-05-12 17:32:09 +02:00
stoically aa42951f15 matrix-sdk: Switch to upstream crates 2020-05-12 17:32:01 +02:00
stoically 890dbdaa39 examples: Rename to wasm_command_bot and add note about encryption 2020-05-12 16:10:55 +02:00
Damir Jelić e84a3e417c matrix-sdk: Add missing newlines at the end of some files. 2020-05-12 15:48:17 +02:00
Damir Jelić 0bb1be94e2 examples: Modify the wasm example to be similar to the command bot. 2020-05-12 15:48:17 +02:00
Damir Jelić 2a411bf5df matrix-sdk: Use the instant crate so Instant works on wasm as well. 2020-05-12 15:48:17 +02:00
Damir Jelić 19b8a1686d client: Disable the sleeps on the wasm target for now. 2020-05-12 15:48:17 +02:00
stoically ef6104bc53 matrix-sdk: Support compiling to wasm32-unknown-unknown 2020-05-12 15:48:09 +02:00
Devin R 21712d0930 state_store: load/store each room type (invite, join, left), add type for returning 3 room maps 2020-05-11 15:54:11 -04:00
Devin R 22c4a1f2e7 Merge branch 'master' of https://github.com/matrix-org/matrix-rust-sdk into store-room 2020-05-11 14:17:31 -04:00
Devin R 0d0d8fca2d client: add store_room_state method 2020-05-11 07:04:47 -04:00
Damir Jelić b6c0d4e3bb base: Rename the Client to BaseClient. 2020-05-11 10:43:21 +02:00
Damir Jelić 9d09d19101 matrix-sdk: Rename the AsyncClient to just Client. 2020-05-08 14:02:49 +02:00
Damir Jelić 4e0bef064f matrix-sdk: More cleanup in the deps. 2020-05-08 13:54:46 +02:00
Damir Jelić 8a7aefac3b matrix-sdk: Split out the error types in our base and matrix-sdk crates. 2020-05-08 12:39:36 +02:00
Damir Jelić db26ae9027 matrix-sdk: Rename the async client file. 2020-05-08 11:40:33 +02:00
Damir Jelić 720e45509a matrix-sdk: Move all the async client tests into the async client file. 2020-05-08 11:27:33 +02:00
Damir Jelić ef6458c9cd matrix-sdk: Fix the feature flags for real this time. 2020-05-08 11:07:08 +02:00
Damir Jelić f5ec1f93ed matrix-sdk: Remove some unused deps now that we have stuff split out. 2020-05-08 10:18:29 +02:00
Damir Jelić e57ae2c4ef matrix-sdk: Fix the feature flags. 2020-05-08 10:13:47 +02:00
Damir Jelić 1e8ab74058 matrix-sdk: Use the EventBuilder in the async client tests. 2020-05-08 09:57:42 +02:00
Devin R 4f96ac96e2 async_client: add tests for all current endpoints, event emitter typeing/receipt events, set unread notifications 2020-05-07 15:21:06 -04:00
Damir Jelić 14580bc383 matrix_sdk: Fix most of the tests now that we have the big split. 2020-05-07 16:22:18 +02:00
Damir Jelić 30f8ccd2de matrix-sdk: Move the bulk of the sdk into a separate base crate. 2020-05-07 14:58:38 +02:00
Devin R 06707bd95e Merge branch 'master' into invite-leave-sync 2020-05-07 07:18:13 -04:00
Devin R 35afd65705 base/async_client: remove deadcode, remove get room name methods from AsyncClient 2020-05-07 07:09:22 -04:00
Damir Jelić a4f5a93880 base: Move some test that use the async client out of the base. 2020-05-07 12:51:53 +02:00
Damir Jelić 8a4cca3a85 Merge branch 'more-endpoints' 2020-05-07 11:01:24 +02:00
Damir Jelić b97e67c404 Merge branch 'messages' 2020-05-07 10:17:14 +02:00
Damir Jelić 6cbdbdcd2f matrix-sdk: Rename the types subproject to matrix-sdk-common. 2020-05-07 08:51:59 +02:00
Devin R 9939efe0e8 message: feature flag message queue storage in Room struct 2020-05-06 21:17:21 -04:00
Devin R fa4a99504e room: receive AnyStrippedStateEvent and handle within Room struct 2020-05-06 20:46:06 -04:00
Devin R 7b2ffd1f25 Merge branch 'master' into invite-leave-sync 2020-05-06 20:35:15 -04:00
Devin R 8afac39611 async_client/event_emitter: use RoomState to differentiate joined, invited and left rooms when emitting 2020-05-06 19:45:27 -04:00
Damir Jelić e9d6e28e13 matrix-sdk: Remove some unused deps. 2020-05-06 17:06:24 +02:00
Damir Jelić d8b9dc8519 base: Don't expose the client fields publicly. 2020-05-06 15:55:18 +02:00
Damir Jelić 1639f0fdd8 async_client: Remove the lock around the base client. 2020-05-06 15:36:55 +02:00
Damir Jelić 02013ac286 base: Move the state store behind a lock. 2020-05-06 15:20:20 +02:00
Damir Jelić 3d03f77dba base: Lock the event emitter option. 2020-05-06 14:47:58 +02:00
Devin R 522a8435d0 async_client: add tests for enpoints, fix docs 2020-05-06 08:36:28 -04:00
Damir Jelić 3a30d53437 base_client: Move the session behind a lock. 2020-05-06 14:27:53 +02:00
Damir Jelić 967544bab9 base_client: Make the base client a bit more threadsafe.
This moves the bulk of the sync logic into the base client, to avoid
deadlocks while someone tires to send messages from a event callback the
base client needed to get a bunch of locks.

Ideally the AsyncClient would not need a lock for the base client at all
but we're not there yet.
2020-05-06 13:57:58 +02:00
Devin R c90eb6a938 message: resolve reviews, deserialization can fail, update for ruma removed PartialEq 2020-05-06 06:58:42 -04:00
Devin R f13189d154 Merge branch 'master' into messages 2020-05-06 06:53:42 -04:00
Devin R e0400bd4e6 event_emitter: romove events for another PR 2020-05-06 06:33:03 -04:00
Devin R 7c7aaee22e async_client/event_emitter: add tests for invited and left rooms 2020-05-06 06:23:34 -04:00
Devin R 0e538a7c67 event_emitter/async_client: receive and emit events for invited and left rooms 2020-05-05 16:13:14 -04:00
Devin R 5ce62c9b6c async_client: rebase master onto more-endpoints, fix clippy warning 2020-05-05 13:21:02 -04:00
Devin R d8883a11c1 async_client: add endpoints for typing and read notice, ban user and forget room 2020-05-05 13:18:53 -04:00
Damir Jelić 7b6e030823 matrix-sdk: Fix the last Ruma incompatibilities. 2020-05-05 15:29:25 +02:00
Devin R bd2d6b0fac message: push message when queue isn't full, don't insert dup 2020-05-05 07:04:39 -04:00
Devin R bfa9c0fda9 Merge branch 'master' of https://github.com/matrix-org/matrix-rust-sdk into messages 2020-05-05 06:57:37 -04:00
Damir Jelić a54fec7ac5 base: Fix another instance of missing PartialEq support. 2020-05-04 14:22:10 +02:00
Damir Jelić 86dc1ce3ca crypto: Disable the creation of encrypted event content for now.
It isn't possible to encrypted events using ruma anymore. This will need
to be re-enabled once ruma gets back support for this.
2020-05-04 14:12:42 +02:00
Damir Jelić 60cc939fdd matrix-sdk: Update our deps and re-implement PartialEq for the ClientState. 2020-05-04 14:06:34 +02:00
Damir Jelić 3bcce962e3 matirx_sdk: Fix a bunch of clippy warnings. 2020-04-30 14:07:49 +02:00
Damir Jelić fc0d4a7d35 crypto: Rework our errors making them more specific. 2020-04-30 13:16:10 +02:00
Devin R 2c4b6919ef message: only push message when timestamp is larger than last msg in queue 2020-04-30 06:57:25 -04:00
Devin R 9788233771 room/message: make docs more clear, deserialize to MessageEvent over RoomEvent 2020-04-30 06:28:36 -04:00
Devin R d4b2fd0e1a Merge branch 'master' into messages 2020-04-30 06:02:31 -04:00
Damir Jelić 157dc86b61 matrix_sdk: Style fix for a docstring. 2020-04-30 10:14:18 +02:00
Devin R 9386b500a8 message: keep MessageQueue sorted by origin_server_ts 2020-04-29 19:28:58 -04:00
Devin R 178c6c06f8 Merge branch 'state-reviews' into messages 2020-04-29 15:49:36 -04:00
Devin R 376381b1a7 state_store: remove device_id and user_id from ClientState 2020-04-29 15:42:20 -04:00
Devin R 955f6248cf async_client: fix clippy warning 2020-04-29 08:10:53 -04:00
Devin R 5b17e57c4e room/messages: add message de/ser to Room 2020-04-29 07:58:31 -04:00
Devin R ef560fd545 state_store: load_client takes a sessions obj, docs, copyright, move state store into base client 2020-04-29 07:00:14 -04:00
Damir Jelić 4c760fca02 matrix_sdk: Use the internal types crate. 2020-04-29 10:40:27 +02:00
Damir Jelić c5d833a14b Merge branch 'state-store' 2020-04-29 10:06:02 +02:00
Damir Jelić 5fef444d61 matrix-sdk: Split out the crypto part of the sdk into a separate crate. 2020-04-29 09:48:00 +02:00