mirror of
https://github.com/openclassify/openclassify.git
synced 2026-01-11 18:01:10 -06:00
64 lines
1.9 KiB
PHP
64 lines
1.9 KiB
PHP
<?php namespace Visiosoft\ProfileModule\Profile\Profile;
|
|
|
|
use Anomaly\Streams\Platform\Message\MessageBag;
|
|
use Anomaly\UsersModule\User\UserModel;
|
|
use Visiosoft\ProfileModule\Events\UserUpdated;
|
|
|
|
class ProfileFormHandler
|
|
{
|
|
public function handle(
|
|
ProfileFormBuilder $builder,
|
|
MessageBag $messages,
|
|
UserModel $userModel
|
|
)
|
|
{
|
|
if (!$builder->canSave()) {
|
|
return;
|
|
}
|
|
|
|
$parameters = [
|
|
'gsm_phone' => $builder->getPostValue('gsm_phone'),
|
|
'office_phone' => $builder->getPostValue('office_phone'),
|
|
'land_phone' => $builder->getPostValue('land_phone'),
|
|
'identification_number' => $builder->getPostValue('identification_number'),
|
|
'birthday' => $builder->getPostValue('birthday'),
|
|
'register_type' => $builder->getPostValue('register_type'),
|
|
];
|
|
|
|
if ($builder->getPostValue('file') != null) {
|
|
$parameters['file_id'] = $builder->getPostValue('file');
|
|
} elseif (empty($builder->getPostValue('file'))) {
|
|
$parameters['file_id'] = null;
|
|
}
|
|
|
|
$user = $userModel->newQuery()->find(\auth()->id());
|
|
|
|
// Prevent removing already filled fields
|
|
foreach ($parameters as $field => $value) {
|
|
if ($user->$field && !$value) {
|
|
$messages->error('visiosoft.module.profile::message.can_not_remove_filled_fields');
|
|
return;
|
|
}
|
|
}
|
|
|
|
$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)) {
|
|
return false;
|
|
}
|
|
return $changes;
|
|
}
|
|
}
|