feat: add package name to login
This commit is contained in:
@@ -22,31 +22,42 @@
|
|||||||
use App\Models\UserBreathingSession;
|
use App\Models\UserBreathingSession;
|
||||||
class UserController extends Controller
|
class UserController extends Controller
|
||||||
{
|
{
|
||||||
public function login(Request $request)
|
public function login(Request $request)
|
||||||
{
|
{
|
||||||
$data = $request->validate([
|
$data = $request->validate([
|
||||||
'auth' => 'string|required',
|
'auth' => 'string|required',
|
||||||
'password' => 'string|required'
|
'password' => 'string|required',
|
||||||
|
'package_name' => 'string|required',
|
||||||
|
'fcm_token' => 'string|nullable'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
if (!$packageName = PackageName::where('name', $data['package_name'])->first()) {
|
||||||
|
return response()->json(['message' => 'package name not found'], 404);
|
||||||
|
}
|
||||||
|
|
||||||
$authType = filter_var($data['auth'], FILTER_VALIDATE_EMAIL) ? 'email' : 'mobile';
|
$authType = filter_var($data['auth'], FILTER_VALIDATE_EMAIL) ? 'email' : 'mobile';
|
||||||
if ($authType == 'mobile') {
|
if ($authType == 'mobile') {
|
||||||
$data['auth'] = MobileNumberHelper::formatMobile($data['auth']);
|
$data['auth'] = MobileNumberHelper::formatMobile($data['auth']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$user = User::where($authType, $data['auth'])->first();
|
$user = User::where($authType, $data['auth'])->first();
|
||||||
// return response()->json([
|
|
||||||
// 'user' => $user,
|
|
||||||
// // 'token' => $token,
|
|
||||||
// 'hash'=> trim($data['password']),
|
|
||||||
// 'password' => $user ? $user->password : null,
|
|
||||||
// 'check' => $user ? Hash::check(trim($data['password']), $user->password) : null,
|
|
||||||
|
|
||||||
// ]);
|
|
||||||
if (!$user || !Hash::check(trim($data['password']), $user->password)) {
|
if (!$user || !Hash::check(trim($data['password']), $user->password)) {
|
||||||
return response()->json(['message' => 'wrong credentials'], 404);
|
return response()->json(['message' => 'wrong credentials'], 404);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Attach package if not exists
|
||||||
|
if (!$user->packageNames()->where('package_names.id', $packageName->id)->exists()) {
|
||||||
|
$user->packageNames()->attach($packageName->id, [
|
||||||
|
'tries' => $packageName->tries,
|
||||||
|
'fcm_token' => $data['fcm_token'] ?? null,
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
|
$user->packageNames()->updateExistingPivot($packageName->id, [
|
||||||
|
'fcm_token' => $data['fcm_token'] ?? null,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
$token = $user->createToken('token', $user->is_admin ? ['admin'] : ['user'])->plainTextToken;
|
$token = $user->createToken('token', $user->is_admin ? ['admin'] : ['user'])->plainTextToken;
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
@@ -55,8 +66,7 @@ public function login(Request $request)
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function register(Request $request)
|
||||||
public function register(Request $request)
|
|
||||||
{
|
{
|
||||||
$data = $request->validate([
|
$data = $request->validate([
|
||||||
'first_name' => 'string|nullable',
|
'first_name' => 'string|nullable',
|
||||||
@@ -64,8 +74,10 @@ public function register(Request $request)
|
|||||||
'email' => 'email|required_without:mobile',
|
'email' => 'email|required_without:mobile',
|
||||||
'password' => 'string|nullable|required_with:email',
|
'password' => 'string|nullable|required_with:email',
|
||||||
'mobile' => ['string', new MobileNumber, 'nullable', 'required_without:email'],
|
'mobile' => ['string', new MobileNumber, 'nullable', 'required_without:email'],
|
||||||
|
'fcm_token' => 'string|nullable'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
||||||
if (isset($data['mobile'])) {
|
if (isset($data['mobile'])) {
|
||||||
$data['mobile'] = MobileNumberHelper::formatMobile($data['mobile']);
|
$data['mobile'] = MobileNumberHelper::formatMobile($data['mobile']);
|
||||||
if (User::where('mobile', $data['mobile'])->exists()) {
|
if (User::where('mobile', $data['mobile'])->exists()) {
|
||||||
@@ -76,11 +88,11 @@ public function register(Request $request)
|
|||||||
if (isset($data['email']) && User::where('email', $data['email'])->exists()) {
|
if (isset($data['email']) && User::where('email', $data['email'])->exists()) {
|
||||||
return response()->json(['message' => 'Email already exists'], 400);
|
return response()->json(['message' => 'Email already exists'], 400);
|
||||||
}
|
}
|
||||||
$pass = $data['password'] ?? null;
|
|
||||||
$data['password'] = isset($data['password']) ? $data['password'] : Hash::make(Str::random(8));
|
|
||||||
|
|
||||||
|
$data['password'] = $data['password'] ?? Hash::make(Str::random(8));
|
||||||
$user = User::create($data);
|
$user = User::create($data);
|
||||||
|
|
||||||
|
// Send email verification if email exists
|
||||||
if (isset($data['email'])) {
|
if (isset($data['email'])) {
|
||||||
$code = rand(100000, 999999);
|
$code = rand(100000, 999999);
|
||||||
\DB::table('email_verifications')->insert([
|
\DB::table('email_verifications')->insert([
|
||||||
@@ -101,6 +113,7 @@ public function register(Request $request)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public function verifyEmailCode(Request $request)
|
public function verifyEmailCode(Request $request)
|
||||||
{
|
{
|
||||||
$request->validate([
|
$request->validate([
|
||||||
|
|||||||
Reference in New Issue
Block a user