aboutsummaryrefslogtreecommitdiff
path: root/src/model
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove extraneous spaces at the end of linesZeyla Hellyer2018-06-177-16/+16
|
* Add methods to check whether `Message` is mentioning `User` (#323)Lakelezz2018-05-291-0/+15
|
* Remove deadlocking in Member::highest_role_infoZeyla Hellyer2018-05-271-8/+6
| | | | | | Instead of calling `parking_lot::RwLock::read` on the member's guild, call `parking_lot::RwLock::try_read` and return None early if it would cause a deadlock.
* impl From<{,&'a }CurrentUser> for UserZeyla Hellyer2018-05-231-0/+24
| | | | | Implementation `From<CurrentUser> for User` and `From<&'a CurrentUser> for User`.
* Implement Mentionable for CurrentUserZeyla Hellyer2018-05-231-0/+6
|
* Add `Message::member` structfieldZeyla Hellyer2018-05-212-2/+23
| | | | | Adds the `Message::member` structfield, which contains a partial amount of member data (deaf and mute status, role IDs, and joined_at).
* Fix "Guild Member Chunk" deserializationZeyla Hellyer2018-04-251-2/+11
|
* Remove empty whitespace at ends of linesZeyla Hellyer2018-04-251-1/+1
|
* Get rid of a spurious import warningacdenisSK2018-04-201-4/+3
|
* make `Options`'s fields optional (#305)Kyle Clemens2018-04-121-15/+60
|
* Turn the number-like properties of `Options` into `u64`acdenisSK2018-04-111-38/+45
|
* Handle (de)serializing `target_id` from/to a stringacdenisSK2018-04-111-2/+37
|
* Fix nsfw related docs (#299)Lakelezz2018-04-044-15/+15
|
* Refactor imports/exports to use nested groups and better formattingacdenisSK2018-03-2914-30/+107
|
* Change the way ids and some enums are made (#295)Leah2018-03-237-172/+271
| | | | | This makes them easier to be found by tools like rls. Also update struct inits to use the shorthand version for `x: x`.
* Remove useless clones (#292)Maiddog2018-03-172-4/+4
|
* Support sending files with an embed (#285)Brandon Lucier2018-03-041-5/+4
|
* Pad user discriminators in content_safe to 4 digitsMegumi Sonoda2018-02-231-1/+1
| | | | This brings the function in line with the 'tag' function for User models, and with the official Discord app experience and other libraries.
* Add 'Get Guild Vanity Url' endpointZeyla Hellyer2018-02-093-0/+30
| | | | Docs: <https://github.com/discordapp/discord-api-docs/commit/98f6643703012d2f3780ba730ce1191120f85dcd>
* Fix broken docs links caused by model mod changesZeyla Hellyer2018-01-314-7/+7
| | | | | Fix broken links caused by the `model` module changes in v0.5.0, which split up the module into sub-modules for better organization.
* Reduce number of clones in the libraryZeyla Hellyer2018-01-271-16/+18
|
* Correctly set role's position on new rolesZeyla Hellyer2018-01-271-1/+7
| | | | | | When creating a new role, correctly set its position if a position was specified. This is because the "Create Role" endpoint no longer accepts a `position` key.
* Add functions to reorder a guild's channelsZeyla Hellyer2018-01-272-0/+28
| | | | | Add `http::edit_guild_channel_positions`, `Guild::reorder_channels`, and `GuildId::reorder_channels`.
* Check message ID count in `delete_messages`Zeyla Hellyer2018-01-274-13/+29
| | | | | | In models' `delete_messages` methods, check the number of messages being deleted. If 0 or more than 100, return a `ModelError::BulkDeleteAmount`, as this amount would result in an invalid request.
* Add `Message::member`Zeyla Hellyer2018-01-271-0/+13
| | | | | | | | | Add a `member` function on `model::channel::Message` to retrieve a clone of the author's Member instance in the channel's guild. If the message was not sent in a guild, the guild could not be found in the cache, or the member instance could not be found in the cache, then `None` is returned.
* Account for guild owners in member hierarchy checkZeyla Hellyer2018-01-271-0/+15
| | | | | | When using `Guild::greater_member_hierarchy`, check if both user IDs are the same (returning None) or if one of them is the guild owner, in which case the guild owner's ID is returned.
* Fix compilation for some feature combinationsZeyla Hellyer2018-01-203-1/+7
|
* Fix no-cache compilationacdenisSK2018-01-201-0/+1
|
* Add an `EditMessage` builderZeyla Hellyer2018-01-186-36/+32
| | | | | | When editing messages, not all fields are applicable. Attachments, TTS, and reactions are not applicable. To help with this distinction, separate message editing into a different builder.
* Create unset member instances on presence updatesZeyla Hellyer2018-01-171-0/+19
| | | | | | | | If a presence update for a guild comes in and their associated member instance is not present (e.g. in a large guild that wasn't member chunked), then create one with the infomation known out of the presence update. This includes their user information, guild ID, nickname, and roles, but not their `deaf`, `joined_at`, and `mute` state.
* Fix no-model compiler warningsZeyla Hellyer2018-01-103-3/+3
|
* Fix docs for User::has_roleNikita Pekin2018-01-101-3/+4
| | | | | | | | Update the docs for `User::has_role` to reflect that `Into<GuildContainer>` is only implemented for `PartialGuild`, `GuildId`, and `u64`, not `Guild`. (cherry picked from commit 00deef894ec458ac8abff914ed864ea63c47eda6)
* Allow channels to be moved in and out of a category (#248)Kyle Clemens2018-01-083-8/+12
|
* Fix compilationZeyla Hellyer2018-01-062-6/+5
|
* Add some role position hierarchy checksZeyla Hellyer2018-01-063-8/+36
|
* Add Guild::greater_member_hierarchyZeyla Hellyer2018-01-061-0/+47
| | | | | Add a function to determine which of two members has the higher role hierarchy.
* Add Member::highest_role_infoZeyla Hellyer2018-01-061-0/+40
|
* Further generic-ify `reaction_users` `after` paramZeyla Hellyer2018-01-056-49/+52
| | | | | | | | | | | | | | | | | | Further generic-ify the `after` parameter on the `reaction_users` method of the following structs: - `ChannelId` - `Group` - `GuildChannel` - `Message` - `Channel` - `GuildChannel` Do this by changing the `U` trait bound from `Into<UserId>` to `Into<Option<UserId>>`. This resolves problems determining types when passing `None` as the argument, as reported in #247.
* Fix permission overwrites in permission buildingZeyla Hellyer2018-01-051-1/+11
| | | | | | | | | | | | | | While building permissions in the `Guild::permissions_in` function - which is relied upon by most model functions to check CurrentUser permissions - the channel overwrites of the given channel were iterated over incorrectly. The channel overwrites were iterated over in a non-specified order, resulting in overwrites being applied in a random order. However, Discord operates by applying permissions from a down-top order: role ID 0 is below role ID 1, which is below role ID 2, etc. This means that prior to applying permissions we must first sort by position so that lower positioned roles are iterated over first.
* Remove GameType::WatchingZeyla Hellyer2018-01-031-32/+0
| | | | | | According to [this commit], the game type has been removed. [this commit]: https://github.com/discordapp/discord-api-docs/commit/50999182f307ffda9ac7208a48570586ea446c08#diff-b307d936b736f302bc7cc153f0d8a0a3L779
* Move `VecMap` to `utils`acdenisSK2018-01-023-7/+5
| | | | This also fixes no-builder compilation
* Implement or derive Serialize on all modelsZeyla Hellyer2018-01-0126-115/+442
|
* Add missing 'num' implementations on modelsZeyla Hellyer2017-12-273-0/+40
| | | | | | | Add missing 'num' implementations from the following models: - `channel::{ChannelType, MessageType}` - `gateway::GameType`
* Improve performance of builders even furtheracdenisSK2017-12-2710-31/+33
| | | | | | By negating hashing altogether. The increase is around 1000-ish nanoseconds saved.
* Fix Guild::member_named and add teststahahawa2017-12-241-8/+15
| | | | | | | Use rfind, in case there's more '#' in username than just the discriminator Split at pos+1 instead of pos and remove the trailing '#' in the split.0 (Name) Fix bug with parsing
* Update model to include new voice regions (#240)Ken Swenson2017-12-231-0/+8
|
* Add `animated` to `Emoji` and `ReactionType`Zeyla Hellyer2017-12-202-2/+27
| | | | | | | | | | Adds an animated structfield to `Emoji` and `ReactionType`'s `Custom` variant, which defaults to false if not present. A test has been added for deserializing it, taken from a REST API GET Emojis response. (cherry picked from commit 5286949f424e824784344ebb7b7af4e52fb819c3)
* Add variant adapters to Channel (#238)Timo2017-12-201-0/+133
|
* GatewayEvent: don't unwrap deserializationsZeyla Hellyer2017-12-191-1/+2
| | | | | This commit makes GatewayEvent no longer unwrap Dispatch deserializations, and instead Try? it away.
* Fix `Guild` deser without `system_channel_id`Zeyla Hellyer2017-12-171-4/+4
| | | | | | | Fix the deserialization of `model::guild::Guild` when `Guild::system_channel_id` is not present. Additionally, add a test case for this.