vtiger 0.6.1 → 0.6.2
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/vtiger/base.rb +29 -11
- data/lib/vtiger/commands.rb +11 -0
- data/test/test_login.rb +21 -0
- data/test/test_philweb.rb +6 -1
- metadata +5 -4
data/lib/vtiger/base.rb
CHANGED
@@ -7,10 +7,10 @@ require 'digest/md5'
|
|
7
7
|
require 'erb'
|
8
8
|
#gem 'activerecord'
|
9
9
|
require 'active_record'
|
10
|
-
|
10
|
+
class Hash
|
11
11
|
def url_encode
|
12
12
|
to_a.map do |name_value|
|
13
|
-
name_value.map { |e|
|
13
|
+
name_value.map { |e| URI.encode e.to_s }.join '='
|
14
14
|
end.join '&'
|
15
15
|
end
|
16
16
|
end
|
@@ -50,9 +50,8 @@ module Vtiger
|
|
50
50
|
class Base
|
51
51
|
attr_accessor :md5,:token, :endpoint_url, :access_key, :session_name, :url, :username, :userid, :campaigndb
|
52
52
|
|
53
|
-
|
54
|
-
|
55
|
-
#puts "in challenge"
|
53
|
+
def challenge(options)
|
54
|
+
# puts "in challenge"
|
56
55
|
self.url=options[:url] || Vtiger::Api.api_settings[:url]
|
57
56
|
self.username = options[:username]|| Vtiger::Api.api_settings[:username]
|
58
57
|
self.access_key = options[:key] || Vtiger::Api.api_settings[:key]
|
@@ -60,15 +59,12 @@ module Vtiger
|
|
60
59
|
operation = "operation=getchallenge&username=#{self.username}";
|
61
60
|
#puts "challenge: " + self.endpoint_url + operation
|
62
61
|
r=http_ask_get(self.endpoint_url+operation)
|
63
|
-
# puts JSON.pretty_generate(r)
|
64
|
-
# puts "success is: " + r["success"].to_s #==true
|
65
62
|
self.token = r["result"]["token"] #if r["success"]==true
|
66
63
|
|
67
|
-
#puts "token is: " + self.token
|
68
64
|
create_digest
|
69
|
-
|
65
|
+
# puts "digest is: #{self.md5} token #{self.token}"
|
70
66
|
self.token!=nil
|
71
|
-
|
67
|
+
end
|
72
68
|
def create_digest
|
73
69
|
#access key from my_preferences page of vtiger
|
74
70
|
digest_string="#{self.token}#{self.access_key}"
|
@@ -82,7 +78,6 @@ module Vtiger
|
|
82
78
|
t=URI.split(self.endpoint_url.to_s)
|
83
79
|
# puts "host is: " + t[2] #FIX THIS.
|
84
80
|
ht =Net::HTTP.start(t[2],80)
|
85
|
-
|
86
81
|
body_enc=body.url_encode
|
87
82
|
# puts "attemping post: #{self.endpoint_url}#{operation} body: #{body} body_enc= #{body_enc}"
|
88
83
|
resp=ht.post(self.endpoint_url+operation,body_enc,response_header)
|
@@ -110,6 +105,29 @@ module Vtiger
|
|
110
105
|
self.json_parse resp.body
|
111
106
|
# r
|
112
107
|
end
|
108
|
+
def large_query(countquery, query)
|
109
|
+
qaction_string=ERB::Util.url_encode("#{countquery};")
|
110
|
+
res=http_ask_get(self.endpoint_url+"operation=query&sessionName=#{self.session_name}&query="+qaction_string)
|
111
|
+
# puts "action string:" +action_string
|
112
|
+
puts "success: #{res['success']} res class #{res} count #{res['result']}"
|
113
|
+
temp=res['result'][0]
|
114
|
+
puts " temp: #{temp} class #{temp.class} inspect #{temp.inspect}"
|
115
|
+
count=temp['count'].to_i
|
116
|
+
s=count/100
|
117
|
+
puts "s is #{s}"
|
118
|
+
output=[]
|
119
|
+
finalres=true
|
120
|
+
0.upto(s) { |i| puts i
|
121
|
+
action_string=ERB::Util.url_encode("#{query} limit #{i*100},100;")
|
122
|
+
puts "COUNT :#{i} #{action_string}"
|
123
|
+
res = http_ask_get(self.endpoint_url+"operation=query&sessionName=#{self.session_name}&query="+action_string)
|
124
|
+
values=res["result"] if res["success"]==true
|
125
|
+
finalres=finalres && res["success"]
|
126
|
+
values.each {|i| output << i }
|
127
|
+
# output << values
|
128
|
+
}
|
129
|
+
return finalres, output
|
130
|
+
end
|
113
131
|
def add_object(object_map,hashv,element)
|
114
132
|
object_map=object_map.merge hashv
|
115
133
|
# 'tsipid'=>"1234"
|
data/lib/vtiger/commands.rb
CHANGED
@@ -215,6 +215,17 @@ module Vtiger
|
|
215
215
|
return res["success"],values
|
216
216
|
|
217
217
|
end
|
218
|
+
def large_find_items_by_date_and_key_null(element,date,key, extraparam=nil)
|
219
|
+
# NEED TO ADD QUERY SIZE CAPABILIIES
|
220
|
+
puts "in query by date #{date} and not null "
|
221
|
+
queryparams=''
|
222
|
+
queryparams=",#{extraparam}" if extraparam!=nil
|
223
|
+
t=Time.parse(date)
|
224
|
+
y=t.strftime('%Y-%m-%d')
|
225
|
+
querystring="select id,#{key}#{queryparams} from #{element} where createdtime like '#{y}%' and #{key} < '0' and emailoptout=0"
|
226
|
+
countstring="select count(*) from #{element} where createdtime like '#{y}%' and #{key} < '0' and emailoptout=0"
|
227
|
+
succ, values =self.large_query(countstring,querystring)
|
228
|
+
end
|
218
229
|
def get_campaigns
|
219
230
|
puts "in get campaigns"
|
220
231
|
action_string=ERB::Util.url_encode("select id,campaignname from Campaigns;")
|
data/test/test_login.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
2
|
+
|
3
|
+
class TestVtiger < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
@options={}
|
7
|
+
@options[:url]='democrm.estormtech.com'
|
8
|
+
@options[:key]='xBY6leZ5kZHQm2Y'
|
9
|
+
@options[:username]="admin"
|
10
|
+
@options[:element_type]="Contacts"
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_login
|
14
|
+
cmd = Vtiger::Commands.new()
|
15
|
+
challenge=cmd.challenge(@options)
|
16
|
+
login=cmd.login(@options)
|
17
|
+
assert challenge,"challenge is false"
|
18
|
+
assert login,"login is false"
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
data/test/test_philweb.rb
CHANGED
@@ -10,16 +10,21 @@ class TestVtiger < Test::Unit::TestCase
|
|
10
10
|
|
11
11
|
end
|
12
12
|
|
13
|
-
def
|
13
|
+
def test_a_login
|
14
|
+
setup
|
14
15
|
cmd = Vtiger::Commands.new()
|
16
|
+
puts "#{cmd.inspect}"
|
15
17
|
challenge=cmd.challenge(@options)
|
18
|
+
puts "challenge: #{challenge}"
|
16
19
|
login=cmd.login(@options)
|
20
|
+
puts "login: #{login}"
|
17
21
|
assert challenge,"challenge is false"
|
18
22
|
assert login,"login is false"
|
19
23
|
end
|
20
24
|
|
21
25
|
|
22
26
|
def test_add_trouble_ticket
|
27
|
+
setup
|
23
28
|
cmd = Vtiger::Commands.new()
|
24
29
|
challenge=cmd.challenge(@options)
|
25
30
|
puts "challenge is: #{challenge}"
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vtiger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 3
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 6
|
9
|
-
-
|
10
|
-
version: 0.6.
|
9
|
+
- 2
|
10
|
+
version: 0.6.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Scott Sproule
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-03-
|
18
|
+
date: 2011-03-06 00:00:00 +08:00
|
19
19
|
default_executable:
|
20
20
|
dependencies: []
|
21
21
|
|
@@ -40,6 +40,7 @@ files:
|
|
40
40
|
- lib/vtiger/support.rb
|
41
41
|
- lib/vtiger.rb
|
42
42
|
- test/test_helper.rb
|
43
|
+
- test/test_login.rb
|
43
44
|
- test/test_philweb.rb
|
44
45
|
- test/test_secret.rb
|
45
46
|
- test/test_vtiger.rb
|