@@ -475,7 +475,7 @@ public function deleteAddressBook($addressBookId) {
475475 */
476476 public function getCards ($ addressbookId ) {
477477 $ query = $ this ->db ->getQueryBuilder ();
478- $ query ->select (['id ' , 'uri ' , 'lastmodified ' , 'etag ' , 'size ' , 'carddata ' , 'uid ' ])
478+ $ query ->select (['id ' , 'addressbookid ' , ' uri ' , 'lastmodified ' , 'etag ' , 'size ' , 'carddata ' , 'uid ' ])
479479 ->from ($ this ->dbCardsTable )
480480 ->where ($ query ->expr ()->eq ('addressbookid ' , $ query ->createNamedParameter ($ addressbookId )));
481481
@@ -512,7 +512,7 @@ public function getCards($addressbookId) {
512512 */
513513 public function getCard ($ addressBookId , $ cardUri ) {
514514 $ query = $ this ->db ->getQueryBuilder ();
515- $ query ->select (['id ' , 'uri ' , 'lastmodified ' , 'etag ' , 'size ' , 'carddata ' , 'uid ' ])
515+ $ query ->select (['id ' , 'addressbookid ' , ' uri ' , 'lastmodified ' , 'etag ' , 'size ' , 'carddata ' , 'uid ' ])
516516 ->from ($ this ->dbCardsTable )
517517 ->where ($ query ->expr ()->eq ('addressbookid ' , $ query ->createNamedParameter ($ addressBookId )))
518518 ->andWhere ($ query ->expr ()->eq ('uri ' , $ query ->createNamedParameter ($ cardUri )))
@@ -555,7 +555,7 @@ public function getMultipleCards($addressBookId, array $uris) {
555555 $ cards = [];
556556
557557 $ query = $ this ->db ->getQueryBuilder ();
558- $ query ->select (['id ' , 'uri ' , 'lastmodified ' , 'etag ' , 'size ' , 'carddata ' , 'uid ' ])
558+ $ query ->select (['id ' , 'addressbookid ' , ' uri ' , 'lastmodified ' , 'etag ' , 'size ' , 'carddata ' , 'uid ' ])
559559 ->from ($ this ->dbCardsTable )
560560 ->where ($ query ->expr ()->eq ('addressbookid ' , $ query ->createNamedParameter ($ addressBookId )))
561561 ->andWhere ($ query ->expr ()->in ('uri ' , $ query ->createParameter ('uri ' )));
@@ -717,32 +717,33 @@ public function updateCard($addressBookId, $cardUri, $cardData) {
717717 /**
718718 * @throws Exception
719719 */
720- public function moveCard (int $ sourceAddressBookId , int $ targetAddressBookId , string $ cardUri , string $ oldPrincipalUri ): bool {
721- return $ this ->atomic (function () use ($ sourceAddressBookId , $ targetAddressBookId , $ cardUri , $ oldPrincipalUri ) {
722- $ card = $ this ->getCard ($ sourceAddressBookId , $ cardUri );
720+ public function moveCard (int $ sourceAddressBookId , string $ sourceObjectUri , int $ targetAddressBookId , string $ tragetObjectUri ): bool {
721+ return $ this ->atomic (function () use ($ sourceAddressBookId , $ sourceObjectUri , $ targetAddressBookId , $ tragetObjectUri ) {
722+ $ card = $ this ->getCard ($ sourceAddressBookId , $ sourceObjectUri );
723723 if (empty ($ card )) {
724724 return false ;
725725 }
726+ $ sourceObjectId = (int )$ card ['id ' ];
726727
727728 $ query = $ this ->db ->getQueryBuilder ();
728729 $ query ->update ('cards ' )
729730 ->set ('addressbookid ' , $ query ->createNamedParameter ($ targetAddressBookId , IQueryBuilder::PARAM_INT ))
730- ->where ($ query ->expr ()->eq ('uri ' , $ query ->createNamedParameter ($ cardUri , IQueryBuilder::PARAM_STR ), IQueryBuilder::PARAM_STR ))
731+ ->set ('uri ' , $ query ->createNamedParameter ($ tragetObjectUri , IQueryBuilder::PARAM_STR ))
732+ ->where ($ query ->expr ()->eq ('uri ' , $ query ->createNamedParameter ($ sourceObjectUri , IQueryBuilder::PARAM_STR ), IQueryBuilder::PARAM_STR ))
731733 ->andWhere ($ query ->expr ()->eq ('addressbookid ' , $ query ->createNamedParameter ($ sourceAddressBookId , IQueryBuilder::PARAM_INT ), IQueryBuilder::PARAM_INT ))
732734 ->executeStatement ();
733735
734- $ this ->purgeProperties ($ sourceAddressBookId , ( int ) $ card [ ' id ' ] );
735- $ this ->updateProperties ($ sourceAddressBookId , $ card [ ' uri ' ] , $ card ['carddata ' ]);
736+ $ this ->purgeProperties ($ sourceAddressBookId , $ sourceObjectId );
737+ $ this ->updateProperties ($ targetAddressBookId , $ tragetObjectUri , $ card ['carddata ' ]);
736738
737- $ this ->addChange ($ sourceAddressBookId , $ card [ ' uri ' ] , 3 );
738- $ this ->addChange ($ targetAddressBookId , $ card [ ' uri ' ] , 1 );
739+ $ this ->addChange ($ sourceAddressBookId , $ sourceObjectUri , 3 );
740+ $ this ->addChange ($ targetAddressBookId , $ tragetObjectUri , 1 );
739741
740- $ card = $ this ->getCard ($ targetAddressBookId , $ cardUri );
742+ $ card = $ this ->getCard ($ targetAddressBookId , $ tragetObjectUri );
741743 // Card wasn't found - possibly because it was deleted in the meantime by a different client
742744 if (empty ($ card )) {
743745 return false ;
744746 }
745-
746747 $ targetAddressBookRow = $ this ->getAddressBookById ($ targetAddressBookId );
747748 // the address book this card is being moved to does not exist any longer
748749 if (empty ($ targetAddressBookRow )) {
0 commit comments