infopark_webcrm_sdk 2.1.0 → 2.3.2
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.
- checksums.yaml +5 -5
- data/README.md +7 -7
- data/UPGRADE.md +22 -22
- data/config/ca-bundle.crt +729 -869
- data/lib/crm.rb +1 -1
- data/lib/crm/account.rb +1 -1
- data/lib/crm/activity.rb +1 -1
- data/lib/crm/collection.rb +1 -1
- data/lib/crm/contact.rb +1 -1
- data/lib/crm/core/attachment_store.rb +3 -3
- data/lib/crm/core/basic_resource.rb +1 -1
- data/lib/crm/core/configuration.rb +1 -1
- data/lib/crm/core/log_subscriber.rb +4 -4
- data/lib/crm/core/mixins/modifiable.rb +1 -1
- data/lib/crm/errors.rb +1 -1
- data/lib/crm/event.rb +1 -1
- data/lib/crm/event_contact.rb +1 -1
- data/lib/crm/mailing.rb +12 -2
- data/lib/crm/mailing_delivery.rb +95 -0
- data/lib/crm/template_set.rb +2 -2
- data/lib/crm/type.rb +1 -1
- metadata +10 -10
data/lib/crm.rb
CHANGED
data/lib/crm/account.rb
CHANGED
data/lib/crm/activity.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module Crm
|
2
|
-
#
|
2
|
+
# A JustRelate WebCRM activity is a record of an action or a sequence of actions,
|
3
3
|
# for example a support case.
|
4
4
|
# It can be associated with an {Account account} or a {Contact contact}.
|
5
5
|
#
|
data/lib/crm/collection.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module Crm
|
2
|
-
#
|
2
|
+
# A JustRelate WebCRM collection is a saved search. To execute such a saved search, call {#compute}.
|
3
3
|
# The results are persisted and can be accessed by means of {#output_items}.
|
4
4
|
# Output items can be {Account accounts}, {Contact contacts}, {Activity activities},
|
5
5
|
# and {Event events}.
|
data/lib/crm/contact.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module Crm
|
2
|
-
#
|
2
|
+
# A JustRelate WebCRM contact represents contact information about a person.
|
3
3
|
# It can be associated with an {Account account}.
|
4
4
|
# @api public
|
5
5
|
class Contact < Core::BasicResource
|
@@ -24,15 +24,15 @@ module Crm; module Core
|
|
24
24
|
# The format of +comment_attachments+ is
|
25
25
|
# <tt>["upload_id/filename.ext", ...]</tt>,
|
26
26
|
# e.g. <tt>["e13f0d960feeb2b2903bd/screenshot.jpg"]</tt>.
|
27
|
-
#
|
27
|
+
# JustRelate WebCRM in turn translates these upload IDs to attachment IDs.
|
28
28
|
# Syntactically they look the same. Upload IDs, however, are only temporary,
|
29
29
|
# whereas attachment IDs are permanent. If the client appended a filename to the upload ID,
|
30
30
|
# the attachment ID will contain this filename, too. Otherwise, the attachment ID ends
|
31
|
-
# with <tt>"/file"</tt>. Please note that
|
31
|
+
# with <tt>"/file"</tt>. Please note that JustRelate WebCRM replaces filename characters other
|
32
32
|
# than <tt>a-zA-Z0-9.+-</tt> with a dash. Multiple dashes will be joined into a single dash.
|
33
33
|
# 4. Later, when downloading the attachment, pass the attachment ID to
|
34
34
|
# {Crm::Core::AttachmentStore.generate_download_url}.
|
35
|
-
#
|
35
|
+
# JustRelate WebCRM returns a signed AWS S3 URL that remains valid for 5 minutes.
|
36
36
|
# @api public
|
37
37
|
class AttachmentStore
|
38
38
|
# +Permission+ holds all the pieces of information required to upload an {AttachmentStore attachment}.
|
@@ -41,7 +41,7 @@ module Crm; module Core
|
|
41
41
|
end
|
42
42
|
|
43
43
|
# The {http://www.ruby-doc.org/stdlib/libdoc/logger/rdoc/Logger.html logger} of the
|
44
|
-
#
|
44
|
+
# JustRelate WebCRM SDK. It logs request URLs according to the +:info+ level.
|
45
45
|
# Additionally, it logs request and response payloads according to the +:debug+ level.
|
46
46
|
# Password fields are filtered out.
|
47
47
|
# In a Rails environment, the logger defaults to +Rails.logger+. Otherwise, no logger is set.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require "active_support/parameter_filter"
|
2
2
|
|
3
3
|
module Crm; module Core
|
4
4
|
class LogSubscriber < ActiveSupport::LogSubscriber
|
@@ -10,7 +10,7 @@ module Crm; module Core
|
|
10
10
|
info { "#{event.payload[:method].to_s.upcase} #{event.payload[:resource_path]}" }
|
11
11
|
request_payload = event.payload[:request_payload]
|
12
12
|
if request_payload.present?
|
13
|
-
debug { " request body: #{parameter_filter.filter(request_payload)}" }
|
13
|
+
debug { " request body: #{parameter_filter.filter({data: request_payload})[:data]}" }
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
@@ -21,7 +21,7 @@ module Crm; module Core
|
|
21
21
|
}
|
22
22
|
debug {
|
23
23
|
response_payload = MultiJson.load(r.body)
|
24
|
-
" response body: #{parameter_filter.filter(response_payload)}"
|
24
|
+
" response body: #{parameter_filter.filter({data: response_payload})[:data]}"
|
25
25
|
}
|
26
26
|
end
|
27
27
|
|
@@ -35,7 +35,7 @@ module Crm; module Core
|
|
35
35
|
private
|
36
36
|
|
37
37
|
def parameter_filter
|
38
|
-
@parameter_filter ||= ::
|
38
|
+
@parameter_filter ||= ::ActiveSupport::ParameterFilter.new(['password'])
|
39
39
|
end
|
40
40
|
end
|
41
41
|
end; end
|
@@ -2,7 +2,7 @@ require "active_support/concern"
|
|
2
2
|
|
3
3
|
module Crm; module Core; module Mixins
|
4
4
|
# +Modifiable+ is a collection of methods that are used to {ClassMethods#create .create},
|
5
|
-
# {#update} and {#delete}
|
5
|
+
# {#update} and {#delete} a JustRelate WebCRM item.
|
6
6
|
# @api public
|
7
7
|
module Modifiable
|
8
8
|
extend ActiveSupport::Concern
|
data/lib/crm/errors.rb
CHANGED
data/lib/crm/event.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module Crm
|
2
|
-
#
|
2
|
+
# A JustRelate WebCRM event contains all data associated with an event such
|
3
3
|
# as a conference or a trade show. An event has participants ({EventContact}).
|
4
4
|
# @api public
|
5
5
|
class Event < Core::BasicResource
|
data/lib/crm/event_contact.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module Crm
|
2
|
-
#
|
2
|
+
# A JustRelate WebCRM event contact is a participant or a potential participant of an {Event}.
|
3
3
|
# @api public
|
4
4
|
class EventContact < Core::BasicResource
|
5
5
|
include Core::Mixins::Findable
|
data/lib/crm/mailing.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
module Crm
|
2
|
-
# The purpose of
|
2
|
+
# The purpose of a JustRelate WebCRM mailing is to send an email, e.g. a newsletter,
|
3
3
|
# to several recipients.
|
4
4
|
# The emails will be sent to the members of the contact collection associated with the mailing
|
5
5
|
# (+mailing.collection_id+).
|
6
6
|
#
|
7
|
-
#
|
7
|
+
# JustRelate WebCRM uses the {http://liquidmarkup.org/ Liquid template engine} for evaluating
|
8
8
|
# mailing content.
|
9
9
|
# @api public
|
10
10
|
class Mailing < Core::BasicResource
|
@@ -19,6 +19,16 @@ module Crm
|
|
19
19
|
# @!parse extend Core::Mixins::Modifiable::ClassMethods
|
20
20
|
# @!parse extend Core::Mixins::Searchable::ClassMethods
|
21
21
|
|
22
|
+
# Clones a mailing.
|
23
|
+
# @example
|
24
|
+
# mailing.clone
|
25
|
+
# # => Crm::Mailing
|
26
|
+
# @return [BasicResource] the cloned mailing.
|
27
|
+
# @api public
|
28
|
+
def clone
|
29
|
+
self.class.new(Core::RestApi.instance.post("#{path}/clone", {}))
|
30
|
+
end
|
31
|
+
|
22
32
|
# Renders a preview of the email for the given contact.
|
23
33
|
# @example
|
24
34
|
# mailing.html_body
|
@@ -0,0 +1,95 @@
|
|
1
|
+
module Crm
|
2
|
+
# MailingDelivery represents a mailing delivery.
|
3
|
+
# @api public
|
4
|
+
class MailingDelivery
|
5
|
+
include Core::Mixins::Inspectable
|
6
|
+
include Core::Mixins::AttributeProvider
|
7
|
+
|
8
|
+
inspectable :mailing_id, :id
|
9
|
+
|
10
|
+
def self.all(mailing_id, since: nil)
|
11
|
+
path = ['mailings', mailing_id, 'mailing_deliveries'].compact.join('/')
|
12
|
+
params = {}
|
13
|
+
case since
|
14
|
+
when Time
|
15
|
+
params[:since] = since.utc.xmlschema
|
16
|
+
when String
|
17
|
+
params[:since] = since
|
18
|
+
when nil
|
19
|
+
# ignore
|
20
|
+
else
|
21
|
+
raise "unknown class of since param: #{since.class}"
|
22
|
+
end
|
23
|
+
Core::RestApi.instance.get(path, params).map {|attrs| new({'mailing_id' => mailing_id}.merge(attrs))}
|
24
|
+
end
|
25
|
+
|
26
|
+
# Creates or updates a mailing delivery.
|
27
|
+
# @example
|
28
|
+
# Crm::MailingDelivery.create(mailing.id, "abc@example.com", {
|
29
|
+
# custom_data: {
|
30
|
+
# salutation: 'Hello You',
|
31
|
+
# },
|
32
|
+
# })
|
33
|
+
# @param mailing_id [String] the mailing ID
|
34
|
+
# @param id [String] the email address
|
35
|
+
# @param attributes [Hash{String, Symbol => String}] the new attributes.
|
36
|
+
# @return [self] the created or updated mailing delivery.
|
37
|
+
# @api public
|
38
|
+
def self.create(mailing_id, id, attributes = {})
|
39
|
+
new({'mailing_id' => mailing_id, 'id' => id}).update(attributes)
|
40
|
+
end
|
41
|
+
|
42
|
+
# Returns the requested mailing delivery.
|
43
|
+
# @example
|
44
|
+
# d = Crm::MailingDelivery.find(mailing.id, "abc@example.com")
|
45
|
+
# # => #<Crm::MailingDelivery mailing_id="94933088cec0014575ff920ee9830cfb", id="abc@example.com">
|
46
|
+
# @param mailing_id [String] the mailing ID
|
47
|
+
# @param id [String] the email address
|
48
|
+
# @return [MailingDelivery]
|
49
|
+
# @api public
|
50
|
+
def self.find(mailing_id, id)
|
51
|
+
raise Crm::Errors::ResourceNotFound.new("Items could not be found.", [mailing_id]) if mailing_id.blank?
|
52
|
+
raise Crm::Errors::ResourceNotFound.new("Items could not be found.", [id]) if id.blank?
|
53
|
+
|
54
|
+
new({'mailing_id' => mailing_id, 'id' => id}).reload
|
55
|
+
end
|
56
|
+
|
57
|
+
# Deletes the mailing delivery.
|
58
|
+
#
|
59
|
+
# @raise [Errors::ResourceConflict] if the item has been changed concurrently.
|
60
|
+
# {Core::BasicResource#reload Reload} it, review the changes and retry.
|
61
|
+
# @api public
|
62
|
+
def delete
|
63
|
+
Core::RestApi.instance.delete(path, nil, if_match_header)
|
64
|
+
nil
|
65
|
+
end
|
66
|
+
|
67
|
+
# Updates the attributes of this mailing delivery.
|
68
|
+
# @example
|
69
|
+
# mailing_delivery.update({
|
70
|
+
# custom_data: {
|
71
|
+
# salutation: 'Hello You',
|
72
|
+
# },
|
73
|
+
# })
|
74
|
+
# @param attributes [Hash{String, Symbol => String}] the new attributes.
|
75
|
+
# @return [self] the updated mailing delivery.
|
76
|
+
# @api public
|
77
|
+
def update(attributes = {})
|
78
|
+
load_attributes(Core::RestApi.instance.put(path, attributes, if_match_header))
|
79
|
+
end
|
80
|
+
|
81
|
+
def reload
|
82
|
+
load_attributes(Core::RestApi.instance.get(path))
|
83
|
+
end
|
84
|
+
|
85
|
+
private
|
86
|
+
|
87
|
+
def path
|
88
|
+
['mailings', mailing_id, 'mailing_deliveries', id].compact.join('/')
|
89
|
+
end
|
90
|
+
|
91
|
+
def if_match_header
|
92
|
+
{'If-Match' => self['version']}
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
data/lib/crm/template_set.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
module Crm
|
2
|
-
# +TemplateSet+ represents the
|
2
|
+
# +TemplateSet+ represents the JustRelate WebCRM template set singleton.
|
3
3
|
# The templates of the {.singleton template set singleton} can be used to render customized text,
|
4
4
|
# e.g. a mailing greeting or a password request email body (+password_request_email_body+).
|
5
5
|
#
|
6
|
-
#
|
6
|
+
# JustRelate WebCRM uses the {http://liquidmarkup.org/ Liquid template engine} for evaluating
|
7
7
|
# the templates.
|
8
8
|
# @api public
|
9
9
|
class TemplateSet < Core::BasicResource
|
data/lib/crm/type.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module Crm
|
2
|
-
#
|
2
|
+
# A JustRelate WebCRM type defines a set of attributes associated with every instance of the type.
|
3
3
|
# @example Listing all attributes of a type
|
4
4
|
# account_type = Crm::Type.find('account')
|
5
5
|
# # => Crm::Type
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: infopark_webcrm_sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- JustRelate Group GmbH
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-07-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actionpack
|
@@ -80,11 +80,11 @@ dependencies:
|
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '2.0'
|
83
|
-
description: "\n
|
84
|
-
\ For more information about
|
85
|
-
\ For more information about the
|
83
|
+
description: "\n JustRelate WebCRM is a professional cloud CRM built for Ruby.\n
|
84
|
+
\ For more information about JustRelate WebCRM, please visit https://justrelate.com/.\n
|
85
|
+
\ For more information about the JustRelate WebCRM SDK for Ruby, please visit\n
|
86
86
|
\ http://www.rubydoc.info/gems/infopark_webcrm_sdk\n "
|
87
|
-
email: info@
|
87
|
+
email: info@justrelate.com
|
88
88
|
executables: []
|
89
89
|
extensions: []
|
90
90
|
extra_rdoc_files: []
|
@@ -119,6 +119,7 @@ files:
|
|
119
119
|
- lib/crm/event.rb
|
120
120
|
- lib/crm/event_contact.rb
|
121
121
|
- lib/crm/mailing.rb
|
122
|
+
- lib/crm/mailing_delivery.rb
|
122
123
|
- lib/crm/mailing_recipient.rb
|
123
124
|
- lib/crm/template_set.rb
|
124
125
|
- lib/crm/type.rb
|
@@ -142,9 +143,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
142
143
|
- !ruby/object:Gem::Version
|
143
144
|
version: '0'
|
144
145
|
requirements: []
|
145
|
-
|
146
|
-
rubygems_version: 2.6.14.1
|
146
|
+
rubygems_version: 3.0.3
|
147
147
|
signing_key:
|
148
148
|
specification_version: 4
|
149
|
-
summary:
|
149
|
+
summary: JustRelate WebCRM SDK
|
150
150
|
test_files: []
|