mailup/mailup-ruby

View on GitHub
README.md

Summary

Maintainability
Test Coverage
# Mailup Ruby

A Ruby gem for interacting with the MailUp REST API.

[![Build Status](https://travis-ci.org/mailup/mailup-ruby.svg)](https://travis-ci.org/mailup/mailup-ruby)
[![Coverage Status](https://img.shields.io/coveralls/mailup/mailup-ruby.svg)](https://coveralls.io/r/mailup/mailup-ruby)
[![Code Climate](https://codeclimate.com/github/mailup/mailup-ruby/badges/gpa.svg)](https://codeclimate.com/github/mailup/mailup-ruby)
[![Dependency Status](https://gemnasium.com/mailup/mailup-ruby.svg)](https://gemnasium.com/mailup/mailup-ruby)
## Installation

Install the gem directly:

```ruby
gem install mailup
```

Or, add this line to your application's Gemfile:

```ruby
gem 'mailup'
```

## Usage

Be sure that you have OAuth2 tokens for the MailUp REST API before using this gem. If you are using [Omniauth](https://github.com/intridea/omniauth), there is a [MailUp strategy](https://github.com/tatemae-consultancy/omniauth-mailup) available.

### Credentials

Once you've gone through the OAuth process, and you have obtained your tokens, you need to provide your `client_id`, `client_secret` and OAuth2 tokens in a `credentials` hash to get started.

```ruby
require 'mailup'

credentials = {
  client_id: ENV['MAILUP_CLIENT_ID'],
  client_secret: ENV['MAILUP_CLIENT_SECRET'],
  oauth: {
    token: "...",
    refresh_token: "...",
    expires_at: 1234567890
  }
}

mailup = MailUp::API.new(credentials)
```

### Console Methods

Check out the [console methods API documentation](http://help.mailup.com/display/mailupapi/Standard+resources) for more information.

```ruby
lists = mailup.console.user.lists
lists['Items'].first['Name']
# => "Test List"
list_id = lists['Items'].first['idList'].to_i
# => 1
list = mailup.console.list(list_id)
groups = list.groups(pageNumber: 1, pageSize: 25)
groups['IsPaginated']
# => true
groups['PageNumber']
# => 1
groups['PageSize']
# => 25
groups['Skipped']
# => 25
groups['TotalElementsCount']
# => 35
groups['Items'].size
# => 10
```

### Email Statistics Methods

Check out the [email statistics API documentation](http://help.mailup.com/display/mailupapi/Email+Statistics) for more information.

```ruby
views_count = mailup.stats.message(17).views_count
# => 250

fields = mailup.stats.recipient(5).fields
# => {"IsPaginated"=>true, "Items"=>[{"Description"=>"AllOrderedProductIDs", "Id"=>26}, ...], ...}
```