mautic 2.4.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c03bde50c40a75d830eb7e281af2ecc36143b62a9db7b30647a26bb1044013d4
4
- data.tar.gz: 0eda55684550a7512e911792846a0d7646ba4da0a1a15a216ecc6836876deda5
3
+ metadata.gz: bcc9d407cc133d52f797f177e0b7c3f2d605a88250a4fd821d3c98c215b4971f
4
+ data.tar.gz: dfdebe03cc788179e1a50e29d06f0c0a355c0e97135815af608727c5a9779e70
5
5
  SHA512:
6
- metadata.gz: 7382580246a31dcc47c03fb1c9ef98168fd4a0429439b8b45794db9f8dc263d839866a3f3e4c0c4aeab741d074c8fa6029d0cef25be67e0a279b2f68b1d8d8c0
7
- data.tar.gz: 8e801c01c6aec779c05e7f858dfdfe45dc3ca06b21c86086e42f4f0a180a0251e1ab02bf4edb84ed0c2c91658b7e8e8f9370b81511b04324ed10efa2bbdf6e15
6
+ metadata.gz: 1074c4f45a5e034a8ad84e4f1ffe787093b8d65a771b89fa493debc4d1ede4f89cc19c88cdbadf85dd1d769ff320bf9c07d5d8772205d9f914740cb1e370d349
7
+ data.tar.gz: 731a48b00dd6bb42fe908c97fdbf14b0a8887b63858634e763e051570a16fab660bacc41a1f9f8515ad1557ab09768fc2c22ac2dd764d6269fceec1fd033e348
data/README.md CHANGED
@@ -94,11 +94,11 @@ end
94
94
  ```
95
95
  Get specify contact:
96
96
  ```ruby
97
- contact = m.contact.find(1) # => #<Mautic::Contact id=1 ...>
97
+ contact = m.contact.find(1) # => #<Mautic::Contact id=1 ...>
98
98
  ```
99
99
  Collections of contacts:
100
100
  ```ruby
101
- m.contacts.where("gmail").each do |contact|
101
+ m.contacts.where(search: "gmail").each do |contact|
102
102
  #<Mautic::Contact id=12 ...>
103
103
  #<Mautic::Contact id=21 ...>
104
104
  #<Mautic::Contact id=99 ...>
@@ -115,7 +115,7 @@ end
115
115
  contact.save # => false
116
116
  contact.errors # => [{"code"=>400, "message"=>"email: This field is required.", "details"=>{"email"=>["This field is required."]}}]
117
117
  ```
118
- Do not contact
118
+ #### Do not contact
119
119
  ```ruby
120
120
  contact.do_not_contact? # => false
121
121
  contact.do_not_contact! message: "Some reason"
@@ -127,6 +127,18 @@ end
127
127
  contact.remove_do_not_contact!
128
128
  contact.do_not_contact? # => false
129
129
  ```
130
+ #### Campaigns
131
+ list of contacts campaigns (where contact is a member) and remove it from one
132
+ ```ruby
133
+ contact.campaigns #=> [Mautic::Campaign, ...]
134
+ campaign = contact.campaigns.find { |campaign| campaign.name == "Newsletter" }
135
+ campaign.remove_contact! contact.id
136
+ ```
137
+ or add contact back
138
+ ```ruby
139
+ campaign = connection.campaigns.where(search: "Newsletter").first
140
+ campaign.add_contact! contact.id
141
+ ```
130
142
  Of course you can use more than contact: `assets`, `emails`, `companies`, `forms`, `points` ...
131
143
  ### Gem provides simple Mautic form submit
132
144
  There are two options of usage:
@@ -0,0 +1,11 @@
1
+ module Mautic
2
+ class CompanyField < Model
3
+ def self.endpoint
4
+ "fields/company"
5
+ end
6
+
7
+ def self.in(connection)
8
+ Proxy.new(connection, endpoint, klass: name, data_name: "field")
9
+ end
10
+ end
11
+ end
@@ -95,7 +95,7 @@ module Mautic
95
95
  end
96
96
 
97
97
  def try_to_refresh_and_parse(response)
98
- raise Mautic::TokenExpiredError, response if @try_to_refresh
98
+ raise Mautic::TokenExpiredError, response.response&.body if @try_to_refresh
99
99
 
100
100
  @try_to_refresh = true
101
101
  refresh!
@@ -27,6 +27,8 @@ module Mautic
27
27
  @connection = connection.refresh!
28
28
  update(token: @connection.token, refresh_token: @connection.refresh_token)
29
29
  @connection
30
+ rescue StandardError
31
+ raise ::Mautic::TokenExpiredError, "your refresh_token is probably expired - re-authorize your connection"
30
32
  end
31
33
 
32
34
  def request(type, path, params = {})
@@ -1,6 +1,9 @@
1
1
  module Mautic
2
2
  class Contact < Model
3
3
 
4
+ around_create :ensure_stage, if: ->(contact) { contact.changes.has_key?(:stage_id) }
5
+ around_update :ensure_stage, if: ->(contact) { contact.changes.has_key?(:stage_id) }
6
+
4
7
  alias_attribute :first_name, :firstname
5
8
  alias_attribute :last_name, :lastname
6
9
 
@@ -41,11 +44,13 @@ module Mautic
41
44
 
42
45
  if source
43
46
  self.owner = source['owner'] || {}
47
+ self.stage = source['stage'] || {}
44
48
  tags = (source['tags'] || []).map { |t| Mautic::Tag.new(self, t) }.sort_by(&:name)
45
49
  self.attributes = {
46
50
  tags: Tag::Collection.new(self, *tags),
47
51
  doNotContact: source['doNotContact'] || [],
48
52
  owner: owner['id'],
53
+ stage_id: stage&.id,
49
54
  }
50
55
  end
51
56
  end
@@ -134,11 +139,47 @@ module Mautic
134
139
 
135
140
  # !endgroup
136
141
 
142
+ # @!group Stage
143
+
144
+ # @return [Mautic::Stage, nil]
145
+ def stage
146
+ @stage
147
+ end
148
+
149
+ # @param [Mautic:::Stage,Hash, nil] hash
150
+ def stage=(object_or_hash)
151
+ @stage = case object_or_hash
152
+ when Mautic::Stage
153
+ object_or_hash
154
+ when Hash
155
+ Mautic::Stage.new(connection, object_or_hash)
156
+ end
157
+ @table[:stage_id] = @stage&.id
158
+ @stage
159
+ end
160
+
161
+ # !endgroup
162
+
137
163
  private
138
164
 
139
165
  def clear_change
140
166
  super
141
167
  remove_instance_variable :@do_not_contact
142
168
  end
169
+
170
+ # Add or Remove contact in stage after contact save
171
+ def ensure_stage
172
+ stage_id_change = changes[:stage_id]
173
+ yield
174
+ if stage_id_change
175
+ self.stage = Mautic::Stage.in(connection).find(stage_id_change)
176
+ stage.add_contact!(id)
177
+ @table[:stage_id] = stage.id
178
+ else
179
+ stage.remove_contact!(id)
180
+ @table.delete(:stage_id)
181
+ end
182
+ clear_changes
183
+ end
143
184
  end
144
- end
185
+ end
@@ -0,0 +1,11 @@
1
+ module Mautic
2
+ class ContactField < Model
3
+ def self.endpoint
4
+ "fields/contact"
5
+ end
6
+
7
+ def self.in(connection)
8
+ Proxy.new(connection, endpoint, klass: name, data_name: "field")
9
+ end
10
+ end
11
+ end
@@ -5,5 +5,34 @@ module Mautic
5
5
  self.attributes = { name: source['name'], fields: source['fields'] } if source.is_a? Hash
6
6
  end
7
7
 
8
+ # @param [Integer] submission_id
9
+ # @return Mautic::Submissions::Form
10
+ # @see https://developer.mautic.org/#get-form-submission
11
+ def submission(submission_id)
12
+ json = @connection.request(:get, "api/forms/#{id}/submissions/#{submission_id}")
13
+ Mautic::Submissions::Form.new @connection, json["submission"]
14
+ rescue Mautic::RecordNotFound => _e
15
+ nil
16
+ end
17
+
18
+ # @see https://developer.mautic.org/#list-form-submissions
19
+ # @param [Hash] options
20
+ # @option options [String] :search String or search command to filter entities by.
21
+ # @option options [String] :start Starting row for the entities returned. Defaults to 0.
22
+ # @option options [String] :limit Limit number of entities to return. Defaults to the system configuration for pagination (30).
23
+ # @option options [String] :orderBy Column to sort by. Can use any column listed in the response, also can use column of joined table with prefix. Sort by submitted date is s.date_submitted
24
+ # @option options [String] :orderByDir Sort direction: asc or desc.
25
+ # @option options [String] :publishedOnly Only return currently published entities.
26
+ # @option options [String] :minimal Return only array of entities without additional lists in it.
27
+ # @return Array[Mautic::Submissions::Form]
28
+ def submissions(**options)
29
+ json = @connection.request(:get, "api/forms/#{id}/submissions", params: options)
30
+ @submissions = json["submissions"].collect do |attributes|
31
+ Mautic::Submissions::Form.new @connection, attributes
32
+ end
33
+ rescue RequestError => _e
34
+ []
35
+ end
36
+
8
37
  end
9
- end
38
+ end
@@ -0,0 +1,22 @@
1
+ module Mautic
2
+ class Stage < Model
3
+
4
+ # @see https://developer.mautic.org/#add-contact-to-a-stage
5
+ # @param [Integer] id of Mautic::Contact
6
+ def add_contact!(id)
7
+ json = @connection.request(:post, "api/stages/#{self.id}/contact/#{id}/add")
8
+ json["success"]
9
+ rescue RequestError => _e
10
+ false
11
+ end
12
+
13
+ # @see https://developer.mautic.org/#remove-contact-from-a-stage
14
+ # @param [Integer] id of Mautic::Contact
15
+ def remove_contact!(id)
16
+ json = @connection.request(:post, "api/stages/#{self.id}/contact/#{id}/remove")
17
+ json["success"]
18
+ rescue RequestError => _e
19
+ false
20
+ end
21
+ end
22
+ end
@@ -12,7 +12,7 @@ module Mautic
12
12
 
13
13
  def form_submissions
14
14
  @forms ||= Array.wrap(@params.require("mautic.form_on_submit")).collect do |data|
15
- p = data.permit(submission: [:id, :referer, form: {}, lead: {}, results: {}]).to_h
15
+ p = data.permit(submission: [:id, :referer, form: {}, lead: {}, results: {}, ipAddress: {}]).to_h
16
16
  ::Mautic::Submissions::Form.new(@connection, p["submission"]) if p["submission"]
17
17
  end.compact
18
18
  end
@@ -2,8 +2,6 @@
2
2
  <html>
3
3
  <head>
4
4
  <title>Mautic</title>
5
- <%= stylesheet_link_tag "mautic/application", media: "all" %>
6
- <%= javascript_include_tag "mautic/application" %>
7
5
  <%= csrf_meta_tags %>
8
6
  </head>
9
7
  <body>
@@ -1,4 +1,5 @@
1
- class CreateMauticMauticConnections < Mautic::DummyMigrationClass
1
+ class CreateMauticMauticConnections < ActiveRecord::Migration[6.0]
2
+
2
3
  def change
3
4
  create_table :mautic_connections do |t|
4
5
  t.string :type
@@ -10,7 +11,8 @@ class CreateMauticMauticConnections < Mautic::DummyMigrationClass
10
11
  t.string :token
11
12
  t.string :refresh_token
12
13
 
13
- t.timestamps null: false
14
+ t.timestamps
14
15
  end
15
16
  end
16
- end
17
+
18
+ end
data/lib/mautic/model.rb CHANGED
@@ -2,6 +2,7 @@ module Mautic
2
2
  # Virtual model for Mautic endpoint
3
3
  # @see https://developer.mautic.org/#endpoints
4
4
  class Model < OpenStruct
5
+ extend ActiveModel::Callbacks
5
6
 
6
7
  class MauticHash < Hash
7
8
 
@@ -37,6 +38,8 @@ module Mautic
37
38
 
38
39
  end
39
40
 
41
+ define_model_callbacks :create, :update, :save
42
+
40
43
  attr_reader :connection
41
44
  attr_accessor :errors
42
45
  attr_writer :changed
@@ -55,15 +58,19 @@ module Mautic
55
58
  end
56
59
 
57
60
  def save(force = false)
58
- id.present? ? update(force) : create
61
+ run_callbacks :save do
62
+ id.present? ? update(force) : create
63
+ end
59
64
  end
60
65
 
61
66
  def update(force = false)
62
67
  return false unless changed?
63
68
 
64
69
  begin
65
- json = @connection.request((force && :put || :patch), "api/#{endpoint}/#{id}/edit", body: to_mautic)
66
- assign_attributes json[endpoint.singularize]
70
+ run_callbacks :create do
71
+ json = @connection.request((force && :put || :patch), "api/#{endpoint}/#{id}/edit", body: to_mautic)
72
+ assign_attributes json[endpoint.singularize]
73
+ end
67
74
  clear_changes
68
75
  rescue ValidationError => e
69
76
  self.errors = e.errors
@@ -82,8 +89,10 @@ module Mautic
82
89
 
83
90
  def create
84
91
  begin
85
- json = @connection.request(:post, "api/#{endpoint}/#{id && "#{id}/"}new", body: to_mautic)
86
- assign_attributes json[endpoint.singularize]
92
+ run_callbacks :create do
93
+ json = @connection.request(:post, "api/#{endpoint}/#{id && "#{id}/"}new", body: to_mautic)
94
+ assign_attributes json[endpoint.singularize]
95
+ end
87
96
  clear_changes
88
97
  rescue ValidationError => e
89
98
  self.errors = e.errors
@@ -124,14 +133,14 @@ module Mautic
124
133
  end
125
134
 
126
135
  def to_mautic(data = @table)
127
- data.each_with_object({}) do |(key, val), mem|
128
- mem[key] = if val.respond_to?(:to_mautic)
129
- val.to_mautic
130
- elsif val.is_a?(Array)
131
- val.join("|")
132
- else
133
- val
134
- end
136
+ data.transform_values do |val|
137
+ if val.respond_to?(:to_mautic)
138
+ val.to_mautic
139
+ elsif val.is_a?(Array)
140
+ val.join("|")
141
+ else
142
+ val
143
+ end
135
144
  end
136
145
  end
137
146
 
data/lib/mautic/proxy.rb CHANGED
@@ -14,7 +14,7 @@ module Mautic
14
14
  end
15
15
 
16
16
  def data_name
17
- @endpoint.split("/").last
17
+ @options[:data_name] || @endpoint.split("/").last
18
18
  end
19
19
 
20
20
  def build_instance(data)
@@ -79,4 +79,4 @@ module Mautic
79
79
  end
80
80
 
81
81
  end
82
- end
82
+ end
@@ -1,5 +1,6 @@
1
1
  module Mautic
2
2
  module Submissions
3
+ # @see https://developer.mautic.org/#get-form-submissions
3
4
  class Form
4
5
  attr_reader :id
5
6
 
@@ -31,11 +32,26 @@ module Mautic
31
32
  @contact ||= @connection.contacts.new(@raw["lead"])
32
33
  end
33
34
 
35
+ # @return [Hash]
36
+ def ip_details
37
+ ip_address["ipDetails"] || {}
38
+ end
39
+
40
+ # @return [Hash]
41
+ def ip_address
42
+ @raw["ipAddress"] || {}
43
+ end
44
+
34
45
  # @return [String]
35
46
  def referer
36
47
  @raw["referer"].to_s
37
48
  end
38
49
 
50
+ # @return [Hash]
51
+ def results
52
+ @raw["results"]
53
+ end
54
+
39
55
  end
40
56
  end
41
57
  end
@@ -1,3 +1,3 @@
1
1
  module Mautic
2
- VERSION = '2.4.0'
2
+ VERSION = '3.0.0'
3
3
  end
data/lib/mautic.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require "oauth2"
2
+ require "ostruct"
2
3
  require "mautic/engine"
3
4
 
4
5
  module Mautic
@@ -17,31 +18,39 @@ module Mautic
17
18
  @errors ||= []
18
19
  @response = response
19
20
  @request_url = response.response&.env&.url
21
+ unless message
22
+ json_body = parse_response(response)
23
+ message = Array(json_body['errors']).collect do |error|
24
+ msg = error['code'].to_s
25
+ msg << " (#{error['type']}):" if error['type']
26
+ msg << " #{error['message']}"
27
+ @errors << error['message']
28
+ msg
29
+ end.join(', ')
30
+ end
31
+
32
+ super("#{@request_url} => #{message}")
33
+ end
34
+
35
+ private
36
+
37
+ def parse_response(response)
20
38
  body = if response.body.start_with? "<!DOCTYPE html>"
21
39
  response.body.split("\n").last
22
40
  else
23
41
  response.body
24
42
  end
25
43
 
26
- json_body = begin
27
- JSON.parse(body)
28
- rescue JSON::ParserError
29
- { "errors" => [{ "code" => response.status, "message" => body }] }
30
- end
31
- message ||= Array(json_body['errors']).collect do |error|
32
- msg = error['code'].to_s
33
- msg << " (#{error['type']}):" if error['type']
34
- msg << " #{error['message']}"
35
- @errors << error['message']
36
- msg
37
- end.join(', ')
38
-
39
- super("#{@request_url} => #{message}")
44
+ begin
45
+ JSON.parse(body)
46
+ rescue JSON::ParserError
47
+ { "errors" => [{ "code" => response.status, "message" => body }] }
48
+ end
40
49
  end
41
50
 
42
51
  end
43
52
 
44
- class TokenExpiredError < RequestError
53
+ class TokenExpiredError < StandardError
45
54
  end
46
55
 
47
56
  class ValidationError < RequestError
@@ -78,12 +87,4 @@ module Mautic
78
87
  end
79
88
  # Your code goes here...
80
89
 
81
- if Rails.version.start_with? "4"
82
- class DummyMigrationClass < ActiveRecord::Migration
83
- end
84
- else
85
- class DummyMigrationClass < ActiveRecord::Migration[4.2]
86
- end
87
- end
88
-
89
90
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mautic
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lukáš Pokorný
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-26 00:00:00.000000000 Z
11
+ date: 2022-02-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -16,28 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 4.2.8
19
+ version: 6.0.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 4.2.8
26
+ version: 6.0.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: oauth2
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.4'
33
+ version: 1.4.9
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.4'
40
+ version: 1.4.9
41
+ - !ruby/object:Gem::Dependency
42
+ name: ostruct
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.5.3
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.5.3
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rest-client
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -53,103 +67,103 @@ dependencies:
53
67
  - !ruby/object:Gem::Version
54
68
  version: '2.0'
55
69
  - !ruby/object:Gem::Dependency
56
- name: sqlite3
70
+ name: database_cleaner
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
73
  - - "~>"
60
74
  - !ruby/object:Gem::Version
61
- version: '1.4'
75
+ version: '1.7'
62
76
  type: :development
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
80
  - - "~>"
67
81
  - !ruby/object:Gem::Version
68
- version: '1.4'
82
+ version: '1.7'
69
83
  - !ruby/object:Gem::Dependency
70
- name: rspec-rails
84
+ name: factory_bot_rails
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
87
  - - "~>"
74
88
  - !ruby/object:Gem::Version
75
- version: '3.9'
89
+ version: '5.1'
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
94
  - - "~>"
81
95
  - !ruby/object:Gem::Version
82
- version: '3.9'
96
+ version: '5.1'
83
97
  - !ruby/object:Gem::Dependency
84
- name: factory_bot_rails
98
+ name: faker
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
101
  - - "~>"
88
102
  - !ruby/object:Gem::Version
89
- version: '5.1'
103
+ version: '2.7'
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
108
  - - "~>"
95
109
  - !ruby/object:Gem::Version
96
- version: '5.1'
110
+ version: '2.7'
97
111
  - !ruby/object:Gem::Dependency
98
- name: database_cleaner
112
+ name: pry-rails
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
115
  - - "~>"
102
116
  - !ruby/object:Gem::Version
103
- version: '1.7'
117
+ version: '0.3'
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
122
  - - "~>"
109
123
  - !ruby/object:Gem::Version
110
- version: '1.7'
124
+ version: '0.3'
111
125
  - !ruby/object:Gem::Dependency
112
- name: faker
126
+ name: rspec-rails
113
127
  requirement: !ruby/object:Gem::Requirement
114
128
  requirements:
115
129
  - - "~>"
116
130
  - !ruby/object:Gem::Version
117
- version: '2.7'
131
+ version: '5.1'
118
132
  type: :development
119
133
  prerelease: false
120
134
  version_requirements: !ruby/object:Gem::Requirement
121
135
  requirements:
122
136
  - - "~>"
123
137
  - !ruby/object:Gem::Version
124
- version: '2.7'
138
+ version: '5.1'
125
139
  - !ruby/object:Gem::Dependency
126
- name: webmock
140
+ name: sqlite3
127
141
  requirement: !ruby/object:Gem::Requirement
128
142
  requirements:
129
143
  - - "~>"
130
144
  - !ruby/object:Gem::Version
131
- version: '3.7'
145
+ version: '1.4'
132
146
  type: :development
133
147
  prerelease: false
134
148
  version_requirements: !ruby/object:Gem::Requirement
135
149
  requirements:
136
150
  - - "~>"
137
151
  - !ruby/object:Gem::Version
138
- version: '3.7'
152
+ version: '1.4'
139
153
  - !ruby/object:Gem::Dependency
140
- name: pry-rails
154
+ name: webmock
141
155
  requirement: !ruby/object:Gem::Requirement
142
156
  requirements:
143
157
  - - "~>"
144
158
  - !ruby/object:Gem::Version
145
- version: '0.3'
159
+ version: '3.7'
146
160
  type: :development
147
161
  prerelease: false
148
162
  version_requirements: !ruby/object:Gem::Requirement
149
163
  requirements:
150
164
  - - "~>"
151
165
  - !ruby/object:Gem::Version
152
- version: '0.3'
166
+ version: '3.7'
153
167
  description: Rails client for Mautic API. Provide wrapper for push to mautic form
154
168
  email:
155
169
  - pokorny@luk4s.cz
@@ -160,12 +174,6 @@ files:
160
174
  - MIT-LICENSE
161
175
  - README.md
162
176
  - Rakefile
163
- - app/assets/config/mautic_manifest.js
164
- - app/assets/javascripts/mautic/application.js
165
- - app/assets/javascripts/mautic/mautic_connections.js
166
- - app/assets/stylesheets/mautic/application.css
167
- - app/assets/stylesheets/mautic/mautic_connections.css
168
- - app/assets/stylesheets/scaffold.css
169
177
  - app/controllers/concerns/mautic/connections_controller_concern.rb
170
178
  - app/controllers/concerns/mautic/receive_web_hooks.rb
171
179
  - app/controllers/mautic/application_controller.rb
@@ -175,11 +183,14 @@ files:
175
183
  - app/mailers/mautic/application_mailer.rb
176
184
  - app/models/mautic/application_record.rb
177
185
  - app/models/mautic/campaign.rb
186
+ - app/models/mautic/company_field.rb
178
187
  - app/models/mautic/connection.rb
179
188
  - app/models/mautic/connections/oauth2.rb
180
189
  - app/models/mautic/contact.rb
190
+ - app/models/mautic/contact_field.rb
181
191
  - app/models/mautic/event.rb
182
192
  - app/models/mautic/form.rb
193
+ - app/models/mautic/stage.rb
183
194
  - app/models/mautic/tag.rb
184
195
  - app/models/mautic/web_hook.rb
185
196
  - app/views/layouts/mautic/application.html.erb
@@ -216,14 +227,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
216
227
  requirements:
217
228
  - - ">="
218
229
  - !ruby/object:Gem::Version
219
- version: '2.3'
230
+ version: '2.5'
220
231
  required_rubygems_version: !ruby/object:Gem::Requirement
221
232
  requirements:
222
233
  - - ">="
223
234
  - !ruby/object:Gem::Version
224
235
  version: '0'
225
236
  requirements: []
226
- rubygems_version: 3.0.6
237
+ rubygems_version: 3.1.4
227
238
  signing_key:
228
239
  specification_version: 4
229
240
  summary: Ruby on Rails Mautic integration
@@ -1,2 +0,0 @@
1
- //= link_directory ../javascripts/mautic .js
2
- //= link_directory ../stylesheets/mautic .css
@@ -1,14 +0,0 @@
1
- // This is a manifest file that'll be compiled into application.js, which will include all the files
2
- // listed below.
3
- //
4
- // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
- // or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
6
- //
7
- // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
- // compiled file. JavaScript code in this file should be added after the last require_* statement.
9
- //
10
- // Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
11
- // about supported directives.
12
- //
13
- // require rails-ujs
14
- //= require_tree .
@@ -1,2 +0,0 @@
1
- // Place all the behaviors and hooks related to the matching controller here.
2
- // All this logic will automatically be available in application.js.
@@ -1,15 +0,0 @@
1
- /*
2
- * This is a manifest file that'll be compiled into application.css, which will include all the files
3
- * listed below.
4
- *
5
- * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
- * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
7
- *
8
- * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9
- * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
10
- * files in this directory. Styles in this file should be added after the last require_* statement.
11
- * It is generally better to create a new file per style scope.
12
- *
13
- *= require_tree .
14
- *= require_self
15
- */
@@ -1,4 +0,0 @@
1
- /*
2
- Place all the styles related to the matching controller here.
3
- They will automatically be included in application.css.
4
- */
@@ -1,80 +0,0 @@
1
- body {
2
- background-color: #fff;
3
- color: #333;
4
- margin: 33px;
5
- }
6
-
7
- body, p, ol, ul, td {
8
- font-family: verdana, arial, helvetica, sans-serif;
9
- font-size: 13px;
10
- line-height: 18px;
11
- }
12
-
13
- pre {
14
- background-color: #eee;
15
- padding: 10px;
16
- font-size: 11px;
17
- }
18
-
19
- a {
20
- color: #000;
21
- }
22
-
23
- a:visited {
24
- color: #666;
25
- }
26
-
27
- a:hover {
28
- color: #fff;
29
- background-color: #000;
30
- }
31
-
32
- th {
33
- padding-bottom: 5px;
34
- }
35
-
36
- td {
37
- padding: 0 5px 7px;
38
- }
39
-
40
- div.field,
41
- div.actions {
42
- margin-bottom: 10px;
43
- }
44
-
45
- #notice {
46
- color: green;
47
- }
48
-
49
- .field_with_errors {
50
- padding: 2px;
51
- background-color: red;
52
- display: table;
53
- }
54
-
55
- #error_explanation {
56
- width: 450px;
57
- border: 2px solid red;
58
- padding: 7px 7px 0;
59
- margin-bottom: 20px;
60
- background-color: #f0f0f0;
61
- }
62
-
63
- #error_explanation h2 {
64
- text-align: left;
65
- font-weight: bold;
66
- padding: 5px 5px 5px 15px;
67
- font-size: 12px;
68
- margin: -7px -7px 0;
69
- background-color: #c00;
70
- color: #fff;
71
- }
72
-
73
- #error_explanation ul li {
74
- font-size: 12px;
75
- list-style: square;
76
- }
77
-
78
- label {
79
- display: block;
80
- }