demarches-normaliennes/app/lib/pipedrive/api.rb

70 lines
1.6 KiB
Ruby
Raw Normal View History

class Pipedrive::API
2018-03-28 14:43:20 +02:00
PIPEDRIVE_ALL_NOT_DELETED_DEALS = 'all_not_deleted'
PIPEDRIVE_DEALS_URL = [PIPEDRIVE_API_URL, 'deals'].join("/")
PIPEDRIVE_PEOPLE_URL = [PIPEDRIVE_API_URL, 'persons'].join("/")
PIPEDRIVE_ORGANIZATIONS_URL = [PIPEDRIVE_API_URL, 'organizations'].join("/")
2018-03-28 14:43:20 +02:00
def self.get_persons_owned_by_user(user_id)
url = PIPEDRIVE_PEOPLE_URL
params = { user_id: user_id }
2018-03-28 14:43:20 +02:00
self.get(url, params)
2018-03-28 14:43:20 +02:00
end
def self.get_deals_for_person(person_id)
url = [PIPEDRIVE_PEOPLE_URL, person_id, "deals"].join('/')
params = { status: PIPEDRIVE_ALL_NOT_DELETED_DEALS }
2018-03-28 14:43:20 +02:00
self.get(url, params)
end
2018-03-28 14:31:07 +02:00
def self.put_deal(deal_id, params)
url = [PIPEDRIVE_DEALS_URL, deal_id].join("/")
2018-03-28 14:31:07 +02:00
self.put(url, params)
end
def self.post_deal(params)
self.post(PIPEDRIVE_DEALS_URL, params)
end
2018-03-28 14:31:07 +02:00
def self.put_person(person_id, params)
url = [PIPEDRIVE_PEOPLE_URL, person_id].join("/")
2018-03-28 14:31:07 +02:00
self.put(url, params)
end
def self.post_person(params)
self.post(PIPEDRIVE_PEOPLE_URL, params)
end
def self.post_organization(params)
self.post(PIPEDRIVE_ORGANIZATIONS_URL, params)
end
2018-03-28 14:31:07 +02:00
private
2018-03-28 14:43:20 +02:00
def self.get(url, params)
params.merge!({
start: 0,
limit: 500,
api_token: PIPEDRIVE_TOKEN
})
response = RestClient.get(url, params: params)
JSON.parse(response.body)['data']
2018-03-28 14:43:20 +02:00
end
2018-03-28 14:31:07 +02:00
def self.put(url, params)
url = "#{url}?api_token=#{PIPEDRIVE_TOKEN}"
2018-03-28 14:20:54 +02:00
RestClient.put(url, params.to_json, { content_type: :json })
2018-03-28 14:31:07 +02:00
end
def self.post(url, params)
url = "#{url}?api_token=#{PIPEDRIVE_TOKEN}"
RestClient.post(url, params.to_json, { content_type: :json })
end
end