mivita/app/Http/Middleware/Checkout.php
Kevin Adametz 21abafb8db Membership
2020-03-07 19:44:58 +01:00

57 lines
No EOL
1.9 KiB
PHP
Executable file

<?php
namespace App\Http\Middleware;
use App\Models\ShoppingInstance;
use App\Models\UserShop;
use Closure;
use Auth;
use phpDocumentor\Reflection\DocBlock\Tags\Uses;
use App\Services\Util;
use Yard;
class Checkout
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if($shopping_instance = ShoppingInstance::where('identifier', $request->route('identifier'))->first()){
//user shop
$user_shop = $shopping_instance->user_shop;
if($user_shop && $user_shop->active == 1 && $user_shop->user->isActiveShop()){
Util::setPostRoute('user/');
\Session::put('user_shop', $user_shop);
\Session::put('user_shop_domain', $shopping_instance->subdomain);
\Session::put('user_shop_payment', $shopping_instance->payment);
\Session::put('user_shop_identifier', $shopping_instance->identifier);
\Session::put('isCheckout', true);
if($shopping_instance->auth_user_id){
\Session::put('auth_user', $shopping_instance->auth_user);
}
}
Yard::instance('shopping')->destroy();
//restore yard
Yard::instance('shopping')->restore($request->route('identifier'));
Yard::instance('shopping')->setShippingCountryWithPrice($shopping_instance->country_id);
ShoppingInstance::where('identifier', $request->route('identifier'))->delete();
$request->route()->forgetParameter('identifier');
return $next($request);
}
if(\Session::has('user_shop') && \Session::has('isCheckout') && Yard::instance('shopping')->count()){
return $next($request);
}
return redirect(config('app.url'));
}
}