/**
  * Store a newly created resource in storage.
  *
  * @param  Request  $request
  * @return Response
  */
 public function store(Request $request)
 {
     $squares = $request->input('chosen');
     $purchase = Purchase::create(array('name' => $request->input('name'), 'email' => $request->input('email')));
     foreach ($squares as $square_id) {
         $s = Square::find($square_id);
         $s->class = 'taken';
         $s->status = 'purchased';
         $s->save();
         PurchaseSquare::create(array('purchase_id' => $purchase->id, 'square_id' => $s->id));
     }
     return PurchaseSquare::where('purchase_id', $purchase->id)->get();
 }
 /**
  * Update the specified resource in storage.
  * /api/admin/set/{id}/available
  * @param  Request  $request
  * @param  int  $id
  * @return Response
  */
 public function available(Request $request, $id)
 {
     $unavailable = $request->input('chosen');
     $available = $request->input('unchosen');
     if (count($available) > 0) {
         foreach ($available as $square_id) {
             $s = Square::find($square_id);
             $s->status = 'available';
             $s->save();
         }
     }
     if (count($unavailable) > 0) {
         foreach ($unavailable as $square_id) {
             $s = Square::find($square_id);
             $s->status = 'invisible';
             $s->save();
         }
     }
     $set = Set::find($id);
     $set->available = $set->rows * $set->cols - Square::where('set_id', $id)->where('status', 'invisible')->count();
     $set->save();
     return $set;
 }
 /**
  * Store a newly created resource in storage.
  *
  * @param  Request  $request
  * @return Response
  */
 public function store(Request $request)
 {
     \Stripe\Stripe::setApiKey(env('STRIPE_PRI', null));
     // Create a Customer
     $customer = \Stripe\Customer::create(array("source" => $request->input('token_id'), "description" => $request->input('name') . ' ' . $request->input('email')));
     // Charge the Customer instead of the card
     \Stripe\Charge::create(array("amount" => $request->input('price') * 100, "currency" => "usd", "customer" => $customer->id));
     $set = Set::find(1);
     $data = array('set_id' => $set->id, 'customer_id' => $customer->id, 'price' => $request->input('price'), 'name' => $request->input('name'), 'email' => $request->input('email'), 'optin' => $request->input('optin'));
     if ($request->has('media_id')) {
         $data['media_id'] = $request->input('media_id');
     } else {
         if ($request->has('color')) {
             $data['color'] = $request->input('color');
         }
     }
     $purchase = Purchase::create($data);
     // Mobile doesn't have chosen array
     if ($request->has('mobile')) {
         $squares = Square::where('status', 'available')->where('set_id', $set->id)->take($request->input('blocks'))->get();
         foreach ($squares as $s) {
             $s->class = 'taken';
             $s->status = 'unavailable';
             $s->save();
             PurchaseSquare::create(array('purchase_id' => $purchase->id, 'square_id' => $s->id, 'set_id' => $set->id));
         }
     } else {
         $squares = $request->input('chosen');
         foreach ($squares as $square_id) {
             $s = Square::find($square_id);
             $s->class = 'taken';
             $s->status = 'unavailable';
             $s->save();
             PurchaseSquare::create(array('purchase_id' => $purchase->id, 'square_id' => $s->id, 'set_id' => $set->id));
         }
     }
     return $purchase;
 }