@@ -473,7 +473,7 @@ public function deleteAddressBook($addressBookId) {
473473 */
474474 public function getCards ($ addressbookId ) {
475475 $ query = $ this ->db ->getQueryBuilder ();
476- $ query ->select (['id ' , 'uri ' , 'lastmodified ' , 'etag ' , 'size ' , 'carddata ' , 'uid ' ])
476+ $ query ->select (['id ' , 'addressbookid ' , ' uri ' , 'lastmodified ' , 'etag ' , 'size ' , 'carddata ' , 'uid ' ])
477477 ->from ($ this ->dbCardsTable )
478478 ->where ($ query ->expr ()->eq ('addressbookid ' , $ query ->createNamedParameter ($ addressbookId )));
479479
@@ -510,7 +510,7 @@ public function getCards($addressbookId) {
510510 */
511511 public function getCard ($ addressBookId , $ cardUri ) {
512512 $ query = $ this ->db ->getQueryBuilder ();
513- $ query ->select (['id ' , 'uri ' , 'lastmodified ' , 'etag ' , 'size ' , 'carddata ' , 'uid ' ])
513+ $ query ->select (['id ' , 'addressbookid ' , ' uri ' , 'lastmodified ' , 'etag ' , 'size ' , 'carddata ' , 'uid ' ])
514514 ->from ($ this ->dbCardsTable )
515515 ->where ($ query ->expr ()->eq ('addressbookid ' , $ query ->createNamedParameter ($ addressBookId )))
516516 ->andWhere ($ query ->expr ()->eq ('uri ' , $ query ->createNamedParameter ($ cardUri )))
@@ -553,7 +553,7 @@ public function getMultipleCards($addressBookId, array $uris) {
553553 $ cards = [];
554554
555555 $ query = $ this ->db ->getQueryBuilder ();
556- $ query ->select (['id ' , 'uri ' , 'lastmodified ' , 'etag ' , 'size ' , 'carddata ' , 'uid ' ])
556+ $ query ->select (['id ' , 'addressbookid ' , ' uri ' , 'lastmodified ' , 'etag ' , 'size ' , 'carddata ' , 'uid ' ])
557557 ->from ($ this ->dbCardsTable )
558558 ->where ($ query ->expr ()->eq ('addressbookid ' , $ query ->createNamedParameter ($ addressBookId )))
559559 ->andWhere ($ query ->expr ()->in ('uri ' , $ query ->createParameter ('uri ' )));
@@ -715,32 +715,33 @@ public function updateCard($addressBookId, $cardUri, $cardData) {
715715 /**
716716 * @throws Exception
717717 */
718- public function moveCard (int $ sourceAddressBookId , int $ targetAddressBookId , string $ cardUri , string $ oldPrincipalUri ): bool {
719- return $ this ->atomic (function () use ($ sourceAddressBookId , $ targetAddressBookId , $ cardUri , $ oldPrincipalUri ) {
720- $ card = $ this ->getCard ($ sourceAddressBookId , $ cardUri );
718+ public function moveCard (int $ sourceAddressBookId , string $ sourceObjectUri , int $ targetAddressBookId , string $ tragetObjectUri ): bool {
719+ return $ this ->atomic (function () use ($ sourceAddressBookId , $ sourceObjectUri , $ targetAddressBookId , $ tragetObjectUri ) {
720+ $ card = $ this ->getCard ($ sourceAddressBookId , $ sourceObjectUri );
721721 if (empty ($ card )) {
722722 return false ;
723723 }
724+ $ sourceObjectId = (int )$ card ['id ' ];
724725
725726 $ query = $ this ->db ->getQueryBuilder ();
726727 $ query ->update ('cards ' )
727728 ->set ('addressbookid ' , $ query ->createNamedParameter ($ targetAddressBookId , IQueryBuilder::PARAM_INT ))
728- ->where ($ query ->expr ()->eq ('uri ' , $ query ->createNamedParameter ($ cardUri , IQueryBuilder::PARAM_STR ), IQueryBuilder::PARAM_STR ))
729+ ->set ('uri ' , $ query ->createNamedParameter ($ tragetObjectUri , IQueryBuilder::PARAM_STR ))
730+ ->where ($ query ->expr ()->eq ('uri ' , $ query ->createNamedParameter ($ sourceObjectUri , IQueryBuilder::PARAM_STR ), IQueryBuilder::PARAM_STR ))
729731 ->andWhere ($ query ->expr ()->eq ('addressbookid ' , $ query ->createNamedParameter ($ sourceAddressBookId , IQueryBuilder::PARAM_INT ), IQueryBuilder::PARAM_INT ))
730732 ->executeStatement ();
731733
732- $ this ->purgeProperties ($ sourceAddressBookId , ( int ) $ card [ ' id ' ] );
733- $ this ->updateProperties ($ sourceAddressBookId , $ card [ ' uri ' ] , $ card ['carddata ' ]);
734+ $ this ->purgeProperties ($ sourceAddressBookId , $ sourceObjectId );
735+ $ this ->updateProperties ($ targetAddressBookId , $ tragetObjectUri , $ card ['carddata ' ]);
734736
735- $ this ->addChange ($ sourceAddressBookId , $ card [ ' uri ' ] , 3 );
736- $ this ->addChange ($ targetAddressBookId , $ card [ ' uri ' ] , 1 );
737+ $ this ->addChange ($ sourceAddressBookId , $ sourceObjectUri , 3 );
738+ $ this ->addChange ($ targetAddressBookId , $ tragetObjectUri , 1 );
737739
738- $ card = $ this ->getCard ($ targetAddressBookId , $ cardUri );
740+ $ card = $ this ->getCard ($ targetAddressBookId , $ tragetObjectUri );
739741 // Card wasn't found - possibly because it was deleted in the meantime by a different client
740742 if (empty ($ card )) {
741743 return false ;
742744 }
743-
744745 $ targetAddressBookRow = $ this ->getAddressBookById ($ targetAddressBookId );
745746 // the address book this card is being moved to does not exist any longer
746747 if (empty ($ targetAddressBookRow )) {
0 commit comments