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

Contact

# 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

Opportunity

# 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