Class: PipeDrive::FieldBase

Inherits:
Base
  • Object
show all
Defined in:
lib/pipe_drive/field_base.rb

Direct Known Subclasses

DealField, OrganizationField, PersonField

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

bulk_delete, delete, #delete, find_by_id, #initialize, #parameterize, parameterize, requester, #requester, search_and_setup_by, update, #update

Constructor Details

This class inherits a constructor from PipeDrive::Base

Class Method Details

.cache_keysObject



41
42
43
# File 'lib/pipe_drive/field_base.rb', line 41

def cache_keys
  PipeDrive.field_keys[correspond_resource.to_sym]
end

.correspond_resourceObject



11
12
13
# File 'lib/pipe_drive/field_base.rb', line 11

def correspond_resource
  resource_name.sub('Field', '')
end

.create(opts) ⇒ Object



26
27
28
29
# File 'lib/pipe_drive/field_base.rb', line 26

def create(opts)
  new_field = super(opts)
  new_field.add_to_field_keys
end

.field_keys_mapObject



31
32
33
34
35
36
37
38
39
# File 'lib/pipe_drive/field_base.rb', line 31

def field_keys_map
  field_keys_map = Hash.new{|hash, key| hash[key] = {}}
  resource = correspond_resource.to_sym
  list.each do |field|
    field_name = parameterize(field.name, '_').to_sym
    field_keys_map[resource][field_name] = field.key
  end
  field_keys_map
end

.list(&block) ⇒ Object



15
16
17
18
19
20
21
22
23
24
# File 'lib/pipe_drive/field_base.rb', line 15

def list(&block)
  path = "/#{resource_name}s"
  resources = requester.http_get(path) do |result|
    result[:data].nil? ? [] : list_objects(result)
  end
  resources.each do |resource|
    yield resource
  end if block_given?
  resources
end

.pipedrive_key_of(field_name) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/pipe_drive/field_base.rb', line 45

def pipedrive_key_of(field_name)
  cache_field_name = parameterize(field_name, '_').to_sym
  pipedrive_key = cache_keys[cache_field_name]
  return pipedrive_key unless pipedrive_key.nil?
  PipeDrive.reset_field_keys!
  pipedrive_key = cache_keys[cache_field_name]
  if pipedrive_key.nil?
    raise TargetNotFound.new(self.name, :name, field_name)
  else
    pipedrive_key
  end
end

Instance Method Details

#add_to_field_keysObject



3
4
5
6
7
# File 'lib/pipe_drive/field_base.rb', line 3

def add_to_field_keys
  resource = self.class.correspond_resource.to_sym
  field_name = parameterize(name, '_').to_sym
  PipeDrive.field_keys[resource][field_name] = key
end