From 969bc99f5c186592d29794607c7b7c97649dbea5 Mon Sep 17 00:00:00 2001 From: xamgore <xamgore@ya.ru> Date: Wed, 24 Jun 2015 17:39:40 +0300 Subject: [PATCH] Strong check of existing fields --- .../classes/Model/Helper/CourseWorkBuilder.php | 8 +++++++- .../classes/Model/Helper/DisciplineBuilder.php | 7 ++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/~dev_rating/application/classes/Model/Helper/CourseWorkBuilder.php b/~dev_rating/application/classes/Model/Helper/CourseWorkBuilder.php index ec119996c..ecb120e97 100644 --- a/~dev_rating/application/classes/Model/Helper/CourseWorkBuilder.php +++ b/~dev_rating/application/classes/Model/Helper/CourseWorkBuilder.php @@ -9,11 +9,17 @@ class Model_Helper_CourseWorkBuilder extends Model_Helper_Builder 'Lectures' => 0, 'Practice' => 0, 'Labs' => 0, + 'Milestone' => null, 'IsLocked' => false, 'Type' => 'grading_credit', ]; - if (count($this->data) < 11) # fixme: bad const + $required = [ + 'Subtype', 'IsLocked', 'Milestone', 'AuthorID', 'GradeID', 'FacultyID', + 'SubjectID', 'Lectures', 'Practice', 'Labs', 'Type', 'SemesterID' + ]; + + if (array_diff($required, array_keys($this->data))) throw new InvalidArgumentException('not enough arguments'); return new Model_CourseWork($this->data, false); diff --git a/~dev_rating/application/classes/Model/Helper/DisciplineBuilder.php b/~dev_rating/application/classes/Model/Helper/DisciplineBuilder.php index 21d8218fd..b6e0b88a4 100644 --- a/~dev_rating/application/classes/Model/Helper/DisciplineBuilder.php +++ b/~dev_rating/application/classes/Model/Helper/DisciplineBuilder.php @@ -9,7 +9,12 @@ class Model_Helper_DisciplineBuilder extends Model_Helper_Builder 'Milestone' => 0, ]; - if (count($this->data) < 12) # fixme: bad const + $required = [ + 'Subtype', 'IsLocked', 'Milestone', 'AuthorID', 'GradeID', 'FacultyID', + 'SubjectID', 'Lectures', 'Practice', 'Labs', 'Type', 'SemesterID' + ]; + + if (array_diff($required, array_keys($this->data))) throw new InvalidArgumentException('not enough arguments'); return new Model_Discipline($this->data, false); -- GitLab