Solved more problems of issues #4

This commit is contained in:
djmaze 2020-09-24 10:22:23 +02:00
parent 578131e22a
commit f70d2c6884
4 changed files with 20 additions and 30 deletions

View file

@ -479,7 +479,7 @@ class Contact
/** /**
* @param mixed $oProp * @param mixed $oProp
*/ */
private function addArrayPropertyHelper(array &$aProperties, $oArrayProp, int $iType) : string private function addArrayPropertyHelper(array &$aProperties, $oArrayProp, int $iType) : void
{ {
foreach ($oArrayProp as $oProp) foreach ($oArrayProp as $oProp)
{ {
@ -501,7 +501,7 @@ class Contact
} }
} }
public function PopulateByVCard(string $sUid, string $sVCard, string $sEtag = '', $oLogger = null) public function PopulateByVCard(string $sUid, string $sVCard, string $sEtag = '', $oLogger = null) : bool
{ {
if ("\xef\xbb\xbf" === \substr($sVCard, 0, 3)) if ("\xef\xbb\xbf" === \substr($sVCard, 0, 3))
{ {

View file

@ -24,7 +24,7 @@ class Tag
$this->Clear(); $this->Clear();
} }
public function Clear() public function Clear() : void
{ {
$this->IdContactTag = ''; $this->IdContactTag = '';
$this->Name = ''; $this->Name = '';

View file

@ -41,7 +41,7 @@ class PdoAddressBook
public function IsSupported() : bool public function IsSupported() : bool
{ {
$aDrivers = \class_exists('PDO') ? \PDO::getAvailableDrivers() : array(); $aDrivers = \class_exists('PDO') ? \PDO::getAvailableDrivers() : array();
return \is_array($aDrivers) ? \in_array($this->sDsnType, $aDrivers) : false; return \is_array($aDrivers) && \in_array($this->sDsnType, $aDrivers);
} }
public function IsSharingAllowed() : bool public function IsSharingAllowed() : bool
@ -49,14 +49,14 @@ class PdoAddressBook
return $this->IsSupported() && false; // TODO return $this->IsSupported() && false; // TODO
} }
private function flushDeletedContacts(int $iUserID) private function flushDeletedContacts(int $iUserID) : bool
{ {
return !!$this->prepareAndExecute('DELETE FROM rainloop_ab_contacts WHERE id_user = :id_user AND deleted = 1', array( return !!$this->prepareAndExecute('DELETE FROM rainloop_ab_contacts WHERE id_user = :id_user AND deleted = 1', array(
':id_user' => array($iUserID, \PDO::PARAM_INT) ':id_user' => array($iUserID, \PDO::PARAM_INT)
)); ));
} }
private function updateContactEtagAndTime(int $iUserID, int $iID, string $sEtag, int $iChanged) private function updateContactEtagAndTime(int $iUserID, int $iID, string $sEtag, int $iChanged) : bool
{ {
return !!$this->prepareAndExecute('UPDATE rainloop_ab_contacts SET changed = :changed, etag = :etag '. return !!$this->prepareAndExecute('UPDATE rainloop_ab_contacts SET changed = :changed, etag = :etag '.
'WHERE id_user = :id_user AND id_contact = :id_contact', array( 'WHERE id_user = :id_user AND id_contact = :id_contact', array(
@ -68,7 +68,7 @@ class PdoAddressBook
); );
} }
private function prepearDatabaseSyncData(int $iUserID) private function prepearDatabaseSyncData(int $iUserID) : array
{ {
$aResult = array(); $aResult = array();
$oStmt = $this->prepareAndExecute('SELECT id_contact, id_contact_str, changed, deleted, etag FROM rainloop_ab_contacts WHERE id_user = :id_user', array( $oStmt = $this->prepareAndExecute('SELECT id_contact, id_contact_str, changed, deleted, etag FROM rainloop_ab_contacts WHERE id_user = :id_user', array(
@ -175,7 +175,7 @@ class PdoAddressBook
return $mResult; return $mResult;
} }
private function davClientRequest($oClient, string $sCmd, string $sUrl, $mData = null) private function davClientRequest($oClient, string $sCmd, string $sUrl, $mData = null) : ?array
{ {
\MailSo\Base\Utils::ResetTimeLimit(); \MailSo\Base\Utils::ResetTimeLimit();
@ -187,23 +187,23 @@ class PdoAddressBook
// $this->oLogger->Write($mData, \MailSo\Log\Enumerations\Type::INFO, 'DAV'); // $this->oLogger->Write($mData, \MailSo\Log\Enumerations\Type::INFO, 'DAV');
// } // }
$oResponse = false; $aResponse = null;
try try
{ {
if (('PUT' === $sCmd || 'POST' === $sCmd) && null !== $mData) if (('PUT' === $sCmd || 'POST' === $sCmd) && null !== $mData)
{ {
$oResponse = $oClient->request($sCmd, $sUrl, $mData, array( $aResponse = $oClient->request($sCmd, $sUrl, $mData, array(
'Content-Type' => 'text/vcard; charset=utf-8' 'Content-Type' => 'text/vcard; charset=utf-8'
)); ));
} }
else else
{ {
$oResponse = $oClient->request($sCmd, $sUrl); $aResponse = $oClient->request($sCmd, $sUrl);
} }
// if ('GET' === $sCmd) // if ('GET' === $sCmd)
// { // {
// $this->oLogger->WriteDump($oResponse, \MailSo\Log\Enumerations\Type::INFO, 'DAV'); // $this->oLogger->WriteDump($aResponse, \MailSo\Log\Enumerations\Type::INFO, 'DAV');
// } // }
} }
catch (\Throwable $oException) catch (\Throwable $oException)
@ -211,10 +211,10 @@ class PdoAddressBook
$this->oLogger->WriteException($oException); $this->oLogger->WriteException($oException);
} }
return $oResponse; return $aResponse;
} }
private function detectionPropFind(\SabreForRainLoop\DAV\Client $oClient, string $sPath) : bool private function detectionPropFind(\SabreForRainLoop\DAV\Client $oClient, string $sPath) : ?array
{ {
$aResponse = null; $aResponse = null;
@ -543,10 +543,9 @@ class PdoAddressBook
return null; return null;
} }
$bGood = false;
$sPath = $oClient->__UrlPath__; $sPath = $oClient->__UrlPath__;
$bGood = false; $bGood = true;
if ('' === $sPath || '/' === $sPath || !$this->checkContactsPath($oClient, $sPath)) if ('' === $sPath || '/' === $sPath || !$this->checkContactsPath($oClient, $sPath))
{ {
$sNewPath = ''; $sNewPath = '';
@ -599,17 +598,8 @@ class PdoAddressBook
$bGood = $this->checkContactsPath($oClient, $sPath); $bGood = $this->checkContactsPath($oClient, $sPath);
} }
else
{
$bGood = true;
}
if (!$bGood) return $bGood ? $oClient : null;
{
$oClient = false;
}
return $oClient;
} }
public function Sync(string $sEmail, string $sUrl, string $sUser, string $sPassword, string $sProxy = '') : bool public function Sync(string $sEmail, string $sUrl, string $sUser, string $sPassword, string $sProxy = '') : bool
@ -1645,7 +1635,7 @@ class PdoAddressBook
return $sResult; return $sResult;
} }
private function getInitialTablesArray(string $sDbType) private function getInitialTablesArray(string $sDbType) : array
{ {
switch ($sDbType) switch ($sDbType)
{ {
@ -1753,6 +1743,7 @@ SQLITEINITIAL;
break; break;
} }
$aResult = array();
if (0 < \strlen($sInitial)) if (0 < \strlen($sInitial))
{ {
$aList = \explode(';', \trim($sInitial)); $aList = \explode(';', \trim($sInitial));

View file

@ -149,7 +149,7 @@ class Client {
* @param int $depth * @param int $depth
* @return array * @return array
*/ */
public function propFind($url, array $properties, $depth = 0) { public function propFind($url, array $properties, $depth = 0) : array {
$body = '<?xml version="1.0"?>' . "\n"; $body = '<?xml version="1.0"?>' . "\n";
$body.= '<d:propfind xmlns:d="DAV:">' . "\n"; $body.= '<d:propfind xmlns:d="DAV:">' . "\n";
@ -304,9 +304,8 @@ class Client {
* @param string $url * @param string $url
* @param string $body * @param string $body
* @param array $headers * @param array $headers
* @return array
*/ */
public function request($method, $url = '', $body = null, $headers = array()) { public function request($method, $url = '', $body = null, $headers = array()) : array {
$url = $this->getAbsoluteUrl($url); $url = $this->getAbsoluteUrl($url);