public static function getMinWithdraw(User $user) { $min = 50; $coupon = CouponMapper::byCode('ADD25USD'); if ($coupon) { if (CouponMapper::usedByUser($user, $coupon)) { if (!CouponMapper::paidByUser($user, $coupon)) { $min = $min + 25; } } } return $min; }
public function coupon(Request $request) { $rules = ['coupon' => 'required|min:3|max:25']; $this->validate($request, $rules); $couponCode = $request->get('coupon'); $coupon = CouponMapper::byCode($couponCode); if (!$coupon) { return Redirect::back()->withErrors(['coupon' => 'This coupon is not valid'])->withInput(['coupon' => $couponCode]); } if (CouponMapper::usedByUser($this->user, $coupon)) { return Redirect::back()->withErrors(['coupon' => 'You already have used this coupon'])->withInput(['coupon' => $couponCode]); } switch ($coupon->code) { case 'ADD25USD': CouponMapper::track($this->user, $coupon); $this->user->balance = $this->user->balance + 25; $this->user->save(); NotificationMapper::coupon($this->user, $coupon); LogMapper::log('coupon', $coupon->code, $this->user->id); return Redirect::back()->with(['success' => $coupon->title]); break; } return Redirect::back()->withErrors(['coupon' => 'Coupon is not ready yet']); }