graphql_devise 0.18.1 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (95) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +25 -2
  3. data/.gitignore +4 -0
  4. data/.rubocop.yml +9 -10
  5. data/Appraisals +72 -35
  6. data/CHANGELOG.md +63 -0
  7. data/README.md +71 -142
  8. data/app/controllers/graphql_devise/graphql_controller.rb +3 -3
  9. data/app/views/graphql_devise/mailer/confirmation_instructions.html.erb +1 -5
  10. data/config/routes.rb +0 -2
  11. data/graphql_devise.gemspec +8 -6
  12. data/lib/generators/graphql_devise/install_generator.rb +1 -1
  13. data/lib/graphql_devise/concerns/additional_controller_methods.rb +48 -0
  14. data/lib/graphql_devise/concerns/additional_model_methods.rb +17 -0
  15. data/lib/graphql_devise/concerns/authenticatable.rb +1 -1
  16. data/lib/graphql_devise/concerns/controller_methods.rb +79 -91
  17. data/lib/graphql_devise/concerns/field_authentication.rb +14 -0
  18. data/lib/graphql_devise/concerns/set_user_by_token.rb +1 -1
  19. data/lib/graphql_devise/default_operations.rb +16 -0
  20. data/lib/graphql_devise/engine.rb +0 -2
  21. data/lib/graphql_devise/model/with_email_updater.rb +5 -30
  22. data/lib/graphql_devise/mount_method/operation_preparer.rb +0 -7
  23. data/lib/graphql_devise/mount_method/operation_preparers/custom_operation_preparer.rb +1 -1
  24. data/lib/graphql_devise/mount_method/operation_preparers/default_operation_preparer.rb +1 -1
  25. data/lib/graphql_devise/mount_method/operation_sanitizer.rb +0 -12
  26. data/lib/graphql_devise/mount_method/option_sanitizer.rb +0 -2
  27. data/lib/graphql_devise/mount_method/option_sanitizers/array_checker.rb +2 -2
  28. data/lib/graphql_devise/mount_method/option_sanitizers/class_checker.rb +2 -2
  29. data/lib/graphql_devise/mount_method/option_sanitizers/hash_checker.rb +1 -1
  30. data/lib/graphql_devise/mount_method/option_sanitizers/string_checker.rb +1 -1
  31. data/lib/graphql_devise/mount_method/option_validators/provided_operations_validator.rb +0 -2
  32. data/lib/graphql_devise/mount_method/option_validators/skip_only_validator.rb +1 -1
  33. data/lib/graphql_devise/mount_method/option_validators/supported_operations_validator.rb +1 -1
  34. data/lib/graphql_devise/mount_method/options_validator.rb +0 -3
  35. data/lib/graphql_devise/mount_method/supported_options.rb +0 -5
  36. data/lib/graphql_devise/mutations/base.rb +1 -1
  37. data/lib/graphql_devise/mutations/confirm_registration_with_token.rb +2 -2
  38. data/lib/graphql_devise/mutations/login.rb +2 -2
  39. data/lib/graphql_devise/mutations/register.rb +2 -2
  40. data/lib/graphql_devise/mutations/update_password_with_token.rb +2 -2
  41. data/lib/graphql_devise/resolvers/base.rb +1 -1
  42. data/lib/graphql_devise/resource_loader.rb +71 -39
  43. data/lib/graphql_devise/route_mounter.rb +13 -0
  44. data/lib/graphql_devise/schema_plugin.rb +11 -40
  45. data/lib/graphql_devise/types/authenticatable_type.rb +1 -1
  46. data/lib/graphql_devise/types/base_field.rb +9 -0
  47. data/lib/graphql_devise/types/base_type.rb +8 -0
  48. data/lib/graphql_devise/types/credential_type.rb +1 -1
  49. data/lib/graphql_devise/types/mutation_type.rb +1 -0
  50. data/lib/graphql_devise/types/query_type.rb +1 -0
  51. data/lib/graphql_devise/version.rb +1 -1
  52. data/lib/graphql_devise.rb +21 -29
  53. data/spec/dummy/app/controllers/api/v1/graphql_controller.rb +2 -16
  54. data/spec/dummy/app/graphql/dummy_schema.rb +1 -5
  55. data/spec/dummy/app/graphql/interpreter_schema.rb +6 -2
  56. data/spec/dummy/app/graphql/mutations/base_mutation.rb +6 -0
  57. data/spec/dummy/app/graphql/mutations/update_user.rb +2 -4
  58. data/spec/dummy/app/graphql/types/admin_type.rb +1 -1
  59. data/spec/dummy/app/graphql/types/custom_admin_type.rb +1 -1
  60. data/spec/dummy/app/graphql/types/mutation_type.rb +3 -1
  61. data/spec/dummy/app/graphql/types/query_type.rb +3 -1
  62. data/spec/dummy/app/graphql/types/user_type.rb +1 -1
  63. data/spec/dummy/config/environments/test.rb +1 -1
  64. data/spec/dummy/config/routes.rb +5 -9
  65. data/spec/generators/graphql_devise/install_generator_spec.rb +2 -2
  66. data/spec/graphql_devise/model/with_email_updater_spec.rb +17 -35
  67. data/spec/rails_helper.rb +5 -5
  68. data/spec/requests/mutations/login_spec.rb +34 -0
  69. data/spec/requests/mutations/resend_confirmation_with_token_spec.rb +2 -3
  70. data/spec/requests/user_controller_spec.rb +1 -33
  71. data/spec/services/resource_loader_spec.rb +53 -3
  72. data/spec/spec_helper.rb +1 -1
  73. metadata +62 -55
  74. data/app/controllers/graphql_devise/concerns/additional_controller_methods.rb +0 -72
  75. data/app/controllers/graphql_devise/concerns/set_user_by_token.rb +0 -21
  76. data/app/helpers/graphql_devise/mailer_helper.rb +0 -37
  77. data/app/models/graphql_devise/concerns/additional_model_methods.rb +0 -21
  78. data/app/models/graphql_devise/concerns/model.rb +0 -25
  79. data/lib/graphql_devise/default_operations/mutations.rb +0 -32
  80. data/lib/graphql_devise/default_operations/resolvers.rb +0 -14
  81. data/lib/graphql_devise/mutations/resend_confirmation.rb +0 -45
  82. data/lib/graphql_devise/mutations/send_password_reset.rb +0 -38
  83. data/lib/graphql_devise/mutations/sign_up.rb +0 -61
  84. data/lib/graphql_devise/mutations/update_password.rb +0 -46
  85. data/lib/graphql_devise/rails/routes.rb +0 -15
  86. data/lib/graphql_devise/resolvers/check_password_token.rb +0 -43
  87. data/lib/graphql_devise/resolvers/confirm_account.rb +0 -42
  88. data/spec/dummy/app/graphql/mutations/sign_up.rb +0 -14
  89. data/spec/dummy/app/graphql/resolvers/confirm_admin_account.rb +0 -13
  90. data/spec/requests/mutations/resend_confirmation_spec.rb +0 -153
  91. data/spec/requests/mutations/send_password_reset_spec.rb +0 -103
  92. data/spec/requests/mutations/sign_up_spec.rb +0 -170
  93. data/spec/requests/mutations/update_password_spec.rb +0 -116
  94. data/spec/requests/queries/check_password_token_spec.rb +0 -149
  95. data/spec/requests/queries/confirm_account_spec.rb +0 -137
@@ -61,7 +61,7 @@ RSpec.describe GraphqlDevise::Model::WithEmailUpdater do
61
61
  let(:resource) { create(:admin, :confirmed) }
62
62
 
63
63
  context 'when attributes contain email' do
64
- let(:attributes) { { email: 'new@gmail.com', schema_url: 'http://localhost/test', confirmation_success_url: 'https://google.com' } }
64
+ let(:attributes) { { email: 'new@gmail.com', confirmation_url: 'https://google.com' } }
65
65
 
66
66
  it 'does not postpone email update' do
67
67
  expect do
@@ -78,7 +78,7 @@ RSpec.describe GraphqlDevise::Model::WithEmailUpdater do
78
78
  let(:resource) { create(:user, :confirmed) }
79
79
 
80
80
  context 'when attributes do not contain email' do
81
- let(:attributes) { { name: 'Updated Name', schema_url: 'http://localhost/test', confirmation_success_url: 'https://google.com' } }
81
+ let(:attributes) { { name: 'Updated Name', confirmation_url: 'https://google.com' } }
82
82
 
83
83
  it 'updates resource, ignores url params' do
84
84
  expect do
@@ -89,11 +89,15 @@ RSpec.describe GraphqlDevise::Model::WithEmailUpdater do
89
89
  end
90
90
 
91
91
  context 'when attributes contain email' do
92
- context 'when confirmation_success_url is used' do
93
- it_behaves_like 'all required arguments are provided', schema_url: 'http://localhost/test', confirmation_success_url: 'https://google.com'
92
+ context 'when confirmation_url is used' do
93
+ it_behaves_like 'all required arguments are provided', confirmation_url: 'https://google.com'
94
+
95
+ context 'when arguments hash has strings as keys' do
96
+ it_behaves_like 'all required arguments are provided', 'confirmation_url' => 'https://google.com'
97
+ end
94
98
 
95
- context 'when confirmation_success_url is missing and no default is set' do
96
- let(:attributes) { { email: 'new@gmail.com', name: 'Updated Name', schema_url: 'http://localhost/test' } }
99
+ context 'when confirmation_url is missing and no default is set' do
100
+ let(:attributes) { { email: 'new@gmail.com', name: 'Updated Name' } }
97
101
 
98
102
  before { allow(DeviseTokenAuth).to receive(:default_confirm_success_url).and_return(nil) }
99
103
 
@@ -105,7 +109,7 @@ RSpec.describe GraphqlDevise::Model::WithEmailUpdater do
105
109
  end
106
110
 
107
111
  context 'when email will not change' do
108
- let(:attributes) { { email: resource.email, name: 'changed', confirmation_success_url: 'https://google.com' } }
112
+ let(:attributes) { { email: resource.email, name: 'changed' } }
109
113
 
110
114
  it 'updates name and does not raise an error' do
111
115
  expect do
@@ -121,37 +125,15 @@ RSpec.describe GraphqlDevise::Model::WithEmailUpdater do
121
125
  end
122
126
  end
123
127
 
124
- context 'when confirm_url is used' do
125
- it_behaves_like 'all required arguments are provided', confirmation_url: 'https://google.com'
126
-
127
- context 'when arguments hash has strings as keys' do
128
- it_behaves_like 'all required arguments are provided', 'confirmation_url' => 'https://google.com'
129
- end
130
- end
131
-
132
128
  context 'when no confirmation url is provided is provided' do
133
- context 'when schema_url is provided' do
134
- let(:attributes) { { email: 'new@gmail.com', name: 'Updated Name', schema_url: 'http://localhost/test' } }
135
-
136
- it 'uses DTA default_confirm_success_url on the email with redirect flow' do
137
- expect { updater }.to change(ActionMailer::Base.deliveries, :count).by(1)
138
-
139
- email = ActionMailer::Base.deliveries.first
140
- expect(email.body.decoded).to include(CGI.escape('https://google.com'))
141
- expect(email.body.decoded).to include(CGI.escape('ConfirmAccount('))
142
- end
143
- end
129
+ let(:attributes) { { email: 'new@gmail.com', name: 'Updated Name' } }
144
130
 
145
- context 'when schema_url is not provided' do
146
- let(:attributes) { { email: 'new@gmail.com', name: 'Updated Name' } }
131
+ it 'uses DTA default_confirm_success_url on the email and new confirmation flow' do
132
+ expect { updater }.to change(ActionMailer::Base.deliveries, :count).by(1)
147
133
 
148
- it 'uses DTA default_confirm_success_url on the email and new confirmation flow' do
149
- expect { updater }.to change(ActionMailer::Base.deliveries, :count).by(1)
150
-
151
- email = ActionMailer::Base.deliveries.first
152
- expect(email.body.decoded).to include(CGI.escape('https://google.com'))
153
- expect(email.body.decoded).to include('?confirmationToken=')
154
- end
134
+ email = ActionMailer::Base.deliveries.first
135
+ expect(email.body.decoded).to include('https://google.com')
136
+ expect(email.body.decoded).to include('?confirmationToken=')
155
137
  end
156
138
  end
157
139
  end
data/spec/rails_helper.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  require 'spec_helper'
4
4
 
5
5
  ENV['RAILS_ENV'] ||= 'test'
6
- ENGINE_ROOT = File.join(File.dirname(__FILE__), '../')
6
+ GQL_DEVISE_ROOT = File.join(File.dirname(__FILE__), '../')
7
7
 
8
8
  require File.expand_path('dummy/config/environment.rb', __dir__)
9
9
 
@@ -16,12 +16,12 @@ require 'faker'
16
16
  require 'generator_spec'
17
17
 
18
18
  # Load RSpec helpers.
19
- Dir[File.join(ENGINE_ROOT, 'spec/support/**/*.rb')].each { |f| require f }
19
+ Dir[File.join(GQL_DEVISE_ROOT, 'spec/support/**/*.rb')].each { |f| require f }
20
20
 
21
21
  begin
22
22
  ActiveRecord::Migrator.migrations_paths = [
23
- File.join(ENGINE_ROOT, 'spec/dummy/db/migrate'),
24
- File.join(ENGINE_ROOT, 'spec/db/migrate')
23
+ File.join(GQL_DEVISE_ROOT, 'spec/dummy/db/migrate'),
24
+ File.join(GQL_DEVISE_ROOT, 'spec/db/migrate')
25
25
  ]
26
26
  ActiveRecord::Migration.maintain_test_schema!
27
27
  rescue ActiveRecord::PendingMigrationError => e
@@ -29,7 +29,7 @@ rescue ActiveRecord::PendingMigrationError => e
29
29
  exit 1
30
30
  end
31
31
  RSpec.configure do |config|
32
- config.fixture_path = "#{ENGINE_ROOT}/spec/fixtures"
32
+ config.fixture_path = "#{GQL_DEVISE_ROOT}/spec/fixtures"
33
33
 
34
34
  config.use_transactional_fixtures = true
35
35
 
@@ -184,4 +184,38 @@ RSpec.describe 'Login Requests' do
184
184
  )
185
185
  end
186
186
  end
187
+
188
+
189
+ if DeviseTokenAuth.respond_to?(:cookie_enabled)
190
+ context 'when using cookies for auth' do
191
+ let!(:user) { create(:user, :confirmed, password: password, email: 'vvega@wallaceinc.com') }
192
+ let(:email) { user.email }
193
+ let(:query) do
194
+ <<-GRAPHQL
195
+ mutation {
196
+ userLogin(
197
+ email: "#{email}",
198
+ password: "#{password}"
199
+ ) {
200
+ authenticatable { email }
201
+ credentials { accessToken uid tokenType client expiry }
202
+ }
203
+ }
204
+ GRAPHQL
205
+ end
206
+
207
+ around do |example|
208
+ DeviseTokenAuth.cookie_enabled = true
209
+ example.run
210
+ DeviseTokenAuth.cookie_enabled = false
211
+ end
212
+
213
+ before { post_request('/api/v1/graphql') }
214
+
215
+ it 'honors DTA configuration of setting auth info in cookies' do
216
+ cookie = cookies.get_cookie('auth_cookie')
217
+ expect(JSON.parse(cookie.value).keys).to include(*%w[uid access-token client])
218
+ end
219
+ end
220
+ end
187
221
  end
@@ -105,9 +105,8 @@ RSpec.describe 'Resend confirmation with token' do
105
105
 
106
106
  before do
107
107
  user.update_with_email(
108
- email: new_email,
109
- schema_url: 'http://localhost/test',
110
- confirmation_success_url: 'https://google.com'
108
+ email: new_email,
109
+ confirmation_url: 'https://google.com'
111
110
  )
112
111
  end
113
112
 
@@ -50,22 +50,6 @@ RSpec.describe "Integrations with the user's controller" do
50
50
  GRAPHQL
51
51
  end
52
52
 
53
- context 'when authenticating before using the GQL schema' do
54
- before { post_request('/api/v1/controller_auth') }
55
-
56
- context 'when user is authenticated' do
57
- let(:headers) { create(:schema_user).create_new_auth_token }
58
-
59
- it 'allows authentication at the controller level' do
60
- expect(json_response[:data][:privateField]).to eq('Field will always require authentication')
61
- end
62
- end
63
-
64
- context 'when user is not authenticated' do
65
- it_behaves_like 'returns a must authenticate error', 'privateField'
66
- end
67
- end
68
-
69
53
  context 'when using a regular schema' do
70
54
  before { post_request('/api/v1/graphql') }
71
55
 
@@ -88,15 +72,6 @@ RSpec.describe "Integrations with the user's controller" do
88
72
  context 'when user is not authenticated' do
89
73
  it_behaves_like 'returns a must authenticate error', 'privateField'
90
74
  end
91
-
92
- context 'when using the failing route' do
93
- it 'raises an invalid resource_name error' do
94
- expect { post_request('/api/v1/failing') }.to raise_error(
95
- GraphqlDevise::Error,
96
- 'Invalid resource_name `fail` provided to `graphql_context`. Possible values are: [:user, :admin, :guest, :users_customer, :schema_user].'
97
- )
98
- end
99
- end
100
75
  end
101
76
 
102
77
  context 'when using an interpreter schema' do
@@ -245,14 +220,7 @@ RSpec.describe "Integrations with the user's controller" do
245
220
 
246
221
  email = Nokogiri::HTML(ActionMailer::Base.deliveries.last.body.encoded)
247
222
  link = email.css('a').first
248
- expect(link['href']).to include('/api/v1/graphql')
249
-
250
- expect do
251
- get link['href']
252
- user.reload
253
- end.to change(user, :email).from(original_email).to('updated@gmail.com').and(
254
- change(user, :uid).from(original_email).to('updated@gmail.com')
255
- )
223
+ expect(link['href']).to include('https://google.com')
256
224
  end
257
225
  end
258
226
 
@@ -10,8 +10,8 @@ RSpec.describe GraphqlDevise::ResourceLoader do
10
10
  let(:mutation) { class_double(GraphQL::Schema::Object) }
11
11
  let(:routing) { false }
12
12
  let(:mounted) { false }
13
- let(:resource) { 'User' }
14
- let(:options) { { only: [:login, :confirm_account] } }
13
+ let(:resource) { User }
14
+ let(:options) { { only: [:login], additional_queries: { public_user: Class.new(GraphQL::Schema::Resolver) } } }
15
15
 
16
16
  before do
17
17
  allow(GraphqlDevise).to receive(:add_mapping).with(:user, resource)
@@ -20,7 +20,7 @@ RSpec.describe GraphqlDevise::ResourceLoader do
20
20
  end
21
21
 
22
22
  it 'loads operations into the provided types' do
23
- expect(query).to receive(:field).with(:user_confirm_account, resolver: instance_of(Class), authenticate: false)
23
+ expect(query).to receive(:field).with(:public_user, resolver: instance_of(Class), authenticate: false)
24
24
  expect(mutation).to receive(:field).with(:user_login, mutation: instance_of(Class), authenticate: false)
25
25
  expect(GraphqlDevise).to receive(:add_mapping).with(:user, resource)
26
26
  expect(GraphqlDevise).not_to receive(:mount_resource)
@@ -30,6 +30,17 @@ RSpec.describe GraphqlDevise::ResourceLoader do
30
30
  expect(returned).to be_a(Struct)
31
31
  end
32
32
 
33
+ context 'when resource is not class' do
34
+ let(:resource) { 'User' }
35
+
36
+ it 'raises an error' do
37
+ expect { loader }.to raise_error(
38
+ GraphqlDevise::Error,
39
+ 'A class must be provided when mounting a model. String values are no longer supported.'
40
+ )
41
+ end
42
+ end
43
+
33
44
  context 'when mutation is nil' do
34
45
  let(:mutation) { nil }
35
46
 
@@ -80,5 +91,44 @@ RSpec.describe GraphqlDevise::ResourceLoader do
80
91
  end
81
92
  end
82
93
  end
94
+
95
+ context 'when argument errors are raised when field is set' do
96
+ context 'when mutation raises an argument error' do
97
+ before { allow(mutation).to receive(:field).and_raise(ArgumentError, 'mutation error') }
98
+
99
+ if Gem::Version.new(GraphQL::VERSION) < Gem::Version.new('2.0')
100
+ it 'raises the same argument error' do
101
+ expect { loader }.to raise_error(
102
+ ArgumentError,
103
+ 'mutation error'
104
+ )
105
+ end
106
+ else
107
+ it 'raises a GraphqlDevise::Error error' do
108
+ expect { loader }.to raise_error(GraphqlDevise::Error)
109
+ end
110
+ end
111
+ end
112
+
113
+ context 'when query raises an argument error' do
114
+ before do
115
+ allow(mutation).to receive(:field)
116
+ allow(query).to receive(:field).and_raise(ArgumentError, 'query error')
117
+ end
118
+
119
+ if Gem::Version.new(GraphQL::VERSION) < Gem::Version.new('2.0')
120
+ it 'raises the same argument error' do
121
+ expect { loader }.to raise_error(
122
+ ArgumentError,
123
+ 'query error'
124
+ )
125
+ end
126
+ else
127
+ it 'raises a GraphqlDevise::Error error' do
128
+ expect { loader }.to raise_error(GraphqlDevise::Error)
129
+ end
130
+ end
131
+ end
132
+ end
83
133
  end
84
134
  end
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- if ENV['CI'] && !ENV['SKIP_COVERALLS']
3
+ if ENV['CI'] && !ENV['SKIP_COVERALLS'] && Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.5')
4
4
  require 'simplecov'
5
5
  require 'coveralls'
6
6
 
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graphql_devise
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.1
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mario Celi
8
8
  - David Revelo
9
- autorequire:
9
+ autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2022-03-06 00:00:00.000000000 Z
12
+ date: 2022-08-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: devise_token_auth
@@ -40,7 +40,7 @@ dependencies:
40
40
  version: '1.8'
41
41
  - - "<"
42
42
  - !ruby/object:Gem::Version
43
- version: 1.14.0
43
+ version: '2.1'
44
44
  type: :runtime
45
45
  prerelease: false
46
46
  version_requirements: !ruby/object:Gem::Requirement
@@ -50,7 +50,7 @@ dependencies:
50
50
  version: '1.8'
51
51
  - - "<"
52
52
  - !ruby/object:Gem::Version
53
- version: 1.14.0
53
+ version: '2.1'
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: rails
56
56
  requirement: !ruby/object:Gem::Requirement
@@ -71,6 +71,20 @@ dependencies:
71
71
  - - "<"
72
72
  - !ruby/object:Gem::Version
73
73
  version: '6.2'
74
+ - !ruby/object:Gem::Dependency
75
+ name: zeitwerk
76
+ requirement: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ type: :runtime
82
+ prerelease: false
83
+ version_requirements: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
74
88
  - !ruby/object:Gem::Dependency
75
89
  name: appraisal
76
90
  requirement: !ruby/object:Gem::Requirement
@@ -86,19 +100,19 @@ dependencies:
86
100
  - !ruby/object:Gem::Version
87
101
  version: '0'
88
102
  - !ruby/object:Gem::Dependency
89
- name: coveralls-ruby
103
+ name: coveralls_reborn
90
104
  requirement: !ruby/object:Gem::Requirement
91
105
  requirements:
92
- - - "~>"
106
+ - - ">="
93
107
  - !ruby/object:Gem::Version
94
- version: '0.2'
108
+ version: '0'
95
109
  type: :development
96
110
  prerelease: false
97
111
  version_requirements: !ruby/object:Gem::Requirement
98
112
  requirements:
99
- - - "~>"
113
+ - - ">="
100
114
  - !ruby/object:Gem::Version
101
- version: '0.2'
115
+ version: '0'
102
116
  - !ruby/object:Gem::Dependency
103
117
  name: factory_bot
104
118
  requirement: !ruby/object:Gem::Requirement
@@ -215,44 +229,58 @@ dependencies:
215
229
  name: rubocop
216
230
  requirement: !ruby/object:Gem::Requirement
217
231
  requirements:
218
- - - '='
232
+ - - "<"
219
233
  - !ruby/object:Gem::Version
220
- version: 0.68.1
234
+ version: 0.82.0
221
235
  type: :development
222
236
  prerelease: false
223
237
  version_requirements: !ruby/object:Gem::Requirement
224
238
  requirements:
225
- - - '='
239
+ - - "<"
226
240
  - !ruby/object:Gem::Version
227
- version: 0.68.1
241
+ version: 0.82.0
228
242
  - !ruby/object:Gem::Dependency
229
243
  name: rubocop-performance
230
244
  requirement: !ruby/object:Gem::Requirement
231
245
  requirements:
232
- - - ">="
246
+ - - "<"
233
247
  - !ruby/object:Gem::Version
234
- version: '0'
248
+ version: 1.6.0
235
249
  type: :development
236
250
  prerelease: false
237
251
  version_requirements: !ruby/object:Gem::Requirement
238
252
  requirements:
239
- - - ">="
253
+ - - "<"
240
254
  - !ruby/object:Gem::Version
241
- version: '0'
255
+ version: 1.6.0
256
+ - !ruby/object:Gem::Dependency
257
+ name: rubocop-rails
258
+ requirement: !ruby/object:Gem::Requirement
259
+ requirements:
260
+ - - "<"
261
+ - !ruby/object:Gem::Version
262
+ version: 2.6.0
263
+ type: :development
264
+ prerelease: false
265
+ version_requirements: !ruby/object:Gem::Requirement
266
+ requirements:
267
+ - - "<"
268
+ - !ruby/object:Gem::Version
269
+ version: 2.6.0
242
270
  - !ruby/object:Gem::Dependency
243
271
  name: rubocop-rspec
244
272
  requirement: !ruby/object:Gem::Requirement
245
273
  requirements:
246
- - - ">="
274
+ - - "<"
247
275
  - !ruby/object:Gem::Version
248
- version: '0'
276
+ version: 1.39.0
249
277
  type: :development
250
278
  prerelease: false
251
279
  version_requirements: !ruby/object:Gem::Requirement
252
280
  requirements:
253
- - - ">="
281
+ - - "<"
254
282
  - !ruby/object:Gem::Version
255
- version: '0'
283
+ version: 1.39.0
256
284
  - !ruby/object:Gem::Dependency
257
285
  name: sqlite3
258
286
  requirement: !ruby/object:Gem::Requirement
@@ -289,13 +317,8 @@ files:
289
317
  - README.md
290
318
  - Rakefile
291
319
  - app/controllers/graphql_devise/application_controller.rb
292
- - app/controllers/graphql_devise/concerns/additional_controller_methods.rb
293
- - app/controllers/graphql_devise/concerns/set_user_by_token.rb
294
320
  - app/controllers/graphql_devise/graphql_controller.rb
295
321
  - app/helpers/graphql_devise/application_helper.rb
296
- - app/helpers/graphql_devise/mailer_helper.rb
297
- - app/models/graphql_devise/concerns/additional_model_methods.rb
298
- - app/models/graphql_devise/concerns/model.rb
299
322
  - app/views/.keep
300
323
  - app/views/graphql_devise/mailer/confirmation_instructions.html.erb
301
324
  - app/views/graphql_devise/mailer/reset_password_instructions.html.erb
@@ -308,11 +331,13 @@ files:
308
331
  - graphql_devise.gemspec
309
332
  - lib/generators/graphql_devise/install_generator.rb
310
333
  - lib/graphql_devise.rb
334
+ - lib/graphql_devise/concerns/additional_controller_methods.rb
335
+ - lib/graphql_devise/concerns/additional_model_methods.rb
311
336
  - lib/graphql_devise/concerns/authenticatable.rb
312
337
  - lib/graphql_devise/concerns/controller_methods.rb
338
+ - lib/graphql_devise/concerns/field_authentication.rb
313
339
  - lib/graphql_devise/concerns/set_user_by_token.rb
314
- - lib/graphql_devise/default_operations/mutations.rb
315
- - lib/graphql_devise/default_operations/resolvers.rb
340
+ - lib/graphql_devise/default_operations.rb
316
341
  - lib/graphql_devise/engine.rb
317
342
  - lib/graphql_devise/errors/authentication_error.rb
318
343
  - lib/graphql_devise/errors/detailed_user_error.rb
@@ -343,22 +368,18 @@ files:
343
368
  - lib/graphql_devise/mutations/login.rb
344
369
  - lib/graphql_devise/mutations/logout.rb
345
370
  - lib/graphql_devise/mutations/register.rb
346
- - lib/graphql_devise/mutations/resend_confirmation.rb
347
371
  - lib/graphql_devise/mutations/resend_confirmation_with_token.rb
348
- - lib/graphql_devise/mutations/send_password_reset.rb
349
372
  - lib/graphql_devise/mutations/send_password_reset_with_token.rb
350
- - lib/graphql_devise/mutations/sign_up.rb
351
- - lib/graphql_devise/mutations/update_password.rb
352
373
  - lib/graphql_devise/mutations/update_password_with_token.rb
353
- - lib/graphql_devise/rails/routes.rb
354
374
  - lib/graphql_devise/resolvers/base.rb
355
- - lib/graphql_devise/resolvers/check_password_token.rb
356
- - lib/graphql_devise/resolvers/confirm_account.rb
357
375
  - lib/graphql_devise/resolvers/dummy.rb
358
376
  - lib/graphql_devise/resource_loader.rb
377
+ - lib/graphql_devise/route_mounter.rb
359
378
  - lib/graphql_devise/schema.rb
360
379
  - lib/graphql_devise/schema_plugin.rb
361
380
  - lib/graphql_devise/types/authenticatable_type.rb
381
+ - lib/graphql_devise/types/base_field.rb
382
+ - lib/graphql_devise/types/base_type.rb
362
383
  - lib/graphql_devise/types/credential_type.rb
363
384
  - lib/graphql_devise/types/mutation_type.rb
364
385
  - lib/graphql_devise/types/query_type.rb
@@ -370,13 +391,12 @@ files:
370
391
  - spec/dummy/app/controllers/application_controller.rb
371
392
  - spec/dummy/app/graphql/dummy_schema.rb
372
393
  - spec/dummy/app/graphql/interpreter_schema.rb
394
+ - spec/dummy/app/graphql/mutations/base_mutation.rb
373
395
  - spec/dummy/app/graphql/mutations/login.rb
374
396
  - spec/dummy/app/graphql/mutations/register.rb
375
397
  - spec/dummy/app/graphql/mutations/register_confirmed_user.rb
376
398
  - spec/dummy/app/graphql/mutations/reset_admin_password_with_token.rb
377
- - spec/dummy/app/graphql/mutations/sign_up.rb
378
399
  - spec/dummy/app/graphql/mutations/update_user.rb
379
- - spec/dummy/app/graphql/resolvers/confirm_admin_account.rb
380
400
  - spec/dummy/app/graphql/resolvers/public_user.rb
381
401
  - spec/dummy/app/graphql/resolvers/user_show.rb
382
402
  - spec/dummy/app/graphql/types/admin_type.rb
@@ -453,15 +473,9 @@ files:
453
473
  - spec/requests/mutations/login_spec.rb
454
474
  - spec/requests/mutations/logout_spec.rb
455
475
  - spec/requests/mutations/register_spec.rb
456
- - spec/requests/mutations/resend_confirmation_spec.rb
457
476
  - spec/requests/mutations/resend_confirmation_with_token_spec.rb
458
- - spec/requests/mutations/send_password_reset_spec.rb
459
477
  - spec/requests/mutations/send_password_reset_with_token_spec.rb
460
- - spec/requests/mutations/sign_up_spec.rb
461
- - spec/requests/mutations/update_password_spec.rb
462
478
  - spec/requests/mutations/update_password_with_token_spec.rb
463
- - spec/requests/queries/check_password_token_spec.rb
464
- - spec/requests/queries/confirm_account_spec.rb
465
479
  - spec/requests/queries/introspection_query_spec.rb
466
480
  - spec/requests/user_controller_spec.rb
467
481
  - spec/services/mount_method/operation_preparer_spec.rb
@@ -497,7 +511,7 @@ licenses:
497
511
  metadata:
498
512
  homepage_uri: https://github.com/graphql-devise/graphql_devise
499
513
  source_code_uri: https://github.com/graphql-devise/graphql_devise
500
- post_install_message:
514
+ post_install_message:
501
515
  rdoc_options: []
502
516
  require_paths:
503
517
  - lib
@@ -505,7 +519,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
505
519
  requirements:
506
520
  - - ">="
507
521
  - !ruby/object:Gem::Version
508
- version: 2.2.0
522
+ version: 2.4.4
509
523
  required_rubygems_version: !ruby/object:Gem::Requirement
510
524
  requirements:
511
525
  - - ">="
@@ -513,7 +527,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
513
527
  version: '0'
514
528
  requirements: []
515
529
  rubygems_version: 3.1.6
516
- signing_key:
530
+ signing_key:
517
531
  specification_version: 4
518
532
  summary: GraphQL queries and mutations on top of devise_token_auth
519
533
  test_files:
@@ -524,13 +538,12 @@ test_files:
524
538
  - spec/dummy/app/controllers/application_controller.rb
525
539
  - spec/dummy/app/graphql/dummy_schema.rb
526
540
  - spec/dummy/app/graphql/interpreter_schema.rb
541
+ - spec/dummy/app/graphql/mutations/base_mutation.rb
527
542
  - spec/dummy/app/graphql/mutations/login.rb
528
543
  - spec/dummy/app/graphql/mutations/register.rb
529
544
  - spec/dummy/app/graphql/mutations/register_confirmed_user.rb
530
545
  - spec/dummy/app/graphql/mutations/reset_admin_password_with_token.rb
531
- - spec/dummy/app/graphql/mutations/sign_up.rb
532
546
  - spec/dummy/app/graphql/mutations/update_user.rb
533
- - spec/dummy/app/graphql/resolvers/confirm_admin_account.rb
534
547
  - spec/dummy/app/graphql/resolvers/public_user.rb
535
548
  - spec/dummy/app/graphql/resolvers/user_show.rb
536
549
  - spec/dummy/app/graphql/types/admin_type.rb
@@ -607,15 +620,9 @@ test_files:
607
620
  - spec/requests/mutations/login_spec.rb
608
621
  - spec/requests/mutations/logout_spec.rb
609
622
  - spec/requests/mutations/register_spec.rb
610
- - spec/requests/mutations/resend_confirmation_spec.rb
611
623
  - spec/requests/mutations/resend_confirmation_with_token_spec.rb
612
- - spec/requests/mutations/send_password_reset_spec.rb
613
624
  - spec/requests/mutations/send_password_reset_with_token_spec.rb
614
- - spec/requests/mutations/sign_up_spec.rb
615
- - spec/requests/mutations/update_password_spec.rb
616
625
  - spec/requests/mutations/update_password_with_token_spec.rb
617
- - spec/requests/queries/check_password_token_spec.rb
618
- - spec/requests/queries/confirm_account_spec.rb
619
626
  - spec/requests/queries/introspection_query_spec.rb
620
627
  - spec/requests/user_controller_spec.rb
621
628
  - spec/services/mount_method/operation_preparer_spec.rb