166 lines
5.2 KiB
PHP
166 lines
5.2 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Api;
|
|
|
|
use App\Models\User;
|
|
use Illuminate\Http\Request;
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
|
class AuthController extends Controller
|
|
{
|
|
// public function register(Request $request)
|
|
// {
|
|
// $validated = $request->validate([
|
|
// 'name' => 'required|string',
|
|
// 'email' => 'required|email|unique:users,email',
|
|
// 'password' => 'required|string'
|
|
// ], [
|
|
// 'name.required' => 'Nama harus diisi',
|
|
// 'name.string' => 'Nama harus berupa string',
|
|
// 'email.required' => 'Email harus diisi',
|
|
// 'email.email' => 'Email harus valid',
|
|
// 'email.unique' => 'Email sudah terdaftar',
|
|
// 'password.required' => 'Password harus diisi',
|
|
// 'password.string' => 'Password harus berupa string'
|
|
// ]);
|
|
|
|
// $validated['password'] = bcrypt($request->password);
|
|
|
|
// $user = User::create($validated);
|
|
|
|
// // $token = $user->createToken('authToken')->token;
|
|
|
|
// return response()->json([
|
|
// 'success' => true,
|
|
// 'message' => 'Register success',
|
|
// 'data' => $user,
|
|
// // 'token' => $token
|
|
// ]);
|
|
// }
|
|
|
|
public function login(Request $request)
|
|
{
|
|
$validated = $request->validate([
|
|
'email' => 'required|email',
|
|
'password' => 'required|string'
|
|
], [
|
|
'email.required' => 'Email harus diisi',
|
|
'email.email' => 'Email harus valid',
|
|
'password.required' => 'Password harus diisi',
|
|
'password.string' => 'Password harus berupa string'
|
|
]);
|
|
|
|
if (!Auth::attempt($validated)) {
|
|
return response()->json([
|
|
'success' => false,
|
|
'message' => 'Unauthorized'
|
|
]);
|
|
}
|
|
|
|
$token = Auth::user()->createToken('authToken')->plainTextToken;
|
|
|
|
return response()->json([
|
|
'success' => true,
|
|
'message' => 'Login success',
|
|
'data' => Auth::user(),
|
|
'token' => $token
|
|
]);
|
|
}
|
|
|
|
public function updatephoto(Request $request){
|
|
$request->validate([
|
|
'image' => 'required'
|
|
], [
|
|
'image.required' => 'Image is required',
|
|
'image.image' => 'File must be an image',
|
|
'image.mimes' => 'File must be jpeg, png, or jpg',
|
|
'image.max' => 'File maximum 2MB'
|
|
]);
|
|
|
|
$image = $request->file('image');
|
|
$image_name = time() . '.' . $image->getClientOriginalExtension();
|
|
$image_path = public_path('images/user/') . $image_name;
|
|
$image->move(public_path('images/user/'), $image_name);
|
|
|
|
$user = $request->user();
|
|
$user->image = $image_name;
|
|
$user->save();
|
|
|
|
return response()->json([
|
|
'message' => 'Image updated successfully'
|
|
], 200);
|
|
}
|
|
|
|
public function updateprofil(Request $request)
|
|
{
|
|
if ($request->password) {
|
|
$request->validate([
|
|
'name' => 'required',
|
|
'email' => 'required|email|unique:users,email,' . $request->user()->id,
|
|
'password' => 'required',
|
|
'repassword' => 'required|same:password'
|
|
], [
|
|
'email.unique' => 'Email already exists',
|
|
'name.required' => 'Name is required',
|
|
'email.required' => 'Email is required',
|
|
'password.required' => 'Password is required',
|
|
'repassword.required' => 'Re-Password is required'
|
|
]);
|
|
} else {
|
|
$request->validate([
|
|
'name' => 'required',
|
|
'email' => 'required|email|unique:users,email,' . $request->user()->id,
|
|
], [
|
|
'email.unique' => 'Email already exists',
|
|
'name.required' => 'Name is required',
|
|
'email.required' => 'Email is required',
|
|
]);
|
|
}
|
|
|
|
// if($request->image){
|
|
// $image = $request->file('image');
|
|
// $image_name = time() . '.' . $image->getClientOriginalExtension();
|
|
// $image_path = public_path('images/user/') . $image_name;
|
|
// $image->move(public_path('images/user/'), $image_name);
|
|
// }
|
|
|
|
$user = $request->user();
|
|
$user->name = $request->name;
|
|
$user->email = $request->email;
|
|
if ($request->password) {
|
|
$user->password = bcrypt($request->password);
|
|
}
|
|
// if($request->image){
|
|
// $user->image = $image_name;
|
|
// }
|
|
$user->save();
|
|
|
|
return response()->json([
|
|
'message' => 'Profile updated successfully'
|
|
], 200);
|
|
}
|
|
|
|
public function getuserlogin(Request $request)
|
|
{
|
|
$url_img_user = url('images/user/');
|
|
$user = $request->user();
|
|
$user->image = $url_img_user . '/' . $user->image;
|
|
return response()->json([
|
|
'user' => $user
|
|
], 200);
|
|
|
|
}
|
|
|
|
public function logout()
|
|
{
|
|
|
|
Auth::user()->tokens()->delete();
|
|
|
|
return response()->json([
|
|
'success' => true,
|
|
'message' => 'Logout success'
|
|
]);
|
|
}
|
|
}
|