Commit Graph

831 Commits

Author SHA1 Message Date
bitfl0wer 17fe4f004f Make ChorusUser `Clone` 2023-08-29 00:05:16 +02:00
bitfl0wer 4bbb22eb31 Replace `belongs_to: Rc<RefCell<Instance>>` with `Arc<RwLock<Instance>>` to make `ChorusUser` `Send` 2023-08-28 18:12:17 +02:00
bitfl0wer a8bea5d881 Clippy rules, docs logo 2023-08-28 12:27:38 +02:00
bitfl0wer 02212f95e3 Add Debug derives to all structs 2023-08-28 12:27:21 +02:00
bitfl0wer 2f9936cfd2 Add rustdoc comments 2023-08-26 19:41:00 +02:00
bitfl0wer ea66edc68d Fix guild ban test failing 2023-08-26 17:45:27 +02:00
bitfl0wer aee50036a0 Add delete_role + test 2023-08-26 16:54:24 +02:00
bitfl0wer 116f1312e7 Disambiguate function name 2023-08-26 16:22:18 +02:00
bitfl0wer f120bcd386 Update GuildBan object 2023-08-26 16:21:47 +02:00
bitfl0wer 1709e85a4b Add delete_guild_ban 2023-08-25 17:28:02 +02:00
bitfl0wer 07ebaf6119 Add Get Guild Ban/s, add audit_log_reason to create_ban 2023-08-25 17:26:01 +02:00
bitfl0wer cd70a5b388 Add modify guild member profile route 2023-08-25 17:11:00 +02:00
bitfl0wer cce5b507bc Add modify_current_member route 2023-08-25 16:54:41 +02:00
bitfl0wer 7b55590fd0 Add modify_member route 2023-08-25 16:47:28 +02:00
bitfl0wer 516a1467fa Add some more routes 2023-08-25 01:35:57 +02:00
bitfl0wer 0d93ad8578 Remove unneeded function 2023-08-25 01:35:49 +02:00
bitfl0wer 2b69aba2ca Merge branch 'main' into guild-routes 2023-08-25 01:11:28 +02:00
bitfl0wer d73c1963fc Start refactoring ChorusRequest to ChorusRequest::new() 2023-08-25 00:02:26 +02:00
bitfl0wer e9318ea4dc start adding auditlogreason to routes that take it 2023-08-24 22:30:13 +02:00
bitfl0wer 87d325e38f Create ChorusRequest-builder function 2023-08-24 22:29:26 +02:00
bitfl0wer eb163d278a Change UserMeta to ChorusUser 2023-08-24 21:46:02 +02:00
bitfl0wer facb91fc20 Merge branch 'main' into guild-routes 2023-08-24 21:41:22 +02:00
bitfl0wer 64ba6a657a Change `UserMeta` to `ChorusUser` 2023-08-24 21:09:23 +02:00
bitfl0wer fb7e33c0ec Change `UserMeta` to `ChorusUser` 2023-08-24 21:06:28 +02:00
bitfl0wer 5ed2f0f2c3 add get guild preview route 2023-08-24 21:05:39 +02:00
bitfl0wer 9db9d2a512 Add get user guilds endpoint 2023-08-23 00:08:43 +02:00
bitfl0wer 0c62bf9836 Fix clippy lint 2023-08-22 22:40:36 +02:00
bitfl0wer 9e3bf947c1 Add acknowledge_pinned endpoint 2023-08-22 22:34:37 +02:00
bitfl0wer a23363e0a3 add delete and bulk_delete endpoints 2023-08-22 22:32:48 +02:00
bitfl0wer a8f37ea201 Add Modify Message endpoint 2023-08-22 22:27:09 +02:00
bitfl0wer f85cde71b4 Add Hide from guild feed endpoint 2023-08-22 22:16:07 +02:00
bitfl0wer 852d784bd5 Add crosspost endpoint 2023-08-22 22:10:12 +02:00
bitfl0wer 54c5cc6cc2 Add message acknowledge endpoint 2023-08-22 22:06:19 +02:00
bitfl0wer d751c92778 Create Greet Message 2023-08-22 21:55:24 +02:00
bitfl0wer fd3a3ee836 Add message: get 2023-08-22 21:27:31 +02:00
bitfl0wer 7b5426519d Closes #269, #268, #270 2023-08-22 20:09:44 +02:00
bitfl0wer 36a0730d0b Correctify search_message
Fixes Search Messages #258
2023-08-22 19:23:27 +02:00
bitfl0wer 6e40568b23 Move search_messages to Channel impl 2023-08-22 17:56:13 +02:00
bitfl0wer d913b2d97f Implement Default for MessageSearchQuery 2023-08-22 17:55:53 +02:00
bitfl0wer 9ac5925bf9 Make channel_type in ChannelCreateSchema of type enum "ChannelType" 2023-08-22 17:55:29 +02:00
bitfl0wer 500ab0e3d0 Add some missing derives 2023-08-22 14:01:17 +02:00
bitfl0wer 1984f8c5da Add MessageSearchEndpoint Enum and MessageSearchQuery schema struct 2023-08-22 14:01:03 +02:00
bitfl0wer a13f766758 Add search() and search_messages() 2023-08-22 14:00:39 +02:00
bitfl0wer cfbcb29a95 Modify Guild Channel Positions
Fixes #229
2023-08-22 01:11:22 +02:00
bitfl0wer 5f532eff01 Fix deserialize error 2023-08-20 23:24:30 +02:00
bitfl0wer 7eee08459b Add Guild::modify(); 2023-08-20 23:13:34 +02:00
bitfl0wer 24891b3fd5 Complete GuildModifySchema 2023-08-20 22:52:06 +02:00
bitfl0wer 09a83f1a1f Add GuildModifySchema 2023-08-20 22:46:58 +02:00
bitfl0wer dd04b760a4 Add Types 2023-08-20 22:46:44 +02:00
bitfl0wer cb216c462d Add create_ban
Closes "Create Guild Ban #299"
2023-08-20 18:49:10 +02:00
bitfl0wer b53afe855d Create GuildBanCreateSchema, clean up GuildCreateSchema 2023-08-20 18:48:07 +02:00
bitfl0wer 6cb28dda92 Start implementing some UpdateMessages 2023-08-19 01:13:07 +02:00
bitfl0wer 0b840372e2 Handle id().is_none() cases 2023-08-18 23:40:01 +02:00
bitfl0wer d64004b308 Make id(&self) return Option<Snowflake> 2023-08-18 23:34:00 +02:00
bitfl0wer 82d2151f1b Fix typo 2023-08-18 21:29:34 +02:00
bitfl0wer e1615a4cd3 Remove prints 2023-08-18 20:20:58 +02:00
bitfl0wer 5f0a04c345 Add Arc<RwLock<T>> 2023-08-18 20:20:53 +02:00
bitfl0wer cafa84d41e Add Todo to every event which needs UpdateMessage 2023-08-18 20:20:25 +02:00
kozabrada123 ad58b550fb Minor gateway updates (#188)
* Fix TYPING_START not existing

* Fix spacebar READY deserialization error
2023-08-18 14:27:39 +02:00
kozabrada123 905b7af618 Add content type specification 2023-08-18 11:41:06 +02:00
bitfl0wer c2c1ad93b6 Change type of Channel::last_pin_timestamp 2023-08-17 22:45:42 +02:00
bitfl0wer 0396e318d3 Change bearer_auth to header("Authorization" 2023-08-17 22:26:07 +02:00
bitfl0wer 4424e3f07a Remove comment 2023-08-17 18:26:34 +02:00
bitfl0wer d69a459025 Remove prints 2023-08-17 18:26:14 +02:00
bitfl0wer 711580f270 Call watch_whole either way 2023-08-17 18:26:06 +02:00
bitfl0wer 4210bd6d73 Remove debug prints 2023-08-16 22:04:43 +02:00
bitfl0wer a1df997c9f I think i found out why shit no work 2023-08-16 22:04:36 +02:00
bitfl0wer 29b9050e6d Make store pub(crate), other adjustments 2023-08-16 22:04:07 +02:00
bitfl0wer 887ba4a1b1 Make trait Debug 2023-08-16 21:26:27 +02:00
bitfl0wer fbf72b74d0 Remove tokio watch channels 2023-08-16 21:26:19 +02:00
bitfl0wer 116c829f28 Rename update to modify 2023-08-16 14:05:51 +02:00
bitfl0wer 9ce75482d1 Make Role Clone 2023-08-16 14:05:44 +02:00
bitfl0wer 2af8388947 Add GuildRoleCreate and -Update 2023-08-16 14:05:37 +02:00
bitfl0wer 5f0f19e8ce Rename functions, add observe_and_into_inner 2023-08-16 01:11:26 +02:00
bitfl0wer a9381fec1e Revert "Give `GatewayHandle` and `Gateway` common trait to call `watch_whole()` or observe() from a `Gateway`"
This reverts commit d36b1de170.
2023-08-16 00:21:18 +02:00
bitfl0wer d36b1de170 Give `GatewayHandle` and `Gateway` common trait to call `watch_whole()` or observe() from a `Gateway` 2023-08-16 00:18:32 +02:00
bitfl0wer 2b21933cb3 Add back set_json. No idea when it disappeared? 2023-08-15 22:19:47 +02:00
bitfl0wer b1594cf1e1 Merge branch 'feature/update-message-all-events' into enhancement/improved-auto-updating-structs 2023-08-15 20:53:56 +02:00
bitfl0wer ff77e5a61d Add `Composite` derive to all entities which require it 2023-08-15 20:19:52 +02:00
bitfl0wer bdeaa476e2 Add `Composite<T>` bound to automatically call `watch_whole()` on caller object. 2023-08-15 20:19:16 +02:00
bitfl0wer 32fd918a43 Remove `Send` bound 2023-08-15 20:18:11 +02:00
bitfl0wer 7de3204f59 Make trait pub 2023-08-15 17:54:36 +02:00
bitfl0wer 20baada605 Add Composite to some types 2023-08-15 17:38:53 +02:00
bitfl0wer 509ab578d6 Implement trait methods 2023-08-15 16:58:20 +02:00
bitfl0wer 37d976cd0d Try out new macro 2023-08-15 16:58:06 +02:00
bitfl0wer d66807ed20 Add observe_and_get method 2023-08-15 16:57:54 +02:00
bitfl0wer b2a1122f4a todo 2023-08-15 12:14:03 +02:00
bitfl0wer f49fefb400 derive Updateable for Guild 2023-08-14 17:18:53 +02:00
bitfl0wer 2329cc2243 Add Composite trait 2023-08-14 17:18:44 +02:00
bitfl0wer 6dd9f84573 Remove unused import 2023-08-14 00:04:58 +02:00
bitfl0wer 02be1e786d Remove stupid comment from me 2023-08-14 00:04:53 +02:00
bitfl0wer 45d68b4da4 Rename get to get_user 2023-08-14 00:02:30 +02:00
bitfl0wer 614c7bb2b2 Change UserMeta::get() to take self instead of Self 2023-08-14 00:02:03 +02:00
bitfl0wer 0f00d5d283 Change UpdateMessage<T> to write into RwLock 2023-08-13 16:46:57 +02:00
bitfl0wer 33357db291 Change observe() again, pass Arc<RwLock<T>> into message.update(), Add comment explaining closure 2023-08-13 16:46:21 +02:00
bitfl0wer f9c3f55d95 Remove channel_id argument from modify. WHY WAS IT THERE TO BEGIN WITH LOL 2023-08-13 15:54:25 +02:00
bitfl0wer 73cc139e78 Moddify observe to still store T internally 2023-08-13 15:52:16 +02:00
fowb 63a4141bde Add fixme comment 2023-08-12 22:40:07 +02:00
fowb a0c9f6fb14 Change observe() to take Arc<RwLock<T>> 2023-08-12 19:47:11 +02:00
fowb ff47965e99 Change Mutex<T> to RwLock<T> 2023-08-12 19:31:31 +02:00
kozabrada123 e0d7df417c Fix trailing /s (#180) 2023-08-12 16:48:33 +02:00
kozabrada123 1801d22273 Minor snowflake updates (#179)
* Make snowflake fully public

* Simple into for snowflake
2023-08-07 20:34:58 +02:00
bitfl0wer 07818b2cd6 Fix unwrap panic on trying to access rate limits 2023-08-07 14:56:10 +02:00
kozabrada123 1cc29540d0 Minor improvements to message events (#177) 2023-08-07 14:15:23 +02:00
bitfl0wer dad419c1de update mutex to rwlock 2023-08-04 20:08:49 +02:00
bitfl0wer a2561fd2e0 Change Arc<Mutex<T>> components to Arc<RwLock<T>> 2023-08-04 17:57:03 +02:00
bitfl0wer 55a2335664 Add note about Gateway: store 2023-08-04 16:54:56 +02:00
bitfl0wer c8abec7686 Add note about GatewayHandle: `store` 2023-08-04 16:54:03 +02:00
bitfl0wer 8f57150a79 Make message mut 2023-08-04 16:46:22 +02:00
bitfl0wer 7b05d391b0 Add clone bound to T 2023-08-04 16:46:15 +02:00
bitfl0wer cfb84f3da0 Fix channel.rs 2023-08-04 16:41:57 +02:00
bitfl0wer b9b5e5e463 Add update_object 2023-08-04 16:41:51 +02:00
kozabrada123 47246cabad Re-add derives to structs where possible 2023-08-04 15:33:46 +02:00
bitfl0wer fb792f8356 Integrate component behaviour everywhere 2023-08-04 11:19:23 +02:00
bitfl0wer 94eac6eba9 Make components be Arc<Mutex<T>> 2023-08-02 23:08:53 +02:00
bitfl0wer a36d691fea Add PartialEq, Eq, Hash to Enums 2023-08-02 20:23:50 +02:00
bitfl0wer 9f69f57635 Start component-izing entities, remove PartialEq wherever needed (because PartialEq isn't implemented for Mutex) 2023-08-02 20:18:16 +02:00
kozabrada123 c0bc2ee9e2 Fix missing references to the best of my ability 2023-07-31 10:28:18 +02:00
kozabrada123 261ae6eb4a Goof 2023-07-31 10:07:56 +02:00
kozabrada123 60393a5686 Docs 2023-07-31 10:01:25 +02:00
kozabrada123 7f65f9ca81 Merge branch 'main' into fix/doc-improvements 2023-07-31 09:13:33 +02:00
Flori 2249ae65d7 Remove newline 2023-07-30 20:35:02 +02:00
Vivien 92bc958cf1 update of reaction struct 2023-07-30 20:27:13 +02:00
Vivien 50538eb15d change signed to unsigned integer 2023-07-30 20:23:12 +02:00
kozabrada123 1ce9bf08cd Guilds + Channels 2023-07-30 09:04:31 +02:00
kozabrada123 ba25cab1e9 Fix broken links 2023-07-30 08:31:12 +02:00
kozabrada123 b72ebf36ed Documemtaiom 2023-07-30 08:26:26 +02:00
kozabrada123 d50e969a07 Document a small bit of attachment 2023-07-29 18:12:57 +02:00
kozabrada123 590afc8c9d Permissions with code blocks 2023-07-29 18:12:57 +02:00
kozabrada123 7637051733 Update src/types/utils/rights.rs
Co-authored-by: SpecificProtagonist <specificprotagonist@posteo.org>
2023-07-29 16:07:06 +00:00
kozabrada123 0f300cfb20 Update src/types/utils/snowflake.rs
Co-authored-by: SpecificProtagonist <specificprotagonist@posteo.org>
2023-07-29 16:06:49 +00:00
kozabrada123 e64233e6d8 Update src/types/utils/rights.rs
Co-authored-by: SpecificProtagonist <specificprotagonist@posteo.org>
2023-07-29 16:06:35 +00:00
kozabrada123 84ada8b94a Update src/types/utils/rights.rs
Co-authored-by: SpecificProtagonist <specificprotagonist@posteo.org>
2023-07-29 16:05:27 +00:00
kozabrada123 b172e5910d Update src/types/utils/rights.rs
Co-authored-by: SpecificProtagonist <specificprotagonist@posteo.org>
2023-07-29 16:04:49 +00:00
kozabrada123 552032a61e Capitalise docs
Co-authored-by: SpecificProtagonist <specificprotagonist@posteo.org>
2023-07-29 16:04:08 +00:00
kozabrada123 e6dc44754c Forgot this since had the lint on my local copy 2023-07-29 11:45:25 +02:00
kozabrada123 b632958b0f Document some flags 2023-07-29 11:26:10 +02:00
kozabrada123 ede965411e Minor doc changes 2023-07-29 11:26:00 +02:00
kozabrada123 1e81a2682f Document rights 2023-07-29 11:00:28 +02:00
kozabrada123 83d4ffc4e8 Moar docs 2023-07-29 10:23:04 +02:00
kozabrada123 8eb2e2008c Remove the todos from the last commit 2023-07-28 18:57:35 +02:00
kozabrada123 d0547cb1f0 Better docs 2023-07-28 18:45:40 +02:00
kozabrada123 dcfb59fca1 Merge branch 'main' into fix/doc-improvements 2023-07-28 18:21:20 +02:00
Flori 07f283a205 Improve auto updating structs usage (#168)
* Add `GatewayHandle` to `UserMeta`

* Make user::shell async due to gateway add
2023-07-24 19:13:53 +02:00
SpecificProtagonist 9ebe72a7dc derive Updateable (#167) 2023-07-22 11:20:31 +02:00
Flori ccf44a5375 Auto updating structs (#163)
* Gateway fields don't need to be pub

* Add store to Gateway

* Add UpdateMessage trait

* Proof of concept: impl UpdateMessage for Channel

* Start working on auto updating structs

* Send entity updates over watch channel

* Add id to UpdateMessage

* Create trait Updateable

* Add documentation

* add gateway test

* Complete test

* Impl UpdateMessage::update() for ChannelUpdate

* Impl UpdateMessage::update() for ChannelUpdate
Co-authored by: SpecificProtagonist <specificprotagonist@posteo.org>

* make channel::modify no longer mutate Channel

* change modify call

* remove unused imports

* Allow dead code with TODO to remove it

* fix channel::modify test

* Update src/gateway.rs

Co-authored-by: SpecificProtagonist <vincentjunge@posteo.net>

---------

Co-authored-by: SpecificProtagonist <vincentjunge@posteo.net>
2023-07-21 15:35:31 +02:00
kozabrada123 44d9655e8e Merge stuff 2023-07-21 14:10:50 +02:00
SpecificProtagonist 776efce4dc Fix gateway heartbeat blocking (#162)
fix gateway heartbeat blocking
2023-07-21 13:59:40 +02:00
Flori 85fb24cd8c Fix: message file attachment duplication (#159)
* make send() take ownership of MessageSendSchema

* Remove message file attachment duplication

* Remove superfluous docstrings
2023-07-17 23:26:25 +02:00
Flori 1fdbe6cc00 Join/Leave Guilds, (Group) DMs and minor improvements (#157)
## Summary:

**Added:**
- Schemas `PrivateChannelCreateSchema` `ChannelInviteCreateSchema`, `AddChannelRecipientSchema` recursively (including schemas which were needed to create these schemas)
- Methods `create_private_channel`, `leave_guild`, `accept_invite`, `create_user_invite`, `create_guild_invite`, `add_channel_recipient`, `remove_channel_recipient`
- Integration tests for the functionality covered by implementing #45
- Documentation in some places where I noticed it would be useful to have some
- `create_user` method in `/src/tests`: Cuts down on test boilerplate needed to create an addition test user

**Changed:**
- `.gitignore`
  - Added `.DS_store` files to gitignore (some weird macos files), removed Cargo.lock, as Cargo.lock should be included for libraries
- Added a lot of default trait derives like Clone, Copy, PartialEq, Eq, Ord, PartialOrd to structs and enums where I saw them missing
- Added missing `teardown()` calls to the integration tests
- Renamed integration test files in `/src/tests` dir to all be plural: `channel.rs` -> `channels.rs`
- Made more fields on `User` type `Option<>`
- All instances in `/src/tests` where a second test user was created using a RegistrationSchema and the register_user method were replaced with the new `create_user` method
- README.md: Marked roadmap fields covered by #45 as implemented
- Changed visibility of `/src/tests/common/mod.rs` methods from `pub` to `pub(crate)`. In hindsight, this was probably not required, haha

**Removed:**
- Unneeded import in`src/types/config/types/guild_configuration.rs`


## Commit log:

* Add .DS_store, remove Cargo.lock

* Create PrivateChannelCreateSchema

* pub use users

* add channels.rs

* create channels.rs

* Add Deserialize/Serialize derives

* Implement create_private_channel

* Add create_dm() test

* Make optional fields on `User` `Option<>`

* Check boxes for implemented features

* Create users/guilds.rs

* Remove unneeded import

* Add UserMeta::leave_guild()

* Create api/invites/mod.rs

* Add debug print to send_request

* Rename tests files

* Create invites.rs

* create invite.rs

* Add documentation

* Implement accept_invite

* Sort fields on Channel alphabetically

* Add invite mod

* Add forgotten teardown() at test end

* change visiblities, add create_user()

* Implement `create_user_invite()`

* start working on invite tests

* Add allow flags

* Fix bad url

* Create CreateChannelInviteSchema and friends

* remove non-implemented test code

* add body to requests

* Add Clone to UserMeta

* More comprehensive error message when running into a deserialization error

* Add arguments documentation to accept_invite

* Add Eq derive to GuildFeaturesList

* Add Eq derive to Emoji

* Add Eq derive to GuildBan

* Add create_accept_invite() test

* Add Default derive to ChannelCreateSchema

* Change create_guild_invite to return GuildInvite

* Dates as chrono::Date(Utc); sort alphabetically

* Add default derives wherever possible

* Implement add_- and remove_channel_recipient

* Create AddChannelRecipientSchema

* replace otheruser regs with bundle.creeate_user()

* Add (disabled) test remove_add_person_from_to_dm()
2023-07-17 19:36:28 +02:00