infopark_crm_connector 1.0.1 → 1.1.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.markdown
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
[](https://travis-ci.org/infopark/crm_connector)
|
4
4
|
|
5
|
-
Infopark WebCRM Connector is the official Ruby SDK for [Infopark WebCRM](http://www.infopark.de/webcrm). It basically wraps the [WebCRM web services API](http://kb.infopark.de/crm-api) using [Active Resource](http://rubydoc.info/gems/activeresource/). Currently, Active Resource 3.
|
5
|
+
Infopark WebCRM Connector is the official Ruby SDK for [Infopark WebCRM](http://www.infopark.de/webcrm). It basically wraps the [WebCRM web services API](http://kb.infopark.de/crm-api) using [Active Resource](http://rubydoc.info/gems/activeresource/). Currently, Active Resource 3.1 and 3.2 in combination with Ruby 1.8.7, 1.9.x and 2.0.0 are tested and supported.
|
6
6
|
|
7
7
|
# Installation
|
8
8
|
|
@@ -102,6 +102,10 @@ Run tests with all supported versions of Active Resource:
|
|
102
102
|
|
103
103
|
# Changelog
|
104
104
|
|
105
|
+
## Version 1.1.0 - 2013-10-21
|
106
|
+
* Remove support for ActiveResource 3.0.
|
107
|
+
* Added `Attachment.upload_permission`, `Attachment.download_url` and the activity comment property `attachments`. See [API documentation](https://dev.infopark.net/26635f6d056215c9/attachments)
|
108
|
+
|
105
109
|
## Version 1.0.1 - 2013-03-20
|
106
110
|
* Added continuous integration of travis-ci.org (see [travis-ci.org/infopark/crm_connector](https://travis-ci.org/infopark/crm_connector/))
|
107
111
|
* Bugfix: Default attributes are inherited to subclasses (fixes [Issue #1](https://github.com/infopark/crm_connector/issues/1))
|
@@ -24,6 +24,7 @@ module Infopark; module Crm
|
|
24
24
|
:appointment_dtstart_at => :time,
|
25
25
|
:appointment_location => :string,
|
26
26
|
:comment_notes => :string,
|
27
|
+
:comment_attachments => :array,
|
27
28
|
:comment_published => :boolean,
|
28
29
|
:contact_id => :string,
|
29
30
|
:email_cc => :string,
|
@@ -59,5 +60,16 @@ module Infopark; module Crm
|
|
59
60
|
Infopark::Crm::CustomType.find(kind) if kind
|
60
61
|
end
|
61
62
|
|
63
|
+
|
64
|
+
class Comment < Core::Resource
|
65
|
+
self.schema = {
|
66
|
+
:contact_id => :string,
|
67
|
+
:notes => :string,
|
68
|
+
:attachments => :array,
|
69
|
+
:published => :boolean,
|
70
|
+
:updated_at => :time,
|
71
|
+
:updated_by => :string,
|
72
|
+
}
|
73
|
+
end
|
62
74
|
end
|
63
75
|
end; end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Infopark
|
2
|
+
module Crm
|
3
|
+
|
4
|
+
class Attachment < Core::Resource
|
5
|
+
|
6
|
+
class Permission < Struct.new(:url, :fields, :upload_id)
|
7
|
+
end
|
8
|
+
|
9
|
+
##
|
10
|
+
# Generates a temporary Amazon S3 URL for uploading a file to S3.
|
11
|
+
# @return [Permission]
|
12
|
+
# @webcrm_rest_url <code>GET /api/attachments/upload_permission</code>
|
13
|
+
# @see https://dev.infopark.net/26635f6d056215c9/attachments
|
14
|
+
# @example
|
15
|
+
# permission = Infopark::Crm::Attachment.upload_permission
|
16
|
+
def self.upload_permission
|
17
|
+
perm = get(:upload_permission)
|
18
|
+
Permission.new(perm["url"], perm["fields"], perm["upload_id"])
|
19
|
+
end
|
20
|
+
|
21
|
+
##
|
22
|
+
# Generates a temporary download URL for the given attachment.
|
23
|
+
# @param attachment_id [String] An attachment ID taken from the attachments field inside the comments section of an activity.
|
24
|
+
# @param activity_id [String] The activity ID the attachment belongs to
|
25
|
+
# @return [String]
|
26
|
+
# @webcrm_rest_url <code>GET /api/attachments/download_url</code>
|
27
|
+
# @see https://dev.infopark.net/26635f6d056215c9/attachments
|
28
|
+
# @example
|
29
|
+
# url = Infopark::Crm::Attachment.download_url("c972c011b52ba671b68b16db961b82e7", "ff30a81adaaae7bd5a7066c350530c41")
|
30
|
+
def self.download_url(attachment_id, activity_id)
|
31
|
+
get(:download_url, :attachment_id => attachment_id, :activity_id => activity_id)
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
end
|
@@ -61,7 +61,6 @@ module Infopark; module Crm
|
|
61
61
|
begin
|
62
62
|
response = post(:authenticate, {}, format.encode({:login => login, :password => password}))
|
63
63
|
result = format.decode(response.body)
|
64
|
-
return find(result['id']) if result.kind_of? Hash # ActiveResource 3.0
|
65
64
|
find(result)
|
66
65
|
rescue ActiveResource::ResourceInvalid
|
67
66
|
raise Errors::AuthenticationFailed
|
@@ -76,9 +75,7 @@ module Infopark; module Crm
|
|
76
75
|
# @webcrm_rest_url <code>POST /api/contacts/password_set</code>
|
77
76
|
def self.password_set(password, token)
|
78
77
|
response = post(:password_set, {}, format.encode({:password => password, :token => token}))
|
79
|
-
|
80
|
-
return result['message'] if result.kind_of? Hash # ActiveResource 3.0
|
81
|
-
result
|
78
|
+
format.decode(response.body)
|
82
79
|
end
|
83
80
|
|
84
81
|
##
|
@@ -98,9 +95,7 @@ module Infopark; module Crm
|
|
98
95
|
def password_request(options = {})
|
99
96
|
params = options[:params] || {}
|
100
97
|
response = post(:password_request, {}, self.class.format.encode(params))
|
101
|
-
|
102
|
-
return result.values.first if result.kind_of? Hash # ActiveResource 3.0
|
103
|
-
result
|
98
|
+
self.class.format.decode(response.body)
|
104
99
|
end
|
105
100
|
|
106
101
|
# Returns the live_server_groups of this contact as defined by +Configuration.live_server_groups_callback+
|
@@ -20,7 +20,7 @@ module Infopark; module Crm; module Core
|
|
20
20
|
prefix_options, query_options = split_options(options[:params])
|
21
21
|
path = collection_path(prefix_options, query_options)
|
22
22
|
response = prefix ? get(prefix, query_options) : connection.get(path, headers)
|
23
|
-
response = format.decode(response.body) unless response.kind_of? Hash
|
23
|
+
response = format.decode(response.body) unless response.kind_of? Hash
|
24
24
|
response = {'results' => response} if response.kind_of? Array # fighting ActiveResource 3.1 magic
|
25
25
|
collection = instantiate_collection(response['results'] || [], prefix_options)
|
26
26
|
result = Core::Enumerator.new(collection, response['continuation_handle'], response['total']) { |yielder|
|
@@ -31,7 +31,7 @@ module Infopark; module Crm; module Core
|
|
31
31
|
query_options[:continuation_handle] = result.continuation_handle
|
32
32
|
path = collection_path(prefix_options, query_options)
|
33
33
|
response = prefix ? get(prefix, query_options) : connection.get(path, headers)
|
34
|
-
response = format.decode(response.body) unless response.kind_of? Hash
|
34
|
+
response = format.decode(response.body) unless response.kind_of? Hash
|
35
35
|
response = {'results' => response} if response.kind_of? Array # fighting ActiveResource 3.1 magic
|
36
36
|
collection = instantiate_collection(response['results'] || [], prefix_options)
|
37
37
|
result.update(collection, response['continuation_handle'], response['total'])
|
data/lib/crm_connector/system.rb
CHANGED
@@ -10,7 +10,6 @@ module Infopark; module Crm
|
|
10
10
|
# @webcrm_rest_url <code>GET /api/templates</code>
|
11
11
|
def self.templates
|
12
12
|
response = base.connection.get(path, base.headers)
|
13
|
-
return response['templates'] if response.kind_of? Hash # ActiveResource 3.0
|
14
13
|
base.format.decode(response.body)
|
15
14
|
end
|
16
15
|
|
metadata
CHANGED
@@ -1,66 +1,61 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: infopark_crm_connector
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.1.0
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 0
|
9
|
-
- 1
|
10
|
-
version: 1.0.1
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Infopark AG
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
21
|
-
version_requirements: &id001 !ruby/object:Gem::Requirement
|
22
|
-
none: false
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
hash: 5
|
27
|
-
segments:
|
28
|
-
- 3
|
29
|
-
version: "3"
|
30
|
-
prerelease: false
|
31
|
-
requirement: *id001
|
32
|
-
type: :runtime
|
12
|
+
date: 2013-10-21 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
33
15
|
name: activeresource
|
34
|
-
|
35
|
-
version_requirements: &id002 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
36
17
|
none: false
|
37
|
-
requirements:
|
38
|
-
- -
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
|
41
|
-
segments:
|
42
|
-
- 2
|
43
|
-
- 3
|
44
|
-
version: "2.3"
|
45
|
-
prerelease: false
|
46
|
-
requirement: *id002
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '3.1'
|
47
22
|
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '3.1'
|
30
|
+
- !ruby/object:Gem::Dependency
|
48
31
|
name: backports
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '2.3'
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '2.3'
|
49
46
|
description: Infopark CRM Connector
|
50
47
|
email: info@infopark.de
|
51
48
|
executables: []
|
52
|
-
|
53
49
|
extensions: []
|
54
|
-
|
55
50
|
extra_rdoc_files: []
|
56
|
-
|
57
|
-
files:
|
51
|
+
files:
|
58
52
|
- .yardopts
|
59
53
|
- LICENSE
|
60
54
|
- README.markdown
|
61
55
|
- lib/crm_connector.rb
|
62
56
|
- lib/crm_connector/account.rb
|
63
57
|
- lib/crm_connector/activity.rb
|
58
|
+
- lib/crm_connector/attachment.rb
|
64
59
|
- lib/crm_connector/configuration.rb
|
65
60
|
- lib/crm_connector/contact.rb
|
66
61
|
- lib/crm_connector/core.rb
|
@@ -80,39 +75,31 @@ files:
|
|
80
75
|
- lib/crm_connector/system.rb
|
81
76
|
- lib/infopark_crm_connector.rb
|
82
77
|
homepage: http://www.infopark.de
|
83
|
-
licenses:
|
78
|
+
licenses:
|
84
79
|
- LGPLv3
|
85
80
|
post_install_message:
|
86
81
|
rdoc_options: []
|
87
|
-
|
88
|
-
require_paths:
|
82
|
+
require_paths:
|
89
83
|
- lib
|
90
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
84
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
91
85
|
none: false
|
92
|
-
requirements:
|
93
|
-
- -
|
94
|
-
- !ruby/object:Gem::Version
|
95
|
-
|
96
|
-
segments:
|
86
|
+
requirements:
|
87
|
+
- - ! '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
segments:
|
97
91
|
- 0
|
98
|
-
|
99
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
92
|
+
hash: -4081557291616134614
|
93
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
100
94
|
none: false
|
101
|
-
requirements:
|
102
|
-
- -
|
103
|
-
- !ruby/object:Gem::Version
|
104
|
-
hash: 17
|
105
|
-
segments:
|
106
|
-
- 1
|
107
|
-
- 3
|
108
|
-
- 5
|
95
|
+
requirements:
|
96
|
+
- - ! '>='
|
97
|
+
- !ruby/object:Gem::Version
|
109
98
|
version: 1.3.5
|
110
99
|
requirements: []
|
111
|
-
|
112
100
|
rubyforge_project:
|
113
|
-
rubygems_version: 1.8.
|
101
|
+
rubygems_version: 1.8.23
|
114
102
|
signing_key:
|
115
103
|
specification_version: 3
|
116
104
|
summary: Infopark CRM Connector
|
117
105
|
test_files: []
|
118
|
-
|