From e3d552219ac1dfee84329c6f10eff6a345c11908 Mon Sep 17 00:00:00 2001 From: Diatrex Date: Fri, 28 Feb 2020 10:30:13 +0300 Subject: [PATCH] #360 merge two extend functions --- .../advs-module/resources/lang/en/message.php | 1 + .../advs-module/src/Adv/AdvRepository.php | 15 ++++++++++++++- .../src/Adv/Contract/AdvRepositoryInterface.php | 1 + .../src/Http/Controller/advsController.php | 16 ++++------------ 4 files changed, 20 insertions(+), 13 deletions(-) diff --git a/addons/default/visiosoft/advs-module/resources/lang/en/message.php b/addons/default/visiosoft/advs-module/resources/lang/en/message.php index b4f5f28c2..d7cb4c7de 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/en/message.php +++ b/addons/default/visiosoft/advs-module/resources/lang/en/message.php @@ -26,4 +26,5 @@ return [ 'delete_author_error' => 'You cannot delete a post that does not belong to you', 'success_delete' => 'Ad Deleted', 'pending_ad_status' => 'Your ad is pending approval by the Editor.', + 'extended' => ':number ad(s) has been extended successfully.', ]; diff --git a/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php b/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php index a473d7472..c9eb75ade 100644 --- a/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php +++ b/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php @@ -363,5 +363,18 @@ class AdvRepository extends EntryRepository implements AdvRepositoryInterface return null; } - + public function extendAds($allAds, $isAdmin = false) + { + if (!is_numeric($allAds)) { + if ($isAdmin && auth()->user()->hasRole('admin')) { + $advs = $this->newQuery(); + } else { + $advs = $this->newQuery()->where('created_by_id', auth()->id()); + } + } else { + $advs = $this->newQuery()->where('id', $allAds); + } + $newDate = date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s') . ' + ' . setting_value('visiosoft.module.advs::default_published_time') . ' day')); + return $advs->update(['finish_at' => $newDate]); + } } diff --git a/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvRepositoryInterface.php b/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvRepositoryInterface.php index 31e038bca..a3b32d0ad 100644 --- a/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvRepositoryInterface.php +++ b/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvRepositoryInterface.php @@ -36,4 +36,5 @@ interface AdvRepositoryInterface extends EntryRepositoryInterface public function getCategoriesWithAdID($id); + public function extendAds($allAds, $isAdmin = false); } diff --git a/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php b/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php index acb0c21d8..57d64ae85 100644 --- a/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php +++ b/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php @@ -976,23 +976,15 @@ class AdvsController extends PublicController public function extendAll($isAdmin = null) { - if ($isAdmin && auth()->user()->hasRole('admin')) { - $advs = $this->adv_model->newQuery(); - } else { - $advs = $this->adv_model->newQuery()->where('created_by_id', auth()->id()); - } - $newDate = date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s') . ' + ' . setting_value('visiosoft.module.advs::default_published_time') . ' day')); - $advs->update(['finish_at' => $newDate]); - $this->messages->success(trans('visiosoft.module.advs::field.extended')); + $adsExtended = $this->adv_repository->extendAds(true, $isAdmin); + $this->messages->success(trans('visiosoft.module.advs::message.extended', ['number' => $adsExtended])); return $this->redirect->back(); } public function extendSingle($adId) { - $advs = $this->adv_model->newQuery()->where('id', $adId); - $newDate = date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s') . ' + ' . setting_value('visiosoft.module.advs::default_published_time') . ' day')); - $advs->update(['finish_at' => $newDate]); - $this->messages->success(trans('visiosoft.module.advs::field.extended')); + $adsExtended = $this->adv_repository->extendAds($adId); + $this->messages->success(trans('visiosoft.module.advs::message.extended', ['number' => $adsExtended])); return $this->redirect->back(); } } \ No newline at end of file