Skip to content

Commit a168e5a

Browse files
committed
Ruby file updated
Ruby file updated
0 parents  commit a168e5a

File tree

1 file changed

+166
-0
lines changed

1 file changed

+166
-0
lines changed

agilecrm.rb

+166
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,166 @@
1+
require "net/http"
2+
require "uri"
3+
require 'json'
4+
5+
class AgileCRM
6+
class << self
7+
def api_key=(key)
8+
@@api_key = key
9+
end
10+
11+
def domain=(d)
12+
@@domain = d
13+
end
14+
15+
def email=(email)
16+
@@email = email
17+
end
18+
19+
def api_key
20+
@@api_key
21+
end
22+
23+
def domain
24+
@@domain
25+
end
26+
27+
def email
28+
@@email
29+
end
30+
31+
def request(method, subject, data = {})
32+
path = "/dev/api/#{subject}"
33+
case method
34+
when :get
35+
request = Net::HTTP::Get.new(path)
36+
when :post
37+
request = Net::HTTP::Post.new(path)
38+
request.body = data.to_json
39+
when :put
40+
request = Net::HTTP::Put.new(path)
41+
request.body = data.to_json
42+
when :delete
43+
request = Net::HTTP::Delete.new(path)
44+
else
45+
raise "Unknown method: #{method}"
46+
end
47+
uri = URI.parse("https://#{domain}.agilecrm.com")
48+
http = Net::HTTP.new(uri.host, uri.port)
49+
http.use_ssl = true
50+
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
51+
request["Content-Type"] = 'application/json'
52+
request["Accept"] = 'application/json'
53+
request.basic_auth AgileCRM.email, AgileCRM.api_key
54+
response = http.request(request)
55+
response.body
56+
end
57+
end
58+
end
59+
60+
AgileCRM.api_key = '123456' # This is Rest API key
61+
AgileCRM.domain = 'ghanshyam' # This is Domain
62+
AgileCRM.email = 'ghanshyam.raut@agilecrm.com' # This is Email
63+
64+
65+
# ======================Create Contact====================================
66+
67+
contact_data = '{
68+
"star_value": "4",
69+
"lead_score": "92",
70+
"tags": [
71+
"Lead",
72+
"Likely Buyer"
73+
],
74+
"properties": [
75+
{
76+
"type": "SYSTEM",
77+
"name": "first_name",
78+
"value": "Los "
79+
}
80+
]
81+
}'
82+
parsed_contact_data = JSON.parse(contact_data)
83+
#print(AgileCRM.request :post, "contacts", parsed_contact_data)
84+
85+
# ======================Get Contact By ID====================================
86+
87+
#print(AgileCRM.request :get, "contacts/5762169748586496", nil) # Get Contact By Id
88+
89+
# ======================Get Contact By Email====================================
90+
91+
#print(AgileCRM.request :get, "contacts/search/email/tester@agilecrm.com", nil) # Get Contact By Email
92+
93+
# ======================Update Contact====================================
94+
95+
update_contact_data = '{
96+
"id": "5748927693324288",
97+
"properties": [
98+
{
99+
"type": "SYSTEM",
100+
"name": "last_name",
101+
"value": "Lee Chu"
102+
},
103+
{
104+
"type": "CUSTOM",
105+
"name": "My Custom Field",
106+
"value": "Custom value chane"
107+
}
108+
]
109+
}'
110+
parsed_update_contact_data = JSON.parse(update_contact_data)
111+
#print(AgileCRM.request :put, "contacts/edit-properties", parsed_update_contact_data)
112+
113+
# ======================Delete Contact====================================
114+
115+
#print(AgileCRM.request :delete, "contacts/5748927693324288", nil)
116+
117+
# ======================Create Deal====================================
118+
119+
deal_data = '{
120+
"name": "Deal-Tomato",
121+
"expected_value": "500",
122+
"probability": "75",
123+
"close_date": 1455042600,
124+
"milestone": "Proposal",
125+
"contact_ids": [
126+
"5705059971104768"
127+
],
128+
"custom_data": [
129+
{
130+
"name": "Group Size",
131+
"value": "10"
132+
}
133+
]
134+
}'
135+
parsed_deal_data = JSON.parse(deal_data)
136+
#print(AgileCRM.request :post, "opportunity", parsed_deal_data)
137+
138+
# ======================Update Deal====================================
139+
140+
update_deal_data = '{
141+
"id": "5743182100824064",
142+
"name": "Deal-Tomato-changed",
143+
"expected_value": "500",
144+
"probability": "75",
145+
"close_date": 1455042600,
146+
"milestone": "Proposal",
147+
"contact_ids": [
148+
"5705059971104768"
149+
],
150+
"custom_data": [
151+
{
152+
"name": "Group Size",
153+
"value": "10"
154+
}
155+
]
156+
}'
157+
parsed_update_deal_data = JSON.parse(update_deal_data)
158+
#print(AgileCRM.request :put, "opportunity/partial-update", parsed_update_deal_data)
159+
160+
# ======================Get Deal By ID====================================
161+
162+
#print(AgileCRM.request :get, "opportunity/5743182100824064", nil) # Get Deal By Id
163+
164+
# ======================Delete Deal By ID====================================
165+
166+
print(AgileCRM.request :delete, "opportunity/5743182100824064", nil) # Get Deal By Id

0 commit comments

Comments
 (0)