Skip to content

Commit e753841

Browse files
authored
MIG-14509 Added new parameter to include extra marks (#68)
1 parent 1d1cf0c commit e753841

File tree

1 file changed

+19
-14
lines changed

1 file changed

+19
-14
lines changed

src/Arbor/Service/AttendanceRegistration.php

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,16 @@
1010

1111
class AttendanceRegistration
1212
{
13-
const MARK_STUDENT = "student";
14-
const MARK_MARK = "attendanceMark";
15-
const MARK_NOTE = "note";
16-
const MARK_MINUTES_LATE = "minutesLate";
17-
const MARK_SESSION_START_TIME = "sessionStartTime";
18-
const ACADEMIC_UNIT= "academicUnit";
19-
const INCLUDE_ACADEMIC_UNIT= "includeAcademicUnit";
20-
21-
/**@var \Arbor\Api\Gateway\RestGateway $_gateway*/
13+
const MARK_STUDENT = 'student';
14+
const MARK_MARK = 'attendanceMark';
15+
const MARK_NOTE = 'note';
16+
const MARK_MINUTES_LATE = 'minutesLate';
17+
const MARK_SESSION_START_TIME = 'sessionStartTime';
18+
const ACADEMIC_UNIT= 'academicUnit';
19+
const INCLUDE_ACADEMIC_UNIT= 'includeAcademicUnit';
20+
const INCLUDE_EXTRA_MARKS = 'includeExtraMarks';
21+
22+
/** @var \Arbor\Api\Gateway\RestGateway $_gateway */
2223
protected $_gateway;
2324
protected $_hydrator;
2425
protected $_marks = [];
@@ -52,7 +53,7 @@ public function awardAttendanceMark($student, $sessionStartTime, $attendanceMark
5253
];
5354
}
5455

55-
public function saveMarks($includeAcademicUnit = false)
56+
public function saveMarks($includeAcademicUnit = false, bool $includeExtraMarks = false)
5657
{
5758
$payload = [];
5859

@@ -61,7 +62,7 @@ public function saveMarks($includeAcademicUnit = false)
6162
foreach ($this->_marks as $mark) {
6263
$markPayload = [];
6364

64-
//Convert models to REST representations
65+
// Convert models to REST representations
6566
$markPayload[self::MARK_STUDENT] = $this->getHydrator()->extractArray($mark[self::MARK_STUDENT], true);
6667
$markPayload[self::MARK_MARK] = $this->getHydrator()->extractArray($mark[self::MARK_MARK], true);
6768

@@ -75,22 +76,26 @@ public function saveMarks($includeAcademicUnit = false)
7576

7677
$markPayload[self::INCLUDE_ACADEMIC_UNIT] = $includeAcademicUnit;
7778

78-
//Convert date to Y-m-d H:i:s string
79-
/**@var \DateTime $sessionStartTime*/
79+
// Convert date to Y-m-d H:i:s string
80+
/** @var \DateTime $sessionStartTime */
8081
$sessionStartTime = $mark[self::MARK_SESSION_START_TIME];
8182
if (!$sessionStartTime instanceof \DateTime) {
8283
throw new \InvalidArgumentException("SessionStartTime must be an PHP DateTime object");
8384
}
8485
$markPayload[self::MARK_SESSION_START_TIME] = $sessionStartTime->format("Y-m-d H:i:s");
8586

86-
//Only include optional minutesLate and note parameters if not set to NULL
87+
// Only include optional minutesLate and note parameters if not set to NULL
8788
if (isset($mark[self::MARK_MINUTES_LATE]) && !is_null($mark[self::MARK_MINUTES_LATE])) {
8889
$markPayload[self::MARK_MINUTES_LATE] = $mark[self::MARK_MINUTES_LATE];
8990
}
9091
if (isset($mark[self::MARK_NOTE]) && !is_null($mark[self::MARK_NOTE])) {
9192
$markPayload[self::MARK_NOTE] = $mark[self::MARK_NOTE];
9293
}
9394

95+
if ($includeExtraMarks) {
96+
$markPayload[self::INCLUDE_EXTRA_MARKS] = $includeExtraMarks;
97+
}
98+
9499
$payload['request']['marks'][] = $markPayload;
95100
}
96101

0 commit comments

Comments
 (0)