api update

This commit is contained in:
Abhishek Mali
2025-12-02 18:07:15 +05:30
parent 3845972c5c
commit 922539844d
12 changed files with 654 additions and 662 deletions

View File

@@ -4,14 +4,17 @@ namespace App\Http\Controllers\User;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\UpdateRequest;
use PHPOpenSourceSaver\JWTAuth\Facades\JWTAuth;
class UserProfileController extends Controller
{
/**
* Get user profile
*/
public function profile()
{
// Get logged-in user using JWT
try {
try {
$user = JWTAuth::parseToken()->authenticate();
} catch (\Exception $e) {
return response()->json([
@@ -20,7 +23,6 @@ class UserProfileController extends Controller
], 401);
}
if (! $user) {
return response()->json([
'success' => false,
@@ -28,7 +30,6 @@ class UserProfileController extends Controller
], 401);
}
// Format response
return response()->json([
'success' => true,
'data' => [
@@ -49,7 +50,53 @@ class UserProfileController extends Controller
]);
}
public function updateProfile(Request $request)
/**
* Update profile IMAGE only (no admin approval)
*/
public function updateProfileImage(Request $request)
{
$user = JWTAuth::parseToken()->authenticate();
if (! $user) {
return response()->json([
'success' => false,
'message' => 'Unauthorized'
], 401);
}
$request->validate([
'profile_image' => 'required|image|mimes:jpg,jpeg,png|max:2048'
]);
// DELETE OLD IMAGE
if ($user->profile_image && file_exists(public_path($user->profile_image))) {
@unlink(public_path($user->profile_image));
}
// SAVE NEW IMAGE
$file = $request->file('profile_image');
$filename = 'profile_' . time() . '.' . $file->getClientOriginalExtension();
$folder = 'profile_upload/';
$file->move(public_path($folder), $filename);
$user->profile_image = $folder . $filename;
$user->save();
return response()->json([
'success' => true,
'message' => 'Profile image updated successfully',
'profile_image' => url($user->profile_image),
]);
}
/**
* Submit profile update request (requires admin approval)
*/
public function updateProfileRequest(Request $request)
{
$user = JWTAuth::parseToken()->authenticate();
@@ -60,53 +107,28 @@ class UserProfileController extends Controller
], 401);
}
// Validate ONLY profile image
// Validate input
$request->validate([
'profile_image' => 'required|image|mimes:jpg,jpeg,png|max:2048'
'customer_name' => 'nullable|string|max:255',
'company_name' => 'nullable|string|max:255',
'designation' => 'nullable|string|max:255',
'email' => 'nullable|email',
'mobile_no' => 'nullable|string|max:15',
'address' => 'nullable|string',
'pincode' => 'nullable|string|max:10'
]);
// If new image uploaded
if ($request->hasFile('profile_image')) {
// DELETE OLD IMAGE
if ($user->profile_image && file_exists(public_path($user->profile_image))) {
@unlink(public_path($user->profile_image));
}
// NEW FILE
$file = $request->file('profile_image');
$filename = 'profile_' . time() . '.' . $file->getClientOriginalExtension();
// Correct folder name (from your message)
$folder = 'profile_upload/';
$fullPath = $folder . $filename;
// Move file
$file->move(public_path($folder), $filename);
// Save in DB (same pattern you said)
$user->profile_image = $fullPath;
}
$user->save();
// SAVE AS ARRAY (NOT JSON STRING!)
$updateReq = \App\Models\UpdateRequest::create([
'user_id' => $user->id,
'data' => $request->all(), // <---- FIXED
'status' => 'pending',
]);
return response()->json([
'success' => true,
'message' => 'Profile image updated successfully',
'data' => [
'customer_id' => $user->customer_id,
'customer_name' => $user->customer_name,
'company_name' => $user->company_name,
'designation' => $user->designation,
'email' => $user->email,
'mobile' => $user->mobile_no,
'address' => $user->address,
'pincode' => $user->pincode,
'status' => $user->status,
'customer_type' => $user->customer_type,
'profile_image' => $user->profile_image ? url($user->profile_image) : null,
'date' => $user->date,
]
'message' => 'Profile update request submitted. Waiting for admin approval.',
'request_id' => $updateReq->id
]);
}