punk 0.3.2 → 0.4.1
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 +4 -4
- data/.github/workflows/test.yml +1 -1
- data/.rdoc_options +0 -1
- data/.rubocop.yml +1091 -93
- data/.standard.yml +2 -0
- data/Gemfile +60 -61
- data/Gemfile.lock +64 -59
- data/README.md +7 -3
- data/Rakefile +9 -7
- data/VERSION +1 -1
- data/app/migrations/001_lets_punk.rb +1 -1
- data/app/routes/hello.rb +1 -1
- data/bin/punk +5 -5
- data/env/defaults.sh +3 -0
- data/lib/punk.rb +8 -9
- data/lib/punk/actions/sessions/create.rb +3 -3
- data/lib/punk/actions/sessions/verify.rb +2 -2
- data/lib/punk/commands/auth.rb +4 -4
- data/lib/punk/commands/generate.rb +5 -5
- data/lib/punk/commands/http.rb +4 -4
- data/lib/punk/commands/list.rb +10 -10
- data/lib/punk/core/app.rb +41 -41
- data/lib/punk/core/boot.rb +5 -5
- data/lib/punk/core/cli.rb +3 -3
- data/lib/punk/core/commander.rb +28 -28
- data/lib/punk/core/commands.rb +8 -8
- data/lib/punk/core/env.rb +27 -27
- data/lib/punk/core/exec.rb +8 -8
- data/lib/punk/core/interface.rb +19 -19
- data/lib/punk/core/load.rb +2 -2
- data/lib/punk/core/logger.rb +3 -3
- data/lib/punk/core/monkey.rb +1 -1
- data/lib/punk/core/pry.rb +2 -2
- data/lib/punk/core/settings.rb +4 -4
- data/lib/punk/core/version.rb +1 -1
- data/lib/punk/core/worker.rb +6 -6
- data/lib/punk/framework/all.rb +8 -8
- data/lib/punk/framework/model.rb +6 -5
- data/lib/punk/framework/plugins/all.rb +1 -1
- data/lib/punk/framework/plugins/validation.rb +8 -8
- data/lib/punk/framework/service.rb +5 -3
- data/lib/punk/framework/worker.rb +3 -3
- data/lib/punk/helpers/all.rb +5 -5
- data/lib/punk/helpers/loggable.rb +3 -3
- data/lib/punk/helpers/publishable.rb +1 -1
- data/lib/punk/helpers/renderable.rb +10 -10
- data/lib/punk/helpers/validatable.rb +7 -6
- data/lib/punk/migrations/001_punk.rb +12 -12
- data/lib/punk/models/group.rb +1 -1
- data/lib/punk/models/identity.rb +1 -1
- data/lib/punk/models/session.rb +7 -7
- data/lib/punk/models/tenant.rb +1 -1
- data/lib/punk/models/user.rb +2 -2
- data/lib/punk/plugins/all.rb +2 -2
- data/lib/punk/plugins/cors.rb +2 -2
- data/lib/punk/plugins/ssl.rb +1 -1
- data/lib/punk/routes/groups.rb +1 -1
- data/lib/punk/routes/plivo.rb +1 -1
- data/lib/punk/routes/sessions.rb +2 -2
- data/lib/punk/routes/swagger.rb +2 -2
- data/lib/punk/routes/tenants.rb +1 -1
- data/lib/punk/routes/users.rb +1 -1
- data/lib/punk/services/challenge_claim.rb +5 -5
- data/lib/punk/services/generate_swagger.rb +6 -6
- data/lib/punk/services/prove_claim.rb +1 -1
- data/lib/punk/startup/cache.rb +3 -3
- data/lib/punk/startup/database.rb +4 -4
- data/lib/punk/startup/environment.rb +6 -6
- data/lib/punk/startup/logger.rb +2 -2
- data/lib/punk/startup/task.rb +5 -5
- data/lib/punk/views/fail.rb +2 -2
- data/lib/punk/views/groups/list.rb +2 -2
- data/lib/punk/views/info.rb +2 -2
- data/lib/punk/views/plivo_store.rb +2 -2
- data/lib/punk/views/sessions/list.rb +2 -2
- data/lib/punk/views/sessions/pending.rb +2 -2
- data/lib/punk/views/tenants/list.rb +2 -2
- data/lib/punk/views/users/list.rb +2 -2
- data/lib/punk/views/users/show.rb +2 -2
- data/lib/punk/workers/geocode_session_worker.rb +3 -3
- data/lib/punk/workers/identify_session_worker.rb +1 -1
- data/lib/punk/workers/send_email_worker.rb +3 -3
- data/lib/punk/workers/send_sms_worker.rb +3 -3
- data/punk.gemspec +33 -31
- data/spec/actions/groups/punk/list_groups_action_spec.rb +9 -9
- data/spec/actions/sessions/punk/clear_session_action_spec.rb +11 -11
- data/spec/actions/sessions/punk/create_session_action_spec.rb +9 -9
- data/spec/actions/sessions/punk/list_sessions_action_spec.rb +8 -8
- data/spec/actions/sessions/punk/verify_session_action_spec.rb +24 -24
- data/spec/actions/tenants/punk/list_tenants_action_spec.rb +6 -6
- data/spec/actions/users/punk/list_group_users_action_spec.rb +6 -6
- data/spec/actions/users/punk/list_tenant_users_action_spec.rb +6 -6
- data/spec/factories/group.rb +1 -1
- data/spec/factories/group_user_metadata.rb +1 -1
- data/spec/factories/identity.rb +4 -4
- data/spec/factories/session.rb +1 -1
- data/spec/factories/tenant.rb +1 -1
- data/spec/factories/tenant_user_metadata.rb +1 -1
- data/spec/factories/user.rb +1 -1
- data/spec/lib/commands/generate_spec.rb +2 -2
- data/spec/lib/commands/list_spec.rb +2 -2
- data/spec/lib/commands/swagger_spec.rb +2 -2
- data/spec/lib/engine/punk_env_spec.rb +4 -4
- data/spec/lib/engine/punk_exec_spec.rb +2 -2
- data/spec/lib/engine/punk_init_spec.rb +2 -2
- data/spec/lib/engine/punk_store_spec.rb +2 -2
- data/spec/models/punk/group_spec.rb +4 -4
- data/spec/models/punk/group_user_metadata_spec.rb +2 -2
- data/spec/models/punk/identity_spec.rb +17 -17
- data/spec/models/punk/session_spec.rb +4 -4
- data/spec/models/punk/tenant_spec.rb +3 -3
- data/spec/models/punk/tenant_user_metadata_spec.rb +2 -2
- data/spec/models/punk/user_spec.rb +9 -9
- data/spec/routes/groups/get_groups_spec.rb +4 -4
- data/spec/routes/plivo/get_plivo_spec.rb +1 -1
- data/spec/routes/sessions/delete_session_spec.rb +1 -1
- data/spec/routes/sessions/get_sessions_spec.rb +5 -5
- data/spec/routes/sessions/patch_session_spec.rb +1 -1
- data/spec/routes/sessions/post_session_spec.rb +1 -1
- data/spec/routes/swagger/get_swagger_spec.rb +1 -1
- data/spec/routes/tenants/get_tenants_spec.rb +5 -5
- data/spec/routes/users/get_users_spec.rb +6 -6
- data/spec/services/punk/challenge_claim_service_spec.rb +2 -2
- data/spec/services/punk/create_identities_service_spec.rb +1 -1
- data/spec/services/punk/generate_swagger_service_spec.rb +2 -2
- data/spec/services/punk/prove_claim_service_spec.rb +2 -2
- data/spec/services/punk/secret_service_spec.rb +2 -2
- data/spec/spec_helper.rb +27 -27
- data/spec/views/punk/plivo_store_spec.rb +2 -2
- data/spec/views/sessions/punk/list_sessions_view_spec.rb +2 -2
- data/spec/views/sessions/punk/pending_session_view_spec.rb +2 -2
- data/spec/views/tenants/punk/list_tenants_view_spec.rb +2 -2
- data/spec/views/users/punk/list_groups_view_spec.rb +2 -2
- data/spec/views/users/punk/list_users_view_spec.rb +2 -2
- data/spec/workers/punk/geocode_session_worker_spec.rb +2 -2
- data/spec/workers/punk/identify_session_worker_spec.rb +3 -3
- data/spec/workers/punk/send_email_worker_spec.rb +1 -1
- metadata +24 -22
@@ -10,13 +10,13 @@ module PUNK
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def process
|
13
|
-
require
|
13
|
+
require "ipstack"
|
14
14
|
|
15
15
|
session = Session[session_id]
|
16
16
|
return if session.blank?
|
17
17
|
|
18
18
|
ip_address = session.remote_addr.to_s
|
19
|
-
return if ip_address ==
|
19
|
+
return if ip_address == "127.0.0.1"
|
20
20
|
|
21
21
|
return if PUNK.get.ipstack.api_key.blank?
|
22
22
|
result = Ipstack::API.standard(ip_address).deep_symbolize_keys
|
@@ -42,7 +42,7 @@ module PUNK
|
|
42
42
|
}
|
43
43
|
))
|
44
44
|
|
45
|
-
session.
|
45
|
+
session.save_changes
|
46
46
|
end
|
47
47
|
end
|
48
48
|
end
|
@@ -17,11 +17,11 @@ module PUNK
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def process
|
20
|
-
require
|
20
|
+
require "mailgun-ruby"
|
21
21
|
|
22
22
|
client =
|
23
23
|
if !PUNK.env.test? && PUNK.get.mailgun.mock
|
24
|
-
Mailgun::Client.new(PUNK.get.mailgun.api_key,
|
24
|
+
Mailgun::Client.new(PUNK.get.mailgun.api_key, "bin.mailgun.net", PUNK.get.mailgun.postbin, ssl=false) # rubocop:disable Lint/UselessAssignment,Layout/SpaceAroundOperators
|
25
25
|
else
|
26
26
|
Mailgun::Client.new(PUNK.get.mailgun.api_key)
|
27
27
|
end
|
@@ -44,7 +44,7 @@ module PUNK
|
|
44
44
|
|
45
45
|
return unless !PUNK.env.test? && PUNK.get.mailgun.mock
|
46
46
|
|
47
|
-
require
|
47
|
+
require "launchy"
|
48
48
|
Launchy.open("http://bin.mailgun.net/#{PUNK.get.mailgun.postbin}")
|
49
49
|
end
|
50
50
|
end
|
@@ -25,13 +25,13 @@ module PUNK
|
|
25
25
|
plivo.prepend(message)
|
26
26
|
PUNK.cache.set(:plivo, plivo)
|
27
27
|
unless PUNK.env.test?
|
28
|
-
require
|
29
|
-
Launchy.open("#{PUNK.get.app.url ||
|
28
|
+
require "launchy"
|
29
|
+
Launchy.open("#{PUNK.get.app.url || "http://localhost:3000"}/plivo.html")
|
30
30
|
end
|
31
31
|
return
|
32
32
|
end
|
33
33
|
|
34
|
-
require
|
34
|
+
require "plivo"
|
35
35
|
|
36
36
|
client = Plivo::RestClient.new(PUNK.get.plivo.auth_id, PUNK.get.plivo.auth_token)
|
37
37
|
client.messages.create(PUNK.get.plivo.number, [to], body)
|
data/punk.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: punk 0.
|
5
|
+
# stub: punk 0.4.1 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "punk".freeze
|
9
|
-
s.version = "0.
|
9
|
+
s.version = "0.4.1"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib".freeze]
|
13
13
|
s.authors = ["Lloyd Kranzky".freeze]
|
14
|
-
s.date = "2021-
|
14
|
+
s.date = "2021-03-05"
|
15
15
|
s.description = "".freeze
|
16
16
|
s.email = "lloyd@kranzky.com".freeze
|
17
17
|
s.executables = ["punk".freeze]
|
@@ -28,6 +28,7 @@ Gem::Specification.new do |s|
|
|
28
28
|
".rgignore",
|
29
29
|
".rspec",
|
30
30
|
".rubocop.yml",
|
31
|
+
".standard.yml",
|
31
32
|
"Gemfile",
|
32
33
|
"Gemfile.lock",
|
33
34
|
"LICENSE",
|
@@ -38,6 +39,7 @@ Gem::Specification.new do |s|
|
|
38
39
|
"app/routes/hello.rb",
|
39
40
|
"bin/punk",
|
40
41
|
"env/.gitignore",
|
42
|
+
"env/defaults.sh",
|
41
43
|
"env/spec/test.sh",
|
42
44
|
"env/test.sh",
|
43
45
|
"lib/punk.rb",
|
@@ -222,7 +224,7 @@ Gem::Specification.new do |s|
|
|
222
224
|
]
|
223
225
|
s.homepage = "https://github.com/kranzky/punk".freeze
|
224
226
|
s.licenses = ["Unlicense".freeze]
|
225
|
-
s.required_ruby_version = Gem::Requirement.new(">= 2.
|
227
|
+
s.required_ruby_version = Gem::Requirement.new(">= 2.6".freeze)
|
226
228
|
s.rubygems_version = "2.7.6.2".freeze
|
227
229
|
s.summary = "Punk! is an omakase web framework for rapid prototyping.".freeze
|
228
230
|
|
@@ -230,7 +232,7 @@ Gem::Specification.new do |s|
|
|
230
232
|
s.specification_version = 4
|
231
233
|
|
232
234
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
233
|
-
s.add_runtime_dependency(%q<bootsnap>.freeze, ["~> 1.
|
235
|
+
s.add_runtime_dependency(%q<bootsnap>.freeze, ["~> 1.7"])
|
234
236
|
s.add_runtime_dependency(%q<dim>.freeze, ["~> 1.2"])
|
235
237
|
s.add_runtime_dependency(%q<wisper>.freeze, ["~> 2.0"])
|
236
238
|
s.add_runtime_dependency(%q<papertrail>.freeze, ["~> 0.11"])
|
@@ -238,8 +240,8 @@ Gem::Specification.new do |s|
|
|
238
240
|
s.add_runtime_dependency(%q<dotenv>.freeze, ["~> 2.7"])
|
239
241
|
s.add_runtime_dependency(%q<dot_hash>.freeze, ["~> 1.1"])
|
240
242
|
s.add_runtime_dependency(%q<commander>.freeze, ["~> 4.5"])
|
241
|
-
s.add_runtime_dependency(%q<pry>.freeze, ["~> 0.
|
242
|
-
s.add_runtime_dependency(%q<puma>.freeze, ["~> 5.
|
243
|
+
s.add_runtime_dependency(%q<pry>.freeze, ["~> 0.14"])
|
244
|
+
s.add_runtime_dependency(%q<puma>.freeze, ["~> 5.2"])
|
243
245
|
s.add_runtime_dependency(%q<rack-cors>.freeze, ["~> 1.1"])
|
244
246
|
s.add_runtime_dependency(%q<rack-protection>.freeze, ["~> 2.1"])
|
245
247
|
s.add_runtime_dependency(%q<rack-ssl-enforcer>.freeze, ["~> 0.2"])
|
@@ -247,7 +249,7 @@ Gem::Specification.new do |s|
|
|
247
249
|
s.add_runtime_dependency(%q<dalli>.freeze, ["~> 2.7"])
|
248
250
|
s.add_runtime_dependency(%q<pg>.freeze, ["~> 1.2"])
|
249
251
|
s.add_runtime_dependency(%q<sequel_pg>.freeze, ["~> 1.14"])
|
250
|
-
s.add_runtime_dependency(%q<sequel>.freeze, ["~> 5.
|
252
|
+
s.add_runtime_dependency(%q<sequel>.freeze, ["~> 5.42"])
|
251
253
|
s.add_runtime_dependency(%q<aasm>.freeze, ["~> 5.1"])
|
252
254
|
s.add_runtime_dependency(%q<http-accept>.freeze, ["~> 2.1"])
|
253
255
|
s.add_runtime_dependency(%q<ipstack>.freeze, ["~> 0.1"])
|
@@ -256,8 +258,8 @@ Gem::Specification.new do |s|
|
|
256
258
|
s.add_runtime_dependency(%q<sidekiq>.freeze, ["~> 6.1"])
|
257
259
|
s.add_runtime_dependency(%q<sidekiq-cron>.freeze, ["~> 1.2"])
|
258
260
|
s.add_runtime_dependency(%q<mailgun-ruby>.freeze, ["~> 1.2"])
|
259
|
-
s.add_runtime_dependency(%q<plivo>.freeze, ["~> 4.
|
260
|
-
s.add_runtime_dependency(%q<roda>.freeze, ["~> 3.
|
261
|
+
s.add_runtime_dependency(%q<plivo>.freeze, ["~> 4.16"])
|
262
|
+
s.add_runtime_dependency(%q<roda>.freeze, ["~> 3.41"])
|
261
263
|
s.add_runtime_dependency(%q<roda-route_list>.freeze, ["~> 2.1"])
|
262
264
|
s.add_runtime_dependency(%q<slim>.freeze, ["~> 4.1"])
|
263
265
|
s.add_runtime_dependency(%q<jbuilder>.freeze, ["~> 2.11"])
|
@@ -266,8 +268,8 @@ Gem::Specification.new do |s|
|
|
266
268
|
s.add_runtime_dependency(%q<rdoc>.freeze, ["~> 6.3"])
|
267
269
|
s.add_runtime_dependency(%q<swagger_yard>.freeze, ["~> 1.0"])
|
268
270
|
s.add_runtime_dependency(%q<activesupport>.freeze, ["~> 6.1"])
|
269
|
-
s.add_runtime_dependency(%q<sentry-ruby>.freeze, ["~> 4.
|
270
|
-
s.add_runtime_dependency(%q<sentry-sidekiq>.freeze, ["~> 4.
|
271
|
+
s.add_runtime_dependency(%q<sentry-ruby>.freeze, ["~> 4.2"])
|
272
|
+
s.add_runtime_dependency(%q<sentry-sidekiq>.freeze, ["~> 4.2"])
|
271
273
|
s.add_runtime_dependency(%q<skylight>.freeze, ["~> 4.3"])
|
272
274
|
s.add_runtime_dependency(%q<phony>.freeze, ["~> 2.18"])
|
273
275
|
s.add_development_dependency(%q<bundler>.freeze, ["~> 1.17"])
|
@@ -276,9 +278,9 @@ Gem::Specification.new do |s|
|
|
276
278
|
s.add_development_dependency(%q<amazing_print>.freeze, ["~> 1.2"])
|
277
279
|
s.add_development_dependency(%q<byebug>.freeze, ["~> 11.1"])
|
278
280
|
s.add_development_dependency(%q<launchy>.freeze, ["~> 2.5"])
|
279
|
-
s.add_development_dependency(%q<
|
281
|
+
s.add_development_dependency(%q<standard>.freeze, ["~> 1.0"])
|
280
282
|
else
|
281
|
-
s.add_dependency(%q<bootsnap>.freeze, ["~> 1.
|
283
|
+
s.add_dependency(%q<bootsnap>.freeze, ["~> 1.7"])
|
282
284
|
s.add_dependency(%q<dim>.freeze, ["~> 1.2"])
|
283
285
|
s.add_dependency(%q<wisper>.freeze, ["~> 2.0"])
|
284
286
|
s.add_dependency(%q<papertrail>.freeze, ["~> 0.11"])
|
@@ -286,8 +288,8 @@ Gem::Specification.new do |s|
|
|
286
288
|
s.add_dependency(%q<dotenv>.freeze, ["~> 2.7"])
|
287
289
|
s.add_dependency(%q<dot_hash>.freeze, ["~> 1.1"])
|
288
290
|
s.add_dependency(%q<commander>.freeze, ["~> 4.5"])
|
289
|
-
s.add_dependency(%q<pry>.freeze, ["~> 0.
|
290
|
-
s.add_dependency(%q<puma>.freeze, ["~> 5.
|
291
|
+
s.add_dependency(%q<pry>.freeze, ["~> 0.14"])
|
292
|
+
s.add_dependency(%q<puma>.freeze, ["~> 5.2"])
|
291
293
|
s.add_dependency(%q<rack-cors>.freeze, ["~> 1.1"])
|
292
294
|
s.add_dependency(%q<rack-protection>.freeze, ["~> 2.1"])
|
293
295
|
s.add_dependency(%q<rack-ssl-enforcer>.freeze, ["~> 0.2"])
|
@@ -295,7 +297,7 @@ Gem::Specification.new do |s|
|
|
295
297
|
s.add_dependency(%q<dalli>.freeze, ["~> 2.7"])
|
296
298
|
s.add_dependency(%q<pg>.freeze, ["~> 1.2"])
|
297
299
|
s.add_dependency(%q<sequel_pg>.freeze, ["~> 1.14"])
|
298
|
-
s.add_dependency(%q<sequel>.freeze, ["~> 5.
|
300
|
+
s.add_dependency(%q<sequel>.freeze, ["~> 5.42"])
|
299
301
|
s.add_dependency(%q<aasm>.freeze, ["~> 5.1"])
|
300
302
|
s.add_dependency(%q<http-accept>.freeze, ["~> 2.1"])
|
301
303
|
s.add_dependency(%q<ipstack>.freeze, ["~> 0.1"])
|
@@ -304,8 +306,8 @@ Gem::Specification.new do |s|
|
|
304
306
|
s.add_dependency(%q<sidekiq>.freeze, ["~> 6.1"])
|
305
307
|
s.add_dependency(%q<sidekiq-cron>.freeze, ["~> 1.2"])
|
306
308
|
s.add_dependency(%q<mailgun-ruby>.freeze, ["~> 1.2"])
|
307
|
-
s.add_dependency(%q<plivo>.freeze, ["~> 4.
|
308
|
-
s.add_dependency(%q<roda>.freeze, ["~> 3.
|
309
|
+
s.add_dependency(%q<plivo>.freeze, ["~> 4.16"])
|
310
|
+
s.add_dependency(%q<roda>.freeze, ["~> 3.41"])
|
309
311
|
s.add_dependency(%q<roda-route_list>.freeze, ["~> 2.1"])
|
310
312
|
s.add_dependency(%q<slim>.freeze, ["~> 4.1"])
|
311
313
|
s.add_dependency(%q<jbuilder>.freeze, ["~> 2.11"])
|
@@ -314,8 +316,8 @@ Gem::Specification.new do |s|
|
|
314
316
|
s.add_dependency(%q<rdoc>.freeze, ["~> 6.3"])
|
315
317
|
s.add_dependency(%q<swagger_yard>.freeze, ["~> 1.0"])
|
316
318
|
s.add_dependency(%q<activesupport>.freeze, ["~> 6.1"])
|
317
|
-
s.add_dependency(%q<sentry-ruby>.freeze, ["~> 4.
|
318
|
-
s.add_dependency(%q<sentry-sidekiq>.freeze, ["~> 4.
|
319
|
+
s.add_dependency(%q<sentry-ruby>.freeze, ["~> 4.2"])
|
320
|
+
s.add_dependency(%q<sentry-sidekiq>.freeze, ["~> 4.2"])
|
319
321
|
s.add_dependency(%q<skylight>.freeze, ["~> 4.3"])
|
320
322
|
s.add_dependency(%q<phony>.freeze, ["~> 2.18"])
|
321
323
|
s.add_dependency(%q<bundler>.freeze, ["~> 1.17"])
|
@@ -324,10 +326,10 @@ Gem::Specification.new do |s|
|
|
324
326
|
s.add_dependency(%q<amazing_print>.freeze, ["~> 1.2"])
|
325
327
|
s.add_dependency(%q<byebug>.freeze, ["~> 11.1"])
|
326
328
|
s.add_dependency(%q<launchy>.freeze, ["~> 2.5"])
|
327
|
-
s.add_dependency(%q<
|
329
|
+
s.add_dependency(%q<standard>.freeze, ["~> 1.0"])
|
328
330
|
end
|
329
331
|
else
|
330
|
-
s.add_dependency(%q<bootsnap>.freeze, ["~> 1.
|
332
|
+
s.add_dependency(%q<bootsnap>.freeze, ["~> 1.7"])
|
331
333
|
s.add_dependency(%q<dim>.freeze, ["~> 1.2"])
|
332
334
|
s.add_dependency(%q<wisper>.freeze, ["~> 2.0"])
|
333
335
|
s.add_dependency(%q<papertrail>.freeze, ["~> 0.11"])
|
@@ -335,8 +337,8 @@ Gem::Specification.new do |s|
|
|
335
337
|
s.add_dependency(%q<dotenv>.freeze, ["~> 2.7"])
|
336
338
|
s.add_dependency(%q<dot_hash>.freeze, ["~> 1.1"])
|
337
339
|
s.add_dependency(%q<commander>.freeze, ["~> 4.5"])
|
338
|
-
s.add_dependency(%q<pry>.freeze, ["~> 0.
|
339
|
-
s.add_dependency(%q<puma>.freeze, ["~> 5.
|
340
|
+
s.add_dependency(%q<pry>.freeze, ["~> 0.14"])
|
341
|
+
s.add_dependency(%q<puma>.freeze, ["~> 5.2"])
|
340
342
|
s.add_dependency(%q<rack-cors>.freeze, ["~> 1.1"])
|
341
343
|
s.add_dependency(%q<rack-protection>.freeze, ["~> 2.1"])
|
342
344
|
s.add_dependency(%q<rack-ssl-enforcer>.freeze, ["~> 0.2"])
|
@@ -344,7 +346,7 @@ Gem::Specification.new do |s|
|
|
344
346
|
s.add_dependency(%q<dalli>.freeze, ["~> 2.7"])
|
345
347
|
s.add_dependency(%q<pg>.freeze, ["~> 1.2"])
|
346
348
|
s.add_dependency(%q<sequel_pg>.freeze, ["~> 1.14"])
|
347
|
-
s.add_dependency(%q<sequel>.freeze, ["~> 5.
|
349
|
+
s.add_dependency(%q<sequel>.freeze, ["~> 5.42"])
|
348
350
|
s.add_dependency(%q<aasm>.freeze, ["~> 5.1"])
|
349
351
|
s.add_dependency(%q<http-accept>.freeze, ["~> 2.1"])
|
350
352
|
s.add_dependency(%q<ipstack>.freeze, ["~> 0.1"])
|
@@ -353,8 +355,8 @@ Gem::Specification.new do |s|
|
|
353
355
|
s.add_dependency(%q<sidekiq>.freeze, ["~> 6.1"])
|
354
356
|
s.add_dependency(%q<sidekiq-cron>.freeze, ["~> 1.2"])
|
355
357
|
s.add_dependency(%q<mailgun-ruby>.freeze, ["~> 1.2"])
|
356
|
-
s.add_dependency(%q<plivo>.freeze, ["~> 4.
|
357
|
-
s.add_dependency(%q<roda>.freeze, ["~> 3.
|
358
|
+
s.add_dependency(%q<plivo>.freeze, ["~> 4.16"])
|
359
|
+
s.add_dependency(%q<roda>.freeze, ["~> 3.41"])
|
358
360
|
s.add_dependency(%q<roda-route_list>.freeze, ["~> 2.1"])
|
359
361
|
s.add_dependency(%q<slim>.freeze, ["~> 4.1"])
|
360
362
|
s.add_dependency(%q<jbuilder>.freeze, ["~> 2.11"])
|
@@ -363,8 +365,8 @@ Gem::Specification.new do |s|
|
|
363
365
|
s.add_dependency(%q<rdoc>.freeze, ["~> 6.3"])
|
364
366
|
s.add_dependency(%q<swagger_yard>.freeze, ["~> 1.0"])
|
365
367
|
s.add_dependency(%q<activesupport>.freeze, ["~> 6.1"])
|
366
|
-
s.add_dependency(%q<sentry-ruby>.freeze, ["~> 4.
|
367
|
-
s.add_dependency(%q<sentry-sidekiq>.freeze, ["~> 4.
|
368
|
+
s.add_dependency(%q<sentry-ruby>.freeze, ["~> 4.2"])
|
369
|
+
s.add_dependency(%q<sentry-sidekiq>.freeze, ["~> 4.2"])
|
368
370
|
s.add_dependency(%q<skylight>.freeze, ["~> 4.3"])
|
369
371
|
s.add_dependency(%q<phony>.freeze, ["~> 2.18"])
|
370
372
|
s.add_dependency(%q<bundler>.freeze, ["~> 1.17"])
|
@@ -373,7 +375,7 @@ Gem::Specification.new do |s|
|
|
373
375
|
s.add_dependency(%q<amazing_print>.freeze, ["~> 1.2"])
|
374
376
|
s.add_dependency(%q<byebug>.freeze, ["~> 11.1"])
|
375
377
|
s.add_dependency(%q<launchy>.freeze, ["~> 2.5"])
|
376
|
-
s.add_dependency(%q<
|
378
|
+
s.add_dependency(%q<standard>.freeze, ["~> 1.0"])
|
377
379
|
end
|
378
380
|
end
|
379
381
|
|
@@ -4,21 +4,21 @@ describe PUNK::ListGroupsAction do
|
|
4
4
|
let(:user) { create(:user) }
|
5
5
|
let(:tenant) { create(:tenant) }
|
6
6
|
|
7
|
-
context
|
8
|
-
it
|
7
|
+
context "with no user provided" do
|
8
|
+
it "returns a validation error" do
|
9
9
|
view = described_class.run(tenant: tenant).result.render(:json)
|
10
|
-
expect(view).to match(
|
10
|
+
expect(view).to match("user is not present")
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
|
-
context
|
15
|
-
it
|
14
|
+
context "with no tenant provided" do
|
15
|
+
it "returns a validation error" do
|
16
16
|
view = described_class.run(user: user).result.render(:json)
|
17
|
-
expect(view).to match(
|
17
|
+
expect(view).to match("tenant is not present")
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
|
-
context
|
21
|
+
context "with valid arguments" do
|
22
22
|
let(:groups) { create_list(:group, 3, tenant: tenant) }
|
23
23
|
|
24
24
|
before do
|
@@ -27,10 +27,10 @@ describe PUNK::ListGroupsAction do
|
|
27
27
|
groups[1].add_user(user)
|
28
28
|
end
|
29
29
|
|
30
|
-
it
|
30
|
+
it "returns groups for the tenant that the user is a member of" do
|
31
31
|
expect(tenant.groups.count).to eq(3)
|
32
32
|
view = JSON.parse(described_class.run(user: user, tenant: tenant).result.render(:json))
|
33
|
-
expect(view.map { |h| h[
|
33
|
+
expect(view.map { |h| h["id"] }.sort).to eq([groups[0].id, groups[1].id].sort)
|
34
34
|
end
|
35
35
|
end
|
36
36
|
end
|
@@ -1,28 +1,28 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
describe PUNK::ClearSessionAction do
|
4
|
-
context
|
5
|
-
it
|
4
|
+
context "with no session provided" do
|
5
|
+
it "returns a validation error" do
|
6
6
|
view = described_class.run.result.render(:json)
|
7
|
-
expect(view).to match(
|
8
|
-
expect(view).to match(
|
7
|
+
expect(view).to match("session is not present")
|
8
|
+
expect(view).to match("session is empty")
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
-
context
|
13
|
-
it
|
12
|
+
context "with an inactive session provided" do
|
13
|
+
it "returns a validation error" do
|
14
14
|
session = create(:session)
|
15
15
|
view = described_class.run(session: session).result.render(:json)
|
16
|
-
expect(view).to match(
|
17
|
-
expect(view).to match(
|
16
|
+
expect(view).to match("session is not in active state")
|
17
|
+
expect(view).to match("session may not clear")
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
|
-
context
|
22
|
-
it
|
21
|
+
context "with an active session provided" do
|
22
|
+
it "clears the session" do
|
23
23
|
session = create(:session, state: :active)
|
24
24
|
view = described_class.run(session: session).result.render(:json)
|
25
|
-
expect(view).to match(
|
25
|
+
expect(view).to match("You have been logged out")
|
26
26
|
expect(session.deleted?).to be(true)
|
27
27
|
end
|
28
28
|
end
|
@@ -4,28 +4,28 @@ describe PUNK::CreateSessionAction do
|
|
4
4
|
let(:remote_addr) { Faker::Internet.ip_v4_address }
|
5
5
|
let(:user_agent) { Faker::Internet.user_agent }
|
6
6
|
|
7
|
-
context
|
8
|
-
it
|
7
|
+
context "with no claim provided" do
|
8
|
+
it "returns a validation error" do
|
9
9
|
view = described_class.run(remote_addr: remote_addr, user_agent: user_agent).result.render(:json)
|
10
|
-
expect(view).to match(
|
10
|
+
expect(view).to match("claim is not present")
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
|
-
context
|
15
|
-
it
|
14
|
+
context "with an email claim provided" do
|
15
|
+
it "created an identity and a session" do
|
16
16
|
email = Faker::Internet.email
|
17
17
|
view = described_class.run(claim: email, remote_addr: remote_addr, user_agent: user_agent).result.render(:json)
|
18
|
-
session = PUNK::Session.find(slug: ActiveSupport::JSON.decode(view)[
|
18
|
+
session = PUNK::Session.find(slug: ActiveSupport::JSON.decode(view)["slug"])
|
19
19
|
expect(session.identity.claim_type).to eq(:email)
|
20
20
|
expect(session.identity.claim).to eq(email)
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
|
-
context
|
25
|
-
it
|
24
|
+
context "with a phone claim provided" do
|
25
|
+
it "created an identity and a session" do
|
26
26
|
phone = generate(:phone)
|
27
27
|
view = described_class.run(claim: phone, remote_addr: remote_addr, user_agent: user_agent).result.render(:json)
|
28
|
-
session = PUNK::Session.find(slug: ActiveSupport::JSON.decode(view)[
|
28
|
+
session = PUNK::Session.find(slug: ActiveSupport::JSON.decode(view)["slug"])
|
29
29
|
expect(session.identity.claim_type).to eq(:phone)
|
30
30
|
expect(session.identity.claim).to eq(phone)
|
31
31
|
end
|