apsis-on-steroids

Library that implements the Apsis API in Ruby in regards to administrating subscribers and such for newsletters.

Examples

Connecting

aos = ApsisOnSteroids.new(
  api_key: "[your api key]"
)

List all mailing lists.

aos.mailing_lists

Create a mailing list

aos.create_mailing_list(
  Name: "my_awesome_list",
  FromName: "Kasper Johansen",
  FromEmail: "kj@naoshi-dev.com",
  CharacterSet: "utf-8"
)

Get a mailing list.

mlist = aos.mailing_list_by_name("test_list")

Delete a mailing list.

mlist.delete

Get a subscriber from a mailing list.

sub = mlist.subscriber_by_email("some@email.com")

Get a specific subscriber without dealing with mailing lists:

sub = aos.subscriber_by_email("some@email.com")

Create one or more subscribers in a mailing list.

mlist.create_subscribers(
  [
    {
      Email: "some@email.com",
      Name: "Some Name"
    },{
      Email: "some_other@email.com",
      Name: "Some Name"
    }
  ]
)

Count subscribers on a mailing list.

mlist.count_subscribers #=> 105

Get details about subscribers.

puts "Details: #{sub.details}"

Update subscribers.

sub.update(Email: "some_third@email.com")

Remove subscriber from a mailing list.

mlist.remove_subscriber(sub)

Get a list of subscribers from a mailing list.

list = mlist.subscribers
list.each do |sub|
  # do something
end

Get a total list of subscribers.

aos.subscribers do |sub|
  # do something
end

Bundle various field names in same request (which means they are already preloaded and won’t cause an extra request each time you ask for the fields)

aos.subscribers(field_names: ["MyData1", "MyData2"]) do |sub|
  # do something
end

Bundle all data in same request

aos.subscribers(all_demographics: true) do |sub|
  # do something
end

Get sendings

date_from = Date.new(2014, 6, 17)
date_to = Date.new(2014, 6, 24)

sendings = apsis.sendings_by_date_interval(@date_from, @date_to).to_a

Get data from sendings

sendings.opens(count: true) #=> 5
sendings.bounces(count: true) #=> 1
sendings.clicks(count: true) #=> 3
sendings.opt_outs(count: true) #=> 1

sendings.clicks.each do |click|
  puts "ClickData: #{click.data_hash}"
end

Contributing to apsis-on-steroids

Copyright © 2013 kaspernj. See LICENSE.txt for further details.