MIF_E31210515/BackEnd/laravel-pos-ecommerce-backend/app/Http/Controllers/Api/ProfileController.php

90 lines
2.5 KiB
PHP

<?php
namespace App\Http\Controllers\Api;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Validator;
use Symfony\Component\HttpKernel\Profiler\Profile;
class ProfileController extends Controller
{
public function getProfile()
{
$user = Auth::user();
return response()->json([
'message' => 'Profile retrieved successfully',
'user' => $user
], 200);
}
public function updateProfile(Request $request)
{
$name = $request->get('name');
$email = $request->get('email');
$phone = $request->get('phone');
// print_r($request->all());
// die();
Log::info('Name: ' . $name);
Log::info('Email: ' . $email);
Log::info('Phone: ' . $phone);
$validator = Validator::make($request->all(), [
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users,email,' . Auth::id(),
'phone' => 'required|string|max:15',
'foto' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
]);
if ($validator->fails()) {
Log::error('Validation Error: ', $validator->errors()->toArray());
return response()->json([
'message' => 'Validation Error',
'errors' => $validator->errors()
], 422);
}
$user = Auth::user();
$user->name = $name;
$user->email = $email;
$user->phone = $phone;
if ($request->hasFile('foto')) {
$file = $request->file('foto');
$filename = time() . '_' . $file->getClientOriginalName();
$file->storeAs('public/foto', $filename);
$user->foto = $filename;
}
$user->save();
return response()->json([
'message' => 'Profile updated successfully',
'user' => $user
], 200);
}
// public function update(Request $request)
// {
// $user = Auth::user();
// $request->validate([
// 'name' => 'required',
// 'email' => 'required|email|unique:profiles,email,' . $user->id,
// 'phone' => 'required',
// 'foto' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
// ]);
// $user->profile->update($request->all());
// return response()->json($user->profile, 200);
// }
}