Module: CapsuleCRM::Taggable

Extended by:
ActiveSupport::Concern
Included in:
Case, Party
Defined in:
lib/capsule_crm/taggable.rb

Instance Method Summary collapse

Instance Method Details

#add_tag(tag_name) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/capsule_crm/taggable.rb', line 11

def add_tag(tag_name)
  if id
    CapsuleCRM::Connection.post(
      "/api/#{api_singular_name}/#{id}/tag/#{URI.encode(tag_name)}"
    )
  end
end

#api_singular_nameObject



27
28
29
30
31
# File 'lib/capsule_crm/taggable.rb', line 27

def api_singular_name
  class_name = self.class.superclass.to_s unless self.class.superclass == Object
  class_name ||= self.class.to_s
  class_name.demodulize.downcase.singularize
end

#remove_tag(tag_name) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/capsule_crm/taggable.rb', line 19

def remove_tag(tag_name)
  if id
    CapsuleCRM::Connection.delete(
      "/api/#{api_singular_name}/#{id}/tag/#{URI.encode(tag_name)}"
    )
  end
end

#tagsObject



5
6
7
8
9
# File 'lib/capsule_crm/taggable.rb', line 5

def tags
  CapsuleCRM::Connection.get(
    "/api/#{api_singular_name}/#{id}/tag"
  )['tags']['tag'].map { |item| CapsuleCRM::Tag.new(item) }
end