Class: Teamleader::Api

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

Direct Known Subclasses

ExtendedApi

Instance Method Summary collapse

Methods included from Subscriptions

#add_subscription, #delete_subscription, #get_invoices_by_subscription, #get_related_subscriptions_by_invoice, #get_subscription, #get_subscriptions, #get_subscriptions_by_contact_or_company, #get_subscriptions_by_deal, #update_subscription

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.



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

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



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

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



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

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



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

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

#add_deal(params = {}) ⇒ Object



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

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



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

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



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

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



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

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



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

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

#add_ticket_message(params = {}) ⇒ Object



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

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



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

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

#delete_company(params = {}) ⇒ Object



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

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

#delete_contact(params = {}) ⇒ Object



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

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

#delete_invoice(params = {}) ⇒ Object



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

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

#delete_product(params = {}) ⇒ Object



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

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

#download_creditnote_pdf(params = {}) ⇒ Object



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

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



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

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



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

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



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

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



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

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

#get_companies(params = {}) ⇒ Object



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

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



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

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

#get_contact(params = {}) ⇒ Object



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

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



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

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



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

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



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

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



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

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

#get_creditnotes(params = {}) ⇒ Object



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

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



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

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



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

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



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

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



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

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

#get_deal_sources(params = {}) ⇒ Object



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

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

#get_deals(params = {}) ⇒ Object



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

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



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

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



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

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

#get_departmentsObject



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

def get_departments
  request "/getDepartments.php"
end

#get_invoice(params = {}) ⇒ Object



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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

#get_products(params = {}) ⇒ Object



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

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



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

def get_tags
  request "/getTags.php"
end

#get_ticket(params = {}) ⇒ Object



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

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



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

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



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

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



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

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



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

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

#get_users(params = {}) ⇒ Object



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

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


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

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



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

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



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

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

#update_company(params = {}) ⇒ Object



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

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



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

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



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

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

#update_deal_items(params = {}) ⇒ Object



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

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

#update_invoice(params = {}) ⇒ Object



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

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

#update_invoice_comments(params = {}) ⇒ Object



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

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



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

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



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

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

#update_ticket(params = {}) ⇒ Object



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

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