1
0
mirror of https://github.com/owncloudarchive/contacts.git synced 2024-11-29 11:24:11 +01:00

Check if querys succeeded

This commit is contained in:
LEDfan 2014-04-01 21:20:19 +02:00
parent 39ac52062a
commit 8362ef1c99

View File

@ -68,29 +68,41 @@ class OwnCloudUsers extends AbstractBackend {
if(!$row){ // TODO -> better way?
// Create new addressbook
$sql = 'INSERT INTO ' . $this->addressBooksTableName
. ' ( '
. 'id, '
. 'displayname, '
//. 'uri, ' TODO
. 'description, '
//. 'ctag, '
. 'active '
. ') VALUES ( '
. '?, '
. '?, '
. '?, '
. '? '
. ')';
$args = array(
$this->userid,
'ownCloud Users',
'ownCloud Users',
1
);
$query = \OCP\DB::prepare($sql);
$query->execute($args);
try{
$sql = 'INSERT INTO ' . $this->addressBooksTableName
. ' ( '
. 'id, '
. 'displayname, '
//. 'uri, ' TODO
. 'description, '
//. 'ctag, '
. 'active '
. ') VALUES ( '
. '?, '
. '?, '
. '?, '
. '? '
. ')';
$args = array(
$this->userid,
'ownCloud Users',
'ownCloud Users',
1
);
$query = \OCP\DB::prepare($sql);
$result = $query->execute($args);
if (\OCP\DB::isError($result)) {
\OCP\Util::writeLog('contacts', __METHOD__. 'DB error: '
. \OC_DB::getErrorMessage($result), \OCP\Util::ERROR);
return array();
}
} catch(\Exception $e) {
\OCP\Util::writeLog('contacts', __METHOD__.' exception: '
. $e->getMessage(), \OCP\Util::ERROR);
return $this->addressBooks;
}
return $this->getAddressBooksForUser();
} else {
$row['permissions'] = \OCP\PERMISSION_ALL;
@ -103,15 +115,28 @@ class OwnCloudUsers extends AbstractBackend {
* Only 1 addressbook for every user
*/
public function getAddressBook($addressBookId, array $options = array()) {
$sql = 'SELECT * FROM ' . $this->addressBooksTableName . ' WHERE id = ?';
$args = array($addressBookId);
$query = \OCP\DB::prepare($sql);
$result = $query->execute($args);
$row = $result->fetchRow();
$row['permissions'] = \OCP\PERMISSION_ALL;
$row['backend'] = $this->name;
try{
$sql = 'SELECT * FROM ' . $this->addressBooksTableName . ' WHERE id = ?';
$args = array($addressBookId);
$query = \OCP\DB::prepare($sql);
$result = $query->execute($args);
if (\OCP\DB::isError($result)) {
\OCP\Util::writeLog('contacts', __METHOD__. 'DB error: '
. \OC_DB::getErrorMessage($result), \OCP\Util::ERROR);
return array();
} else {
$row = $result->fetchRow();
// TODO create address book if it doesn't exists
$row['permissions'] = \OCP\PERMISSION_ALL;
$row['backend'] = $this->name;
}
} catch(\Exception $e) {
\OCP\Util::writeLog('contacts', __METHOD__.' exception: '
. $e->getMessage(), \OCP\Util::ERROR);
return $this->addressBooks;
}
return array($row);
}
@ -121,41 +146,54 @@ class OwnCloudUsers extends AbstractBackend {
*/
public function getContacts($addressbookid, array $options = array()){
$contacts = array();
try{
$sql = 'SELECT * FROM ' . $this->cardsTableName . ' WHERE owner = ?';
$query = \OCP\DB::prepare($sql);
$result = $query->execute(array($this->userid));
if (\OCP\DB::isError($result)) {
\OCP\Util::writeLog('contacts', __METHOD__. 'DB error: '
. \OC_DB::getErrorMessage($result), \OCP\Util::ERROR);
return array();
} else {
while($row = $result->fetchRow()){
$row['permissions'] = \OCP\PERMISSION_ALL;
$contacts[] = $row;
}
$sql = 'SELECT * FROM ' . $this->cardsTableName . ' WHERE owner = ?';
$query = \OCP\DB::prepare($sql);
$result = $query->execute(array($this->userid));
while($row = $result->fetchRow()){
$row['permissions'] = \OCP\PERMISSION_ALL;
$contacts[] = $row;
}
$contactsId = array();
foreach($contacts as $contact){
$contactsId[] = $contact['id'];
}
$users = \OCP\User::getUsers();
$recall = false;
$add = array_diff($users, $contactsId);
$remove = array_diff($contactsId, $users);
if(count($add) > 0){
$this->addContacts($add, $addressbookid);
$recall = true;
}
if(count($remove) > 0){
$this->removeContacts($remove, $addressbookid);
$recall = true;
}
if($recall === true){
return $this->getContacts($addressbookid);
} else {
return $contacts;
$contactsId = array();
foreach($contacts as $contact){
$contactsId[] = $contact['id'];
}
$users = \OCP\User::getUsers();
$recall = false;
$add = array_diff($users, $contactsId);
$remove = array_diff($contactsId, $users);
if(count($add) > 0){
$this->addContacts($add, $addressbookid);
$recall = true;
}
if(count($remove) > 0){
$this->removeContacts($remove, $addressbookid);
$recall = true;
}
if($recall === true){
return $this->getContacts($addressbookid);
} else {
return $contacts;
}
}
} catch(\Exception $e) {
\OCP\Util::writeLog('contacts', __METHOD__.' exception: '
. $e->getMessage(), \OCP\Util::ERROR);
return $this->addressBooks;
}
}
/**
@ -166,13 +204,25 @@ class OwnCloudUsers extends AbstractBackend {
* ownCloud username 'bar' the params would be: $addressbookid = 'foo'; $id = 'bar';
*/
public function getContact($addressbookid, $id, array $options = array()){
$sql = 'SELECT * FROM ' . $this->cardsTableName . ' WHERE owner = ?';
$query = \OCP\DB::prepare($sql);
$result = $query->execute(array($this->userid));
$row = $result->fetchRow();
$row['permissions'] = \OCP\PERMISSION_ALL;
return $row;
try{
$sql = 'SELECT * FROM ' . $this->cardsTableName . ' WHERE owner = ?';
$query = \OCP\DB::prepare($sql);
$result = $query->execute(array($this->userid));
if (\OCP\DB::isError($result)) {
\OCP\Util::writeLog('contacts', __METHOD__. 'DB error: '
. \OC_DB::getErrorMessage($result), \OCP\Util::ERROR);
return array();
} else {
$row = $result->fetchRow();
$row['permissions'] = \OCP\PERMISSION_ALL;
return $row;
}
} catch(\Exception $e) {
\OCP\Util::writeLog('contacts', __METHOD__.' exception: '
. $e->getMessage(), \OCP\Util::ERROR);
return $this->addressBooks;
}
}
// Not needed since there is only one addressbook for every user