<?php
namespace App\Controller;
use App\Repository\ActivityLogRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\{Request, Response};
use Symfony\Component\Routing\Annotation\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
use Nzo\UrlEncryptorBundle\Annotations\ParamDecryptor;
#[Route(path: '/activity/log')]
class ActivityLogController extends AbstractController
{
#[Route('/', name: 'activity_log', methods: ['GET'])]
public function index(ActivityLogRepository $activityLogRepository): Response
{
$activityLog = $activityLogRepository->GetRecordList($this->getUser()->getHospital()->getId(), $this->getUser()->getId());
return $this->render('activity_log/index.html.twig', [
'activityLog' => $activityLog,
]);
}
#[Route('/download/{id}', name: 'download', methods: ['GET'])]
#[ParamDecryptor(["id"])]
public function export(Request $request, ActivityLogRepository $activityLogRepository): Response
{
$activityLog = $activityLogRepository->GetRecordById($request->attributes->get('id'));
$path = $this->getParameter('upload_dir') . "/activity_log/" . $this->getUser()->getId() . '/';
$content = file_get_contents($path . $activityLog);
$response = new Response();
$response->headers->set('Content-Type', 'mime/type');
$response->headers->set('Content-Disposition', 'attachment;filename="' . $activityLog);
$response->setContent($content);
return $response;
}
}