Refactor AddressBook methods to streamline peer address handling and improve error management
https://github.com/nosial/Socialbox-PHP/issues/29
This commit is contained in:
parent
81b3dcf3ea
commit
a842818175
7 changed files with 23 additions and 58 deletions
|
@ -32,14 +32,7 @@
|
|||
throw new MissingRpcArgumentException('peer');
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
$address = PeerAddress::fromAddress($rpcRequest->getParameter('peer'));
|
||||
}
|
||||
catch(InvalidArgumentException $e)
|
||||
{
|
||||
throw new InvalidRpcArgumentException('peer', $e);
|
||||
}
|
||||
$peerAddress = PeerAddress::fromAddress($rpcRequest->getParameter('peer'));
|
||||
|
||||
if($rpcRequest->containsParameter('relationship') && $rpcRequest->getParameter('relationship') !== null)
|
||||
{
|
||||
|
@ -57,22 +50,22 @@
|
|||
try
|
||||
{
|
||||
$peer = $request->getPeer();
|
||||
if($peer->getAddress() == $address)
|
||||
if($peer->getAddress() == $peerAddress)
|
||||
{
|
||||
return $rpcRequest->produceError(StandardError::FORBIDDEN, 'Cannot add self as contact');
|
||||
}
|
||||
|
||||
// Resolve the peer, this would throw a StandardException if something goes wrong
|
||||
Socialbox::resolvePeer($address);
|
||||
Socialbox::resolvePeer($peerAddress);
|
||||
|
||||
// Check if the contact already exists
|
||||
if(ContactManager::isContact($peer, $address))
|
||||
if(ContactManager::isContact($peer, $peerAddress))
|
||||
{
|
||||
return $rpcRequest->produceResponse(false);
|
||||
}
|
||||
|
||||
// Create the contact
|
||||
ContactManager::createContact($peer, $address, $relationship);
|
||||
ContactManager::createContact($peer, $peerAddress, $relationship);
|
||||
}
|
||||
catch (DatabaseOperationException $e)
|
||||
{
|
||||
|
|
|
@ -29,19 +29,12 @@
|
|||
throw new MissingRpcArgumentException('peer');
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
$address = PeerAddress::fromAddress($rpcRequest->getParameter('peer'));
|
||||
}
|
||||
catch(InvalidArgumentException $e)
|
||||
{
|
||||
throw new InvalidRpcArgumentException('peer', $e);
|
||||
}
|
||||
$peerAddress = PeerAddress::fromAddress($rpcRequest->getParameter('peer'));
|
||||
|
||||
try
|
||||
{
|
||||
$peer = $request->getPeer();
|
||||
return $rpcRequest->produceResponse(ContactManager::isContact($peer, $address));
|
||||
return $rpcRequest->produceResponse(ContactManager::isContact($peer, $peerAddress));
|
||||
}
|
||||
catch (DatabaseOperationException $e)
|
||||
{
|
||||
|
|
|
@ -30,26 +30,19 @@
|
|||
throw new MissingRpcArgumentException('peer');
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
$address = PeerAddress::fromAddress($rpcRequest->getParameter('peer'));
|
||||
}
|
||||
catch(InvalidArgumentException $e)
|
||||
{
|
||||
throw new InvalidRpcArgumentException('peer', $e);
|
||||
}
|
||||
$peerAddress = PeerAddress::fromAddress($rpcRequest->getParameter('peer'));
|
||||
|
||||
try
|
||||
{
|
||||
// Check if the contact already exists
|
||||
$peer = $request->getPeer();
|
||||
if(!ContactManager::isContact($peer, $address))
|
||||
if(!ContactManager::isContact($peer, $peerAddress))
|
||||
{
|
||||
return $rpcRequest->produceResponse(false);
|
||||
}
|
||||
|
||||
// Create the contact
|
||||
ContactManager::deleteContact($peer, $address);
|
||||
ContactManager::deleteContact($peer, $peerAddress);
|
||||
}
|
||||
catch (DatabaseOperationException $e)
|
||||
{
|
||||
|
|
|
@ -29,16 +29,16 @@
|
|||
throw new MissingRpcArgumentException('peer');
|
||||
}
|
||||
|
||||
$address = PeerAddress::fromAddress($rpcRequest->getParameter('peer'));
|
||||
$peerAddress = PeerAddress::fromAddress($rpcRequest->getParameter('peer'));
|
||||
|
||||
try
|
||||
{
|
||||
if(!ContactManager::isContact($request->getPeer(), $address))
|
||||
if(!ContactManager::isContact($request->getPeer(), $peerAddress))
|
||||
{
|
||||
return $rpcRequest->produceResponse();
|
||||
}
|
||||
|
||||
return $rpcRequest->produceResponse(ContactManager::getStandardContact($request->getPeer(), $address));
|
||||
return $rpcRequest->produceResponse(ContactManager::getStandardContact($request->getPeer(), $peerAddress));
|
||||
}
|
||||
catch(DatabaseOperationException $e)
|
||||
{
|
||||
|
|
|
@ -28,14 +28,7 @@
|
|||
throw new MissingRpcArgumentException('peer');
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
$address = PeerAddress::fromAddress($rpcRequest->getParameter('peer'));
|
||||
}
|
||||
catch(InvalidArgumentException $e)
|
||||
{
|
||||
throw new InvalidRpcArgumentException('peer', $e);
|
||||
}
|
||||
$peerAddress = PeerAddress::fromAddress($rpcRequest->getParameter('peer'));
|
||||
|
||||
if(!$rpcRequest->containsParameter('signature_uuid'))
|
||||
{
|
||||
|
@ -45,7 +38,7 @@
|
|||
try
|
||||
{
|
||||
// Check if the contact already exists
|
||||
$contact = ContactManager::getContact($request->getPeer(), $address);
|
||||
$contact = ContactManager::getContact($request->getPeer(), $peerAddress);
|
||||
}
|
||||
catch (DatabaseOperationException $e)
|
||||
{
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
throw new MissingRpcArgumentException('peer');
|
||||
}
|
||||
|
||||
$address = PeerAddress::fromAddress($rpcRequest->getParameter('peer'));
|
||||
$peerAddress = PeerAddress::fromAddress($rpcRequest->getParameter('peer'));
|
||||
|
||||
if(!$rpcRequest->containsParameter('signature_uuid'))
|
||||
{
|
||||
|
@ -35,18 +35,18 @@
|
|||
}
|
||||
|
||||
$signatureUuid = (string)$rpcRequest->getParameter('signature_uuid');
|
||||
$signingKey = Socialbox::resolvePeerSignature($address, $signatureUuid);
|
||||
$signingKey = Socialbox::resolvePeerSignature($peerAddress, $signatureUuid);
|
||||
|
||||
try
|
||||
{
|
||||
// Check if the contact already exists
|
||||
$peer = $request->getPeer();
|
||||
if(!ContactManager::isContact($peer, $address))
|
||||
if(!ContactManager::isContact($peer, $peerAddress))
|
||||
{
|
||||
ContactManager::createContact($peer, $address);
|
||||
ContactManager::createContact($peer, $peerAddress);
|
||||
}
|
||||
|
||||
$contact = ContactManager::getContact($peer, $address);
|
||||
$contact = ContactManager::getContact($peer, $peerAddress);
|
||||
if(ContactManager::contactGetSigningKeysCount($contact) > Configuration::getPoliciesConfiguration()->getMaxContactSigningKeys())
|
||||
{
|
||||
return $rpcRequest->produceError(StandardError::FORBIDDEN, 'The contact has exceeded the maximum amount of trusted signatures');
|
||||
|
|
|
@ -28,14 +28,7 @@
|
|||
throw new MissingRpcArgumentException('peer');
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
$receivingPeerAddress = PeerAddress::fromAddress($rpcRequest->getParameter('peer'));
|
||||
}
|
||||
catch(InvalidArgumentException $e)
|
||||
{
|
||||
throw new InvalidRpcArgumentException('peer', $e);
|
||||
}
|
||||
$peerAddress = PeerAddress::fromAddress($rpcRequest->getParameter('peer'));
|
||||
|
||||
if(!$rpcRequest->containsParameter('relationship'))
|
||||
{
|
||||
|
@ -51,13 +44,13 @@
|
|||
{
|
||||
// Check if the contact already exists
|
||||
$requestingPeer = $request->getPeer();
|
||||
if(!ContactManager::isContact($requestingPeer->getUuid(), $receivingPeerAddress))
|
||||
if(!ContactManager::isContact($requestingPeer->getUuid(), $peerAddress))
|
||||
{
|
||||
return $rpcRequest->produceError(StandardError::FORBIDDEN, 'Contact does not exist');
|
||||
}
|
||||
|
||||
// Create the contact
|
||||
ContactManager::updateContactRelationship($requestingPeer->getUuid(), $receivingPeerAddress, $newRelationship);
|
||||
ContactManager::updateContactRelationship($requestingPeer->getUuid(), $peerAddress, $newRelationship);
|
||||
}
|
||||
catch (DatabaseOperationException $e)
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue