Class: Teamleader::Api

Inherits:
Object
  • Object
show all
Includes:
Calls, CustomFields, Files, Projects
Defined in:
lib/teamleader/api.rb

Direct Known Subclasses

ExtendedApi

Instance Method Summary collapse

Methods included from Calls

#add_callback, #get_call, #get_calls

Methods included from Projects

#add_project, #get_project, #get_projects, #get_projects_by_client, #update_project

Methods included from Files

#delete_file, #download_file, #get_file_info, #get_files, #upload_file

Methods included from CustomFields

#add_custom_field_option, #get_custom_field_info, #get_custom_fields

Constructor Details

#initialize(group, secret) ⇒ Api

Returns a new instance of Api.



15
16
17
18
19
20
21
# File 'lib/teamleader/api.rb', line 15

def initialize(group, secret)
  @api_group = group
  @api_secret = secret
  uri = URI.parse(API_BASE_URL)
  @http = Net::HTTP.new(uri.host, uri.port)
  @http.use_ssl = true
end

Instance Method Details

#add_company(params = {}) ⇒ Object



346
347
348
349
# File 'lib/teamleader/api.rb', line 346

def add_company(params={})
  raise "name is required" if params[:name].nil?
  request "/addCompany.php", params
end

#add_contact(params = {}) ⇒ Object

Returns the ID of the contact



36
37
38
39
40
41
# File 'lib/teamleader/api.rb', line 36

def add_contact(params={})
  raise "forename is required" if params[:forename].nil?
  raise "surname is required" if params[:surname].nil?
  raise "email is required" if params[:email].nil?
  request "/addContact.php", params
end

#add_creditnote(params = {}) ⇒ Object



228
229
230
231
# File 'lib/teamleader/api.rb', line 228

def add_creditnote(params={})
  raise "invoice_id is required" if params[:invoice_id].nil?
  request "/addCreditnote.php", params
end

#add_deal(params = {}) ⇒ Object



84
85
86
87
88
89
90
# File 'lib/teamleader/api.rb', line 84

def add_deal(params={})
  raise "contact_or_company is required" if params[:contact_or_company].nil?
  raise "contact_or_company_id is required" if params[:contact_or_company_id].nil?
  raise "title is required" if params[:title].nil?
  raise "source is required" if params[:source].nil?
  request "/addDeal.php", params
end

#add_invoice(params = {}) ⇒ Object



146
147
148
149
150
151
# File 'lib/teamleader/api.rb', line 146

def add_invoice(params={})
  raise "contact_or_company is required" if params[:contact_or_company].nil?
  raise "contact_or_company_id is required" if params[:contact_or_company_id].nil?
  raise "sys_department_id is required" if params[:sys_department_id].nil?
  request "/addInvoice.php", params
end

#add_note(params = {}) ⇒ Object



332
333
334
335
336
337
# File 'lib/teamleader/api.rb', line 332

def add_note(params={})
  raise "object_type is required" if params[:object_type].nil?
  raise "object_id is required" if params[:object_id].nil?
  raise "note_title is required" if params[:note_title].nil?
  request "/addNote.php", params
end

#add_product(params = {}) ⇒ Object



262
263
264
265
266
# File 'lib/teamleader/api.rb', line 262

def add_product(params={})
  raise "name is required" if params[:name].nil?
  raise "price is required" if params[:price].nil?
  request "/addProduct.php", params
end

#add_ticket(params = {}) ⇒ Object



289
290
291
292
# File 'lib/teamleader/api.rb', line 289

def add_ticket(params={})
  raise "subject is required" if params[:subject].nil?
  request "/addTicket.php", params
end

#add_ticket_message(params = {}) ⇒ Object



299
300
301
302
303
# File 'lib/teamleader/api.rb', line 299

def add_ticket_message(params={})
  raise "ticket_id is required" if params[:ticket_id].nil?
  raise "message is required" if params[:message].nil?
  request "/addTicketMessage.php", params
end

#book_draft_invoice(params = {}) ⇒ Object



160
161
162
163
# File 'lib/teamleader/api.rb', line 160

def book_draft_invoice(params={})
  raise "invoice_id is required" if params[:invoice_id].nil?
  request "/bookDraftInvoice.php", params
end

#delete_company(params = {}) ⇒ Object



357
358
359
360
# File 'lib/teamleader/api.rb', line 357

def delete_company(params={})
  raise "company_id is required" if params[:company_id].nil?
  request "/deleteCompany.php", params
end

#delete_contact(params = {}) ⇒ Object



54
55
56
57
# File 'lib/teamleader/api.rb', line 54

def delete_contact(params={})
  raise "contact_id is required" if params[:contact_id].nil?
  request "/deleteContact.php", params
end

#delete_invoice(params = {}) ⇒ Object



176
177
178
179
# File 'lib/teamleader/api.rb', line 176

def delete_invoice(params={})
  raise "invoice_id is required" if params[:invoice_id].nil?
  request "/deleteInvoice.php", params
end

#delete_product(params = {}) ⇒ Object



273
274
275
276
# File 'lib/teamleader/api.rb', line 273

def delete_product(params={})
  raise "product_id is required" if params[:product_id].nil?
  request "/deleteProduct.php", params
end

#download_creditnote_pdf(params = {}) ⇒ Object



196
197
198
199
# File 'lib/teamleader/api.rb', line 196

def download_creditnote_pdf(params={})
  raise "creditnote_id is required" if params[:creditnote_id].nil?
  request "/downloadCreditnotePDF.php", params
end

#download_invoice_pdf(params = {}) ⇒ Object



191
192
193
194
# File 'lib/teamleader/api.rb', line 191

def download_invoice_pdf(params={})
  raise "invoice_id is required" if params[:invoice_id].nil?
  request "/downloadInvoicePDF.php", params
end

#get_all_deal_phase_changes(params = {}) ⇒ Object



132
133
134
135
136
# File 'lib/teamleader/api.rb', line 132

def get_all_deal_phase_changes(params={})
  raise "date_from is required" if params[:date_from].nil?
  raise "date_to is required" if params[:date_to].nil?
  request "/getAllDealPhaseChanges.php", params
end

#get_bookkeeping_accounts(params = {}) ⇒ Object



257
258
259
260
# File 'lib/teamleader/api.rb', line 257

def get_bookkeeping_accounts(params={})
  raise "sys_department_id is required" if params[:sys_department_id].nil?
  request "/getBookkeepingAccounts.php", params
end

#get_business_types(params = {}) ⇒ Object



373
374
375
376
# File 'lib/teamleader/api.rb', line 373

def get_business_types(params={})
  raise "country is required" if params[:country].nil?
  request "/getBusinessTypes.php", params
end

#get_companies(params = {}) ⇒ Object



362
363
364
365
366
# File 'lib/teamleader/api.rb', line 362

def get_companies(params={})
  raise "amount is required" if params[:amount].nil?
  raise "pageno is required" if params[:pageno].nil?
  request "/getCompanies.php", params
end

#get_company(params = {}) ⇒ Object



368
369
370
371
# File 'lib/teamleader/api.rb', line 368

def get_company(params={})
  raise "company_id is required" if params[:company_id].nil?
  request "/getCompany.php", params
end

#get_contact(params = {}) ⇒ Object



43
44
45
46
# File 'lib/teamleader/api.rb', line 43

def get_contact(params={})
  raise "contact_id is required" if params[:contact_id].nil?
  request "/getContact.php", params
end

#get_contact_company_relations(params = {}) ⇒ Object



78
79
80
81
82
# File 'lib/teamleader/api.rb', line 78

def get_contact_company_relations(params={})
  raise "amount is required" if params[:amount].nil?
  raise "pageno is required" if params[:pageno].nil?
  request "/getContactCompanyRelations.php", params
end

#get_contacts(params = {}) ⇒ Object



67
68
69
70
71
# File 'lib/teamleader/api.rb', line 67

def get_contacts(params={})
  raise "amount is required" if params[:amount].nil?
  raise "pageno is required" if params[:pageno].nil?
  request "/getContacts.php", params
end

#get_contacts_by_company(params = {}) ⇒ Object



73
74
75
76
# File 'lib/teamleader/api.rb', line 73

def get_contacts_by_company(params={})
  raise "company_id is required" if params[:company_id].nil?
  request "/getContactsByCompany.php", params
end

#get_creditnote(params = {}) ⇒ Object



186
187
188
189
# File 'lib/teamleader/api.rb', line 186

def get_creditnote(params={})
  raise "creditnote_id is required" if params[:creditnote_id].nil?
  request "/getCreditnote.php", params
end

#get_creditnotes(params = {}) ⇒ Object



207
208
209
210
211
# File 'lib/teamleader/api.rb', line 207

def get_creditnotes(params={})
  raise "date_from is required" if params[:date_from].nil?
  raise "date_to is required" if params[:date_to].nil?
  request "/getCreditnotes.php", params
end

#get_creditnotes_by_project(params = {}) ⇒ Object



218
219
220
221
# File 'lib/teamleader/api.rb', line 218

def get_creditnotes_by_project(params={})
  raise "project_id is required" if params[:project_id].nil?
  request "/getCreditnotesByProject.php", params
end

#get_deal(params = {}) ⇒ Object



122
123
124
125
# File 'lib/teamleader/api.rb', line 122

def get_deal(params={})
  raise "deal_id is required" if params[:deal_id].nil?
  request "/getDeal.php", params
end

#get_deal_phase_changes(params = {}) ⇒ Object



127
128
129
130
# File 'lib/teamleader/api.rb', line 127

def get_deal_phase_changes(params={})
  raise "deal_id is required" if params[:deal_id].nil?
  request "/getDealPhaseChanges.php", params
end

#get_deal_phases(params = {}) ⇒ Object



138
139
140
# File 'lib/teamleader/api.rb', line 138

def get_deal_phases(params={})
  request "/getDealPhases.php", params
end

#get_deal_sources(params = {}) ⇒ Object



142
143
144
# File 'lib/teamleader/api.rb', line 142

def get_deal_sources(params={})
  request "/getDealSources.php", params
end

#get_deals(params = {}) ⇒ Object



105
106
107
108
109
# File 'lib/teamleader/api.rb', line 105

def get_deals(params={})
  raise "amount is required" if params[:amount].nil?
  raise "pageno is required" if params[:pageno].nil?
  request "/getDeals.php", params
end

#get_deals_by_contact_or_company(params = {}) ⇒ Object



111
112
113
114
115
# File 'lib/teamleader/api.rb', line 111

def get_deals_by_contact_or_company(params={})
  raise "contact_or_company is required" if params[:contact_or_company].nil?
  raise "contact_or_company_id is required" if params[:contact_or_company_id].nil?
  request "/getDealsByContactOrCompany.php", params
end

#get_deals_by_project(params = {}) ⇒ Object



117
118
119
120
# File 'lib/teamleader/api.rb', line 117

def get_deals_by_project(params={})
  raise "project_id is required" if params[:project_id].nil?
  request "/getDealsByProject.php", params
end

#get_departmentsObject



27
28
29
# File 'lib/teamleader/api.rb', line 27

def get_departments
  request "/getDepartments.php"
end

#get_invoice(params = {}) ⇒ Object



181
182
183
184
# File 'lib/teamleader/api.rb', line 181

def get_invoice(params={})
  raise "invoice_id is required" if params[:invoice_id].nil?
  request "/getInvoice.php", params
end

#get_invoice_cloud_url(params = {}) ⇒ Object



252
253
254
255
# File 'lib/teamleader/api.rb', line 252

def get_invoice_cloud_url(params={})
  raise "invoice_id is required" if params[:invoice_id].nil?
  request "/getInvoiceCloudURL.php", params
end

#get_invoice_reminder_template_content(params = {}) ⇒ Object



246
247
248
249
250
# File 'lib/teamleader/api.rb', line 246

def get_invoice_reminder_template_content(params={})
  raise "invoice_id is required" if params[:invoice_id].nil?
  raise "template_id is required" if params[:template_id].nil?
  request "/getInvoiceReminderTemplateContent.php", params
end

#get_invoice_reminder_templates(params = {}) ⇒ Object



241
242
243
244
# File 'lib/teamleader/api.rb', line 241

def get_invoice_reminder_templates(params={})
  raise "invoice_id is required" if params[:invoice_id].nil?
  request "/getInvoiceReminderTemplates.php", params
end

#get_invoices(params = {}) ⇒ Object



201
202
203
204
205
# File 'lib/teamleader/api.rb', line 201

def get_invoices(params={})
  raise "date_from is required" if params[:date_from].nil?
  raise "date_to is required" if params[:date_to].nil?
  request "/getInvoices.php", params
end

#get_invoices_by_deal(params = {}) ⇒ Object



223
224
225
226
# File 'lib/teamleader/api.rb', line 223

def get_invoices_by_deal(params={})
  raise "deal_id is required" if params[:deal_id].nil?
  request "/getInvoicesByDeal.php", params
end

#get_invoices_by_project(params = {}) ⇒ Object



213
214
215
216
# File 'lib/teamleader/api.rb', line 213

def get_invoices_by_project(params={})
  raise "project_id is required" if params[:project_id].nil?
  request "/getInvoicesByProject.php", params
end

#get_notes(params = {}) ⇒ Object



339
340
341
342
343
344
# File 'lib/teamleader/api.rb', line 339

def get_notes(params={})
  raise "object_type is required" if params[:object_type].nil?
  raise "object_id is required" if params[:object_id].nil?
  raise "pageno is required" if params[:pageno].nil?
  request "/addNote.php", params
end

#get_product(params = {}) ⇒ Object



278
279
280
281
# File 'lib/teamleader/api.rb', line 278

def get_product(params={})
  raise "product_id is required" if params[:product_id].nil?
  request "/getProduct.php", params
end

#get_products(params = {}) ⇒ Object



283
284
285
286
287
# File 'lib/teamleader/api.rb', line 283

def get_products(params={})
  raise "amount is required" if params[:amount].nil?
  raise "pageno is required" if params[:pageno].nil?
  request "/getProducts.php", params
end

#get_tagsObject



31
32
33
# File 'lib/teamleader/api.rb', line 31

def get_tags
  request "/getTags.php"
end

#get_ticket(params = {}) ⇒ Object



310
311
312
313
# File 'lib/teamleader/api.rb', line 310

def get_ticket(params={})
  raise "ticket_id is required" if params[:ticket_id].nil?
  request "/getTickets.php", params
end

#get_ticket_cloud_url(params = {}) ⇒ Object



327
328
329
330
# File 'lib/teamleader/api.rb', line 327

def get_ticket_cloud_url(params={})
  raise "ticket_id is required" if params[:ticket_id].nil?
  request "/getTicketCloudURL.php", params
end

#get_ticket_message(params = {}) ⇒ Object



322
323
324
325
# File 'lib/teamleader/api.rb', line 322

def get_ticket_message(params={})
  raise "message_id is required" if params[:message_id].nil?
  request "/getTicketMessage.php", params
end

#get_ticket_messages(params = {}) ⇒ Object



315
316
317
318
319
320
# File 'lib/teamleader/api.rb', line 315

def get_ticket_messages(params={})
  raise "ticket_id is required" if params[:ticket_id].nil?
  raise "include_internal_message is required" if params[:include_internal_message].nil?
  raise "include_third_party_message is required" if params[:include_third_party_message].nil?
  request "/getTicketMessages.php", params
end

#get_tickets(params = {}) ⇒ Object



305
306
307
308
# File 'lib/teamleader/api.rb', line 305

def get_tickets(params={})
  raise "type is required" if params[:type].nil?
  request "/getTickets.php", params
end

#get_users(params = {}) ⇒ Object



23
24
25
# File 'lib/teamleader/api.rb', line 23

def get_users(params={})
  request "/getUsers.php", params
end


59
60
61
62
63
64
65
# File 'lib/teamleader/api.rb', line 59

def link_contact_to_company(params={})
  raise "contact_id is required" if params[:contact_id].nil?
  raise "company_id is required" if params[:company_id].nil?
  raise "mode is required" if params[:mode].nil?
  raise "mode must be 'link' or 'unlink'" unless ['link', 'unlink'].include?(params[:mode])
  request "/linkContactToCompany.php", params
end

#send_invoice(params = {}) ⇒ Object



233
234
235
236
237
238
239
# File 'lib/teamleader/api.rb', line 233

def send_invoice(params={})
  raise "invoice_id is required" if params[:invoice_id].nil?
  raise "email_to is required" if params[:email_to].nil?
  raise "email_subject is required" if params[:email_subject].nil?
  raise "email_text is required" if params[:email_text].nil?
  request "/sendInvoice.php", params
end

#send_sale_to_client(params = {}) ⇒ Object



101
102
103
# File 'lib/teamleader/api.rb', line 101

def send_sale_to_client(params={})
  request "/sendSaleToClient.php", params
end

#update_company(params = {}) ⇒ Object



351
352
353
354
355
# File 'lib/teamleader/api.rb', line 351

def update_company(params={})
  raise "company_id is required" if params[:company_id].nil?
  raise "track_changes is required" if params[:track_changes].nil?
  request "/updateCompany.php", params
end

#update_contact(params = {}) ⇒ Object



48
49
50
51
52
# File 'lib/teamleader/api.rb', line 48

def update_contact(params={})
  raise "contact_id is required" if params[:contact_id].nil?
  raise "track_changes is required" if params[:track_changes].nil?
  request "/updateContact.php", params
end

#update_deal(params = {}) ⇒ Object



92
93
94
95
# File 'lib/teamleader/api.rb', line 92

def update_deal(params={})
  raise "deal_id is required" if params[:deal_id].nil?
  request "/updateDeal.php", params
end

#update_deal_items(params = {}) ⇒ Object



97
98
99
# File 'lib/teamleader/api.rb', line 97

def update_deal_items(params={})
  request "/updateDealItems.php", params
end

#update_invoice(params = {}) ⇒ Object



165
166
167
168
# File 'lib/teamleader/api.rb', line 165

def update_invoice(params={})
  raise "invoice_id is required" if params[:invoice_id].nil?
  request "/updateInvoice.php", params
end

#update_invoice_comments(params = {}) ⇒ Object



170
171
172
173
174
# File 'lib/teamleader/api.rb', line 170

def update_invoice_comments(params={})
  raise "invoice_id is required" if params[:invoice_id].nil?
  raise "comments is required" if params[:comments].nil?
  request "/updateInvoiceComments.php", params
end

#update_invoice_payment_status(params = {}) ⇒ Object



153
154
155
156
157
158
# File 'lib/teamleader/api.rb', line 153

def update_invoice_payment_status(params={})
  raise "invoice_id is required" if params[:invoice_id].nil?
  raise "status is required" if params[:status].nil?
  raise "status must be 'paid' or 'not_paid'" unless ['paid', 'not_paid'].include?(params[:status])
  request "/setInvoicePaymentStatus.php", params
end

#update_product(params = {}) ⇒ Object



268
269
270
271
# File 'lib/teamleader/api.rb', line 268

def update_product(params={})
  raise "product_id is required" if params[:product_id].nil?
  request "/updateProduct.php", params
end

#update_ticket(params = {}) ⇒ Object



294
295
296
297
# File 'lib/teamleader/api.rb', line 294

def update_ticket(params={})
  raise "ticket_id is required" if params[:ticket_id].nil?
  request "/updateTicket.php", params
end