class Postfixman::Api

Public Class Methods

new(endpoint_url, access_token) click to toggle source
# File lib/postfixman/api.rb, line 3
def initialize(endpoint_url, access_token)
  @endpoint_url = endpoint_url
  @access_token = access_token
end

Public Instance Methods

create_alias(params) click to toggle source
# File lib/postfixman/api.rb, line 53
def create_alias(params)
  request = web_request('POST', '/aliases', params, default_headers)
  Postfixman::Alias.new(request[:body])
end
create_recipient_bccs(params) click to toggle source
# File lib/postfixman/api.rb, line 78
def create_recipient_bccs(params)
  request = web_request('POST', '/recipient_bccs', params, default_headers)
  Postfixman::RecipientBcc.new(request[:body])
end
create_sender_bccs(params) click to toggle source
# File lib/postfixman/api.rb, line 103
def create_sender_bccs(params)
  request = web_request('POST', '/sender_bccs', params, default_headers)
  Postfixman::SenderBcc.new(request[:body])
end
create_user(params) click to toggle source
# File lib/postfixman/api.rb, line 28
def create_user(params)
  request = web_request('POST', '/users', params, default_headers)
  Postfixman::User.new(request[:body])
end
delete_alias(alias_id) click to toggle source
# File lib/postfixman/api.rb, line 63
def delete_alias(alias_id)
  request = web_request('DELETE', "/aliases/#{alias_id}", { }, default_headers)
  request[:body]['success'] == true
end
delete_recipient_bccs(recipient_bcc_id) click to toggle source
# File lib/postfixman/api.rb, line 88
def delete_recipient_bccs(recipient_bcc_id)
  request = web_request('DELETE', "/recipient_bccs/#{recipient_bcc_id}", { }, default_headers)
  request[:body]['success'] == true
end
delete_sender_bccs(sender_bcc_id) click to toggle source
# File lib/postfixman/api.rb, line 113
def delete_sender_bccs(sender_bcc_id)
  request = web_request('DELETE', "/sender_bccs/#{sender_bcc_id}", { }, default_headers)
  request[:body]['success'] == true
end
delete_user(user_id) click to toggle source
# File lib/postfixman/api.rb, line 38
def delete_user(user_id)
  request = web_request('DELETE', "/users/#{user_id}", { }, default_headers)
  request[:body]['success'] == true
end
get_alias(id) click to toggle source
# File lib/postfixman/api.rb, line 48
def get_alias(id)
  request = web_request('GET', "/aliases/#{id}", { }, default_headers)
  Postfixman::Alias.new(request[:body])
end
get_aliases(domain_id, filters={}) click to toggle source
# File lib/postfixman/api.rb, line 43
def get_aliases(domain_id, filters={})
  request = web_request('GET', "/domains/#{domain_id}/aliases", filters, default_headers)
  request[:body].map { |x| Postfixman::Alias.new(x) }
end
get_domain(id) click to toggle source
# File lib/postfixman/api.rb, line 13
def get_domain(id)
  request = web_request('GET', "/domains/#{id}", { }, default_headers)
  Postfixman::Domain.new(request[:body])
end
get_domains(filters={}) click to toggle source
# File lib/postfixman/api.rb, line 8
def get_domains(filters={})
  request = web_request('GET', '/domains', filters, default_headers)
  request[:body].map { |x| Postfixman::Domain.new(x) }
end
get_recipient_bcc(id) click to toggle source
# File lib/postfixman/api.rb, line 73
def get_recipient_bcc(id)
  request = web_request('GET', "/recipient_bccs/#{id}", { }, default_headers)
  Postfixman::RecipientBcc.new(request[:body])
end
get_recipient_bccs(domain_id, filters={}) click to toggle source
# File lib/postfixman/api.rb, line 68
def get_recipient_bccs(domain_id, filters={})
  request = web_request('GET', "/domains/#{domain_id}/recipient_bccs", filters, default_headers)
  request[:body].map { |x| Postfixman::RecipientBcc.new(x) }
end
get_sender_bcc(id) click to toggle source
# File lib/postfixman/api.rb, line 98
def get_sender_bcc(id)
  request = web_request('GET', "/sender_bccs/#{id}", { }, default_headers)
  Postfixman::SenderBcc.new(request[:body])
end
get_sender_bccs(domain_id, filters={}) click to toggle source
# File lib/postfixman/api.rb, line 93
def get_sender_bccs(domain_id, filters={})
  request = web_request('GET', "/domains/#{domain_id}/sender_bccs", filters, default_headers)
  request[:body].map { |x| Postfixman::SenderBcc.new(x) }
end
get_user(id) click to toggle source
# File lib/postfixman/api.rb, line 23
def get_user(id)
  request = web_request('GET', "/users/#{id}", { }, default_headers)
  Postfixman::User.new(request[:body])
end
get_users(domain_id, filters={}) click to toggle source
# File lib/postfixman/api.rb, line 18
def get_users(domain_id, filters={})
  request = web_request('GET', "/domains/#{domain_id}/users", filters, default_headers)
  request[:body].map { |x| Postfixman::User.new(x) }
end
update_alias(alias_id, params) click to toggle source
# File lib/postfixman/api.rb, line 58
def update_alias(alias_id, params)
  request = web_request('PUT', "/aliases/#{alias_id}", params, default_headers)
  Postfixman::Alias.new(request[:body])
end
update_recipient_bccs(recipient_bcc_id, params) click to toggle source
# File lib/postfixman/api.rb, line 83
def update_recipient_bccs(recipient_bcc_id, params)
  request = web_request('PUT', "/recipient_bccs/#{recipient_bcc_id}", params, default_headers)
  Postfixman::RecipientBcc.new(request[:body])
end
update_sender_bccs(sender_bcc_id) click to toggle source
# File lib/postfixman/api.rb, line 108
def update_sender_bccs(sender_bcc_id)
  request = web_request('PUT', "/sender_bccs/#{sender_bcc_id}", params, default_headers)
  Postfixman::SenderBcc.new(request[:body])
end
update_user(user_id, params) click to toggle source
# File lib/postfixman/api.rb, line 33
def update_user(user_id, params)
  request = web_request('PUT', "/users/#{user_id}", params, default_headers)
  Postfixman::User.new(request[:body])
end

Private Instance Methods

default_headers() click to toggle source
# File lib/postfixman/api.rb, line 120
def default_headers
  {
    content_type: :json,
    accept: :json,
    authorization: "Token token=\"#{@access_token}\""
  }
end
parse_response(response) click to toggle source
# File lib/postfixman/api.rb, line 141
def parse_response(response)
  result = {
    headers: response.headers,
    body: (JSON.parse(response.body) rescue response.body),
    status_code: response.code
  }

  result
end
web_request(uri_method, action, params={}, headers={}) click to toggle source
# File lib/postfixman/api.rb, line 128
def web_request(uri_method, action, params={}, headers={})
  begin
    parse_response(RestClient::Request.execute({
      method: uri_method,
      url: "#{@endpoint_url}#{action}",
      payload: params,
      headers: headers
    }))
  rescue => e
    parse_response(e.response)
  end
end