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 c60c9eeab..8c176b997 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/en/message.php +++ b/addons/default/visiosoft/advs-module/resources/lang/en/message.php @@ -32,4 +32,5 @@ return [ 'sold_status_change' => "Your Ad's Status Has Been Set to Sold!", 'status_change' => "Your Ad's Status Has Been Set to :status!", 'disabled_detailed_options_for_admin_role' => "Detailed product options are disabled.", + 'permission_error' => 'You do not have permission for this action', ]; diff --git a/addons/default/visiosoft/advs-module/resources/lang/tr/message.php b/addons/default/visiosoft/advs-module/resources/lang/tr/message.php index 5f6db9514..74c91afb1 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/tr/message.php +++ b/addons/default/visiosoft/advs-module/resources/lang/tr/message.php @@ -32,4 +32,5 @@ return [ 'sold_status_change' => "İlanın Durumu Satıldı Olarak Ayarlanmıştır!", 'status_change' => "İlanın durumu Ayarland :status !", 'disabled_detailed_options_for_admin_role' => "Ayrıntılı ürün seçenekleri devre dışı bırakıldı.", + 'permission_error' => 'Bu işlem için yetkiniz bulunmamaktadır', ]; diff --git a/addons/default/visiosoft/advs-module/src/Adv/AdvApiCollection.php b/addons/default/visiosoft/advs-module/src/Adv/AdvApiCollection.php index 2503b7af6..cd428ce96 100644 --- a/addons/default/visiosoft/advs-module/src/Adv/AdvApiCollection.php +++ b/addons/default/visiosoft/advs-module/src/Adv/AdvApiCollection.php @@ -1,11 +1,78 @@ model->userAdv() ->where('advs_advs.finish_at', '>', date('Y-m-d H:i:s')); + } + public function createNewAd(array $params) + { + return $this->newQuery()->create($params); + } + + public function deleteAd(array $params) + { + $this->dispatch(new CheckRequiredParams(['ad_id'], $params)); + + + $ad = $this->checkAd($params['ad_id']); + + $this->checkOwner($ad); + + return $ad->delete(); + } + + public function updateAd(array $params) + { + $this->dispatch(new CheckRequiredParams(['ad_id'], $params)); + + $ad = $this->checkAd($params['ad_id']); + + $this->checkOwner($ad); + + unset($params['ad_id'],$params['id'], $params['created_at'], $params['updated_at'], + $params['deleted_at'], $params['created_by_id'], $params['updated_by_id']); + + + $update_params = [ + 'updated_by_id' => Auth::id(), + 'updated_at' => Carbon::now() + ]; + + $ad->update(array_merge($update_params,$params)); + + return $ad; + } + + public function getAds() + { + return $this->currentAds(); + } + + public function checkAd($id) + { + if (!$ad = $this->newQuery()->find($id)) { + throw new \Exception(trans('visiosoft.module.advs::message.ad_doesnt_exist'), 404); + die; + } + return $ad; + } + + public function checkOwner($ad) + { + if ($ad->created_by_id != Auth::id()) { + throw new \Exception(trans('visiosoft.module.advs::message.permission_error'), 403); + die; + } } }