openvk/VKAPI/Handlers/Video.php

63 lines
2.1 KiB
PHP
Raw Normal View History

2023-01-31 14:23:34 +03:00
<?php declare(strict_types=1);
namespace openvk\VKAPI\Handlers;
use openvk\Web\Models\Entities\User;
use openvk\Web\Models\Repositories\Users as UsersRepo;
use openvk\Web\Models\Entities\Club;
use openvk\Web\Models\Repositories\Clubs as ClubsRepo;
use openvk\Web\Models\Entities\Video as VideoEntity;
use openvk\Web\Models\Repositories\Videos as VideosRepo;
use openvk\Web\Models\Entities\Comment;
use openvk\Web\Models\Repositories\Comments as CommentsRepo;
final class Video extends VKAPIRequestHandler
{
function get(int $owner_id, string $videos = "", int $offset = 0, int $count = 30, int $extended = 0): object
2023-01-31 14:23:34 +03:00
{
$this->requireUser();
if(!empty($videos)) {
$vids = explode(',', $videos);
foreach($vids as $vid)
{
$id = explode("_", $vid);
$items = [];
$video = (new VideosRepo)->getByOwnerAndVID(intval($id[0]), intval($id[1]));
if($video) {
$items[] = $video->getApiStructure($this->getUser());
}
}
return (object) [
"count" => count($items),
"items" => $items
];
} else {
if ($owner_id > 0)
$owner = (new UsersRepo)->get($owner_id);
else
$owner = (new ClubsRepo)->get(abs($owner_id));
if(!$owner)
$this->fail(20, "Invalid user");
if($owner_id > 0 && !$owner->getPrivacyPermission('videos.read', $this->getUser()))
$this->fail(20, "Access denied: this user chose to hide his videos");
$videos = (new VideosRepo)->getByEntityId($owner_id, $offset, $count);
$videosCount = (new VideosRepo)->getVideosCountByEntityId($owner_id);
2023-01-31 14:23:34 +03:00
$items = [];
foreach ($videos as $video)
$items[] = $video->getApiStructure($this->getUser());
return (object) [
"count" => $videosCount,
"items" => $items
];
2023-01-31 14:23:34 +03:00
}
}
}