Caleb Cushing > MooseX-RemoteHelper-0.001021 > MooseY::RemoteHelper::Role::Client

Download:
MooseX-RemoteHelper-0.001021.tar.gz

Dependencies

Annotate this POD

Website

View/Report Bugs
Module Version: 0.001021   Source  

NAME ^

MooseY::RemoteHelper::Role::Client - Commonly used attributes for remote facade's

VERSION ^

version 0.001021

SYNOPSIS ^

        use 5.010;
        # implementers
        use Moose;
        use Module::Runtime 'use_module';
        use Try::Tiny;

        with 'MooseY::RemoteHelper::Role::Client';

        sub submit {
                my ( $self, $req ) = @_;

                # check test
                # check debug and output request/response
                # ...

                my $res; # = ...

                return $res;
        }

        # consumers debbuging live transactions
        my $req; # your request object

        my $client
                = use_module('My::Client')->new({
                        user  => 'Str',
                        pass  => 'Str',
                        test  => 0,
                        debug => 1,
                });

        my $res = try {
                        $client->submit( $req )
                }
                catch {
                        # ...
                        # if $_->does('Throwable')
                        # ...
                };

DESCRIPTION ^

I've found that most remote clients have the same things in common, "user", "pass", a way to transmit "submit", need for "debug" modes, and commonly a "test" mode.

ATTRIBUTES ^

user

Type: Str Required

This should be the username or other credential used to identify your user.

pass

Type: Str Required

This should be the password, passphrase, or other credential used to authenticate your user initially. If for some reason your client doesn't have this, set it to an empty string and ignore it in "submit" method.

debug

Type: Int Default: $ENV{REMOTE_CLIENT_DEBUG} or 0

This is used to provide debugging levels, it defaults to the Environment variable REMOTE_CLIENT_DEBUG or 0 if that's not set.

test

Type: Bool Default: 1

Many remote APIs have a test mode, that is different from live transactions. Use this to turn that on. It could toggle a different endpoint, or simply a parameter. Defaults to 1 because it's better to send fake requests than accidentally send live ones. Remember to always set this on APIs that use it.

METHODS ^

submit

        my $res = try { $client->submit( $req ) } catch { ... if $_->does('Throwable') };

The above is the method signature this should implement. Submit should take a request object that can serialize and return a response object. Throwable exceptions should occur if there is a network transmission error.

Note: the sample usage here is not good, write your exception handling better than this.

BUGS ^

Please report any bugs or feature requests on the bugtracker website https://github.com/xenoterracide/moosex-remotehelper/issues

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.

SEE ALSO ^

Please see those modules/websites for more information related to this module.

AUTHOR ^

Caleb Cushing <xenoterracide@gmail.com>

COPYRIGHT AND LICENSE ^

This software is Copyright (c) 2013 by Caleb Cushing.

This is free software, licensed under:

  The Artistic License 2.0 (GPL Compatible)
syntax highlighting: