Файловый менеджер - Редактировать - /home/clickysoft/public_html/charliapp-v2.clickysoft.net/app/Http/Controllers/ApiController.php
Назад
<?php namespace App\Http\Controllers; use App\Models\User; use App\Models\Package; use App\Models\PackageOption; use Illuminate\Http\Request; use Symfony\Component\HttpFoundation\Response; use Illuminate\Support\Facades\Validator; use App\Http\Requests\ForgotPasswordRequest; use App\Http\Requests\ResetPasswordRequest; use \Carbon\Carbon; use App\Notifications\ForgotPasswordNotification; use App\Notifications\RegisterNotification; use Illuminate\Auth\Events\Registered; use App\Http\Controllers\SubscriptionController; use App\Models\InAppSubscription; class ApiController extends Controller { private $subscriptionConroller; public function __construct(SubscriptionController $subscriptionConroller) { $this->subscriptionConroller = $subscriptionConroller; } public function login(Request $request) { $credentials = $request->only('email', 'password'); //Validate credential $validator = Validator::make($credentials, [ 'email' => 'required|email', 'password' => 'required' ]); //Send failed response if request is not valid if ($validator->fails()) { return response()->json(['error' => $validator->messages()], 200); } if (!auth()->attempt($credentials)) { return response()->json([ 'message' => 'The given data was invalid.', 'errors' => [ 'password' => [ 'Invalid credentials' ], ] ], 422); } $user = User::where('email', $request->email)->first(); if ($user->status == 0) { return response()->json([ 'message' => 'Account disabled.', 'errors' => [ 'email' => [ 'Your account is disabled, please contact administrator.' ], ] ], 422); } $authToken = $user->createToken('auth-token')->plainTextToken; extract($this->get_user_details($user)); return response()->json([ 'user' => [ 'id' => $user->id, 'name' => $user->name, 'email' => $user->email, 'email_verified' => $user->hasVerifiedEmail(), 'status' => $user->status, 'profile_image' => getProfileImage($user), 'subscription_date' => $user->subscription_date, 'package' => $package_name, 'package_description' => $package_description, 'package_options' => $packageOptions, 'subscription_details' => $subscription_details, ], 'access_token' => $authToken, ]); } public function register(Request $request) { $request->validate([ 'name' => 'required', 'email' => 'required|email|unique:users', 'password' => 'required|min:6' ]); $user = User::create([ 'name' => $request->name, 'email' => $request->email, 'status' => 1, "package_id" => null, "subscription_date" => null, 'password' => bcrypt($request->password), ]); // Assign user role $user->roles()->attach(2); $authToken = $user->createToken('auth-token')->plainTextToken; try { event(new Registered($user)); $user->notify(new RegisterNotification()); } catch (\Exception $e) { \Log::info($e->getMessage()); } extract($this->get_user_details($user)); return response()->json([ 'success' => true, 'message' => 'User created successfully', 'user' => [ 'id' => $user->id, 'name' => $user->name, 'email' => $user->email, 'email_verified' => $user->hasVerifiedEmail(), 'status' => $user->status, 'profile_image' => getProfileImage($user), 'subscription_date' => $user->subscription_date, 'package' => $package_name, 'package_description' => $package_description, 'package_options' => $packageOptions, 'subscription_details' => $subscription_details, ], 'access_token' => $authToken, ], Response::HTTP_OK); } public function get_user_details($user) { $user = $user->load(['package']); $package_name = null; $subscriptionDetails = null; $package_description = null; $packageOptions = []; $options = []; $expirationDate = $user->subscription_expiration_date; // if (!empty($user->package->id)) { if (!empty($user->package->id) && $expirationDate && !Carbon::parse($expirationDate)->isPast()) { $currentPackage = Package::find($user->package->id); if (!empty($currentPackage)) { $package_name = $currentPackage->package_name; $package_description = $currentPackage->description; foreach ($currentPackage->options as $package_option) { $options[$package_option->id] = [ "option_limit" => $package_option->pivot->option_limit, "option_title" => $package_option->pivot->option_title ]; } $allOptions = PackageOption::all(); foreach ($allOptions as $package_option) { $packageOptions[] = [ "option_name" => $package_option->option_name . (!empty($options[$package_option->id]["option_limit"]) ? " (" . $options[$package_option->id]["option_limit"] . " " . $options[$package_option->id]["option_title"] . ")" : ""), "slug" => $package_option->slug, "available" => in_array($package_option->id, array_keys($options)) ]; } } if ($user->subscribed_with_free_coupon == 0) { $subscriptionDetails = $this->subscriptionConroller->subscription_detail(false); } else { } } $inAppSubscriptionDetails = InAppSubscription::where('user_id', auth()->user()->id)->first(); return [ "user" => $user, "package_name" => $package_name, "package_description" => $package_description, "packageOptions" => $packageOptions, "subscription_details" => $inAppSubscriptionDetails ? $inAppSubscriptionDetails : $subscriptionDetails ]; } public function get_user() { extract($this->get_user_details(auth()->user())); return response()->json(['user' => [ 'id' => $user->id, 'name' => $user->name, 'email' => $user->email, 'password_last_changed' => !empty($user->password_last_changed) ? (new \Carbon\Carbon($user->password_last_changed))->format('F d, Y g:i a') : null, 'server_timezone' => date_default_timezone_get(), 'status' => $user->status, 'subscription_date' => $user->subscription_date, 'profile_image' => getProfileImage($user), 'image'=> $user->image ? $user->image->image_url : null, 'package' => $package_name, 'package_description' => $package_description, 'package_options' => $packageOptions, 'subscription_details' => $subscription_details, ]]); } function logout(Request $request) { $request->user()->tokens()->delete(); return response()->json(['success' => true, "message" => "User has been logged out successfully."]); } public function forgot_password(ForgotPasswordRequest $request) { $resetCode = substr(number_format(time() * rand(), 0, '', ''), 0, 6); $user = User::whereEmail($request->input("email"))->first(); $user->password_reset_code = $resetCode; $user->save(); try { $user->notify(new ForgotPasswordNotification($resetCode)); } catch (\Exception $e) { \Log::info($e->getMessage()); } return response()->json(['success' => true, "message" => "A Password reset code has been sent to your email address."]); } public function reset_password(ResetPasswordRequest $request) { $user = User::whereEmail($request->input("email")) ->wherePasswordResetCode($request->input("password_reset_code")) ->first(); if (empty($user)) { return response()->json([ "message" => "The given data was invalid.", "errors" => ["password_reset_code" => ["The Password Reset Code is invalid or user does not exists."]] ], 422); } $user->password = \Hash::make($request->input("password")); $user->password_last_changed = new \DateTime; $user->password_reset_code = null; $user->save(); return response()->json(['success' => true, "message" => "Password has been changed successfully."]); } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.29 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка