TIF_E41210178/app/Http/Controllers/Api/AuthController.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'
]);
}
}