The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

MooseX::Fastly::Role - Fastly api from config, and purge methods

SYSOPSIS

  package My::App::CDN::Manager;

  use Moose;

  has config => (
    is      => 'ro',
    isa     => 'HashRef',
    lazy    => 1,
    default => sub {
        {
              fastly_api_key => 'XXXXX',
              fastly_service_id => 'YYYYY',
        };
    },
  );

  with 'MooseX::Fastly::Role';

  $self->cdn_purge_now({
    keys => [ 'foo', 'bar' ],
    soft_purge => 1,
  });

  $self->cdn_purge_all();

  my $fastly = $self->cdn_api();
  my $services = $self->cdn_services();

DESCRIPTION

Fastly is a global CDN (Content Delivery Network), used by many companies. This module requires a config method to return a hashref. This packages uses HTTP::Tiny for most calls (so that you can use Fastly's token authentication for purging keys), but also provides accessors to Net::Fastly for convenience.

METHODS

cdn_purge_now

  $self->cdn_purge_now({
    keys => [ 'foo', 'bar' ],
    soft_purge => 1,
  });

Purge is called on all services, for each key.

cdn_purge_all

  $self->cdn_purge_all();

Purge all is called on all services

Net::Fastly

Methods below return objects from Net::Fastly.

cdn_api

  my $cdn_api = $self->cdn_api();

If there is a fastly_api_key in config a Net::Fastly instance is created and returned. Otherwise undef is returned (so you can develope safely if you do not set fastly_api_key in the config).

cdn_services

   my $services = $self->cdn_services();

An array reference of Net::Fastly::Service objects, based on the fastly_service_id id(s) set in config.

The array reference will be empty if fastly_service_id is not found in config.

AUTHOR

Leo Lapworth <LLAP@cpan.org>

LICENSE

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