Class: Caseblocks::CaseType

Inherits:
Object
  • Object
show all
Defined in:
lib/caseblocks/case_type.rb

Overview

Since:

  • 0.1.0

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(case_type_data, client) ⇒ CaseType

Returns a new instance of CaseType.

Since:

  • 0.1.0



21
22
23
24
# File 'lib/caseblocks/case_type.rb', line 21

def initialize(case_type_data, client)
  @client = client
  @case_type_data = case_type_data
end

Class Method Details

.all(client) ⇒ Object

Since:

  • 0.1.0



4
5
6
7
8
9
10
# File 'lib/caseblocks/case_type.rb', line 4

def self.all(client)
  case_types = []
  case_types += client.request("/case_blocks/case_types.json")["case_types"].map{|case_type| Caseblocks::CaseType.new(case_type, client) }
  case_types += client.request("/case_blocks/people_types.json")["people_types"].map{|case_type| Caseblocks::CaseType.new(case_type, client) }
  case_types += client.request("/case_blocks/organization_types.json")["organization_types"].map{|case_type| Caseblocks::CaseType.new(case_type, client) }
  case_types
end

.find(id, client) ⇒ Object

Since:

  • 0.1.0



12
13
14
15
# File 'lib/caseblocks/case_type.rb', line 12

def self.find(id, client)
  res = client.request("/case_blocks/case_types/#{id}.json")
  CaseType.new(res["case_type"], client)
end

.find_by(criteria, client) ⇒ Object

Since:

  • 0.1.0



17
18
19
# File 'lib/caseblocks/case_type.rb', line 17

def self.find_by(criteria, client)
  CaseType.all(client).detect{|ct| criteria.reject{|k,v| ct.attributes[k.to_s] == v }.empty? }
end

Instance Method Details

#attributesObject

Since:

  • 0.1.0



42
43
44
# File 'lib/caseblocks/case_type.rb', line 42

def attributes
  @case_type_data
end

#bucket_groupsObject

Since:

  • 0.1.0



63
64
65
66
# File 'lib/caseblocks/case_type.rb', line 63

def bucket_groups
  query = @case_type_data["bucket_groups"].map{|id| "ids%5B%5D=#{id}" }.join("&")
  @bucket_groups ||= @client.request("/case_blocks/bucket_groups.json?#{query}")["bucket_groups"].map{|bg| Caseblocks::BucketGroup.new(bg, @client) }
end

#bucketsObject

Since:

  • 0.1.0



59
60
61
62
# File 'lib/caseblocks/case_type.rb', line 59

def buckets
  query = "case_type_id=#{id}"
  @buckets ||= @client.request("/case_blocks/buckets.json?#{query}")["buckets"].map{|bg| Caseblocks::Bucket.new(bg, @client) }
end

#cases(options = {}) ⇒ Object

Since:

  • 0.1.0



46
47
48
# File 'lib/caseblocks/case_type.rb', line 46

def cases(options={})
  Caseblocks::Case.find_all_by({:case_type_id => id}, @client, options)
end

#codeObject

Since:

  • 0.1.0



38
39
40
# File 'lib/caseblocks/case_type.rb', line 38

def code
  @case_type_data["code"]
end

#current_schemaObject

Since:

  • 0.1.0



35
36
37
# File 'lib/caseblocks/case_type.rb', line 35

def current_schema
  @case_type_data["schema"].last
end

#descriptionObject

Since:

  • 0.1.0



32
33
34
# File 'lib/caseblocks/case_type.rb', line 32

def description
  @case_type_data["description"]
end

#idObject

Since:

  • 0.1.0



26
27
28
# File 'lib/caseblocks/case_type.rb', line 26

def id
  @case_type_data["id"]
end

#nameObject

Since:

  • 0.1.0



29
30
31
# File 'lib/caseblocks/case_type.rb', line 29

def name
  @case_type_data["name"]
end

#relationshipsObject

Since:

  • 0.1.0



50
51
52
53
54
55
56
57
# File 'lib/caseblocks/case_type.rb', line 50

def relationships
  if @case_type_data["direct_relationships"].length > 0
    query = @case_type_data["direct_relationships"].map{|dr| "ids%5B%5D=#{dr}" }.join("&")
    @relationships ||= @client.request("/case_blocks/case_type_direct_relationships.json?#{query}")["case_type_direct_relationships"].map{|r| Caseblocks::Relationship.new(r, @client) }
  else
    @relationships ||= []
  end
end