The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Twitter::API::Trait::NormalizeBooleans - Normalize Booleans

VERSION

version 1.0006

SYNOPSIS

    use Twitter::API;

    my $client = Twitter::API->new_with_traits(
        traits => [ qw/ApiMethods NormalizeBooleans/ ],
        %other_new_options
    );

    my ( $r, $c ) = $client->home_timeline({ trim_user => 1 });

    say $c->http_request->uri;

    # output:
    https://api.twitter.com/1.1/statuses/home_timeline.json?trim_user=true

DESCRIPTION

Twitter has a strange concept of boolean values. Usually, the API accepts t, true, or 1 for true. Sometimes it accepts f, false, or 0 for false. But then you have strange cases like the include_email parameter used for authorized applications by the verify_credentials endpoint. It only accepts true. Worse, for some boolean values, passing f, false, or 0 all work as if you passed true. For those values, false means not including the parameter at all.

So, this trait attempts to normalize booleans by transforming any perl truthy value to the Twitter API's preference, true. It transforms falsey values to false. And then it removes false parameters that the API always treats as true.

You're welcome.

AUTHOR

Marc Mims <marc@questright.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2015-2021 by Marc Mims.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.