Skip to content

Commit

Permalink
Apply indicated changes
Browse files Browse the repository at this point in the history
  • Loading branch information
silviabf committed Jul 14, 2024
1 parent 6ed5419 commit f1fe3a1
Show file tree
Hide file tree
Showing 4 changed files with 85 additions and 5 deletions.
44 changes: 44 additions & 0 deletions Controller/IngestController.php
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,48 @@ public function addTrackAction(Request $request): ?Response
}
}

/**
* @Route("/deleteTrack")
*/
public function deleteTrackAction(Request $request): ?Response
{
try {
$this->APIService->deleteTrack($request->request->get('mediaPackage'));

return $this->generateResponse('true', Response::HTTP_OK, $this->predefinedHeaders);
} catch (\Exception $exception) {
return $this->generateResponse($exception->getMessage(), $exception->getCode(), $this->predefinedHeaders);
}
}

/**
* @Route("/getLinkTrack")
*/
public function getLinkTrackAction(Request $request): ?Response
{
try {
$link = $this->APIService->getLinkTrack($request);

return $this->generateResponse($link, Response::HTTP_OK, $this->predefinedHeaders);
} catch (\Exception $exception) {
return $this->generateResponse($exception->getMessage(), $exception->getCode(), $this->predefinedHeaders);
}
}

/**
* @Route("/getDownloadTrack")
*/
public function getDownloadTrackAction(Request $request): ?Response
{
try {
$link = $this->APIService->getDownloadTrack($request, $request->request->get('mediaPackage'));

return $this->generateResponse($link, Response::HTTP_OK, $this->predefinedHeaders);
} catch (\Exception $exception) {
return $this->generateResponse($exception->getMessage(), $exception->getCode(), $this->predefinedHeaders);
}
}

/**
* @Route("/addCatalog")
*/
Expand Down Expand Up @@ -158,12 +200,14 @@ public function addMediaPackageAction(Request $request): ?Response

$customParameters = [
'series' => false,
'seriesTitle' => '',
'accessRights' => false,
'title' => '',
'description' => '',
'profile' => $this->profileService->getDefaultMasterProfile(),
'priority' => 2,
'language' => 'en',
'roles' => []
];

try {
Expand Down
2 changes: 1 addition & 1 deletion DependencyInjection/Configuration.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public function getConfigTreeBuilder(): TreeBuilder
->children()
->scalarNode('allowed_removed_tag')
->defaultValue('CUSTOM_TAG')
->isRequired()
// ->isRequired()
->info('Define which tag will be used to mark objects which can be subjected to tag removal')
->end()
;
Expand Down
38 changes: 37 additions & 1 deletion Services/APIService.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
use Pumukit\SchemaBundle\Services\PersonService;
use Symfony\Component\HttpFoundation\File\UploadedFile;
use Symfony\Component\HttpFoundation\Response;
use Pumukit\BasePlayerBundle\Services\TrackUrlService;

class APIService extends APICommonService
{
Expand All @@ -27,6 +28,7 @@ class APIService extends APICommonService
private $jobService;
private $personService;
private $importMappingDataService;
private $trackUrlService;

public function __construct(
DocumentManager $documentManager,
Expand All @@ -36,6 +38,7 @@ public function __construct(
PersonService $personService,
ImportMappingDataService $importMappingDataService,
MultimediaObjectEventDispatcherService $multimediaObjectEventDispatcherService,
TrackUrlService $trackUrlService,
array $pumukitLocales
) {
parent::__construct($documentManager, $factoryService, $multimediaObjectEventDispatcherService, $pumukitLocales);
Expand All @@ -45,6 +48,7 @@ public function __construct(
$this->jobService = $jobService;
$this->personService = $personService;
$this->importMappingDataService = $importMappingDataService;
$this->trackUrlService = $trackUrlService;
}

public function createMediaPackage(array $requestParameters, User $user = null)
Expand Down Expand Up @@ -100,6 +104,33 @@ public function addTrack(array $requestParameters)
return $mediaPackage->asXML();
}

public function deleteTrack($mediaPackage)
{
$multimediaObject = $this->getMultimediaObjectFromMediapackageXML($mediaPackage);

$this->factoryService->deleteMultimediaObject($multimediaObject);

return true;
}

public function getLinkTrack($request)
{
$multimediaObject = $this->getMultimediaObjectFromMediapackageXML($request->request->get('mediaPackage'));
return $request->getUriForPath('/video/magic/'.$multimediaObject->getSecret());
}

public function getDownloadTrack($request)
{
$multimediaObject = $this->getMultimediaObjectFromMediapackageXML($request->request->get('mediaPackage'));
$track = null;
foreach ($multimediaObject->getTracks() as $link) {
$track = $link;
}
$url = $this->trackUrlService->generateDirectTrackFileUrl($track, $request);

return $request->getUriForPath($url);
}

public function addCatalog(array $requestParameters)
{
[$mediaPackage, $flavor, $body] = array_values($requestParameters);
Expand Down Expand Up @@ -200,7 +231,7 @@ public function addDCCatalog(array $requestParameters, User $user = null)

public function addMediaPackage(array $requestParameters, User $user = null)
{
[$flavor, $body, $seriesId, $accessRights, $title, $description, $profile, $priority, $language, $roles] = array_values($requestParameters);
[$flavor, $body, $seriesId, $seriesTitle, $accessRights, $title, $description, $profile, $priority, $language, $roles] = array_values($requestParameters);

if ($seriesId) {
$series = $this->documentManager->getRepository(Series::class)->findOneBy(['_id' => $seriesId]);
Expand All @@ -213,6 +244,11 @@ public function addMediaPackage(array $requestParameters, User $user = null)

$multimediaObject = $this->factoryService->createMultimediaObject($series, true, $user);

// Change status to HIDDEN and tag PUCHWEBTV
$multimediaObject->setStatus(MultimediaObject::STATUS_HIDDEN);
$tag = $this->factoryService->getTagsByCod('PUCHWEBTV', false);
$multimediaObject->addTag($tag);

if ($accessRights) {
$multimediaObject->setCopyright($accessRights);
}
Expand Down
6 changes: 3 additions & 3 deletions composer.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "teltek/pumukit-external-api-bundle",
"name": "unimoodle/pumukitexternalapibundle",
"type": "symfony-bundle",
"description": "PuMuKIT external ingest API",
"keywords": [
Expand All @@ -8,8 +8,8 @@
"bundle",
"pumukit"
],
"homepage": "https://github.com/teltek/PumukitExternalAPIBundle.git",
"license": "proprietary",
"homepage": "https://git.isyc.com/unimoodle/pumukitexternalapibundle.git",
"license": "MIT",
"authors": [
{
"name": "Teltek Team",
Expand Down

0 comments on commit f1fe3a1

Please sign in to comment.