2022-07-21 16:15:47 +02:00
|
|
|
<?php
|
2022-09-23 16:14:15 +02:00
|
|
|
|
2022-07-21 16:15:47 +02:00
|
|
|
namespace App\Controller;
|
|
|
|
|
|
|
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
|
|
|
use Symfony\Component\HttpFoundation\Request;
|
|
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
|
|
use Symfony\Component\Mercure\HubInterface;
|
|
|
|
use Symfony\Component\Mercure\Update;
|
|
|
|
|
|
|
|
class PublishController extends AbstractController
|
|
|
|
{
|
2022-09-23 16:14:15 +02:00
|
|
|
public function sample($id)
|
|
|
|
{
|
|
|
|
return $this->render('Home/publishsample.html.twig', [
|
|
|
|
'id' => $id,
|
2022-07-25 17:16:08 +02:00
|
|
|
]);
|
|
|
|
}
|
|
|
|
|
2022-07-21 16:15:47 +02:00
|
|
|
public function publish($channel, $id, Request $request, HubInterface $hub): Response
|
|
|
|
{
|
2022-09-23 16:14:15 +02:00
|
|
|
$ret = $request->get('msg');
|
|
|
|
$ret['from'] = [];
|
|
|
|
$ret['from']['id'] = $this->getUser()->getId();
|
|
|
|
$ret['from']['username'] = $this->getUser()->getUsername();
|
|
|
|
$ret['from']['displayname'] = $this->getUser()->getDisplayname();
|
|
|
|
$ret['from']['avatar'] = $this->generateUrl('app_minio_image', ['file' => 'avatar/'.$this->getUser()->getAvatar()]);
|
2022-07-25 17:16:08 +02:00
|
|
|
|
2022-07-21 16:15:47 +02:00
|
|
|
$update = new Update(
|
2022-09-23 16:14:15 +02:00
|
|
|
$channel.'-'.$id,
|
2022-07-21 16:15:47 +02:00
|
|
|
json_encode(
|
|
|
|
['ret' => $ret])
|
|
|
|
);
|
|
|
|
|
|
|
|
$hub->publish($update);
|
|
|
|
|
|
|
|
return new Response('published!');
|
|
|
|
}
|
2022-09-23 16:14:15 +02:00
|
|
|
}
|