From 14c2ec26fb56ab2ebf7c78a1da3377af984cdecb Mon Sep 17 00:00:00 2001 From: brantje Date: Sun, 2 Oct 2016 18:01:41 +0200 Subject: [PATCH] Fixes for cleanItemRequestsForUser --- controller/sharecontroller.php | 6 +++--- lib/Db/ShareRequestMapper.php | 12 ++++++++---- lib/Service/ShareService.php | 17 +++++++++++------ 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/controller/sharecontroller.php b/controller/sharecontroller.php index e8674bbb..28455902 100644 --- a/controller/sharecontroller.php +++ b/controller/sharecontroller.php @@ -194,8 +194,6 @@ class ShareController extends ApiController { } public function deleteShareRequest($share_request_id){ - echo $share_request_id; - $manager = \OC::$server->getNotificationManager(); $notification = $manager->createNotification(); $notification->setApp('passman') @@ -203,7 +201,9 @@ class ShareController extends ApiController { ->setUser($this->userId->getUID()); $manager->markProcessed($notification); //@TODO load other requests and delete them by item id. - $this->shareService->deleteShareRequestById($share_request_id); + $sr = $this->shareService->getShareRequestById($share_request_id); + $this->shareService->cleanItemRequestsForUser($sr); + return new JSONResponse(array('result'=> true)); } } \ No newline at end of file diff --git a/lib/Db/ShareRequestMapper.php b/lib/Db/ShareRequestMapper.php index f88f3d13..ec971987 100644 --- a/lib/Db/ShareRequestMapper.php +++ b/lib/Db/ShareRequestMapper.php @@ -38,10 +38,9 @@ class ShareRequestMapper extends Mapper { } public function cleanItemRequestsForUser($item_id, $target_user_id){ - $req = new ShareRequest(); - $req->setItemId($item_id); - $req->setTargetUserId($target_user_id); - return $this->delete($req); + $q = "DELETE FROM *PREFIX*" . self::TABLE_NAME . " WHERE item_id = ? AND target_user_id = ?"; + $this->execute($q, [$item_id, $target_user_id]); + return $this->execute($q, [$item_id, $target_user_id]); } /** @@ -57,4 +56,9 @@ class ShareRequestMapper extends Mapper { public function deleteShareRequest(ShareRequest $shareRequest){ $this->delete($shareRequest); } + + public function getShareRequestById($id){ + $q = "SELECT * FROM *PREFIX*" . self::TABLE_NAME . " WHERE id = ?"; + return $this->findEntity($q, [$id]); + } } \ No newline at end of file diff --git a/lib/Service/ShareService.php b/lib/Service/ShareService.php index 017fba84..66829be0 100644 --- a/lib/Service/ShareService.php +++ b/lib/Service/ShareService.php @@ -9,6 +9,7 @@ namespace OCA\Passman\Service; +use Icewind\SMB\Share; use OCA\Passman\Db\CredentialMapper; use OCA\Passman\Db\ShareRequest; use OCA\Passman\Db\ShareRequestMapper; @@ -106,13 +107,17 @@ class ShareService { /** * Deletes an share reuqest by id - * @param $share_request_id - * + * @param ShareRequest $request + * @return \OCA\Passman\Db\ShareRequest[] */ - public function deleteShareRequestById($id){ - $t = new ShareRequest(); - $t->setId($id); - $this->shareRequest->deleteShareRequest($t); + public function cleanItemRequestsForUser(ShareRequest $request){ + return $this->shareRequest->cleanItemRequestsForUser($request->getItemId(), $request->getTargetUserId()); + } + /** + * Get an share request by id + */ + public function getShareRequestById($id){ + return $this->shareRequest->getShareRequestById($id); } } \ No newline at end of file