Add peer resolution through the resolvePeer method

This commit is contained in:
netkas 2025-01-10 15:16:02 -05:00
parent fde3ccfc68
commit 62c8d332a9
6 changed files with 129 additions and 6 deletions

View file

@ -15,6 +15,7 @@
use Socialbox\Objects\ExportedSession;
use Socialbox\Objects\PeerAddress;
use Socialbox\Objects\RpcRequest;
use Socialbox\Objects\Standard\Peer;
use Socialbox\Objects\Standard\ServerDocument;
use Socialbox\Objects\Standard\SessionState;
@ -611,4 +612,25 @@
new RpcRequest(StandardMethods::SETTINGS_DELETE_BIRTHDAY->value, Utilities::randomCrc32())
)->getResponse()->getResult();
}
/**
* Resolves a peer by its address or a PeerAddress instance through a remote procedure call.
*
* @param string|PeerAddress $peerAddress The peer address as a string or an instance of PeerAddress.
* @return Peer The resolved peer object.
* @throws RpcException Thrown if the RPC request fails.
*/
public function resolvePeer(string|PeerAddress $peerAddress): Peer
{
if($peerAddress instanceof PeerAddress)
{
$peerAddress = $peerAddress->getAddress();
}
return Peer::fromArray($this->sendRequest(
new RpcRequest(StandardMethods::RESOLVE_PEER->value, Utilities::randomCrc32(), [
'peer_address' => $peerAddress
])
)->getResponse()->getResult());
}
}