1
0
mirror of https://gitee.com/koogua/course-tencent-cloud.git synced 2025-06-23 20:00:27 +08:00
koogua 0336a54911 1.源文件增加版权信息
2.群组状态和课程协同
2021-06-13 15:49:47 +08:00

91 lines
2.1 KiB
PHP

<?php
/**
* @copyright Copyright (c) 2021 深圳市酷瓜软件有限公司
* @license https://opensource.org/licenses/GPL-2.0
* @link https://www.koogua.com
*/
namespace App\Validators;
use App\Exceptions\BadRequest as BadRequestException;
use App\Library\Validators\Common as CommonValidator;
use App\Repos\CourseUser as CourseUserRepo;
class CourseUser extends Validator
{
public function checkRelation($id)
{
$courseUserRepo = new CourseUserRepo();
$courseUser = $courseUserRepo->findById($id);
if (!$courseUser) {
throw new BadRequestException('course_user.not_found');
}
return $courseUser;
}
public function checkCourseUser($courseId, $userId)
{
$repo = new CourseUserRepo();
$courseUser = $repo->findCourseUser($courseId, $userId);
if (!$courseUser) {
throw new BadRequestException('course_user.not_found');
}
return $courseUser;
}
public function checkCourse($id)
{
$validator = new Course();
return $validator->checkCourse($id);
}
public function checkUser($id)
{
$validator = new User();
return $validator->checkUser($id);
}
public function checkExpiryTime($expiryTime)
{
$value = $this->filter->sanitize($expiryTime, ['trim', 'string']);
if (!CommonValidator::date($value, 'Y-m-d H:i:s')) {
throw new BadRequestException('course_user.invalid_expiry_time');
}
return strtotime($value);
}
public function checkIfJoined($courseId, $userId)
{
$repo = new CourseUserRepo();
$courseUser = $repo->findCourseStudent($courseId, $userId);
if ($courseUser) {
throw new BadRequestException('course_user.has_joined');
}
}
public function checkIfReviewed($courseId, $userId)
{
$repo = new CourseUserRepo();
$courseUser = $repo->findCourseUser($courseId, $userId);
if ($courseUser && $courseUser->reviewed) {
throw new BadRequestException('course_user.has_reviewed');
}
}
}