Skip to content

Commit e648e91

Browse files
committed
Extract School#verified?
To remove some duplication.
1 parent 91489a7 commit e648e91

File tree

7 files changed

+22
-6
lines changed

7 files changed

+22
-6
lines changed

app/controllers/admin/schools_controller.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ class SchoolsController < Admin::ApplicationController
55
def authorized_action?(resource, action)
66
case action
77
when :verify_school
8-
resource&.rejected_at.present? || resource&.verified_at.nil?
8+
resource&.rejected_at.present? || !resource&.verified?
99
when :reject_school
10-
resource&.verified_at.present? || resource&.rejected_at.nil?
10+
resource&.verified? || resource&.rejected_at.nil?
1111
else
1212
super
1313
end

app/models/school.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@ def creator
3131
User.from_userinfo(ids: creator_id).first
3232
end
3333

34+
def verified?
35+
verified_at.present?
36+
end
37+
3438
private
3539

3640
# Ensure the reference is nil, not an empty string

app/models/teacher_invitation.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class TeacherInvitation < ApplicationRecord
1616
private
1717

1818
def school_is_verified
19-
return if school.verified_at
19+
return if school.verified?
2020

2121
errors.add(:school, 'is not verified')
2222
end

lib/concepts/school_owner/invite.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ def call(school:, school_owner_params:, token:)
1818
def invite_owner(school, school_owner_params, token)
1919
email_address = school_owner_params.fetch(:email_address)
2020

21-
raise ArgumentError, 'school is not verified' unless school.verified_at
21+
raise ArgumentError, 'school is not verified' unless school.verified?
2222
raise ArgumentError, "email address '#{email_address}' is invalid" unless EmailValidator.valid?(email_address)
2323

2424
ProfileApiClient.invite_school_owner(token:, email_address:, organisation_id: school.id)

lib/concepts/school_student/create.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ def create_student(school, school_student_params, token)
2727
end
2828

2929
def validate(school:, username:, password:, name:)
30-
raise ArgumentError, 'school is not verified' unless school.verified_at
30+
raise ArgumentError, 'school is not verified' unless school.verified?
3131
raise ArgumentError, "username '#{username}' is invalid" if username.blank?
3232
raise ArgumentError, "password '#{password}' is invalid" if password.size < 8
3333
raise ArgumentError, "name '#{name}' is invalid" if name.blank?

lib/concepts/school_student/create_batch.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def create_batch(school, uploaded_file, token)
3030
def validate(school:, sheet:)
3131
expected_header = ['Student Name', 'Username', 'Password']
3232

33-
raise ArgumentError, 'school is not verified' unless school.verified_at
33+
raise ArgumentError, 'school is not verified' unless school.verified?
3434
raise ArgumentError, 'the spreadsheet header row is invalid' unless sheet.row(1) == expected_header
3535

3636
@errors = []

spec/models/school_spec.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,4 +217,16 @@
217217
expect { described_class.find_for_user!(user) }.to raise_error(ActiveRecord::RecordNotFound)
218218
end
219219
end
220+
221+
describe '#verified?' do
222+
it 'returns true when verified_at is present' do
223+
school.verified_at = Time.zone.now
224+
expect(school).to be_verified
225+
end
226+
227+
it 'returns false when verified_at is blank' do
228+
school.verified_at = nil
229+
expect(school).not_to be_verified
230+
end
231+
end
220232
end

0 commit comments

Comments
 (0)