memotoo 1.0.6 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +65 -11
- data/Rakefile +10 -1
- data/VERSION +1 -1
- data/lib/memotoo.rb +69 -2
- data/lib/memotoo/core-ext/hash.rb +2 -2
- data/lib/memotoo/core-ext/kernel.rb +1 -1
- data/lib/memotoo/main.rb +280 -0
- data/memotoo.gemspec +17 -18
- data/test/test_memotoo.rb +6 -8
- data/test/test_soapobjects.rb +123 -0
- metadata +19 -19
- data/.rvmrc-old +0 -1
- data/lib/memotoo/bookmark/bookmark.rb +0 -72
- data/lib/memotoo/connect.rb +0 -244
- data/lib/memotoo/contact/contact.rb +0 -162
- data/lib/memotoo/contact/contact_group.rb +0 -69
- data/lib/memotoo/wsdl/http.xml +0 -526
- data/lib/memotoo/wsdl/https.xml +0 -526
- data/test/test_bookmark.rb +0 -85
- data/test/test_contact.rb +0 -78
- data/test/test_contact_group.rb +0 -78
data/memotoo.gemspec
CHANGED
@@ -5,12 +5,21 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{memotoo}
|
8
|
-
s.version = "
|
8
|
+
s.version = "2.0.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Karsten Redmer"]
|
12
|
-
s.date = %q{2011-06-
|
13
|
-
s.description = %q{Unofficial gem for connecting to memotoo.com with their soap-api and handle your contact needs. Memotoo lets your synchronize all your contacts, events and tasks with yahoo, gmail, facebook, xing, outlook, your mobile-phone and more. You can also get your e-mails in one place.
|
12
|
+
s.date = %q{2011-06-12}
|
13
|
+
s.description = %q{Unofficial gem for connecting to memotoo.com with their soap-api and handle your contact needs. Memotoo lets your synchronize all your contacts, events and tasks with yahoo, gmail, facebook, xing, outlook, your mobile-phone and more. You can also get your e-mails in one place.Features of memotoo:
|
14
|
+
New mobile? Transfer all your data to your new device!
|
15
|
+
Synchronise your data with your mobile phone (with SyncML)
|
16
|
+
Access all your e-mail in a single page from Google, Yahoo, Hotmail / MSN, ...!
|
17
|
+
View your data on your mobile phone (WAP / XHTML)
|
18
|
+
Access your contacts using a LDAP directory
|
19
|
+
Access your files via a Web Folder
|
20
|
+
Access your files via FTP
|
21
|
+
Add Memotoo widgets to iGoogle, Netvibes, Windows Vista, Apple Dashboard, ...
|
22
|
+
Memotoo plugins for your browser}
|
14
23
|
s.email = %q{k.redmer@yahoo.de}
|
15
24
|
s.extra_rdoc_files = [
|
16
25
|
"LICENSE.txt",
|
@@ -19,7 +28,6 @@ Gem::Specification.new do |s|
|
|
19
28
|
s.files = [
|
20
29
|
".document",
|
21
30
|
".gemtest",
|
22
|
-
".rvmrc-old",
|
23
31
|
"Gemfile",
|
24
32
|
"Gemfile.lock",
|
25
33
|
"LICENSE.txt",
|
@@ -27,20 +35,13 @@ Gem::Specification.new do |s|
|
|
27
35
|
"Rakefile",
|
28
36
|
"VERSION",
|
29
37
|
"lib/memotoo.rb",
|
30
|
-
"lib/memotoo/bookmark/bookmark.rb",
|
31
|
-
"lib/memotoo/connect.rb",
|
32
|
-
"lib/memotoo/contact/contact.rb",
|
33
|
-
"lib/memotoo/contact/contact_group.rb",
|
34
38
|
"lib/memotoo/core-ext/hash.rb",
|
35
39
|
"lib/memotoo/core-ext/kernel.rb",
|
36
|
-
"lib/memotoo/
|
37
|
-
"lib/memotoo/wsdl/https.xml",
|
40
|
+
"lib/memotoo/main.rb",
|
38
41
|
"memotoo.gemspec",
|
39
42
|
"test/helper.rb",
|
40
|
-
"test/
|
41
|
-
"test/
|
42
|
-
"test/test_contact_group.rb",
|
43
|
-
"test/test_memotoo.rb"
|
43
|
+
"test/test_memotoo.rb",
|
44
|
+
"test/test_soapobjects.rb"
|
44
45
|
]
|
45
46
|
s.homepage = %q{http://github.com/kredmer/memotoo}
|
46
47
|
s.licenses = ["MIT"]
|
@@ -49,10 +50,8 @@ Gem::Specification.new do |s|
|
|
49
50
|
s.summary = %q{Unofficial gem for connecting to memotoo.com with their given soap-api}
|
50
51
|
s.test_files = [
|
51
52
|
"test/helper.rb",
|
52
|
-
"test/
|
53
|
-
"test/
|
54
|
-
"test/test_contact_group.rb",
|
55
|
-
"test/test_memotoo.rb"
|
53
|
+
"test/test_memotoo.rb",
|
54
|
+
"test/test_soapobjects.rb"
|
56
55
|
]
|
57
56
|
|
58
57
|
if s.respond_to? :specification_version then
|
data/test/test_memotoo.rb
CHANGED
@@ -1,23 +1,21 @@
|
|
1
1
|
require 'helper'
|
2
2
|
|
3
|
-
|
4
3
|
class TestMemotoo < Test::Unit::TestCase
|
5
4
|
|
6
5
|
context "Memotoo-Soap Api basic tests" do
|
7
6
|
|
8
7
|
setup do
|
9
|
-
@connect=Memotoo
|
8
|
+
@connect=Memotoo.new(MEMOTOO_USERNAME,MEMOTOO_PASSWORD)
|
10
9
|
end
|
11
10
|
|
12
11
|
should "have a connect-instance" do
|
13
|
-
assert_equal Memotoo
|
12
|
+
assert_equal Memotoo, @connect.class
|
14
13
|
end
|
15
14
|
|
16
15
|
should "write a message if username/password is not correct" do
|
17
|
-
@connect=Memotoo
|
18
|
-
|
19
|
-
|
20
|
-
raise 'Boom!!!'
|
16
|
+
@connect=Memotoo.new(MEMOTOO_USERNAME,"wrongpasswd")
|
17
|
+
assert_raises ArgumentError do
|
18
|
+
response = @connect.searchContact(TESTSEARCHDEFAULTS)
|
21
19
|
end
|
22
20
|
end
|
23
21
|
|
@@ -28,7 +26,7 @@ class TestMemotoo < Test::Unit::TestCase
|
|
28
26
|
|
29
27
|
|
30
28
|
should "also use http request instead of https" do
|
31
|
-
@connect=Memotoo
|
29
|
+
@connect=Memotoo.new(MEMOTOO_USERNAME,MEMOTOO_PASSWORD, false)
|
32
30
|
response = @connect.searchContact(TESTSEARCHDEFAULTS)
|
33
31
|
assert_not_nil response
|
34
32
|
end
|
@@ -0,0 +1,123 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestMemotoo < Test::Unit::TestCase
|
4
|
+
|
5
|
+
# api-problem in: BookmarkFolder, Holiday -> reportet to Thomas Pequet on 12.July 2011
|
6
|
+
|
7
|
+
# uncomment this to test all soapobjects
|
8
|
+
soapobjects = %w{Contact}
|
9
|
+
#soapobjects = %w{Contact ContactGroup Bookmark Note CalendarCategory Event Task}
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
|
14
|
+
fixure = { :contact => { :new => {:lastname => "Testcontact123456"},
|
15
|
+
:mod => {:lastname => "Testcontact123456xyz"}},
|
16
|
+
:contact_group => { :new=>{:name => "TestcontactGroup123456"},
|
17
|
+
:mod => {:name => "TestcontactGroup123456xyz"}},
|
18
|
+
:bookmark => { :new=>{:url => "Testbookmark.com"},
|
19
|
+
:mod => {:url => "Testbookmark123.com"}},
|
20
|
+
:bookmark_folder => {:new=>{:name => "Testbookmarkfolder123456"},
|
21
|
+
:mod => {:name => "Testbookmarkfolder123456xyz"}},
|
22
|
+
:note => { :new => {:description => "TestNote12345"},
|
23
|
+
:mod => {:description => "TestNote12345xyz"}},
|
24
|
+
:calendar_category => {:new=>{:name => "TestCalendarCategory123456"},
|
25
|
+
:mod => {:name => "TestCalendarCategory123456xyz"}},
|
26
|
+
:event => { :new => {:title=> "Testevent1234", :dateBegin=>"2011-06-12T10:00:00", :dateEnd=>"2011-06-12T15:00:00"},
|
27
|
+
:mod => {:title=> "Testevent1234xyz", :dateBegin=>"2011-06-12T10:00:00", :dateEnd=>"2011-06-12T15:00:00"}},
|
28
|
+
:holiday => {:new => {:description=> "Testholiday1234", :dateBegin=>"2011-07-12", :dateEnd=>"2011-07-20"},
|
29
|
+
:mod => {:description=> "Testholiday1234xyz", :dateBegin=>"2011-07-12", :dateEnd=>"2011-07-20"}},
|
30
|
+
:task => { :new => {:title=> "Testtask1234"},
|
31
|
+
:mod => {:title=> "Testtask1234xyz"}} }
|
32
|
+
|
33
|
+
needs = Memotoo::NEEDS
|
34
|
+
|
35
|
+
soapobjects.each do |soapobject|
|
36
|
+
symbol=soapobject.underscore.to_sym
|
37
|
+
objectfixure = fixure[symbol][:new][needs[symbol][0]]
|
38
|
+
addmethod=("add"+soapobject).to_sym
|
39
|
+
searchmethod=("search"+soapobject).to_sym
|
40
|
+
getmethod=("get"+soapobject).to_sym
|
41
|
+
getsyncmethod=("get"+soapobject+"Sync").to_sym
|
42
|
+
modifymethod=("modify"+soapobject).to_sym
|
43
|
+
deletemethod=("delete"+soapobject).to_sym
|
44
|
+
|
45
|
+
|
46
|
+
context "what we could do with #{soapobject}'s" do
|
47
|
+
|
48
|
+
setup do
|
49
|
+
@connect=Memotoo.new(MEMOTOO_USERNAME,MEMOTOO_PASSWORD, false)
|
50
|
+
end
|
51
|
+
|
52
|
+
context "Adding and finding #{soapobject}" do
|
53
|
+
|
54
|
+
should "add a new #{soapobject}" do
|
55
|
+
response= @connect.send(addmethod,fixure[symbol][:new])
|
56
|
+
assert_not_nil response
|
57
|
+
end
|
58
|
+
|
59
|
+
should "add a new #{soapobject} (and look for needed params)" do
|
60
|
+
assert_raises ArgumentError do
|
61
|
+
response = @connect.send(addmethod,{})
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
should "find the #{soapobject}" do
|
66
|
+
response = @connect.send(searchmethod,{:search => objectfixure})
|
67
|
+
assert_not_nil response
|
68
|
+
end
|
69
|
+
|
70
|
+
should "not find a non existent #{soapobject}" do
|
71
|
+
response = @connect.send(searchmethod,{:search => objectfixure+"xyz"})
|
72
|
+
assert_nil response
|
73
|
+
end
|
74
|
+
|
75
|
+
should "look for a search parameter in search for #{soapobject}" do
|
76
|
+
assert_raises ArgumentError do
|
77
|
+
response = @connect.send(searchmethod,{})
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
should "get the test#{soapobject}" do
|
82
|
+
response = @connect.send(searchmethod,{:search => objectfixure})
|
83
|
+
contact = @connect.send(getmethod,response[:id])
|
84
|
+
assert_not_nil contact
|
85
|
+
end
|
86
|
+
|
87
|
+
should "get the #{soapobject} changed since 2011-01-01" do
|
88
|
+
response = @connect.send(getsyncmethod,"2011-01-01 00:00:00")
|
89
|
+
assert_not_nil response
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
|
94
|
+
context "B Modifying #{soapobject}'s" do
|
95
|
+
|
96
|
+
should "modify the test#{soapobject}" do
|
97
|
+
response = @connect.send(searchmethod,{:search => objectfixure})
|
98
|
+
params = {:id=>response[:id]}.merge(fixure[symbol][:mod])
|
99
|
+
contact = @connect.send(modifymethod,params)
|
100
|
+
assert contact
|
101
|
+
end
|
102
|
+
|
103
|
+
should "modify the test#{soapobject} (and look for needed params)" do
|
104
|
+
response = @connect.send(searchmethod,{:search => fixure[symbol][:mod][needs[symbol][0]]})
|
105
|
+
assert_raises ArgumentError do
|
106
|
+
contact = @connect.send(modifymethod, {})
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
|
112
|
+
context "Deleting #{soapobject}" do
|
113
|
+
|
114
|
+
should "delete the test#{soapobject}" do
|
115
|
+
response = @connect.send(searchmethod,{:search => fixure[symbol][:mod][needs[symbol][0]]})
|
116
|
+
contact = @connect.send(deletemethod,response[:id])
|
117
|
+
assert contact
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
end #context
|
122
|
+
end # each
|
123
|
+
end #class
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: memotoo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 15
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
|
-
-
|
7
|
+
- 2
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version:
|
9
|
+
- 0
|
10
|
+
version: 2.0.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Karsten Redmer
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-06-
|
18
|
+
date: 2011-06-12 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -154,7 +154,17 @@ dependencies:
|
|
154
154
|
name: savon
|
155
155
|
version_requirements: *id009
|
156
156
|
prerelease: false
|
157
|
-
description:
|
157
|
+
description: |-
|
158
|
+
Unofficial gem for connecting to memotoo.com with their soap-api and handle your contact needs. Memotoo lets your synchronize all your contacts, events and tasks with yahoo, gmail, facebook, xing, outlook, your mobile-phone and more. You can also get your e-mails in one place.Features of memotoo:
|
159
|
+
New mobile? Transfer all your data to your new device!
|
160
|
+
Synchronise your data with your mobile phone (with SyncML)
|
161
|
+
Access all your e-mail in a single page from Google, Yahoo, Hotmail / MSN, ...!
|
162
|
+
View your data on your mobile phone (WAP / XHTML)
|
163
|
+
Access your contacts using a LDAP directory
|
164
|
+
Access your files via a Web Folder
|
165
|
+
Access your files via FTP
|
166
|
+
Add Memotoo widgets to iGoogle, Netvibes, Windows Vista, Apple Dashboard, ...
|
167
|
+
Memotoo plugins for your browser
|
158
168
|
email: k.redmer@yahoo.de
|
159
169
|
executables: []
|
160
170
|
|
@@ -166,7 +176,6 @@ extra_rdoc_files:
|
|
166
176
|
files:
|
167
177
|
- .document
|
168
178
|
- .gemtest
|
169
|
-
- .rvmrc-old
|
170
179
|
- Gemfile
|
171
180
|
- Gemfile.lock
|
172
181
|
- LICENSE.txt
|
@@ -174,20 +183,13 @@ files:
|
|
174
183
|
- Rakefile
|
175
184
|
- VERSION
|
176
185
|
- lib/memotoo.rb
|
177
|
-
- lib/memotoo/bookmark/bookmark.rb
|
178
|
-
- lib/memotoo/connect.rb
|
179
|
-
- lib/memotoo/contact/contact.rb
|
180
|
-
- lib/memotoo/contact/contact_group.rb
|
181
186
|
- lib/memotoo/core-ext/hash.rb
|
182
187
|
- lib/memotoo/core-ext/kernel.rb
|
183
|
-
- lib/memotoo/
|
184
|
-
- lib/memotoo/wsdl/https.xml
|
188
|
+
- lib/memotoo/main.rb
|
185
189
|
- memotoo.gemspec
|
186
190
|
- test/helper.rb
|
187
|
-
- test/test_bookmark.rb
|
188
|
-
- test/test_contact.rb
|
189
|
-
- test/test_contact_group.rb
|
190
191
|
- test/test_memotoo.rb
|
192
|
+
- test/test_soapobjects.rb
|
191
193
|
has_rdoc: true
|
192
194
|
homepage: http://github.com/kredmer/memotoo
|
193
195
|
licenses:
|
@@ -224,7 +226,5 @@ specification_version: 3
|
|
224
226
|
summary: Unofficial gem for connecting to memotoo.com with their given soap-api
|
225
227
|
test_files:
|
226
228
|
- test/helper.rb
|
227
|
-
- test/test_bookmark.rb
|
228
|
-
- test/test_contact.rb
|
229
|
-
- test/test_contact_group.rb
|
230
229
|
- test/test_memotoo.rb
|
230
|
+
- test/test_soapobjects.rb
|
data/.rvmrc-old
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
rvm use 1.8.7@memotoo
|
@@ -1,72 +0,0 @@
|
|
1
|
-
|
2
|
-
module Memotoo
|
3
|
-
|
4
|
-
class Connect
|
5
|
-
|
6
|
-
# required: url
|
7
|
-
#
|
8
|
-
# optional:
|
9
|
-
# description
|
10
|
-
# tags
|
11
|
-
# rank
|
12
|
-
# id_bookmarkfolder
|
13
|
-
# {:name=>groupname}
|
14
|
-
# #e.g. @connect.addBookmark({:name=>"Testgroup"})
|
15
|
-
def addBookmark(details)
|
16
|
-
if has_needed_fields(details, :url)
|
17
|
-
format_result(addApiCall({:bookmark => details}), :id)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
#[searchparameter:]
|
22
|
-
# {:search=>"something", :limit_start=>0, :limit_nb=>100}
|
23
|
-
#* required:
|
24
|
-
# search
|
25
|
-
#* optional:
|
26
|
-
# limit_start
|
27
|
-
# limit_nb
|
28
|
-
#e.g. @connect.searchBookmark({:search=>"ka", :limit_nb=>50})
|
29
|
-
#
|
30
|
-
# returns nil or a hash of one contactgroup or an array of contactgroups
|
31
|
-
#
|
32
|
-
def searchBookmark(searchparameter={})
|
33
|
-
if has_needed_search_parameter(searchparameter)
|
34
|
-
format_result(searchApiCall(searchparameter), :return, :bookmark)
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
# id = integer
|
39
|
-
# e.g. @connect.getBookmark(12345)
|
40
|
-
#
|
41
|
-
# returns the contactgroup or nil
|
42
|
-
#
|
43
|
-
def getBookmark(id)
|
44
|
-
format_result(getApiCall(id), :return, :bookmark)
|
45
|
-
end
|
46
|
-
|
47
|
-
# get modified contactgroups since date
|
48
|
-
# datetime = "2010-02-23 10:00:00" or just "2010-02-23"
|
49
|
-
# e.g. @connect.getBookmarkSync("2010-02-23 10:00:00")
|
50
|
-
def getBookmarkSync(datetime)
|
51
|
-
format_result(getSyncApiCall(datetime), :return, :bookmark)
|
52
|
-
end
|
53
|
-
|
54
|
-
# required: name and id
|
55
|
-
# note: you can only change the name
|
56
|
-
# return true if the changed happened
|
57
|
-
def modifyBookmark(details={})
|
58
|
-
if has_needed_fields(details, :id)
|
59
|
-
format_result(modifyApiCall({:bookmark => details}), :ok)
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
# id = integer
|
64
|
-
# e.g. @connect.deleteBookmark(12345)
|
65
|
-
# return true when contactgroup is deleted
|
66
|
-
def deleteBookmark(id)
|
67
|
-
format_result(deleteApiCall(id), :ok)
|
68
|
-
end
|
69
|
-
|
70
|
-
end # class
|
71
|
-
|
72
|
-
end # module
|
data/lib/memotoo/connect.rb
DELETED
@@ -1,244 +0,0 @@
|
|
1
|
-
require 'parsedate'
|
2
|
-
require "savon"
|
3
|
-
require "memotoo/core-ext/hash"
|
4
|
-
require "memotoo/core-ext/kernel"
|
5
|
-
require "memotoo/contact/contact"
|
6
|
-
require "memotoo/contact/contact_group"
|
7
|
-
require "memotoo/bookmark/bookmark"
|
8
|
-
|
9
|
-
|
10
|
-
module Memotoo
|
11
|
-
|
12
|
-
# = Memotoo::Connect
|
13
|
-
#
|
14
|
-
# Memotoo::Connect is the main object for connecting
|
15
|
-
# to the {memotoo}[http://www.memotoo.com/index-saleshype.php] SOAP service.
|
16
|
-
|
17
|
-
class Connect
|
18
|
-
|
19
|
-
# will hold username and password in a hash style (used for all requests)
|
20
|
-
attr_accessor :opts
|
21
|
-
|
22
|
-
SEARCHDEFAULTS = { :limit_start => '0', :limit_nb => '100' }
|
23
|
-
|
24
|
-
#[https] default:true for the SOAP service.
|
25
|
-
# example: @connect=Memotoo::Connect.new("myusername","mypassword")
|
26
|
-
def initialize(username, password, https=true)
|
27
|
-
|
28
|
-
# we will need it for every request - will be merged in
|
29
|
-
self.opts= {
|
30
|
-
:param => {
|
31
|
-
:login => username,
|
32
|
-
:password => password,
|
33
|
-
}
|
34
|
-
}
|
35
|
-
|
36
|
-
# creates client with memotoo settings
|
37
|
-
client(https)
|
38
|
-
end
|
39
|
-
|
40
|
-
# Creates the <tt>Savon::Client</tt>.
|
41
|
-
def client(https=true)
|
42
|
-
#--
|
43
|
-
# in any case problems switch back to receiving the wsdl file from memotoo
|
44
|
-
# https: wsdl.document = "https://www.memotoo.com/SOAP-server.php?wsdl"
|
45
|
-
# http: wsdl.document = "http://www.memotoo.com/SOAP-server.php?wsdl"
|
46
|
-
#++
|
47
|
-
|
48
|
-
@client ||= Savon::Client.new do
|
49
|
-
wsdl.namespace="urn:memotooSoap"
|
50
|
-
if https
|
51
|
-
wsdl.endpoint="https://www.memotoo.com/SOAP-server.php"
|
52
|
-
http.auth.ssl.verify_mode = :none
|
53
|
-
else
|
54
|
-
wsdl.endpoint="http://www.memotoo.com/SOAP-server.php"
|
55
|
-
end
|
56
|
-
http.auth.basic self.opts[:param][:login], self.opts[:param][:password]
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
|
61
|
-
def searchApiCall(searchparameter)
|
62
|
-
search = SEARCHDEFAULTS.merge!(searchparameter)
|
63
|
-
apicall(calling_method.to_sym, search)
|
64
|
-
end
|
65
|
-
|
66
|
-
def getApiCall(id)
|
67
|
-
apicall(calling_method.to_sym, { :id => id })
|
68
|
-
end
|
69
|
-
|
70
|
-
def getSyncApiCall(datetime)
|
71
|
-
date2time=Time.mktime(*ParseDate.parsedate(datetime))
|
72
|
-
formated_date=date2time.strftime("%Y-%m-%d %H:%M:%S")
|
73
|
-
apicall(calling_method.to_sym, { :date => formated_date })
|
74
|
-
end
|
75
|
-
|
76
|
-
def deleteApiCall(id)
|
77
|
-
apicall(calling_method.to_sym, { :id => id })
|
78
|
-
end
|
79
|
-
|
80
|
-
def modifyApiCall(details)
|
81
|
-
apicall(calling_method.to_sym, details )
|
82
|
-
end
|
83
|
-
|
84
|
-
def addApiCall(details)
|
85
|
-
apicall(calling_method.to_sym, details )
|
86
|
-
end
|
87
|
-
|
88
|
-
|
89
|
-
# used internally for a request
|
90
|
-
def apicall(action, parameter)
|
91
|
-
|
92
|
-
response=@client.request :wsdl, action do
|
93
|
-
soap.body = { :param => parameter }.deep_merge_me!(self.opts)
|
94
|
-
end
|
95
|
-
response
|
96
|
-
|
97
|
-
#--
|
98
|
-
# TODO: error-handling - I was tooo lazy.....
|
99
|
-
#++
|
100
|
-
|
101
|
-
rescue Savon::Error => error
|
102
|
-
if error.message.nil?
|
103
|
-
puts "invalid username/password"
|
104
|
-
|
105
|
-
# I don't know which error is still possible
|
106
|
-
# else
|
107
|
-
# puts error.to_s
|
108
|
-
end
|
109
|
-
end
|
110
|
-
|
111
|
-
def format_result(response, *_keys_)
|
112
|
-
output_key = [(calling_method.underscore+"_response").to_sym] | _keys_
|
113
|
-
response.nil? ? nil : response.to_hash.seek(output_key)
|
114
|
-
end
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
private
|
119
|
-
|
120
|
-
def go_home(message)
|
121
|
-
#--
|
122
|
-
# TODO: raising errors instead of writing to STDOUT
|
123
|
-
#++
|
124
|
-
puts "missing fields: " + message.to_s
|
125
|
-
false
|
126
|
-
end
|
127
|
-
|
128
|
-
def has_needed_fields(thehash, *args)
|
129
|
-
valid=true
|
130
|
-
retarr=[]
|
131
|
-
args.each do |arg_item|
|
132
|
-
unless thehash.has_key?(arg_item)
|
133
|
-
valid = false
|
134
|
-
retarr << arg_item
|
135
|
-
end
|
136
|
-
end
|
137
|
-
valid ? true : go_home(retarr.join(", "))
|
138
|
-
end
|
139
|
-
|
140
|
-
def has_needed_search_parameter(searchparameter)
|
141
|
-
has_needed_fields(searchparameter, :search)
|
142
|
-
end
|
143
|
-
|
144
|
-
end # class
|
145
|
-
|
146
|
-
end # module
|
147
|
-
|
148
|
-
# stop savon logging
|
149
|
-
|
150
|
-
module Savon
|
151
|
-
module Global
|
152
|
-
def log?
|
153
|
-
false
|
154
|
-
end
|
155
|
-
def raise_errors?
|
156
|
-
@raise_errors = true
|
157
|
-
end
|
158
|
-
|
159
|
-
end
|
160
|
-
end
|
161
|
-
|
162
|
-
#-- available memotoo soap actions !!!!!!!!!!
|
163
|
-
|
164
|
-
#event
|
165
|
-
|
166
|
-
#:get_event,
|
167
|
-
#:delete_event,
|
168
|
-
#:get_event_sync,
|
169
|
-
#:modify_event,
|
170
|
-
#:search_event,
|
171
|
-
#:add_event,
|
172
|
-
|
173
|
-
#calendar_category
|
174
|
-
|
175
|
-
#:search_calendar_category,
|
176
|
-
#:add_calendar_category,
|
177
|
-
#:delete_calendar_category,
|
178
|
-
#:get_calendar_category,
|
179
|
-
#:modify_calendar_category,
|
180
|
-
#:get_calendar_category_sync,
|
181
|
-
|
182
|
-
#holiday
|
183
|
-
|
184
|
-
#:get_holiday,
|
185
|
-
#:delete_holiday,
|
186
|
-
#:get_holiday_sync,
|
187
|
-
#:modify_holiday,
|
188
|
-
#:search_holiday,
|
189
|
-
#:add_holiday,
|
190
|
-
#
|
191
|
-
|
192
|
-
#contact - ready implemented
|
193
|
-
#:add_contact,
|
194
|
-
#:modify_contact,
|
195
|
-
#:search_contact,
|
196
|
-
#:delete_contact,
|
197
|
-
#:get_contact_sync,
|
198
|
-
#:get_contact,
|
199
|
-
|
200
|
-
#contact-group - ready implemented
|
201
|
-
#
|
202
|
-
#:search_contact_group,
|
203
|
-
#:add_contact_group,
|
204
|
-
#:delete_contact_group,
|
205
|
-
#:get_contact_group,
|
206
|
-
#:get_contact_group_sync
|
207
|
-
#:modify_contact_group
|
208
|
-
#
|
209
|
-
#bookmark
|
210
|
-
#
|
211
|
-
#:get_bookmark,
|
212
|
-
#:modify_bookmark,
|
213
|
-
#:search_bookmark
|
214
|
-
#:add_bookmark,
|
215
|
-
#:delete_bookmark,
|
216
|
-
#:get_bookmark_sync,
|
217
|
-
#
|
218
|
-
#bookmarkfolder
|
219
|
-
#
|
220
|
-
#:search_bookmark_folder,
|
221
|
-
#:add_bookmark_folder,
|
222
|
-
#:delete_bookmark_folder,
|
223
|
-
#:get_bookmark_folder,
|
224
|
-
#:get_bookmark_folder_sync,
|
225
|
-
#:modify_bookmark_folder,
|
226
|
-
|
227
|
-
#task
|
228
|
-
|
229
|
-
#:modify_task,
|
230
|
-
#:get_task,
|
231
|
-
#:get_task_sync,
|
232
|
-
#:search_task,
|
233
|
-
#:add_task,
|
234
|
-
#:delete_task,
|
235
|
-
|
236
|
-
#note
|
237
|
-
|
238
|
-
#:get_note_sync
|
239
|
-
#:modify_note,
|
240
|
-
#:search_note,
|
241
|
-
#:delete_note,
|
242
|
-
#:add_note,
|
243
|
-
#:get_note,
|
244
|
-
#++
|