From 4f11106e74093a0597483373ef25b76677b83e4e Mon Sep 17 00:00:00 2001 From: Dominic Grimm Date: Sat, 15 Jan 2022 19:06:13 +0100 Subject: [PATCH] Updated validations --- docker/backend/src/mw/db/teacher_vote.cr | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docker/backend/src/mw/db/teacher_vote.cr b/docker/backend/src/mw/db/teacher_vote.cr index e6e8c6c..bc57bb7 100644 --- a/docker/backend/src/mw/db/teacher_vote.cr +++ b/docker/backend/src/mw/db/teacher_vote.cr @@ -11,21 +11,21 @@ module MW column id : Int64, primary: true column priority : Int32 - validate :teacher, "must be present" do |teacher_vote| - !teacher_vote.teacher.nil? + validate :teacher, "must be vote unique" do |teacher_vote| + self.where(vote_id: teacher_vote.vote.id, teacher_id: teacher_vote.teacher.not_nil!.id).count.run.as(Int64).zero? end - validate :teacher, "must be student unique" do |teacher_vote| - self.where(vote_id: teacher_vote.vote.id, teacher_id: teacher_vote.teacher.not_nil!.id).count == 0 - end - - validate :priority, "must be greater than 0" do |teacher_vote| - teacher_vote.priority > 0 + validate :priority, "must be positive" do |teacher_vote| + teacher_vote.priority >= 0 end validate :priority, "must be less than the number of teachers" do |teacher_vote| teacher_vote.priority < Teacher.count end + + validate :priority, "must be vote unique" do |teacher_vote| + self.where(vote_id: teacher_vote.vote.id, priority: teacher_vote.priority).count.run.as(Int64).zero? + end end end end