Refactor AddressBookUpdateRelationship and ContactManager to improve variable naming and add UUID validation
https://github.com/nosial/Socialbox-PHP/issues/37
This commit is contained in:
parent
f01df7b4c4
commit
50c638b534
2 changed files with 28 additions and 7 deletions
|
@ -30,7 +30,7 @@
|
|||
|
||||
try
|
||||
{
|
||||
$address = PeerAddress::fromAddress($rpcRequest->getParameter('peer'));
|
||||
$receivingPeerAddress = PeerAddress::fromAddress($rpcRequest->getParameter('peer'));
|
||||
}
|
||||
catch(InvalidArgumentException $e)
|
||||
{
|
||||
|
@ -41,8 +41,8 @@
|
|||
{
|
||||
throw new MissingRpcArgumentException('relationship');
|
||||
}
|
||||
$relationship = ContactRelationshipType::tryFrom(strtoupper($rpcRequest->getParameter('relationship')));
|
||||
if($relationship === null)
|
||||
$newRelationship = ContactRelationshipType::tryFrom(strtoupper($rpcRequest->getParameter('relationship')));
|
||||
if($newRelationship === null)
|
||||
{
|
||||
throw new InvalidRpcArgumentException('relationship');
|
||||
}
|
||||
|
@ -50,14 +50,14 @@
|
|||
try
|
||||
{
|
||||
// Check if the contact already exists
|
||||
$peer = $request->getPeer();
|
||||
if(!ContactManager::isContact($peer, $address))
|
||||
$requestingPeer = $request->getPeer();
|
||||
if(!ContactManager::isContact($requestingPeer->getUuid(), $receivingPeerAddress))
|
||||
{
|
||||
return $rpcRequest->produceError(StandardError::FORBIDDEN, 'Contact does not exist');
|
||||
}
|
||||
|
||||
// Create the contact
|
||||
ContactManager::updateContactRelationship($peer, $address, $relationship);
|
||||
ContactManager::updateContactRelationship($requestingPeer->getUuid(), $receivingPeerAddress, $newRelationship);
|
||||
}
|
||||
catch (DatabaseOperationException $e)
|
||||
{
|
||||
|
|
|
@ -2,10 +2,13 @@
|
|||
|
||||
namespace Socialbox\Managers;
|
||||
|
||||
use DateTime;
|
||||
use InvalidArgumentException;
|
||||
use ncc\ThirdParty\Symfony\Uid\UuidV4;
|
||||
use PDO;
|
||||
use PDOException;
|
||||
use Socialbox\Classes\Database;
|
||||
use Socialbox\Classes\Validator;
|
||||
use Socialbox\Enums\Types\ContactRelationshipType;
|
||||
use Socialbox\Exceptions\DatabaseOperationException;
|
||||
use Socialbox\Objects\Database\ContactDatabaseRecord;
|
||||
|
@ -30,6 +33,15 @@
|
|||
{
|
||||
$contactAddress = $contactAddress->getAddress();
|
||||
}
|
||||
elseif(!Validator::validateUuid($contactAddress))
|
||||
{
|
||||
throw new InvalidArgumentException('The given contact address is invalid');
|
||||
}
|
||||
|
||||
if(!Validator::validateUuid($peerUuid))
|
||||
{
|
||||
throw new InvalidArgumentException('The given peer internal UUID is not a valid UUID V4');
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
|
@ -188,6 +200,15 @@
|
|||
{
|
||||
$contactAddress = $contactAddress->getAddress();
|
||||
}
|
||||
elseif(!Validator::validatePeerAddress($contactAddress))
|
||||
{
|
||||
throw new InvalidArgumentException('The given contact address is not a valid peer address');
|
||||
}
|
||||
|
||||
if(!Validator::validateUuid($peerUuid))
|
||||
{
|
||||
throw new InvalidArgumentException('The given internal peer UUID is not a valid UUID V4');
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
|
@ -360,7 +381,7 @@
|
|||
$statement->bindParam(':expires', $expires);
|
||||
$created = $signingKey->getCreated();
|
||||
$statement->bindParam(':created', $created);
|
||||
$trustedOn = (new \DateTime())->format('Y-m-d H:i:s');
|
||||
$trustedOn = (new DateTime())->format('Y-m-d H:i:s');
|
||||
$statement->bindParam(':trusted_on', $trustedOn);
|
||||
}
|
||||
catch(PDOException $e)
|
||||
|
|
Loading…
Add table
Reference in a new issue