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