Class: Podio::Contract
Instance Attribute Summary
#attributes, #error_code, #error_message, #error_parameters, #error_propagate
Class Method Summary
collapse
Instance Method Summary
collapse
#==, #[], #[]=, #api_friendly_ref_type, #as_json, collection, delegate_to_hash, handle_api_errors_for, has_many, has_one, #hash, #initialize, list, member, #new_record?, #persisted?, property, #to_param
Class Method Details
.calculate_price(contract_id, attributes) ⇒ Object
111
112
113
114
115
116
117
118
|
# File 'lib/podio/models/contract.rb', line 111
def calculate_price(contract_id, attributes)
response = Podio.connection.post do |req|
req.url "/contract/#{contract_id}/price"
req.body = attributes
end
response.body
end
|
.create(attributes) ⇒ Object
77
78
79
80
81
82
83
84
|
# File 'lib/podio/models/contract.rb', line 77
def create(attributes)
response = Podio.connection.post do |req|
req.url "/contract/"
req.body = attributes
end
member response.body
end
|
.create_payment(contract_id, query_string) ⇒ Object
120
121
122
123
124
125
126
127
|
# File 'lib/podio/models/contract.rb', line 120
def create_payment(contract_id, query_string)
response = Podio.connection.post do |req|
req.url "/contract/#{contract_id}/payment"
req.body = {:query_string => query_string}
end
response.body
end
|
.delete(id) ⇒ Object
107
108
109
|
# File 'lib/podio/models/contract.rb', line 107
def delete(id)
Podio.connection.delete("/contract/#{id}").body
end
|
.end(contract_id, attributes) ⇒ Object
98
99
100
101
102
103
104
105
|
# File 'lib/podio/models/contract.rb', line 98
def end(contract_id, attributes)
response = Podio.connection.post do |req|
req.url "/contract/#{contract_id}/end"
req.body = attributes
end
response.body
end
|
.find(contract_id) ⇒ Object
61
62
63
|
# File 'lib/podio/models/contract.rb', line 61
def find(contract_id)
member Podio.connection.get("/contract/#{contract_id}").body
end
|
.find_all_mine ⇒ Object
65
66
67
|
# File 'lib/podio/models/contract.rb', line 65
def find_all_mine
list Podio.connection.get("/contract/").body
end
|
.find_for_org(org_id) ⇒ Object
69
70
71
|
# File 'lib/podio/models/contract.rb', line 69
def find_for_org(org_id)
list Podio.connection.get("/contract/org/#{org_id}/").body
end
|
.find_users_for_org(org_id) ⇒ Object
73
74
75
|
# File 'lib/podio/models/contract.rb', line 73
def find_users_for_org(org_id)
member Podio.connection.get("/contract/org/#{org_id}/user").body
end
|
.start(contract_id) ⇒ Object
94
95
96
|
# File 'lib/podio/models/contract.rb', line 94
def start(contract_id)
Podio.connection.post("/contract/#{contract_id}/start").body
end
|
.update(contract_id, attributes) ⇒ Object
86
87
88
89
90
91
92
|
# File 'lib/podio/models/contract.rb', line 86
def update(contract_id, attributes)
response = Podio.connection.put do |req|
req.url "/contract/#{contract_id}"
req.body = attributes
end
response.status
end
|
Instance Method Details
#calculate_price ⇒ Object
40
41
42
43
44
|
# File 'lib/podio/models/contract.rb', line 40
def calculate_price
pricing = self.class.calculate_price(self.contract_id, self.attributes.slice(:full, :premium_emp_network, :premium_space_ids))
self.clear_price
self["price"] = pricing
end
|
#create_payment(query_string) ⇒ Object
46
47
48
|
# File 'lib/podio/models/contract.rb', line 46
def create_payment(query_string)
self.class.create_payment(self.contract_id, query_string)
end
|
#delete ⇒ Object
50
51
52
|
# File 'lib/podio/models/contract.rb', line 50
def delete
self.class.delete(self.id)
end
|
#end(attributes) ⇒ Object
54
55
56
|
# File 'lib/podio/models/contract.rb', line 54
def end(attributes)
self.class.end(self.id, attributes)
end
|
#premium_space_ids=(values) ⇒ Object
32
33
34
|
# File 'lib/podio/models/contract.rb', line 32
def premium_space_ids=(values)
self[:premium_space_ids] = (values || []).map(&:to_i)
end
|
#update ⇒ Object
36
37
38
|
# File 'lib/podio/models/contract.rb', line 36
def update
self.class.update(self.contract_id, self.attributes.except(:premium_spaces))
end
|