maestrano-connector-rails 0.0.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +3 -2
- data/Gemfile.lock +52 -45
- data/VERSION +1 -1
- data/app/controllers/maestrano/application_controller.rb +1 -1
- data/app/jobs/maestrano/connector/rails/synchronization_job.rb +3 -2
- data/app/models/maestrano/connector/rails/concerns/entity.rb +5 -0
- data/app/models/maestrano/connector/rails/id_map.rb +1 -0
- data/app/models/maestrano/connector/rails/organization.rb +2 -0
- data/app/models/maestrano/connector/rails/synchronization.rb +2 -0
- data/app/models/maestrano/connector/rails/user.rb +2 -0
- data/app/models/maestrano/connector/rails/user_organization_rel.rb +2 -0
- data/lib/generators/connector/templates/admin_controller.rb +1 -1
- data/maestrano-connector-rails.gemspec +14 -14
- data/pkg/maestrano-connector-rails-0.0.1.gem +0 -0
- data/spec/dummy/app/controllers/admin_controller.rb +1 -1
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/schema.rb +1 -1
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/jobs/syncrhonization_job_spec.rb +13 -11
- metadata +26 -15
- data/spec/dummy/db/migrate/20151209134445_create_maestrano_connector_rails_users.maestrano_connector_rails.rb +0 -17
- data/spec/dummy/db/migrate/20151209134446_create_maestrano_connector_rails_organizations.maestrano_connector_rails.rb +0 -22
- data/spec/dummy/db/migrate/20151209134447_create_maestrano_connector_rails_user_organization_rels.maestrano_connector_rails.rb +0 -13
- data/spec/dummy/db/migrate/20151209134448_create_maestrano_connector_rails_synchronizations.maestrano_connector_rails.rb +0 -14
- data/spec/dummy/db/migrate/20151209134449_create_maestrano_connector_rails_id_maps.maestrano_connector_rails.rb +0 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c188e34977256c1d84f9fd43bd026233acf2833f
|
4
|
+
data.tar.gz: d7cf8ca5aa83e6ab639fa1ca2b71ef7a48614f47
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0ce346b75f378364d2d74922f6c0950713ec1b9f8f6dec9753e2194a2b2be0631d6acc8a6dfbd1c96b8d8c15dbfa638e8b58829eb62f98e6d2e2e705cb22e81e
|
7
|
+
data.tar.gz: 4d1c4050ee4ac5a88ed3c722d8ff3663de69ba5a69d105a60263d046d13b661bdce424c427f045ea9136cf6d27b4fd89cd6c7f8edd903eff622614964e189f78
|
data/Gemfile
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
2
|
|
3
3
|
# Add dependencies required to use your gem here.
|
4
|
-
gem 'maestrano-rails'
|
5
|
-
gem 'hash_mapper'
|
4
|
+
gem 'maestrano-rails'
|
5
|
+
gem 'hash_mapper'
|
6
|
+
gem 'sidekiq'
|
6
7
|
|
7
8
|
# Add dependencies to develop your gem here.
|
8
9
|
group :development do
|
data/Gemfile.lock
CHANGED
@@ -1,36 +1,36 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
actionmailer (4.2.5)
|
5
|
-
actionpack (= 4.2.5)
|
6
|
-
actionview (= 4.2.5)
|
7
|
-
activejob (= 4.2.5)
|
4
|
+
actionmailer (4.2.5.1)
|
5
|
+
actionpack (= 4.2.5.1)
|
6
|
+
actionview (= 4.2.5.1)
|
7
|
+
activejob (= 4.2.5.1)
|
8
8
|
mail (~> 2.5, >= 2.5.4)
|
9
9
|
rails-dom-testing (~> 1.0, >= 1.0.5)
|
10
|
-
actionpack (4.2.5)
|
11
|
-
actionview (= 4.2.5)
|
12
|
-
activesupport (= 4.2.5)
|
10
|
+
actionpack (4.2.5.1)
|
11
|
+
actionview (= 4.2.5.1)
|
12
|
+
activesupport (= 4.2.5.1)
|
13
13
|
rack (~> 1.6)
|
14
14
|
rack-test (~> 0.6.2)
|
15
15
|
rails-dom-testing (~> 1.0, >= 1.0.5)
|
16
16
|
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
17
|
-
actionview (4.2.5)
|
18
|
-
activesupport (= 4.2.5)
|
17
|
+
actionview (4.2.5.1)
|
18
|
+
activesupport (= 4.2.5.1)
|
19
19
|
builder (~> 3.1)
|
20
20
|
erubis (~> 2.7.0)
|
21
21
|
rails-dom-testing (~> 1.0, >= 1.0.5)
|
22
22
|
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
23
|
-
activejob (4.2.5)
|
24
|
-
activesupport (= 4.2.5)
|
23
|
+
activejob (4.2.5.1)
|
24
|
+
activesupport (= 4.2.5.1)
|
25
25
|
globalid (>= 0.3.0)
|
26
|
-
activemodel (4.2.5)
|
27
|
-
activesupport (= 4.2.5)
|
26
|
+
activemodel (4.2.5.1)
|
27
|
+
activesupport (= 4.2.5.1)
|
28
28
|
builder (~> 3.1)
|
29
|
-
activerecord (4.2.5)
|
30
|
-
activemodel (= 4.2.5)
|
31
|
-
activesupport (= 4.2.5)
|
29
|
+
activerecord (4.2.5.1)
|
30
|
+
activemodel (= 4.2.5.1)
|
31
|
+
activesupport (= 4.2.5.1)
|
32
32
|
arel (~> 6.0)
|
33
|
-
activesupport (4.2.5)
|
33
|
+
activesupport (4.2.5.1)
|
34
34
|
i18n (~> 0.7)
|
35
35
|
json (~> 1.7, >= 1.7.7)
|
36
36
|
minitest (~> 5.1)
|
@@ -40,16 +40,17 @@ GEM
|
|
40
40
|
arel (6.0.3)
|
41
41
|
builder (3.2.2)
|
42
42
|
concurrent-ruby (1.0.0)
|
43
|
+
connection_pool (2.2.0)
|
43
44
|
descendants_tracker (0.0.4)
|
44
45
|
thread_safe (~> 0.3, >= 0.3.1)
|
45
46
|
diff-lcs (1.2.5)
|
46
47
|
docile (1.1.5)
|
47
|
-
domain_name (0.5.
|
48
|
+
domain_name (0.5.20160128)
|
48
49
|
unf (>= 0.0.5, < 1.0.0)
|
49
50
|
erubis (2.7.0)
|
50
51
|
factory_girl (4.5.0)
|
51
52
|
activesupport (>= 3.0.0)
|
52
|
-
factory_girl_rails (4.
|
53
|
+
factory_girl_rails (4.6.0)
|
53
54
|
factory_girl (~> 4.5.0)
|
54
55
|
railties (>= 3.0.0)
|
55
56
|
faraday (0.9.2)
|
@@ -88,7 +89,7 @@ GEM
|
|
88
89
|
railties (>= 4.2.0)
|
89
90
|
thor (>= 0.14, < 2.0)
|
90
91
|
json (1.8.3)
|
91
|
-
jwt (1.5.
|
92
|
+
jwt (1.5.1)
|
92
93
|
loofah (2.0.3)
|
93
94
|
nokogiri (>= 1.5.9)
|
94
95
|
macaddr (1.7.1)
|
@@ -108,32 +109,32 @@ GEM
|
|
108
109
|
mime-types (>= 1.16, < 3)
|
109
110
|
mime-types (1.25.1)
|
110
111
|
mini_portile2 (2.0.0)
|
111
|
-
minitest (5.8.
|
112
|
+
minitest (5.8.4)
|
112
113
|
multi_json (1.11.2)
|
113
114
|
multi_xml (0.5.5)
|
114
115
|
multipart-post (2.0.0)
|
115
116
|
netrc (0.11.0)
|
116
117
|
nokogiri (1.6.7.2)
|
117
118
|
mini_portile2 (~> 2.0.0.rc2)
|
118
|
-
oauth2 (1.
|
119
|
+
oauth2 (1.1.0)
|
119
120
|
faraday (>= 0.8, < 0.10)
|
120
|
-
jwt (~> 1.0)
|
121
|
+
jwt (~> 1.0, < 1.5.2)
|
121
122
|
multi_json (~> 1.3)
|
122
123
|
multi_xml (~> 0.5)
|
123
|
-
rack (
|
124
|
+
rack (>= 1.2, < 3)
|
124
125
|
rack (1.6.4)
|
125
126
|
rack-test (0.6.3)
|
126
127
|
rack (>= 1.0)
|
127
|
-
rails (4.2.5)
|
128
|
-
actionmailer (= 4.2.5)
|
129
|
-
actionpack (= 4.2.5)
|
130
|
-
actionview (= 4.2.5)
|
131
|
-
activejob (= 4.2.5)
|
132
|
-
activemodel (= 4.2.5)
|
133
|
-
activerecord (= 4.2.5)
|
134
|
-
activesupport (= 4.2.5)
|
128
|
+
rails (4.2.5.1)
|
129
|
+
actionmailer (= 4.2.5.1)
|
130
|
+
actionpack (= 4.2.5.1)
|
131
|
+
actionview (= 4.2.5.1)
|
132
|
+
activejob (= 4.2.5.1)
|
133
|
+
activemodel (= 4.2.5.1)
|
134
|
+
activerecord (= 4.2.5.1)
|
135
|
+
activesupport (= 4.2.5.1)
|
135
136
|
bundler (>= 1.3.0, < 2.0)
|
136
|
-
railties (= 4.2.5)
|
137
|
+
railties (= 4.2.5.1)
|
137
138
|
sprockets-rails
|
138
139
|
rails-deprecated_sanitizer (1.0.3)
|
139
140
|
activesupport (>= 4.2.0.alpha)
|
@@ -141,29 +142,30 @@ GEM
|
|
141
142
|
activesupport (>= 4.2.0.beta, < 5.0)
|
142
143
|
nokogiri (~> 1.6.0)
|
143
144
|
rails-deprecated_sanitizer (>= 1.0.1)
|
144
|
-
rails-html-sanitizer (1.0.
|
145
|
+
rails-html-sanitizer (1.0.3)
|
145
146
|
loofah (~> 2.0)
|
146
|
-
railties (4.2.5)
|
147
|
-
actionpack (= 4.2.5)
|
148
|
-
activesupport (= 4.2.5)
|
147
|
+
railties (4.2.5.1)
|
148
|
+
actionpack (= 4.2.5.1)
|
149
|
+
activesupport (= 4.2.5.1)
|
149
150
|
rake (>= 0.8.7)
|
150
151
|
thor (>= 0.18.1, < 2.0)
|
151
152
|
rake (10.5.0)
|
152
153
|
rdoc (3.12.2)
|
153
154
|
json (~> 1.4)
|
155
|
+
redis (3.2.2)
|
154
156
|
rest-client (1.8.0)
|
155
157
|
http-cookie (>= 1.0.2, < 2.0)
|
156
158
|
mime-types (>= 1.16, < 3.0)
|
157
159
|
netrc (~> 0.7)
|
158
|
-
rspec-core (3.4.
|
160
|
+
rspec-core (3.4.2)
|
159
161
|
rspec-support (~> 3.4.0)
|
160
162
|
rspec-expectations (3.4.0)
|
161
163
|
diff-lcs (>= 1.2.0, < 2.0)
|
162
164
|
rspec-support (~> 3.4.0)
|
163
|
-
rspec-mocks (3.4.
|
165
|
+
rspec-mocks (3.4.1)
|
164
166
|
diff-lcs (>= 1.2.0, < 2.0)
|
165
167
|
rspec-support (~> 3.4.0)
|
166
|
-
rspec-rails (3.4.
|
168
|
+
rspec-rails (3.4.2)
|
167
169
|
actionpack (>= 3.0, < 4.3)
|
168
170
|
activesupport (>= 3.0, < 4.3)
|
169
171
|
railties (>= 3.0, < 4.3)
|
@@ -178,7 +180,11 @@ GEM
|
|
178
180
|
shoulda-context (1.2.1)
|
179
181
|
shoulda-matchers (2.8.0)
|
180
182
|
activesupport (>= 3.0.0)
|
181
|
-
|
183
|
+
sidekiq (4.1.0)
|
184
|
+
concurrent-ruby (~> 1.0)
|
185
|
+
connection_pool (~> 2.2, >= 2.2.0)
|
186
|
+
redis (~> 3.2, >= 3.2.1)
|
187
|
+
simplecov (0.11.2)
|
182
188
|
docile (~> 1.1.0)
|
183
189
|
json (~> 1.8)
|
184
190
|
simplecov-html (~> 0.10.0)
|
@@ -186,7 +192,7 @@ GEM
|
|
186
192
|
sprockets (3.5.2)
|
187
193
|
concurrent-ruby (~> 1.0)
|
188
194
|
rack (> 1, < 3)
|
189
|
-
sprockets-rails (3.0.
|
195
|
+
sprockets-rails (3.0.1)
|
190
196
|
actionpack (>= 4.0)
|
191
197
|
activesupport (>= 4.0)
|
192
198
|
sprockets (>= 3.0.0)
|
@@ -198,7 +204,7 @@ GEM
|
|
198
204
|
thread_safe (~> 0.1)
|
199
205
|
unf (0.1.4)
|
200
206
|
unf_ext
|
201
|
-
unf_ext (0.0.7.
|
207
|
+
unf_ext (0.0.7.2)
|
202
208
|
uuid (2.3.8)
|
203
209
|
macaddr (~> 1.0)
|
204
210
|
|
@@ -208,13 +214,14 @@ PLATFORMS
|
|
208
214
|
DEPENDENCIES
|
209
215
|
bundler (~> 1.0)
|
210
216
|
factory_girl_rails
|
211
|
-
hash_mapper
|
217
|
+
hash_mapper
|
212
218
|
jeweler (~> 2.0.1)
|
213
|
-
maestrano-rails
|
219
|
+
maestrano-rails
|
214
220
|
rdoc (~> 3.12)
|
215
221
|
rspec-rails
|
216
222
|
shoulda
|
217
223
|
shoulda-matchers
|
224
|
+
sidekiq
|
218
225
|
simplecov
|
219
226
|
sqlite3
|
220
227
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0
|
1
|
+
0.2.0
|
@@ -1,12 +1,13 @@
|
|
1
1
|
module Maestrano::Connector::Rails
|
2
|
-
class SynchronizationJob <
|
2
|
+
class SynchronizationJob < ::ActiveJob::Base
|
3
|
+
queue_as :default
|
3
4
|
|
4
5
|
# Supported options:
|
5
6
|
# * :forced => true synchronization has been triggered manually (for logging purposes only)
|
6
7
|
# * :only_entities => [person, tasks_list]
|
7
8
|
# * :full_sync => true synchronization is performed without date filtering
|
8
9
|
# * :connec_preemption => true|false : preemption is always|never given to connec in case of conflict (if not set, the most recently updated entity is kept)
|
9
|
-
def perform
|
10
|
+
def perform(organization, opts)
|
10
11
|
ConnectorLogger.log('info', organization, "Start synchronization, opts=#{opts}")
|
11
12
|
current_synchronization = Synchronization.create_running(organization)
|
12
13
|
|
@@ -35,14 +35,17 @@ module Maestrano::Connector::Rails::Concerns::Entity
|
|
35
35
|
|
36
36
|
# Fetch first page
|
37
37
|
if last_synchronization.blank? || opts[:full_sync]
|
38
|
+
Maestrano::Connector::Rails::ConnectorLogger.log('debug', organization, "entity=#{self.connec_entity_name}, fetching all data")
|
38
39
|
response = client.get("/#{self.connec_entity_name.downcase.pluralize}")
|
39
40
|
else
|
41
|
+
Maestrano::Connector::Rails::ConnectorLogger.log('debug', organization, "entity=#{self.connec_entity_name}, fetching data since #{last_synchronization.updated_at.iso8601}")
|
40
42
|
query_param = URI.encode("$filter=updated_at gt '#{last_synchronization.updated_at.iso8601}'")
|
41
43
|
response = client.get("/#{self.connec_entity_name.downcase.pluralize}?#{query_param}")
|
42
44
|
end
|
43
45
|
raise "No data received from Connec! when trying to fetch #{self.connec_entity_name.pluralize}" unless response
|
44
46
|
|
45
47
|
response_hash = JSON.parse(response.body)
|
48
|
+
Maestrano::Connector::Rails::ConnectorLogger.log('debug', organization, "received first page entity=#{self.connec_entity_name}, response=#{response.body}")
|
46
49
|
if response_hash["#{self.connec_entity_name.downcase.pluralize}"]
|
47
50
|
entities << response_hash["#{self.connec_entity_name.downcase.pluralize}"]
|
48
51
|
else
|
@@ -56,6 +59,8 @@ module Maestrano::Connector::Rails::Concerns::Entity
|
|
56
59
|
response = client.get(next_page)
|
57
60
|
|
58
61
|
raise "No data received from Connec! when trying to fetch subsequent page of #{self.connec_entity_name.pluralize}" unless response
|
62
|
+
Maestrano::Connector::Rails::ConnectorLogger.log('debug', organization, "received next page entity=#{self.connec_entity_name}, response=#{response.body}")
|
63
|
+
|
59
64
|
response_hash = JSON.parse(response.body)
|
60
65
|
if response_hash["#{self.connec_entity_name.downcase.pluralize}"]
|
61
66
|
entities << response_hash["#{self.connec_entity_name.downcase.pluralize}"]
|
@@ -1,5 +1,7 @@
|
|
1
1
|
module Maestrano::Connector::Rails
|
2
2
|
class Organization < ActiveRecord::Base
|
3
|
+
self.table_name = "maestrano_connector_rails_organizations"
|
4
|
+
|
3
5
|
# Enable Maestrano for this group
|
4
6
|
maestrano_group_via :provider, :uid, :tenant do |group, maestrano|
|
5
7
|
group.name = (maestrano.name.blank? ? "Default Group name" : maestrano.name)
|
@@ -35,7 +35,7 @@ class AdminController < ApplicationController
|
|
35
35
|
|
36
36
|
def synchronize
|
37
37
|
if is_admin
|
38
|
-
|
38
|
+
Maestrano::Connector::Rails::SynchronizationJob.perform_later(current_organization, params['opts'] || {})
|
39
39
|
end
|
40
40
|
|
41
41
|
redirect_to root_path
|
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: maestrano-connector-rails 0.0
|
5
|
+
# stub: maestrano-connector-rails 0.2.0 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "maestrano-connector-rails"
|
9
|
-
s.version = "0.0
|
9
|
+
s.version = "0.2.0"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["Pierre Berard"]
|
14
|
-
s.date = "2016-
|
14
|
+
s.date = "2016-02-05"
|
15
15
|
s.description = "Maestrano is the next generation marketplace for SME applications. See https://maestrano.com for details."
|
16
16
|
s.email = "pierre.berard@maestrano.com"
|
17
17
|
s.executables = ["rails"]
|
@@ -76,6 +76,7 @@ Gem::Specification.new do |s|
|
|
76
76
|
"lib/maestrano/connector/rails.rb",
|
77
77
|
"maestrano-connector-rails.gemspec",
|
78
78
|
"maestrano.png",
|
79
|
+
"pkg/maestrano-connector-rails-0.0.1.gem",
|
79
80
|
"spec/dummy/README.md",
|
80
81
|
"spec/dummy/Rakefile",
|
81
82
|
"spec/dummy/app/assets/images/.keep",
|
@@ -121,12 +122,8 @@ Gem::Specification.new do |s|
|
|
121
122
|
"spec/dummy/config/routes.rb",
|
122
123
|
"spec/dummy/config/secrets.yml",
|
123
124
|
"spec/dummy/db/development.sqlite3",
|
124
|
-
"spec/dummy/db/migrate/20151209134445_create_maestrano_connector_rails_users.maestrano_connector_rails.rb",
|
125
|
-
"spec/dummy/db/migrate/20151209134446_create_maestrano_connector_rails_organizations.maestrano_connector_rails.rb",
|
126
|
-
"spec/dummy/db/migrate/20151209134447_create_maestrano_connector_rails_user_organization_rels.maestrano_connector_rails.rb",
|
127
|
-
"spec/dummy/db/migrate/20151209134448_create_maestrano_connector_rails_synchronizations.maestrano_connector_rails.rb",
|
128
|
-
"spec/dummy/db/migrate/20151209134449_create_maestrano_connector_rails_id_maps.maestrano_connector_rails.rb",
|
129
125
|
"spec/dummy/db/schema.rb",
|
126
|
+
"spec/dummy/db/test.sqlite3",
|
130
127
|
"spec/dummy/lib/assets/.keep",
|
131
128
|
"spec/dummy/log/.keep",
|
132
129
|
"spec/dummy/public/404.html",
|
@@ -156,8 +153,9 @@ Gem::Specification.new do |s|
|
|
156
153
|
s.specification_version = 4
|
157
154
|
|
158
155
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
159
|
-
s.add_runtime_dependency(%q<maestrano-rails>, ["
|
160
|
-
s.add_runtime_dependency(%q<hash_mapper>, ["
|
156
|
+
s.add_runtime_dependency(%q<maestrano-rails>, [">= 0"])
|
157
|
+
s.add_runtime_dependency(%q<hash_mapper>, [">= 0"])
|
158
|
+
s.add_runtime_dependency(%q<sidekiq>, [">= 0"])
|
161
159
|
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
162
160
|
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
163
161
|
s.add_development_dependency(%q<bundler>, ["~> 1.0"])
|
@@ -168,8 +166,9 @@ Gem::Specification.new do |s|
|
|
168
166
|
s.add_development_dependency(%q<sqlite3>, [">= 0"])
|
169
167
|
s.add_development_dependency(%q<shoulda-matchers>, [">= 0"])
|
170
168
|
else
|
171
|
-
s.add_dependency(%q<maestrano-rails>, ["
|
172
|
-
s.add_dependency(%q<hash_mapper>, ["
|
169
|
+
s.add_dependency(%q<maestrano-rails>, [">= 0"])
|
170
|
+
s.add_dependency(%q<hash_mapper>, [">= 0"])
|
171
|
+
s.add_dependency(%q<sidekiq>, [">= 0"])
|
173
172
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
174
173
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
175
174
|
s.add_dependency(%q<bundler>, ["~> 1.0"])
|
@@ -181,8 +180,9 @@ Gem::Specification.new do |s|
|
|
181
180
|
s.add_dependency(%q<shoulda-matchers>, [">= 0"])
|
182
181
|
end
|
183
182
|
else
|
184
|
-
s.add_dependency(%q<maestrano-rails>, ["
|
185
|
-
s.add_dependency(%q<hash_mapper>, ["
|
183
|
+
s.add_dependency(%q<maestrano-rails>, [">= 0"])
|
184
|
+
s.add_dependency(%q<hash_mapper>, [">= 0"])
|
185
|
+
s.add_dependency(%q<sidekiq>, [">= 0"])
|
186
186
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
187
187
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
188
188
|
s.add_dependency(%q<bundler>, ["~> 1.0"])
|
Binary file
|
@@ -35,7 +35,7 @@ class AdminController < ApplicationController
|
|
35
35
|
|
36
36
|
def synchronize
|
37
37
|
if is_admin
|
38
|
-
|
38
|
+
Maestrano::Connector::Rails::SynchronizationJob.perform_later(current_organization, params['opts'] || {})
|
39
39
|
end
|
40
40
|
|
41
41
|
redirect_to root_path
|
Binary file
|
data/spec/dummy/db/schema.rb
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
#
|
12
12
|
# It's strongly recommended that you check this file into your version control system.
|
13
13
|
|
14
|
-
ActiveRecord::Schema.define(version:
|
14
|
+
ActiveRecord::Schema.define(version: 20151122163449) do
|
15
15
|
|
16
16
|
create_table "maestrano_connector_rails_id_maps", force: :cascade do |t|
|
17
17
|
t.string "connec_id"
|
Binary file
|
@@ -2,32 +2,32 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Maestrano::Connector::Rails::SynchronizationJob do
|
4
4
|
let(:organization) { create(:organization) }
|
5
|
-
subject { Maestrano::Connector::Rails::SynchronizationJob.
|
6
|
-
|
5
|
+
subject { Maestrano::Connector::Rails::SynchronizationJob.perform_now(organization, {}) }
|
6
|
+
|
7
7
|
describe 'perform' do
|
8
8
|
it 'creates a synchronization' do
|
9
|
-
expect{
|
10
|
-
subject.perform
|
11
|
-
}.to change{ Maestrano::Connector::Rails::Synchronization.count }.by(1)
|
9
|
+
expect{ subject }.to change{ Maestrano::Connector::Rails::Synchronization.count }.by(1)
|
12
10
|
end
|
13
11
|
|
14
12
|
it 'calls sync entity on all the organization synchronized entities set to true' do
|
15
13
|
organization.synchronized_entities[organization.synchronized_entities.keys.first] = false
|
16
|
-
|
17
|
-
|
14
|
+
expect_any_instance_of(Maestrano::Connector::Rails::SynchronizationJob).to receive(:sync_entity).exactly(organization.synchronized_entities.count - 1).times
|
15
|
+
|
16
|
+
subject
|
18
17
|
end
|
19
18
|
|
20
19
|
context 'with options' do
|
21
20
|
context 'with only_entities' do
|
22
|
-
subject { Maestrano::Connector::Rails::SynchronizationJob.
|
21
|
+
subject { Maestrano::Connector::Rails::SynchronizationJob.perform_now(organization, {only_entities: %w(people price)}) }
|
23
22
|
|
24
23
|
it 'calls sync entity on the specified entities' do
|
25
|
-
|
26
|
-
|
24
|
+
expect_any_instance_of(Maestrano::Connector::Rails::SynchronizationJob).to receive(:sync_entity).twice
|
25
|
+
|
26
|
+
subject
|
27
27
|
end
|
28
28
|
|
29
29
|
it 'set the current syncrhonization as partial' do
|
30
|
-
subject
|
30
|
+
subject
|
31
31
|
expect(Maestrano::Connector::Rails::Synchronization.last.partial).to be(true)
|
32
32
|
end
|
33
33
|
end
|
@@ -41,6 +41,8 @@ describe Maestrano::Connector::Rails::SynchronizationJob do
|
|
41
41
|
end
|
42
42
|
}
|
43
43
|
|
44
|
+
subject { Maestrano::Connector::Rails::SynchronizationJob.new }
|
45
|
+
|
44
46
|
it 'calls the five methods' do
|
45
47
|
expect_any_instance_of(Entities::Person).to receive(:get_connec_entities)
|
46
48
|
expect_any_instance_of(Entities::Person).to receive(:get_external_entities)
|
metadata
CHANGED
@@ -1,43 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: maestrano-connector-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pierre Berard
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-02-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: maestrano-rails
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0
|
19
|
+
version: '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: 0
|
26
|
+
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: hash_mapper
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0
|
33
|
+
version: '0'
|
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: 0
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: sidekiq
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: shoulda
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -230,6 +244,7 @@ files:
|
|
230
244
|
- lib/maestrano/connector/rails.rb
|
231
245
|
- maestrano-connector-rails.gemspec
|
232
246
|
- maestrano.png
|
247
|
+
- pkg/maestrano-connector-rails-0.0.1.gem
|
233
248
|
- spec/dummy/README.md
|
234
249
|
- spec/dummy/Rakefile
|
235
250
|
- spec/dummy/app/assets/images/.keep
|
@@ -275,12 +290,8 @@ files:
|
|
275
290
|
- spec/dummy/config/routes.rb
|
276
291
|
- spec/dummy/config/secrets.yml
|
277
292
|
- spec/dummy/db/development.sqlite3
|
278
|
-
- spec/dummy/db/migrate/20151209134445_create_maestrano_connector_rails_users.maestrano_connector_rails.rb
|
279
|
-
- spec/dummy/db/migrate/20151209134446_create_maestrano_connector_rails_organizations.maestrano_connector_rails.rb
|
280
|
-
- spec/dummy/db/migrate/20151209134447_create_maestrano_connector_rails_user_organization_rels.maestrano_connector_rails.rb
|
281
|
-
- spec/dummy/db/migrate/20151209134448_create_maestrano_connector_rails_synchronizations.maestrano_connector_rails.rb
|
282
|
-
- spec/dummy/db/migrate/20151209134449_create_maestrano_connector_rails_id_maps.maestrano_connector_rails.rb
|
283
293
|
- spec/dummy/db/schema.rb
|
294
|
+
- spec/dummy/db/test.sqlite3
|
284
295
|
- spec/dummy/lib/assets/.keep
|
285
296
|
- spec/dummy/log/.keep
|
286
297
|
- spec/dummy/public/404.html
|
@@ -1,17 +0,0 @@
|
|
1
|
-
# This migration comes from maestrano_connector_rails (originally 20151122162100)
|
2
|
-
class CreateMaestranoConnectorRailsUsers < ActiveRecord::Migration
|
3
|
-
def change
|
4
|
-
create_table :maestrano_connector_rails_users do |t|
|
5
|
-
t.string :provider
|
6
|
-
t.string :uid
|
7
|
-
t.string :first_name
|
8
|
-
t.string :last_name
|
9
|
-
t.string :email
|
10
|
-
t.string :tenant
|
11
|
-
|
12
|
-
t.timestamps null: false
|
13
|
-
end
|
14
|
-
|
15
|
-
add_index :maestrano_connector_rails_users, [:uid, :tenant], name: 'user_uid_index'
|
16
|
-
end
|
17
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# This migration comes from maestrano_connector_rails (originally 20151122162414)
|
2
|
-
class CreateMaestranoConnectorRailsOrganizations < ActiveRecord::Migration
|
3
|
-
def change
|
4
|
-
create_table :maestrano_connector_rails_organizations do |t|
|
5
|
-
t.string :provider
|
6
|
-
t.string :uid
|
7
|
-
t.string :name
|
8
|
-
t.string :tenant
|
9
|
-
|
10
|
-
t.string :oauth_provider
|
11
|
-
t.string :oauth_uid
|
12
|
-
t.string :oauth_token
|
13
|
-
t.string :refresh_token
|
14
|
-
t.string :instance_url
|
15
|
-
|
16
|
-
t.string :synchronized_entities
|
17
|
-
|
18
|
-
t.timestamps null: false
|
19
|
-
end
|
20
|
-
add_index :maestrano_connector_rails_organizations, [:uid, :tenant], name: 'orga_uid_index'
|
21
|
-
end
|
22
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
# This migration comes from maestrano_connector_rails (originally 20151122162613)
|
2
|
-
class CreateMaestranoConnectorRailsUserOrganizationRels < ActiveRecord::Migration
|
3
|
-
def change
|
4
|
-
create_table :maestrano_connector_rails_user_organization_rels do |t|
|
5
|
-
t.integer :user_id
|
6
|
-
t.integer :organization_id
|
7
|
-
|
8
|
-
t.timestamps
|
9
|
-
end
|
10
|
-
add_index :maestrano_connector_rails_user_organization_rels, :organization_id, name: 'rels_orga_index'
|
11
|
-
add_index :maestrano_connector_rails_user_organization_rels, :user_id, name: 'rels_user_index'
|
12
|
-
end
|
13
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
# This migration comes from maestrano_connector_rails (originally 20151122163325)
|
2
|
-
class CreateMaestranoConnectorRailsSynchronizations < ActiveRecord::Migration
|
3
|
-
def change
|
4
|
-
create_table :maestrano_connector_rails_synchronizations do |t|
|
5
|
-
t.integer :organization_id
|
6
|
-
t.string :status
|
7
|
-
t.text :message
|
8
|
-
t.boolean :partial, default: false
|
9
|
-
|
10
|
-
t.timestamps null: false
|
11
|
-
end
|
12
|
-
add_index :maestrano_connector_rails_synchronizations, :organization_id, name: 'synchronization_orga_id_index'
|
13
|
-
end
|
14
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
# This migration comes from maestrano_connector_rails (originally 20151122163449)
|
2
|
-
class CreateMaestranoConnectorRailsIdMaps < ActiveRecord::Migration
|
3
|
-
def change
|
4
|
-
create_table :maestrano_connector_rails_id_maps do |t|
|
5
|
-
t.string :connec_id
|
6
|
-
t.string :connec_entity
|
7
|
-
t.string :external_id
|
8
|
-
t.string :external_entity
|
9
|
-
t.integer :organization_id
|
10
|
-
t.datetime :last_push_to_connec
|
11
|
-
t.datetime :last_push_to_external
|
12
|
-
|
13
|
-
t.timestamps null: false
|
14
|
-
end
|
15
|
-
add_index :maestrano_connector_rails_id_maps, [:connec_id, :connec_entity, :organization_id], name: 'idmap_connec_index'
|
16
|
-
add_index :maestrano_connector_rails_id_maps, [:external_id, :external_entity, :organization_id], name: 'idmap_external_index'
|
17
|
-
add_index :maestrano_connector_rails_id_maps, :organization_id, name: 'idmap_organization_index'
|
18
|
-
end
|
19
|
-
end
|