Browse Source

Refactor user controller on update metadata part

pull/68/head
Nafies Luthfi 5 years ago
parent
commit
1ab7f9fdba
  1. 32
      app/Http/Controllers/UsersController.php
  2. 7
      app/User.php

32
app/Http/Controllers/UsersController.php

@ -8,6 +8,7 @@ use App\Jobs\Users\DeleteAndReplaceUser;
use App\User;
use App\UserMetadata;
use Illuminate\Http\Request;
use Illuminate\Support\Collection;
use Ramsey\Uuid\Uuid;
use Storage;
@ -156,18 +157,8 @@ class UsersController extends Controller
$userAttributes = $request->validated();
$user->update($userAttributes);
$userAttributes = collect($userAttributes);
foreach (['cemetery_location_name', 'cemetery_location_address', 'cemetery_location_latitude', 'cemetery_location_longitude'] as $key) {
if ($userAttributes->has($key)) {
$userMeta = UserMetadata::where('user_id', $user->id)->where('key', $key)->firstOrNew();
if (!$userMeta->exists) {
$userMeta->id = Uuid::uuid4()->toString();
$userMeta->user_id = $user->id;
$userMeta->key = $key;
}
$userMeta->value = $userAttributes->get($key);
$userMeta->save();
}
}
$this->updateUserMetadata($user, $userAttributes);
return redirect()->route('users.show', $user->id);
}
@ -274,4 +265,21 @@ class UsersController extends Controller
return $allMariageList;
}
private function updateUserMetadata(User $user, Collection $userAttributes)
{
foreach (User::METADATA_KEYS as $key) {
if ($userAttributes->has($key) == false) {
continue;
}
$userMeta = UserMetadata::where('user_id', $user->id)->where('key', $key)->firstOrNew();
if (!$userMeta->exists) {
$userMeta->id = Uuid::uuid4()->toString();
$userMeta->user_id = $user->id;
$userMeta->key = $key;
}
$userMeta->value = $userAttributes->get($key);
$userMeta->save();
}
}
}

7
app/User.php

@ -11,6 +11,13 @@ class User extends Authenticatable
{
use Notifiable;
const METADATA_KEYS = [
'cemetery_location_name',
'cemetery_location_address',
'cemetery_location_latitude',
'cemetery_location_longitude',
];
/**
* Indicates if the IDs are auto-incrementing.
*

Loading…
Cancel
Save