/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $codeLib = new Code(); $key = $request->route('key'); $code = \App\Model\Code::find($key); if ($codeLib->have($code->accounts, \Auth::user()->guid)) { return abort(404); } return $next($request); }
/** * Confirm code and give reward * POST * * @param Request $request * @param string $key * @return Response */ public function confirmCode(Request $request, $key) { $user = UserManager::find(Auth::user()->guid); $code = CodeManager::find($key); $code->use -= 1; $code->accounts .= $user->guid . '|'; $code->save(); switch ($code->action) { case 1: //Give points $user->points += $code->param; $user->save(); break; case 2: //Give tokens $token = \App\Model\TokensAccount::where('guid', $user->guid)->where('token', $code->param)->first(); if (!$token) { $token = new \App\Model\TokensAccount(); $token->guid = $user->guid; $token->token = $code->param; $token->quantity = 1; } else { $token->quantity += 1; } $token->save(); break; case 3: //Give item $this->validate($request, ['player' => 'required|numeric|exists:personnages,guid']); $this->GiveObject($request->player, $code->param); break; case 4: //Give itemsets $this->validate($request, ['player' => 'required|numeric|exists:personnages,guid']); $itemset = \App\Model\Itemset::find($code->param); $exp = explode(',', $itemset->items); foreach ($exp as $id) { $this->_giveObject($request->player, $id); } break; } if ($code->use == 0) { $code->delete(); } return redirect()->route('gift.code'); }
/** * @param EntityManager $entityManager */ public function __construct(EntityManager $entityManager) { parent::__construct($entityManager, \App\Model\Code::getClassName()); }