openvk/Web/Events/NewMessageEvent.php

50 lines
1.6 KiB
PHP
Raw Permalink Normal View History

2020-06-07 19:04:43 +03:00
<?php declare(strict_types=1);
namespace openvk\Web\Events;
use openvk\Web\Models\Entities\Message;
use openvk\Web\Models\Repositories\Messages;
2020-06-07 19:04:43 +03:00
class NewMessageEvent implements ILPEmitable
{
protected $payload;
function __construct(Message $message)
{
$this->payload = $message->simplify();
}
function getLongPoolSummary(): object
{
return (object) [
"type" => "newMessage",
"message" => $this->payload,
];
}
function getVKAPISummary(int $userId): array
{
$msg = (new Messages)->get($this->payload["uuid"]);
$peer = $msg->getSender()->getId();
if($peer === $userId)
$peer = $msg->getRecipient()->getId();
/*
* Source:
* https://github.com/danyadev/longpoll-doc
*/
return [
4, # event type
$msg->getId(), # messageId
256, # checked for spam flag
$peer, # TODO calculate peer correctly
$msg->getSendTime()->timestamp(), # creation time in unix
$msg->getText(), # text (formatted)
[], # empty additional info
[], # empty attachments
$msg->getId() << 2, # id as random_id
$peer, # conversation id
0 # not edited yet
];
}
}