diff --git a/addons/default/visiosoft/profile-module/src/Events/UserUpdated.php b/addons/default/visiosoft/profile-module/src/Events/UserUpdated.php new file mode 100644 index 000000000..74b6fdb4c --- /dev/null +++ b/addons/default/visiosoft/profile-module/src/Events/UserUpdated.php @@ -0,0 +1,13 @@ +oldCustomerInfo = $oldCustomerInfo; + $this->changes = $changes; + } +} \ No newline at end of file diff --git a/addons/default/visiosoft/profile-module/src/Profile/Profile/ProfileFormHandler.php b/addons/default/visiosoft/profile-module/src/Profile/Profile/ProfileFormHandler.php index c6a4bc663..de21b46c2 100644 --- a/addons/default/visiosoft/profile-module/src/Profile/Profile/ProfileFormHandler.php +++ b/addons/default/visiosoft/profile-module/src/Profile/Profile/ProfileFormHandler.php @@ -2,7 +2,7 @@ use Anomaly\Streams\Platform\Message\MessageBag; use Anomaly\UsersModule\User\UserModel; -use Illuminate\Support\Facades\Auth; +use Visiosoft\ProfileModule\Events\UserUpdated; class ProfileFormHandler { @@ -30,8 +30,25 @@ class ProfileFormHandler $parameters['file_id'] = null; } - $userModel->newQuery()->where('id', Auth::id())->update($parameters); + $user = $userModel->newQuery()->find(\auth()->id()); + + $oldCustomerInfo = $user->toArray(); + + $changes = $this->change($user, $parameters); + + event(new UserUpdated($oldCustomerInfo, $changes)); $messages->success(trans('visiosoft.module.profile::message.success_update')); } + + public function change($user, $data) + { + $user->fill($data); + $changes = $user->getDirty(); + $user->save(); + if (count($changes) == 0) { + return false; + } + return $changes; + } } diff --git a/addons/default/visiosoft/profile-module/src/Profile/User/UserFormHandler.php b/addons/default/visiosoft/profile-module/src/Profile/User/UserFormHandler.php index e374d813a..b5eaeb29a 100644 --- a/addons/default/visiosoft/profile-module/src/Profile/User/UserFormHandler.php +++ b/addons/default/visiosoft/profile-module/src/Profile/User/UserFormHandler.php @@ -2,8 +2,8 @@ use Anomaly\Streams\Platform\Message\MessageBag; use Anomaly\UsersModule\User\UserModel; -use Illuminate\Support\Facades\Auth; use Visiosoft\NotificationsModule\Notify\Notification\UserUpdateEmailMail; +use Visiosoft\ProfileModule\Events\UserUpdated; class UserFormHandler { @@ -24,7 +24,23 @@ class UserFormHandler $user->notify(new UserUpdateEmailMail()); } - $user->update($builder->getPostData()); + $oldCustomerInfo = $user->toArray(); + + $changes = $this->change($user, $data); + + event(new UserUpdated($oldCustomerInfo, $changes)); + $messages->success(trans('visiosoft.module.profile::message.success_update')); } + + public function change($user, $data) + { + $user->fill($data); + $changes = $user->getDirty(); + $user->save(); + if (count($changes) == 0) { + return false; + } + return $changes; + } }