/p5-Mojolicious-Plugin-Google-Cloud-UserAgent

Mojolicious OAuth2 plugin for Google Cloud Platform APIs

Primary LanguagePerl

Mojolicious::Plugin::Google::Cloud::UserAgent

This module wraps a user agent object with a little OAuth2, making conversations with Google Cloud Platform APIs simple:

# Mojolicious
$self->plugin('Google::Cloud::UserAgent');

# Mojolicious::Lite
plugin 'Google::Cloud::UserAgent' => {
  gcp_auth_file => $ENV{GCP_AUTH_FILE},
  scopes        => ['https://www.googleapis.com/auth/pubsub'],
  duration      => 3600
};

# in a controller
get '/' => sub {
  my $c = shift;
  $c->render_later;

  $c->app->gcp_ua(GET => "https://pubsub.googleapis.com/v1/projects/$ENV{GCP_PROJECT}/topics",
                  sub {  ## response handler
                      my ($ua, $tx) = @_;
                      $c->render(json => $tx->res->json, status => $tx->res->code);
                  },
                  sub {  ## error sub
                      my ($tx, $c) = @_;
                      $c->render(json => $tx->res->json, status => $tx->res->code);
                  }
  );
};

See perldoc Mojolicious::Plugin::Google::Cloud::UserAgent for full usage.