Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

http: validate request parameters #167

Merged
merged 5 commits into from
May 26, 2020
Merged

http: validate request parameters #167

merged 5 commits into from
May 26, 2020

Commits on May 26, 2020

  1. http: validate request parameters

    This patch is a continuation of PR #146 with the comments applied.
    
    When creating HTTP requests, validate the request parameters. This
    includes things like checking that the content length of a message is
    less than or equal to 2000 characters[1], that a new channel's name is
    within the range of 2-100 characters[2], and more.
    
    The request methods that do validation now return results with an error
    type that is local to the module. For example, the
    `http::request::channel::UpdateChannel::name` method can return an
    error, which is defined at
    `http::request::channel::update_channel::UpdateChannelError`.
    
    Validation functions are located in `http::request::validation`, which
    includes functions that simply return booleans of whether the input is
    valid or not. Each of these sources where the validation limits are
    documented. Some things, such as custom emoji names, don't have a
    documented length limit[3], so validation isn't done for them.
    
    [1]: https://discordapp.com/developers/docs/resources/channel#create-message-params
    [2]: https://discordapp.com/developers/docs/resources/channel#channel-object-channel-structure
    [3]: https://discordapp.com/developers/docs/resources/emoji#create-guild-emoji-json-params
    
    Closes issue #29.
    
    Signed-off-by: Vivian Hellyer <vivian@hellyer.dev>
    zeylahellyer committed May 26, 2020
    Configuration menu
    Copy the full SHA
    3365b27 View commit details
    Browse the repository at this point in the history
  2. cargo clippy

    Signed-off-by: Vivian Hellyer <vivian@hellyer.dev>
    zeylahellyer committed May 26, 2020
    Configuration menu
    Copy the full SHA
    3748a6a View commit details
    Browse the repository at this point in the history
  3. fix test

    Signed-off-by: Vivian Hellyer <vivian@hellyer.dev>
    zeylahellyer committed May 26, 2020
    Configuration menu
    Copy the full SHA
    a62838f View commit details
    Browse the repository at this point in the history
  4. add embed validation

    Add embed validation for creating and updating messages. This checks the
    the author name, description, field names, field values, footer text,
    and title lengths to ensure they aren't too long. The total number of
    fields is checked as well as the total combined length of all of the
    above.
    
    This addresses comment
    <#167 (comment)>.
    
    Limits are referenced in the documentation to point to
    <https://discord.com/developers/docs/resources/channel#embed-limits>.
    
    Signed-off-by: Vivian Hellyer <vivian@hellyer.dev>
    zeylahellyer committed May 26, 2020
    Configuration menu
    Copy the full SHA
    81d8313 View commit details
    Browse the repository at this point in the history
  5. http/validate: consistent embed error messages

    Signed-off-by: Vivian Hellyer <vivian@hellyer.dev>
    zeylahellyer committed May 26, 2020
    Configuration menu
    Copy the full SHA
    0b48c25 View commit details
    Browse the repository at this point in the history