|
Server : Apache/2.4.41 (Ubuntu) System : Linux vmi1525618.contaboserver.net 5.4.0-105-generic #119-Ubuntu SMP Mon Mar 7 18:49:24 UTC 2022 x86_64 User : www-data ( 33) PHP Version : 8.2.12 Disable Function : NONE Directory : /var/www/lecturebazaar.com/app/Models/Api/ |
Upload File : |
<?php
namespace App\Models\Api;
use App\Models\Api\Traits\CheckWebinarItemAccessTrait;
use App\Models\File as WebFile;
class File extends WebFile
{
use CheckWebinarItemAccessTrait;
public function getDetailsAttribute()
{
return [
// 'icon_by_type' => $this->getIconByType(),
'id' => $this->id,
'title' => $this->title,
'auth_has_read' => $this->read,
'status' => $this->status,
'order' => $this->order,
'downloadable' => $this->downloadable,
'accessibility' => $this->accessibility,
'description' => $this->description,
'storage' => $this->storage,
'download_link' => $this->webinar->getUrl() . '/file/' . $this->id . '/download',
'auth_has_access' => $this->auth_has_access,
'user_has_access' => $this->user_has_access,
'file' => $this->file(),
// 'file' => $this->storage == 'local' ? url("/course/" . $this->webinar->slug . "/file/" . $this->id . "/play") : $this->file,
'volume' => $this->volume,
'file_type' => $this->file_type,
'is_video' => $this->isVideo(),
'interactive_type' => $this->interactive_type,
'interactive_file_name' => $this->interactive_file_name,
'interactive_file_path' => ($this->interactive_file_path) ? url($this->interactive_file_path) : null,
'created_at' => $this->created_at,
'updated_at' => $this->updated_at,
];
}
public function file()
{
if (!$this->file) {
return null;
}
if (strstr($this->file, 'iframe') or strstr($this->file, 'https')) {
return $this->file;
}
return url($this->file);
}
public function getUserHasAccessAttribute()
{
$user = apiAuth();
$access = false;
$hasBought = $this->webinar->checkUserHasBought($user);
if ($this->accessibility == 'paid') {
if ($user and $hasBought) {
$access = true;
}
} else {
$access = true;
}
return $access;
}
public function getAuthHasAccessAttribute()
{
$user = apiAuth();
$canAccess = null;
if ($user) {
$canAccess = true;
if ($this->accessibility == 'paid') {
$canAccess = ($this->webinar->checkUserHasBought($user)) ? true : false;
}
}
return $canAccess;
}
public function webinar()
{
return $this->belongsTo('App\Models\Api\Webinar', 'webinar_id', 'id');
}
public function getReadAttribute()
{
$user = apiAuth();
if (!$user) {
return null;
}
return ($this->learningStatus()->where('user_id', $user->id)->count()) ? true : false;
}
}