Sha256: 1978638a9223c7eb0199cda4d7f23cfb49d8307a069f3a96cfb21a9454357e96
Contents?: true
Size: 1.04 KB
Versions: 3
Compression:
Stored size: 1.04 KB
Contents
class ExamRegistration < ApplicationRecord include WithTimedEnablement belongs_to :organization has_and_belongs_to_many :exams has_many :authorization_requests, class_name: 'ExamAuthorizationRequest', through: :exams enum authorization_criterion_type: %i(none passed_exercises), _prefix: :authorization_criterion before_save :ensure_valid_authorization_criterion! delegate :meets_authorization_criteria?, :process_request!, to: :authorization_criterion def authorization_criterion @authorization_criterion ||= ExamRegistration::AuthorizationCriterion.parse(authorization_criterion_type, authorization_criterion_value) end def ensure_valid_authorization_criterion! authorization_criterion.ensure_valid! end def start!(users) users.each &method(:notify_user!) end def process_requests! authorization_requests.each do |it| process_request! it it.try_authorize! end end private def notify_user!(user) Notification.create! organization: organization, user: user, target: self end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
mumuki-domain-8.5.0 | app/models/exam_registration.rb |
mumuki-domain-8.4.0 | app/models/exam_registration.rb |
mumuki-domain-8.3.1 | app/models/exam_registration.rb |