@@ -474,7 +474,7 @@ public function deleteAddressBook($addressBookId) {
474474 */
475475 public function getCards ($ addressbookId ) {
476476 $ query = $ this ->db ->getQueryBuilder ();
477- $ query ->select (['id ' , 'uri ' , 'lastmodified ' , 'etag ' , 'size ' , 'carddata ' , 'uid ' ])
477+ $ query ->select (['id ' , 'addressbookid ' , ' uri ' , 'lastmodified ' , 'etag ' , 'size ' , 'carddata ' , 'uid ' ])
478478 ->from ($ this ->dbCardsTable )
479479 ->where ($ query ->expr ()->eq ('addressbookid ' , $ query ->createNamedParameter ($ addressbookId )));
480480
@@ -511,7 +511,7 @@ public function getCards($addressbookId) {
511511 */
512512 public function getCard ($ addressBookId , $ cardUri ) {
513513 $ query = $ this ->db ->getQueryBuilder ();
514- $ query ->select (['id ' , 'uri ' , 'lastmodified ' , 'etag ' , 'size ' , 'carddata ' , 'uid ' ])
514+ $ query ->select (['id ' , 'addressbookid ' , ' uri ' , 'lastmodified ' , 'etag ' , 'size ' , 'carddata ' , 'uid ' ])
515515 ->from ($ this ->dbCardsTable )
516516 ->where ($ query ->expr ()->eq ('addressbookid ' , $ query ->createNamedParameter ($ addressBookId )))
517517 ->andWhere ($ query ->expr ()->eq ('uri ' , $ query ->createNamedParameter ($ cardUri )))
@@ -554,7 +554,7 @@ public function getMultipleCards($addressBookId, array $uris) {
554554 $ cards = [];
555555
556556 $ query = $ this ->db ->getQueryBuilder ();
557- $ query ->select (['id ' , 'uri ' , 'lastmodified ' , 'etag ' , 'size ' , 'carddata ' , 'uid ' ])
557+ $ query ->select (['id ' , 'addressbookid ' , ' uri ' , 'lastmodified ' , 'etag ' , 'size ' , 'carddata ' , 'uid ' ])
558558 ->from ($ this ->dbCardsTable )
559559 ->where ($ query ->expr ()->eq ('addressbookid ' , $ query ->createNamedParameter ($ addressBookId )))
560560 ->andWhere ($ query ->expr ()->in ('uri ' , $ query ->createParameter ('uri ' )));
@@ -716,32 +716,33 @@ public function updateCard($addressBookId, $cardUri, $cardData) {
716716 /**
717717 * @throws Exception
718718 */
719- public function moveCard (int $ sourceAddressBookId , int $ targetAddressBookId , string $ cardUri , string $ oldPrincipalUri ): bool {
720- return $ this ->atomic (function () use ($ sourceAddressBookId , $ targetAddressBookId , $ cardUri , $ oldPrincipalUri ) {
721- $ card = $ this ->getCard ($ sourceAddressBookId , $ cardUri );
719+ public function moveCard (int $ sourceAddressBookId , string $ sourceObjectUri , int $ targetAddressBookId , string $ tragetObjectUri ): bool {
720+ return $ this ->atomic (function () use ($ sourceAddressBookId , $ sourceObjectUri , $ targetAddressBookId , $ tragetObjectUri ) {
721+ $ card = $ this ->getCard ($ sourceAddressBookId , $ sourceObjectUri );
722722 if (empty ($ card )) {
723723 return false ;
724724 }
725+ $ sourceObjectId = (int )$ card ['id ' ];
725726
726727 $ query = $ this ->db ->getQueryBuilder ();
727728 $ query ->update ('cards ' )
728729 ->set ('addressbookid ' , $ query ->createNamedParameter ($ targetAddressBookId , IQueryBuilder::PARAM_INT ))
729- ->where ($ query ->expr ()->eq ('uri ' , $ query ->createNamedParameter ($ cardUri , IQueryBuilder::PARAM_STR ), IQueryBuilder::PARAM_STR ))
730+ ->set ('uri ' , $ query ->createNamedParameter ($ tragetObjectUri , IQueryBuilder::PARAM_STR ))
731+ ->where ($ query ->expr ()->eq ('uri ' , $ query ->createNamedParameter ($ sourceObjectUri , IQueryBuilder::PARAM_STR ), IQueryBuilder::PARAM_STR ))
730732 ->andWhere ($ query ->expr ()->eq ('addressbookid ' , $ query ->createNamedParameter ($ sourceAddressBookId , IQueryBuilder::PARAM_INT ), IQueryBuilder::PARAM_INT ))
731733 ->executeStatement ();
732734
733- $ this ->purgeProperties ($ sourceAddressBookId , ( int ) $ card [ ' id ' ] );
734- $ this ->updateProperties ($ sourceAddressBookId , $ card [ ' uri ' ] , $ card ['carddata ' ]);
735+ $ this ->purgeProperties ($ sourceAddressBookId , $ sourceObjectId );
736+ $ this ->updateProperties ($ targetAddressBookId , $ tragetObjectUri , $ card ['carddata ' ]);
735737
736- $ this ->addChange ($ sourceAddressBookId , $ card [ ' uri ' ] , 3 );
737- $ this ->addChange ($ targetAddressBookId , $ card [ ' uri ' ] , 1 );
738+ $ this ->addChange ($ sourceAddressBookId , $ sourceObjectUri , 3 );
739+ $ this ->addChange ($ targetAddressBookId , $ tragetObjectUri , 1 );
738740
739- $ card = $ this ->getCard ($ targetAddressBookId , $ cardUri );
741+ $ card = $ this ->getCard ($ targetAddressBookId , $ tragetObjectUri );
740742 // Card wasn't found - possibly because it was deleted in the meantime by a different client
741743 if (empty ($ card )) {
742744 return false ;
743745 }
744-
745746 $ targetAddressBookRow = $ this ->getAddressBookById ($ targetAddressBookId );
746747 // the address book this card is being moved to does not exist any longer
747748 if (empty ($ targetAddressBookRow )) {
0 commit comments