Commit Graph

891 Commits

Author SHA1 Message Date
kozabrada123 a2ddafb6a1 Remove the todos from the last commit 2023-07-28 18:57:35 +02:00
kozabrada123 1f9efa98e3 Better docs 2023-07-28 18:45:40 +02:00
kozabrada123 577c8a2d71 Merge branch 'main' into fix/doc-improvements 2023-07-28 18:21:20 +02:00
Flori fa7dd4b92b
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 24450571de
derive Updateable (#167) 2023-07-22 11:20:31 +02:00
Flori 38f0659ec9
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 260dd320a8 Merge stuff 2023-07-21 14:10:50 +02:00
SpecificProtagonist f97d26bc6c
Fix gateway heartbeat blocking (#162)
fix gateway heartbeat blocking
2023-07-21 13:59:40 +02:00
Flori b5a8562d89
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 7df6cb183f
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
Flori bfdf21f57f
Enable saving and loading LimitsConfiguration (#152)
Impl Serialize, Deserialize for LimitsConfiguration and children
2023-07-14 17:38:54 +02:00
SpecificProtagonist 05d51bd0bc
Deduplicate gateway dispatch event handling (#148)
deduplicate gateway dispatch event handling
2023-07-11 20:11:13 +02:00
kozabrada123 d3613702bb Add some docs 2023-07-11 19:54:04 +02:00
kozabrada123 7cdaf35583 Merge branch 'main' into fix/doc-improvements 2023-07-11 19:24:37 +02:00
Zert3x d5979e0024
Async Observer Trait (#147) 2023-07-11 19:20:27 +02:00
kozabrada123 133021a805 Rustdoc warnings + misc changes 2023-07-10 18:06:45 +02:00
kozabrada123 832cb92abc UrlBundle slightly better docs 2023-07-10 17:22:31 +02:00
kozabrada123 282bc06cff /* -> /// 2023-07-10 16:59:00 +02:00
Flori 8c9ccdd997
Ratelimiter overhaul (#144)
* Rename limits and limit to have better names

* Remove empty lines

* Remove handle_request (moved to requestlimiter)

* Start working on new ratelimiter

* Make limits Option, add "limited?" to constructor

* Add missing logic to send_request

* Rename Limits

* Create Ratelimits and Limit Struct

* Define Limit

* Import Ratelimits

* Define get_rate_limits

* Remove unused import

* + check_rate_limits & limits_config_to_ratelimits

* Remove Absolute Limits
These limits are not meant to be tracked anyways.

* add ratelimits is_exhausted

* Add error handling and send request checking

* change limits to option ratelimits

* Add strum

* Change Ratelimits to Hashmap

* Remove ratelimits in favor of hashmap

* Change code from struct to hashmap

* start working on update rate limits

* Remove wrong import

* Rename ChorusLibError to ChorusError

* Documented the chorus errors

* Made error documentation docstring

* Make ReceivedErrorCodeError have error string

* Remove unneeded import

* Match changes in errors.rs

* Improve update_rate_limits and can_send_request

* add ratelimits.to_hash_map()

* use instances' client instead of new client

* add LimitsConfiguration to instance

* improve update_limits, change a method name

* Fix un-updated errors

* Get LimitConfiguration in a sane way

* Move common.rs into ratelimiter::ChorusRequest

* Delete common.rs

* Make instance.rs use overhauled errors

* Refactor to use new Rate limiting implementation

* Refactor to use new Rate limiting implementation

* Refactor to use new Rate limiting implementation

* Refactor to use new Rate limiting implementation

* Refactor to use new Rate limiting implementation

* Refactor to use new Rate limiting implementation

* update ratelimiter implementation across all files

* Fix remaining errors post-refactor

* Changed Enum case to be correct

* Use result

* Re-add missing body to request

* Remove unneeded late initalization

* Change visibility from pub to pub(crate)
I feel like these core methods don't need to be exposed as public API.

* Remove unnecessary import

* Fix clippy warnings

* Add docstring

* Change Error names across all files

* Update Cargo.toml

Strum is not needed

* Update ratelimits.rs

* Update ratelimits.rs

* Bug/discord instance info unavailable (#146)

* Change text to be more ambigous

* Use default Configuration instead of erroring out

* Emit warning log if instance config cant be gotten

* Remove import

* Update src/instance.rs

Co-authored-by: SpecificProtagonist <specificprotagonist@posteo.org>

* Add missing closing bracket

* Put limits and limits_configuration as one struct

* Derive Hash

* remove import

* rename limits and limits_configuration

* Save clone call

* Change LimitsConfiguration to RateLimits
`LimitsConfiguration` is in no way related to whether the instance has API rate limits enabled or not. Therefore, it has been replaced with what it should have been all along.

* Add ensure_limit_in_map(), add `window` to `Limit`

* Remove unneeded var

* Remove import

* Clean up unneeded things
Dead code warnings have been supressed, but flagged as FIXME so they don't get forgotten. Anyone using tools like TODO Tree in VSCode can still see that they are there, however, they will not be shown as warnings anymore

* Remove nested submodule `limit`

* Add doc comments

* Add more doc comments

* Add some log messages to some methods

---------

Co-authored-by: SpecificProtagonist <specificprotagonist@posteo.org>
2023-07-09 18:38:02 +02:00
kozabrada123 ce359103da Use log instead of prints 2023-07-01 19:29:50 +02:00
Vincent Junge 2e9d4caee5
require password to log in 2023-06-25 22:34:05 +02:00
Vincent Junge 9ccc08b5e2
remove client side validation 2023-06-25 11:36:37 +02:00
Flori Weber 70aaa238e3
Make ReactionMeta::get() return Vec<PublicUser> 2023-06-23 12:54:08 +02:00
Flori Weber f6d6daf1d2
Fix stupid multi line comments 2023-06-23 12:18:22 +02:00
Flori fe0c09b0e9
Merge pull request #130 from polyphony-chat/refactor/change-channel-modify
Refactor/change channel modify
2023-06-22 20:05:15 +02:00
Flori Weber 0aac291a3c
Remove wrongful match statement 2023-06-22 19:54:39 +02:00
Flori f554244143
Update src/api/channels/channels.rs
Co-authored-by: SpecificProtagonist <specificprotagonist@posteo.org>
2023-06-22 19:42:07 +02:00
Flori Weber 1e0783e30e
Make Channel::modify() take &mut self 2023-06-22 18:56:16 +02:00
Vincent Junge f2709492de
always use Snowflakes in args 2023-06-22 18:55:19 +02:00
Vincent Junge 4117bcff59
ChorusResult type alias 2023-06-21 21:39:22 +02:00
Vincent Junge 8d7e49f3c2
get channel messages 2023-06-21 14:46:45 +02:00
Flori Weber e7eee4808e
Change send_request() calls to pass &mut Instance 2023-06-20 22:42:42 +02:00
Flori Weber 2233063d5f
Use Instance.client instead of creating a new one. 2023-06-20 22:42:08 +02:00
Flori Weber 27047ab909
Add reqwest::Client to chorus::Instance. 2023-06-20 22:41:31 +02:00
Flori Weber 3958f049ea
Change to single-line docstring 2023-06-20 22:36:39 +02:00
Flori Weber 0a523d54c1
Multiline docstring to single line docstring 2023-06-20 22:30:42 +02:00
Flori Weber 1fc38b25bf
Merge branch 'main' into refactor/reuse-reqwest-client 2023-06-20 22:21:08 +02:00
Flori Weber 915c9be4ad
Change docstring from multi- to singleline 2023-06-20 22:20:06 +02:00
Flori 6e50292f71
Merge pull request #122 from SpecificProtagonist/winter
More consistent use of snowflakes
2023-06-20 22:16:54 +02:00
Vincent Junge 9429bd7772
more consistent use of snowflakes 2023-06-20 22:03:29 +02:00
Flori 9725b165dd
Merge pull request #121 from polyphony-chat/fix/cannot-connect-to-discord
Remove unnecessary things
2023-06-20 21:54:53 +02:00
Flori 304cb6076a
Merge pull request #114 from SpecificProtagonist/snowflake
Simplify Snowflake
2023-06-20 18:57:25 +02:00
Flori dcacfacda9
Merge pull request #117 from SpecificProtagonist/gateway-event
Simplify GatewayEvent
2023-06-20 18:57:13 +02:00
kozabrada123 b8d7030ab1 Change Option<ChorusLibError> to Result<(), ChorusLibError> 2023-06-20 18:26:30 +02:00
Vincent Junge 04c3ee56e9
simplify GatewayEvent 2023-06-20 16:12:13 +02:00
Vincent Junge f614e93892
UrlBundle remove getters 2023-06-20 12:29:52 +02:00
Vincent Junge 29fcdfe641
simplyfy Snowflake 2023-06-20 12:21:22 +02:00
Flori Weber be7b9616c2
Remove unnecessary things 2023-06-20 00:35:46 +02:00
Flori Weber 603c8c8150
apply clippy suggestions 2023-06-19 19:01:18 +02:00
Flori Weber 17223d338a
change post to delete 2023-06-19 18:12:09 +02:00
Flori Weber 06b4f5fb65
Add Eq, PartialEq derives 2023-06-19 18:12:01 +02:00
Vincent Junge de5fe8aebf
Fix clippy::await_holding_refcell_ref false positives 2023-06-19 16:46:58 +02:00
Flori Weber b8e8a1c23a
Fix build failing 2023-06-19 16:11:53 +02:00
Vincent Junge cadf14ba6a
Make MessageSendSchema fields public 2023-06-19 14:21:27 +02:00
Vincent Junge 37de1d7b06
Fix various Clippy lints 2023-06-19 12:35:07 +02:00
Flori Weber a05241dd8e
Add remove_relationship 2023-06-18 23:10:29 +02:00
Flori Weber 6d8e0aaa39
Remove unneccessary imports 2023-06-18 23:04:25 +02:00
Flori Weber 636cb4c751
Add modify_user_relationship 2023-06-18 23:02:49 +02:00
Flori Weber 6878fd0380
Fix errors not displayed, add InvalidArgumentsErr 2023-06-18 23:01:38 +02:00
Flori Weber 4829845512
Move FriendRequestSchema to schemas 2023-06-18 19:05:09 +02:00
Flori Weber 191dc34933
Create relationship schemes 2023-06-18 19:04:55 +02:00
Flori Weber 0460a67bdd
Change returns, add documentation 2023-06-18 15:39:52 +02:00
Flori Weber fc6b431ad8
Start implementing get_relationship 2023-06-18 14:00:12 +02:00
Flori Weber cd303b0fef
Add FriendRequestSendSchema 2023-06-15 19:01:01 +02:00
Flori Weber e971ed2b49
Implement send_friend_request 2023-06-15 19:00:47 +02:00
Flori Weber 8378c5ccb6
Add get_mutual_relationships 2023-06-14 22:54:14 +02:00
Flori Weber 6312bd3572
Change belongs_to to be borrowed non-mutably 2023-06-14 22:53:56 +02:00
Flori Weber b56b5f5f12
Format relationships.rs 2023-06-14 22:14:56 +02:00
Flori Weber 2a8a8d75d3
Add relationships.rs 2023-06-14 22:14:48 +02:00
Flori Weber 870d5606a0
Update link reference 2023-06-13 15:23:39 +02:00
Flori Weber dfec24b8b8
Update relationship.rs types 2023-06-13 15:23:06 +02:00
Flori Weber bcc4069cea
Create relationships.rs 2023-06-13 14:04:58 +02:00
Flori Weber c6dcfff6a8
Create relationships.rs 2023-06-13 14:04:39 +02:00
bitfl0wer 8de2d3b5c3
run cargo fix 2023-06-12 18:59:06 +02:00
bitfl0wer 550d6d9265
run cargo fix 2023-06-12 18:58:53 +02:00
bitfl0wer 1aad39ded1
Remove unneccessary variable 2023-06-12 18:55:27 +02:00
bitfl0wer 98a043ab30
Refactor limited requester
The requester does not need to be instantiated anymore, which makes things easier to read imo.
2023-06-12 18:51:54 +02:00
Flori Weber 1910649ac4
Refactor users.rs to use api::common 2023-06-11 21:40:03 +02:00
Flori Weber 43e62359ae
Refactor roles.rs to use api::common 2023-06-11 20:04:40 +02:00
Flori Weber c03c3357fa
Refactor member.rs to use api::common 2023-06-11 19:30:15 +02:00
Flori Weber 3f8724535e
Refactor guilds.rs to use api:common 2023-06-11 19:26:34 +02:00
Flori Weber f6da3dcacf
Use handle_request_as_option instead 2023-06-11 19:22:28 +02:00
Flori Weber 3a8b6c8629
Introduce handle_request_as_option 2023-06-11 19:22:10 +02:00
Flori Weber fac9937bdd
Refactor reactions to use api::options 2023-06-11 19:13:38 +02:00
Flori Weber c479db36fb
Refactor permissions.rs to use api::common 2023-06-11 17:56:29 +02:00
Flori Weber 90ad75ae30
Remove import 2023-06-11 17:51:26 +02:00
Flori Weber ce004b3863
Refactor Message::send() 2023-06-11 17:49:42 +02:00
Flori Weber 583031e64f
Make some fields Option enum 2023-06-11 17:49:30 +02:00
Flori Weber 59d512cdce
Refactor to use api common, return Message instead 2023-06-11 17:40:44 +02:00
Flori Weber bf005c44a4
Refactor channels.rs to use api::common 2023-06-11 17:36:04 +02:00
Flori Weber 5d039c3e9b
Add argument to specify which LimitType to use 2023-06-11 17:35:47 +02:00
Flori Weber 9449c4cd4d
Move common request code into common.rs 2023-06-11 17:21:09 +02:00
Flori Weber ebe8a054e0
Merge branch 'main' into feature/permissions-and-roles 2023-06-11 15:34:43 +02:00
Flori Weber 3f7bf0c912
create common.rs 2023-06-11 15:34:05 +02:00
kozabrada123 dc5e91a784 Reformat and cargo fix 2023-06-11 14:32:37 +02:00
Flori Weber 8b8ea03513
Cargo fix 2023-06-11 13:55:00 +02:00
Flori Weber 41135d037f
Cargo fix 2023-06-11 13:54:54 +02:00
Flori Weber f585e0ddae
Reformat entire project, optimize imports 2023-06-11 13:52:53 +02:00
Flori Weber f4e0d520b1
Reformat entire project, optimize imports 2023-06-11 13:52:31 +02:00
kozabrada123 f5bbd3d737 Merge branch 'main' into perpetual/gateway-dev 2023-06-11 09:10:03 +02:00
bitfl0wer 6952f9977f
Implement delete_permission 2023-06-10 22:16:53 +02:00
bitfl0wer 87e70181fb
impl Channel::edit_permissions() 2023-06-10 22:09:53 +02:00
bitfl0wer 48a063838b
Create permissions.rs 2023-06-10 21:51:45 +02:00
Flori Weber e5aff12f94
"Normalize" RolePositionUpdateSchema 2023-06-10 19:35:57 +02:00
Flori Weber 5b66464ce9
Better error handling in get methods. 2023-06-10 18:50:49 +02:00
Flori Weber a9b02bad78
Implement RoleObject::get() 2023-06-10 18:48:37 +02:00
Flori Weber 9a6ac33a40
Add RoleObject::update() 2023-06-10 18:42:37 +02:00
kozabrada123 94ec90b924 Implement display for UserStatus 2023-06-10 16:56:50 +02:00
kozabrada123 330a4347d3 turns out UpdatePresence and PresenceUpdate are different events 2023-06-10 16:32:42 +02:00
kozabrada123 57d2d93420 Change observer update ref to &mut from & 2023-06-10 15:37:02 +02:00
Flori Weber d5e38d954f
Implement GuildMember::get() 2023-06-10 15:16:45 +02:00
kozabrada123 a148cf576e Refactor, better deserialization error handling 2023-06-10 12:43:07 +02:00
kozabrada123 0b06f914e3 Merge branch 'main' into perpetual/gateway-dev 2023-06-10 10:30:54 +02:00
bitfl0wer a18eab1884
Change UserMeta: User instead of Option<User>
I do not know why I have made it optional in the first place. hm
2023-06-10 00:35:51 +02:00
bitfl0wer 30db9e9553
implement GuildMember::remove_role() 2023-06-10 00:10:12 +02:00
bitfl0wer 3d98b45413
Implement GuildMember::add_role() 2023-06-10 00:03:31 +02:00
bitfl0wer daf30ddde6
create member.rs 2023-06-09 23:41:40 +02:00
bitfl0wer 7aa948647a
Add from_vec()
Calculates a PermissionFlags Stirng from a Vec<PermissionFlags>.
2023-06-09 21:34:54 +02:00
bitfl0wer 7a0a9baa45
Remove unused import 2023-06-09 20:49:02 +02:00
bitfl0wer 486e210062
Move role schemas to own file 2023-06-09 20:47:45 +02:00
kozabrada123 5231656c68 Docs + unneeded &mut 2023-06-09 20:22:59 +02:00
kozabrada123 28877f8355 Discord.com sends premissions as an integer 2023-06-09 18:38:36 +02:00
kozabrada123 182cd45a15 Rebase 2023-06-09 18:14:20 +02:00
bitfl0wer d475584fea
Implement RoleObject::position_update() 2023-06-09 16:50:03 +02:00
bitfl0wer 9bf968c7e0
Change Role to have String over PermissionFlags
PermissionFlags implementation needs to be figured out a bit better before we can use it here.
2023-06-09 12:04:49 +02:00
bitfl0wer fc66036674
Add documentation 2023-06-08 22:39:06 +02:00
bitfl0wer 30cfb3b744
Implement RoleObject::create() 2023-06-08 22:26:24 +02:00
bitfl0wer 1c5be5693e
Add FormCreationError 2023-06-08 22:26:08 +02:00
bitfl0wer 9f21c06492
Change InstanceServerError to ChorusLibError
The name InstanceServerError was chosen without thinking about it too much, very early in development. The new name suits this custom Error type way better, in my opinion.
2023-06-08 22:16:23 +02:00
bitfl0wer bac097fb2e
Add RolePositionUpdateSchema 2023-06-08 20:45:56 +02:00
bitfl0wer 4993b7bac8
Change struct name
This schema is being used as a RoleModifySchema AND as a RoleCreationSchema.
2023-06-08 20:43:29 +02:00
bitfl0wer a1a4532b57
Add misssing attribute 2023-06-08 20:42:40 +02:00
bitfl0wer c31d2aa76d
Add RoleCreateSchema 2023-06-08 20:40:36 +02:00
kozabrada123 e6af81d694 Basic tests 2023-06-08 19:51:32 +02:00
kozabrada123 cae038af8f Refactor 2023-06-08 18:24:11 +02:00
kozabrada123 0f4eef2fb9 Merge branch 'main' into perpetual/gateway-dev 2023-06-08 17:35:17 +02:00
kozabrada123 f4f17f7454 Gateway basic error handling 2023-06-08 17:34:52 +02:00
bitfl0wer 429db9332b
cargo fix 2023-06-07 23:06:52 +02:00
bitfl0wer 0097809049
Remove unnecessary imports 2023-06-07 23:03:37 +02:00
bitfl0wer 32503078d7
Implement RoleObject::get_all() 2023-06-07 23:03:24 +02:00
bitfl0wer afe9663ded
Create roles.rs 2023-06-07 23:03:07 +02:00
bitfl0wer 97ca0c17eb
Try making permissions to PermissionFlags 2023-06-07 22:44:16 +02:00
bitfl0wer 6c0d21867c
Sort fields on Guild alphabetically 2023-06-07 22:40:48 +02:00
bitfl0wer 5b7bfa4a5d
Make enum into bitflags struct 2023-06-07 10:39:05 +02:00
bitfl0wer 7a1021031e
Fix enum, add has_permission() for RoleObject 2023-06-06 21:38:28 +02:00
bitfl0wer e2c80fc1f8
Make enum pub 2023-06-06 20:10:50 +02:00
bitfl0wer 6d2db3d808
Add PermissionFlags 2023-06-06 20:05:34 +02:00
bitfl0wer 7a3f485580
Add reference to docs 2023-06-04 14:41:24 +02:00
bitfl0wer 471abc88a6
Add method to remove own reaction 2023-06-04 14:39:22 +02:00
bitfl0wer fd2b9e670f
improve existing documentation 2023-06-04 14:32:57 +02:00
bitfl0wer 213220c8e0
Add delete_user method 2023-06-04 14:29:43 +02:00
bitfl0wer 47d1c52014
Change file structure 2023-06-04 14:20:06 +02:00
kozabrada123 7d17a1c976 Implement Clone for all events 2023-06-04 13:49:35 +02:00
kozabrada123 ca9f7f6c11 Merge branch 'main' into perpetual/gateway-dev 2023-06-04 10:18:16 +02:00
bitfl0wer 6b8d458eb4
Move some pieces of documentation to where they make the most sense 2023-06-03 22:34:03 +02:00
bitfl0wer f2de0f8813
Make reference links clickable in cargo doc 2023-06-03 22:15:03 +02:00
bitfl0wer 5967858e81
Add references 2023-06-03 22:08:56 +02:00
bitfl0wer 3722536de2
Add create reaction with documentation 2023-06-03 22:07:37 +02:00
bitfl0wer 5b579c551a
Add delete_emoji method with documentation 2023-06-03 20:17:21 +02:00
bitfl0wer 02db71055c
Add documentation 2023-06-03 18:59:13 +02:00
bitfl0wer 4f91f26a28
Add reactions: get 2023-06-03 18:53:53 +02:00
bitfl0wer fab9bc1c62
Implement reactions: delete all 2023-06-03 18:46:36 +02:00
bitfl0wer addfb01075
Add ReactionMeta struct 2023-06-03 15:21:49 +02:00
kozabrada123 63ae7feb8a Features is not always sent 2023-06-02 11:00:34 +02:00
kozabrada123 a49bdd8456 Merge branch 'perpetual/gateway-dev' of https://github.com/polyphony-chat/chorus into perpetual/gateway-dev 2023-06-02 10:58:22 +02:00
kozabrada123 e846b2b423 fmt 2023-06-02 10:58:04 +02:00
kozabrada123 611ee800ba Handle Heartbeat ACKs 2023-06-02 10:57:47 +02:00
kozabrada123 28a92212b6 Handle Heartbeat requests 2023-06-02 10:42:19 +02:00
bitfl0wer e4a185dce5
Create reactions.rs 2023-06-01 21:14:11 +02:00
bitfl0wer 4bdecb0a6c
Remove mod 2023-06-01 21:14:02 +02:00
Flori b87ac84f61
Merge pull request #83 from polyphony-chat/refactor/less-boilerplate
Refactor/less boilerplate
2023-05-30 23:11:47 +02:00
bitfl0wer dc40c69ebe
Refactored users() as much as possible 2023-05-30 23:04:22 +02:00
Zertex 5a9a156846 make the tests pass 2023-05-30 10:57:34 -04:00
Zert3x 25a0544822
Merge branch 'main' into refactor/rename-apierror 2023-05-29 22:25:02 -04:00
bitfl0wer b1dbc53049
Refactor channels() 2023-05-29 23:59:13 +02:00
bitfl0wer 3cebafecf6
Refactor create 2023-05-29 23:57:23 +02:00
bitfl0wer d8d3bf5be6
Refactor delete() 2023-05-29 23:51:12 +02:00
bitfl0wer 96ace34137
Refactor create() and get() 2023-05-29 23:46:43 +02:00
bitfl0wer e03c51658d
Remove unnecessary lifetime 2023-05-29 23:46:17 +02:00
bitfl0wer eaf45274a6
Refactor Guild create 2023-05-29 23:16:43 +02:00
bitfl0wer 1e79a1a7ab
Refactor message::send() 2023-05-29 23:15:05 +02:00
bitfl0wer a12573fe1c
Refactor modify() to take less boilerplate args 2023-05-29 23:11:12 +02:00
bitfl0wer 808224d4fb
Refactor delete() to take less boilerplate args 2023-05-29 23:08:52 +02:00
bitfl0wer 001dc9f80c
Refactor get() to take less boilerplate args 2023-05-29 23:01:17 +02:00
bitfl0wer f18d3d7707
Add clone, default derives 2023-05-29 18:50:19 +02:00
bitfl0wer a7fd29c7f1
Make all attributes pub 2023-05-29 18:34:08 +02:00
bitfl0wer 05bc4a4647
Add modify() 2023-05-29 18:27:30 +02:00
bitfl0wer 0048e548f5
Add ChannelModifySchema 2023-05-29 18:27:15 +02:00
Flori 9c258067e8
Merge pull request #81 from polyphony-chat/feature/channel/delete
Feature/channel/delete
2023-05-29 17:56:13 +02:00
bitfl0wer 5a40da1cd6
Implement User methods on User instead of UserMeta 2023-05-29 17:25:34 +02:00
kozabrada123 b83dd916e8 Fix typo 2023-05-29 17:18:52 +02:00
kozabrada123 90ebc823ba Fix some errors caused by the observer return fix 2023-05-29 17:11:08 +02:00
bitfl0wer 7f8abceab5
Made Guild::create return Guild instead of String.
This makes way more sense, I think.
2023-05-29 16:50:10 +02:00
bitfl0wer fee0aa966a
Changed some apparently incorrect attributes
Some attributes are not necessarily returned by the GET route for a guild. Also, some integers were too small. One example is max_video_channel_users, which was a u8, but could theoretically be a value much higher than u8::MAX.
2023-05-29 16:49:36 +02:00
bitfl0wer b2b5930db0
Remove print statement 2023-05-28 23:08:13 +02:00
bitfl0wer 135782da9f
Remove print statement 2023-05-28 23:08:05 +02:00
bitfl0wer 7b7dbb9b5e
Create channels() for Guild
This method retrieves all channels from a guild
2023-05-28 23:04:35 +02:00
bitfl0wer 897c269e98
Make delete use self 2023-05-28 23:04:13 +02:00
bitfl0wer 5db5a2562f
Add InvalidResponseError 2023-05-28 23:04:02 +02:00
bitfl0wer 2ba1e1ac84
Add documentation 2023-05-28 22:40:37 +02:00
bitfl0wer 69b6efe200
Make channel delete take ownership of a Channel 2023-05-28 22:39:38 +02:00
bitfl0wer 268da9525c
Add channel delete method 2023-05-28 22:39:25 +02:00
kozabrada123 c4a6b85e1e Fix weird observer subscribe return 2023-05-28 17:37:05 +02:00
kozabrada123 982e85af9e u16 is too small for flags apparently 2023-05-28 17:36:30 +02:00
kozabrada123 61a54678cb Members is optional 2023-05-28 17:36:12 +02:00
kozabrada123 a1a0c94e2d agjbg??! 2023-05-28 14:52:48 +02:00
kozabrada123 dfa047a9c5 71 conflicts due to fmt?!?!?!?! 2023-05-28 14:52:08 +02:00
kozabrada123 b6061b7bf5 Gateway opcode constants and small refactor 2023-05-28 14:39:41 +02:00
kozabrada123 304ff014e3 More stability 2023-05-28 08:43:22 +02:00
Zertex de10ccbed7 Hijack this to make User::flags pub 2023-05-28 02:42:35 -04:00
Zertex bab1f0ed52 Add custom implementation to allow simple-array behaviour for GuildFeatures 2023-05-28 02:42:09 -04:00
Zertex 73790fbf2a Change integer datatypes to be 'i32' as required by sqlx 2023-05-28 02:39:24 -04:00
kozabrada123 504d74a715 Stability, new event 2023-05-28 08:18:50 +02:00
Zertex c300f1918c merge main 2023-05-27 19:54:43 -04:00
bitfl0wer 77ae3f10b6
run cargo fmt && cargo fix 2023-05-28 00:50:52 +02:00
bitfl0wer 503edf2fac
Move test to tests-dir 2023-05-27 22:51:43 +02:00
bitfl0wer 1e844445fc
Remove empty test 2023-05-27 22:47:46 +02:00
bitfl0wer 8ea0cc3f3f
Make password optional 2023-05-27 22:46:43 +02:00
bitfl0wer 927109e9b6
Move tests to tests/-dir 2023-05-27 22:46:27 +02:00
bitfl0wer a7d092fc3a
Fix build 2023-05-27 20:54:43 +02:00
bitfl0wer 0504f0a9d2
Merge branch 'refactor/application-default' 2023-05-27 20:46:19 +02:00
kozabrada123 f54e750f74 Add options with empty string for identify props 2023-05-27 19:55:57 +02:00
Zertex 80e60901d8 uncomment, oops 2023-05-27 13:50:55 -04:00
Zertex 665a3b3667 rename APIError in ErrorField vec as well 2023-05-27 13:50:28 -04:00
Zertex 7189294d4b Hijack this to clean up ApplicationCommandOptionType with serde_repr 2023-05-27 13:46:37 -04:00
Zertex 250035fe9e Add custom Default impl to Application 2023-05-27 13:45:56 -04:00
Zertex 6d747bc504 Rename APIError -> APIErrorPayload to solve conflicting name 2023-05-27 13:41:23 -04:00
bitfl0wer da9232da0b
Fix typos 2023-05-27 19:36:07 +02:00
kozabrada123 a26ded8ab2
Merge branch 'main' into feature/full-gateway-coverage 2023-05-27 19:23:27 +02:00
Zertex 7a487c657c remove message field 2023-05-27 11:40:20 -04:00
kozabrada123 f8c02fee6a Remove dumping gateway events into stdout 2023-05-27 17:33:19 +02:00
kozabrada123 4a7fea8366 Better unrecognised messages 2023-05-27 17:31:55 +02:00
kozabrada123 be73bf19eb Add Application Command Permissions & Update event 2023-05-27 17:29:30 +02:00
kozabrada123 15ffdcecaa Add InteractionCreate 2023-05-27 17:11:47 +02:00
kozabrada123 5b04370d46 Add Stage Instance & events 2023-05-27 17:05:25 +02:00
kozabrada123 8d0083e11d Add Auto Moderation types & events 2023-05-27 16:50:38 +02:00
kozabrada123 ab902c5ef2 Add Relationship & related events 2023-05-27 16:03:23 +02:00
kozabrada123 7367475d99 Add "Discord Client" option 2023-05-27 13:16:40 +02:00
kozabrada123 b11743d35c Document more gateway props options 2023-05-27 13:05:59 +02:00
kozabrada123 224b3159a6 Fix some deserialization errors 2023-05-27 13:05:36 +02:00
kozabrada123 21c4d53b28 Fix a types mismatch 2023-05-27 09:58:10 +02:00
kozabrada123 b102f3d2cc Fix stack overflow due to infinite recursion
I am dumb
2023-05-27 09:57:46 +02:00
kozabrada123 5b08ddfcfb Add a sensible defaults for Identify and its props 2023-05-27 09:21:26 +02:00
Zertex 5e000f3617 Revert "Add back settings and extended_settings fields to User"
This reverts commit 3018c0ddd1.
2023-05-27 00:24:37 -04:00
Zertex 9974d90416 Revert "fix imports"
This reverts commit 13c2e4aed9.
2023-05-27 00:24:32 -04:00
Zertex 13c2e4aed9 fix imports 2023-05-27 00:12:05 -04:00
Zertex 3018c0ddd1 Add back settings and extended_settings fields to User 2023-05-27 00:07:07 -04:00
Zertex b8e5b627de Add PartialEq, Clone, Copy to Component 2023-05-26 22:44:43 -04:00
Zertex 342354a06b Add forgotten derives to UnvailableGuild/GuildCreateResponse 2023-05-26 22:38:39 -04:00
Zertex 185480b0be Add forgotten feature lock to UserTheme 2023-05-26 22:38:16 -04:00
Zertex 0bdae8f7e3 Add forgotten derives to Emoji 2023-05-26 22:37:20 -04:00
Zertex bbefab926c Extract private fields to symfonia, type lock fields 2023-05-26 22:29:20 -04:00
Zertex 1420ba1696 serde(skip) ids where full objects are returned 2023-05-26 16:24:42 -04:00
Zertex 86dcfb2c3b serde(skip) ids where full objects are returned 2023-05-26 16:23:33 -04:00
Zertex 8fcd64f87d Flesh out and properly feature lock fields on Attachment 2023-05-26 16:00:15 -04:00
Zertex b885e13922 Flesh out and properly feature lock fields on Application 2023-05-26 15:25:40 -04:00
Zertex 297ef50b36 Add feature locks to Emoji 2023-05-26 14:09:03 -04:00
Zertex 986caf1110 Add feature locks to Channel 2023-05-26 14:08:53 -04:00
kozabrada123 94e9af8e8a Types refactor 2023-05-26 19:47:41 +02:00
kozabrada123 013943791b Types refactor merged 2023-05-26 19:36:41 +02:00
Zertex 0d5e592ea4 Simplify locks 2023-05-26 11:54:07 -04:00
Zertex 02d1cc3b97 Simplify locks 2023-05-26 11:44:02 -04:00
Zertex d00f21cd3f Un-lock mod errors 2023-05-26 10:23:11 -04:00
Zertex 38503aea57 Lock client specific code behind feature 2023-05-26 10:16:08 -04:00
Zertex 113db7575d Convert Channel::guild_id to Snowflake 2023-05-26 09:59:36 -04:00
Zertex f964a2d303 Serde_repr on ChannelType 2023-05-26 09:58:13 -04:00
bitfl0wer e3b4d3c56d
remove internal only attributes 2023-05-26 13:17:27 +02:00
bitfl0wer c214c8bd73
Prettify imports, remove outdated types/schemas 2023-05-26 12:59:32 +02:00
bitfl0wer 47b8960d15
Run cargo fix 2023-05-26 12:53:57 +02:00
bitfl0wer 96c7c129f2
Finish refactor 2023-05-26 12:50:16 +02:00
bitfl0wer 513e2b0394
start porting over new types folder 2023-05-25 23:09:18 +02:00
bitfl0wer 5dc1441ac6
Integrate polyphony-types into chorus 2023-05-25 21:11:08 +02:00
kozabrada123 c8dcc2df35 Build error after merge fixed 2023-05-24 16:27:04 +02:00
kozabrada123 fae752f0ec Merge branch 'main' into feature/full-gateway-coverage 2023-05-24 16:23:00 +02:00
kozabrada123 69e8c54136 Merge main / rebase + merge conflict fix 2023-05-24 16:22:22 +02:00
bitfl0wer d762a25953
Move Channels::get() to channels.rs 2023-05-23 16:28:25 +02:00
bitfl0wer 377e619f77
Create channels.rs 2023-05-23 16:28:09 +02:00
bitfl0wer fc1993894d
Fix: Used wrong rout to retrieve singular channel 2023-05-23 16:25:08 +02:00
bitfl0wer cdd0465a05
Make Channel type derive Eq, PartialEq recursively 2023-05-23 15:25:32 +02:00
bitfl0wer cc332847fb
Revert "Add ChannelType enum"
This reverts commit d100308dfd.
2023-05-23 15:17:04 +02:00
bitfl0wer de9040de80
try flattening the enum to fix CI 2023-05-23 15:10:56 +02:00
bitfl0wer 0c22e241fa
Add todo 2023-05-23 14:51:28 +02:00
bitfl0wer d100308dfd
Add ChannelType enum 2023-05-23 14:50:48 +02:00
bitfl0wer 71d5c229cf
Replace URL in errors with full route URL 2023-05-23 14:38:03 +02:00
bitfl0wer 8808e5554f
Implement get() for channel 2023-05-23 14:37:34 +02:00
bitfl0wer 9afce452a6
Start working on get() channel route 2023-05-23 14:31:21 +02:00
bitfl0wer b910f44e90
Change create channel method to return Channel
Previously returned a Response object.
2023-05-23 13:50:39 +02:00
bitfl0wer 6af16490ab
Implement create channel methods 2023-05-23 13:06:09 +02:00
bitfl0wer 8d66e7d90d
start working on channel create 2023-05-22 23:22:34 +02:00
kozabrada123 c56dc42cd7 Add Voice StateUpdate and ServerUpdate events 2023-05-22 18:42:12 +02:00
kozabrada123 27ff0116d6 Add GuildScheduledEvent Events (pt 2) 2023-05-22 16:46:49 +02:00
kozabrada123 115c5ab29f Add GuildScheduledEvent Events 2023-05-22 16:43:06 +02:00
kozabrada123 128f66c100 Remove unused 2023-05-22 15:57:37 +02:00
kozabrada123 68e47f03e7 Merge branch 'main' 2023-05-22 13:30:19 +02:00
bitfl0wer 301ac320c6
move integration test from guild to integration.rs 2023-05-21 16:02:54 +02:00
bitfl0wer 849acf798e
Add delete() to User 2023-05-21 15:05:02 +02:00
bitfl0wer 825c822791
Fix 'already borrowed: BorrowMutError' 2023-05-20 23:21:24 +02:00
bitfl0wer 3f27df7ac4
Replace &mut Instance with Rc<RefCell<Instance>>
Replace &mut Instance with Rc<RefCell<Instance>> on the User struct to represent the 1:n relation of Instance:User
2023-05-20 23:10:25 +02:00
kozabrada123 9ee0b51757 Add Guild Audit Log Entry Create 2023-05-20 13:03:44 +02:00
kozabrada123 5550186ca3 Add Invite Create & Delete 2023-05-20 12:50:05 +02:00
kozabrada123 c2320b263b Add Passive Update V1 2023-05-20 09:35:48 +02:00
kozabrada123 d18ac32d20 Duplicate VoiceState 2023-05-20 08:59:14 +02:00
kozabrada123 ea4dfc82d5 Update dependencies, deserialize errors 2023-05-20 08:39:02 +02:00
kozabrada123 78ab26b9ad
Merge pull request #60 from polyphony-chat/main
Rebase feature/fgc
2023-05-20 08:37:34 +02:00
kozabrada123 dad2ad3bec Solve deserialization problem semi optimally 2023-05-17 18:16:47 +02:00
kozabrada123 048a74f0d1 Revert "Deserialize from String" (Ugh)
This reverts commit 3b21445e34.

If course I can't just do that, ugh
Keeping the formatting would require using RawValue, but as we use one struct for sending an recieving, having to make RawValue to send would be pretty dumb
2023-05-17 17:24:29 +02:00
kozabrada123 3b21445e34 Deserialize from String instead of Value 2023-05-17 17:03:03 +02:00
kozabrada123 2b22c50a89 Some minor changes 2023-05-17 16:24:04 +02:00
bitfl0wer 0c22571660
Implement modify(), untested as of now 2023-05-16 15:59:23 +02:00
bitfl0wer 8e58f7a54d
Add UserModifySchema 2023-05-16 15:59:06 +02:00
bitfl0wer d17c046480
Add PasswordRequiredError 2023-05-16 15:58:51 +02:00
bitfl0wer 44f27f7a0e
Start working on User::modify(). 2023-05-15 23:20:23 +02:00
kozabrada123 30aeb26cfd Fix spelling mistake, add minor docs 2023-05-15 20:54:16 +02:00
kozabrada123 28d3a7d924 Fix some deser errors, add CHANNEL_UNREAD_UPDATE 2023-05-15 20:45:33 +02:00
kozabrada123 4a8cff6fd9
Merge pull request #58 from polyphony-chat/main
Bring full-gateway-coverage up to date from main
2023-05-15 12:42:06 +00:00
bitfl0wer 5e6a5e946e
remove accidental doctests 2023-05-14 22:47:34 +02:00
bitfl0wer 48cd701fbe
make fields on GuildCreateSchema pub 2023-05-14 22:45:55 +02:00
bitfl0wer 8f8bd641c4
add type guildcreateresponse 2023-05-14 22:45:42 +02:00
bitfl0wer c0602b4158
Remove unused import 2023-05-14 22:45:31 +02:00
bitfl0wer ad09bfca40
Change function signatures, add tests 2023-05-14 22:45:18 +02:00
kozabrada123 02570b8c91 Fix some gateway deserialization errors 2023-05-14 19:55:43 +02:00
kozabrada123 c7dea3a81b Add some Guild, Integration and Webhook events 2023-05-14 15:55:20 +02:00
kozabrada123 ac38963c0e Add session, guild event types 2023-05-14 15:37:30 +02:00
bitfl0wer 269d73ce87
Add guild delete route 2023-05-14 14:16:21 +02:00
kozabrada123 cb30e1b904
Merge branch 'feature/full-gateway-coverage' into feature/rest-of-discord-types 2023-05-14 12:05:26 +00:00
kozabrada123 1930229a90 Add Readies to Events, try to fix msg_create error 2023-05-14 14:03:18 +02:00
bitfl0wer 190def95da
Add RateLimit information 2023-05-14 13:12:02 +02:00
bitfl0wer e3c40356bc
impl ToString for LimitType 2023-05-14 13:11:50 +02:00
bitfl0wer 3de820062b
Improve error handling on request sending 2023-05-14 13:07:46 +02:00
bitfl0wer 5a41eda295
Merge branch 'feature/rest-of-discord-types' into feature/guild-creation-deletion 2023-05-14 12:55:39 +02:00
bitfl0wer 101c95d909
Remove duplicate VoiceState 2023-05-14 12:55:19 +02:00
bitfl0wer 7f459c6c4f
Merge branch 'feature/rest-of-discord-types' into feature/guild-creation-deletion 2023-05-14 12:52:25 +02:00
bitfl0wer 7c0c95690d
Add full Guild type 2023-05-14 12:40:31 +02:00
kozabrada123 e641ab0bbd Flatten, new events 2023-05-14 11:43:17 +02:00
kozabrada123 1e3ea8a072 Add call update and delete 2023-05-14 08:39:23 +02:00
kozabrada123 5bece07ab7 Add more events, fix deserialization errors 2023-05-14 08:20:25 +02:00
bitfl0wer 8503bdbd80
remove get() 2023-05-13 23:45:49 +02:00
bitfl0wer 0d00215ebf
start implementing get() 2023-05-13 23:15:28 +02:00
bitfl0wer a9ef578f70
Add documentation 2023-05-13 22:55:17 +02:00
bitfl0wer 8dce270343
Implement Guild::create() 2023-05-13 22:14:53 +02:00
bitfl0wer 72a4d57aff
Add GuildCreateSchema as per Spacebar Docs 2023-05-13 22:11:06 +02:00
bitfl0wer fe5beee228
Update docs, remove panic in favor of Err Result 2023-05-13 22:10:46 +02:00
bitfl0wer 81c4402f32
Remove panic on send_request error 2023-05-13 22:06:44 +02:00
kozabrada123 ae1271d828 Add Stage Instance and Voice State 2023-05-13 22:01:04 +02:00
kozabrada123 7069a9e1e6 Add integrations 2023-05-13 21:50:36 +02:00
bitfl0wer 183bd0e0d2
create src/api/guilds/guilds.rs 2023-05-13 21:42:43 +02:00
kozabrada123 9963fd8a33 Add channel and thread types, start guild 2023-05-13 21:27:44 +02:00
kozabrada123 be1a358bfd
Merge branch 'polyphony-chat:main' into main 2023-05-13 14:49:53 +00:00
kozabrada123 9f8ff96d1b Small changes for merging 2023-05-13 16:43:29 +02:00
bitfl0wer ce84251d31
Fix tests 2023-05-13 16:42:24 +02:00