File: D:/HostingSpaces/SBogers10/ehbo.today/app/KommaApp/Users/UserCourseService.php
<?php
namespace App\KommaApp\Users;
use App\KommaApp\Courses\Models\Course;
use App\KommaApp\Users\Models\User;
class UserCourseService
{
/**
* @param $user
* @param $course
* @param $subscribe
*/
public function subscribeUser(User $user, Course $course, bool $subscribed)
{
if(!$subscribed) {
$existingCourse = $user->courses()->withPivot(['user_status'])->where('course_id', '=', $course->id)->first();
if($existingCourse) {
$user->courses()->updateExistingPivot($existingCourse->id, ['user_status' => Course::UserStatusSubscribed]);
} else {
$user->courses()->save($course, ['user_status' => Course::UserStatusSubscribed]);
}
} else { //Unsubscribe
$existingCourse = $user->courses()->where('course_id', '=', $course->id)->first();
if($existingCourse) {
$user->courses()->detach($existingCourse->id);
}
}
}
}