user profile UI

This commit is contained in:
glovetleong
2021-07-07 14:47:43 +08:00
parent ad85832e75
commit 3283d379c5
20 changed files with 1391 additions and 308 deletions
+102 -3
View File
@@ -6,10 +6,7 @@ use Auth;
use App\Models\User;
use App\Models\UserLog;
use App\Http\Rules\User\UnderCheck;
use App\Http\Rules\User\ExistCheck;
use App\Http\Rules\User\Image64Check;
use App\Http\Rules\User\CkeckAuthUpdate;
use App\Http\Helpers\General;
use App\Http\Helpers\Hasher;
@@ -37,6 +34,108 @@ class UserModule extends BaseController
return response()->json($data);
}
public static function update(Request $request)
{
$id = Auth::guard('user-api')->user()->id;
$validation = UserModule::validation($request, $id, 'PUT');
if (!$validation->status) {
return response()->json($validation, 422);
}
DB::beginTransaction();
$first_name = $request->input('first_name');
$last_name = $request->input('last_name');
$email = $request->input('email');
$password = $request->input('password');
$status = $request->input('status');
$user = User::find($id);
$user->first_name = $first_name ?? $user->first_name;
$user->last_name = $last_name ?? $user->last_name;
$user->email = $email ?? $user->email;
if (!empty($password)) {
$user->password = bcrypt($password);
}
$user->status = $status ?? 2;
// img
$img = $request->input('img');
if (!empty($img)) {
$remove_image = $user->img;
$remove_image = $remove_image ? ImageHandel::removeImage($remove_image) : '';
$img = json_encode(ImageHandel::insertImage('user', $img));
$user->img = $img;
if (!$img) {
DB::rollBack();
}
}
$user->update();
// log
UserModule::makeLog($user->id, 'user (' . Auth::guard('user-api')->user()->id . ') updated');
DB::commit();
$query_string = General::getCachePerviousQuery('admin_query');
$data = General::returnData($user, $query_string);
return response()->json($data);
}
public static function validCheck(Request $request, $hash_id = '', $method = 'POST')
{
$id = Auth::guard('user-api')->user()->id;
$validation = UserModule::validation($request, $id, $method);
if (!$validation->status) {
return response()->json($validation, 422);
}
}
private static function validation(Request $request, $id = '', $method = 'POST')
{
$data = $request->all();
$rule= [];
if ($method == 'PUT') {
$rule = [
'img' => '',
'first_name' => 'required',
'last_name' => 'required',
'email' => 'required|email|max:255|unique:users,email,' . $id,
'password' => 'sometimes|confirmed',
];
}
if (!empty($data['img'])) {
foreach ($data['img'] as $key => $row) {
$rule['img'.'.'.$key] = ['required', new Image64Check()];
}
}
$validator = Validator::make($data, $rule, config('error_code'));
$errors = $validator->errors();
if (!empty($data['img'])) {
foreach ($data['img'] as $key => $row) {
if ($errors->first('img'.'.'.$key)) {
$errors->add('img', config('error_code.img_error'));
break;
}
}
}
if ($validator->fails()) {
$data = General::returnErrorData($errors);
return $data;
}
else {
return (object)['status' => true];
}
}
public static function makeLog($id = '', $remark = '')
{
$user = User::find($id);