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.