parent
714fb3c9af
commit
e543f00657
@ -0,0 +1,3 @@ |
|||||||
|
import makeService from './api'; |
||||||
|
|
||||||
|
export default makeService('message_attachments'); |
@ -0,0 +1,51 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
/* For licensing terms, see /license.txt */ |
||||||
|
|
||||||
|
declare(strict_types=1); |
||||||
|
|
||||||
|
namespace Chamilo\CoreBundle\Controller\Api; |
||||||
|
|
||||||
|
use Chamilo\CoreBundle\Entity\Message; |
||||||
|
use Chamilo\CoreBundle\Entity\MessageAttachment; |
||||||
|
use Chamilo\CoreBundle\Repository\Node\MessageAttachmentRepository; |
||||||
|
use Doctrine\ORM\EntityManager; |
||||||
|
use Exception; |
||||||
|
use Symfony\Component\HttpFoundation\File\UploadedFile; |
||||||
|
use Symfony\Component\HttpFoundation\Request; |
||||||
|
use Symfony\Component\HttpKernel\Exception\BadRequestHttpException; |
||||||
|
|
||||||
|
class CreateMessageAttachmentAction extends BaseResourceFileAction |
||||||
|
{ |
||||||
|
/** |
||||||
|
* @throws Exception |
||||||
|
*/ |
||||||
|
public function __invoke(Request $request, MessageAttachmentRepository $repo, EntityManager $em): MessageAttachment |
||||||
|
{ |
||||||
|
/** @var UploadedFile $uploadedFile */ |
||||||
|
$uploadedFile = $request->files->get('file'); |
||||||
|
|
||||||
|
if (!$uploadedFile) { |
||||||
|
throw new BadRequestHttpException('file is required'); |
||||||
|
} |
||||||
|
|
||||||
|
$messageRepo = $em->getRepository(Message::class); |
||||||
|
|
||||||
|
$message = $messageRepo->find($request->get('messageId')); |
||||||
|
|
||||||
|
$attachment = (new MessageAttachment()) |
||||||
|
->setFilename($uploadedFile->getFilename()) |
||||||
|
->setMessage($message) |
||||||
|
->setParent($message->getSender()) |
||||||
|
->setCreator($message->getSender()) |
||||||
|
; |
||||||
|
|
||||||
|
$message->addAttachment($attachment); |
||||||
|
|
||||||
|
$em->persist($attachment); |
||||||
|
$repo->addFile($attachment, $uploadedFile); |
||||||
|
$em->flush(); |
||||||
|
|
||||||
|
return $attachment; |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue