class Connectwise::BaseAPI
Attributes
connection[R]
Public Class Methods
new(connection)
click to toggle source
# File lib/connectwise/connectwise.rb, line 105 def initialize(connection) @connection = connection end
Public Instance Methods
create_company(company, &err_handler)
click to toggle source
# File lib/connectwise/connectwise.rb, line 137 def create_company(company, &err_handler) message = { Id: 0, CompanyName: company.name, CompanyID: company.id.to_s, WebSite: company.url, Status: 'Active', } connection.call 'CompanyApi', :add_company, {company: message}, &err_handler end
create_contact(contact, company_id=nil, &err_handler)
click to toggle source
# File lib/connectwise/connectwise.rb, line 116 def create_contact(contact, company_id=nil, &err_handler) message = { FirstName: contact.first_name, LastName: contact.last_name, Email: contact.email, Phone: contact.phone, } message = message.merge(CompanyId: company_id) if company_id connection.call 'ContactApi', :add_or_update_contact, {contact: message}, &err_handler end
create_opportunity(opportunity, company_id, contact_id, &err_handler)
click to toggle source
# File lib/connectwise/connectwise.rb, line 153 def create_opportunity(opportunity, company_id, contact_id, &err_handler) message = { Id: 0, OpportunityName: "Opportunity from Easyofficephone - #{opportunity.company.name}", Company: {CompanyID: company_id}, Contact: {Id: contact_id}, Source: 'Easy Office Phone opportunity', PrimarySalesRep: opportunity.user.full_name, Notes: { Note: { note_text: opportunity.note, } }, } connection.call 'OpportunityApi', :add_opportunity, {opportunity: message}, &err_handler end
create_ticket(ticket, company, &err_handler)
click to toggle source
# File lib/connectwise/connectwise.rb, line 182 def create_ticket(ticket, company, &err_handler) resp = connection.call 'ServiceTicketApi', :add_service_ticket_via_company_id, { serviceTicket: { Id: 0, CompanyId: company.id, Summary: ticket.subject, Status: 'N', ProblemDescription: ticket.description, } }, &err_handler end
delete_company(company, &err_handler)
click to toggle source
# File lib/connectwise/connectwise.rb, line 148 def delete_company(company, &err_handler) connection.call 'CompanyApi', :delete_company, {id: company.id}, &err_handler end
delete_contact(contact, &err_handler)
click to toggle source
# File lib/connectwise/connectwise.rb, line 127 def delete_contact(contact, &err_handler) connection.call 'ContactApi', :delete_contact, {id: contact.id}, &err_handler end
delete_opportunity(opportunity, &err_handler)
click to toggle source
# File lib/connectwise/connectwise.rb, line 171 def delete_opportunity(opportunity, &err_handler) connection.call 'OpportunityApi', :delete_opportunity, {id: opportunity.id}, &err_handler end
find_company(company, &err_handler)
click to toggle source
Companies
# File lib/connectwise/connectwise.rb, line 132 def find_company(company, &err_handler) resp = connection.call 'CompanyApi', :find_companies, { conditions: "CompanyName like '%#{company.name}%' or CompanyID = '#{company.id}'" }, &err_handler (result = resp[:company_find_result]) ? Array(result) : resp end
find_member(user, &err_handler)
click to toggle source
Members
# File lib/connectwise/connectwise.rb, line 110 def find_member(user, &err_handler) resp = connection.call 'MemberApi', :find_members, {conditions: "EmailAddress like '#{user.email}'"}, &err_handler (result = resp[:member_find_result]) ? Array(result) : resp end
find_ticket(ticket, company)
click to toggle source
Ticket
TODO - these find methods are too limited, need to allow proper query
# File lib/connectwise/connectwise.rb, line 177 def find_ticket(ticket, company) resp = connection.call 'ServiceTicketApi', :find_service_tickets, {conditions: "CompanyName like '%#{company.name}%' or SRServiceRecID = '#{ticket.id}'"} (result = resp[:tickets]) ? Array(result) : resp end