Class: Mailroute::Admin

Inherits:
Base
  • Object
show all
Defined in:
lib/mailroute/models/admin.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

bulk_create, delete, has_admins, has_many, has_one, headers, #initialize, instantiate_collection, instantiate_collection_without_meta, list, #load, meta, #to_json, total_count

Methods included from ActiveResource::Extensions::UrlsWithoutJsonExtension

included

Constructor Details

This class inherits a constructor from Mailroute::Base

Class Method Details

.collection_path(prefix_options = {}, query_options = nil) ⇒ Object



5
6
7
8
9
10
11
# File 'lib/mailroute/models/admin.rb', line 5

def self.collection_path(prefix_options = {}, query_options = nil)
  scope = prefix_options.delete(:scope) || (query_options && query_options.delete(:scope))
  raise 'Scope is missing' unless scope
  check_prefix_options(prefix_options)
  prefix_options, query_options = split_options(prefix_options) if query_options.nil?
  "#{prefix(prefix_options)}admins/#{scope[:name]}/#{scope[:id]}/#{query_string(query_options)}"
end

.element_path(id, prefix_options = {}, query_options = nil) ⇒ Object



13
14
15
16
17
18
19
# File 'lib/mailroute/models/admin.rb', line 13

def self.element_path(id, prefix_options = {}, query_options = nil)
  scope = prefix_options.delete(:scope) || (query_options && query_options.delete(:scope))
  raise 'Scope is missing' unless scope
  check_prefix_options(prefix_options)
  prefix_options, query_options = split_options(prefix_options) if query_options.nil?
  "#{prefix(prefix_options)}admins/#{scope[:name]}/#{scope[:id]}/admin/#{URI.parser.escape id.to_s}/#{query_string(query_options)}"
end

.get(id, scope) ⇒ Object



56
57
58
# File 'lib/mailroute/models/admin.rb', line 56

def self.get(id, scope)
  find(id, :params => { :scope => { :name => scope.keys.first, :id => scope.values.first } })
end

Instance Method Details

#customerObject



35
36
37
38
39
40
41
# File 'lib/mailroute/models/admin.rb', line 35

def customer
  if resource_uri =~ /admins\/customer\/(\d+)\/admin/
    @customer ||= Mailroute::Customer.get($1.to_i)
  else
    nil
  end
end

#element_pathObject



21
22
23
# File 'lib/mailroute/models/admin.rb', line 21

def element_path
  super(scope)
end

#regenerate_api_keyObject



25
26
27
28
# File 'lib/mailroute/models/admin.rb', line 25

def regenerate_api_key
  response = connection.post(element_path + 'regenerate_api_key/', nil, self.class.headers)
  self.class.format.decode(response.body)['api_key']
end

#reloadObject



51
52
53
54
# File 'lib/mailroute/models/admin.rb', line 51

def reload
  @customer = @reseller = nil
  super
end

#resellerObject



43
44
45
46
47
48
49
# File 'lib/mailroute/models/admin.rb', line 43

def reseller
  if resource_uri =~ /admins\/reseller\/(\d+)\/admin/
    @reseller ||= Mailroute::Reseller.get($1.to_i)
  else
    nil
  end
end

#scopeObject



30
31
32
33
# File 'lib/mailroute/models/admin.rb', line 30

def scope
  raise 'invalid state' unless resource_uri =~ /admins\/([^\/]+)\/(\d+)\/admin/
  { :scope => { :id => $2.to_i, :name => $1 } }
end