/**
  * 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();
 }
 /**
  * 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;
 }
 /**
  * Update the specified resource in storage.
  * /api/admin/set/{id}/move
  * @param  Request  $request
  * @param  int  $id
  * @return Response
  */
 public function move(Request $request, $id)
 {
     $from = PurchaseSquare::where('square_id', $request->input('from'))->first();
     $from->square_id = $request->input('to');
     $from->save();
     $square_old = Square::find($request->input('from'));
     $square_old->status = 'available';
     $square_old->class = null;
     $square_old->save();
     $square_new = Square::find($request->input('to'));
     $square_new->class = 'taken';
     $square_new->status = 'unavailable';
     $square_new->save();
     return $from;
 }
 /**
  * Display an overview of the donations and progress
  * /admin
  * @return Response
  */
 public function index()
 {
     $set = Set::with('purchases.squares', 'squares.purchase.media')->where('id', 1)->first();
     $purchased_squares = PurchaseSquare::where('set_id', $set->id)->count();
     return view('admin.index', ['set' => $set, 'purchased_squares' => $purchased_squares]);
 }