public function placeOrder() { // Make sure request is well formated if (!array_key_exists('order', $this->request_body)) { throw new Exception('Missing or malformed request.', 422); } $input = $this->request_body['order']; $requiredKeys = array('customerName', 'customerEmail', 'itemName', 'price', 'token'); $this->app['utils']->verifyInputIsntNull($input, $requiredKeys); // Create new Order object $order = new Order(); $order->setTruckId($truckId = 1); $order->setItemName($input['itemName']); $order->setPrice($input['price']); $order->setCustomerName($input['customerName']); $order->setCustomerEmail($input['customerEmail']); if (array_key_exists('customerPhoneNumber', $input)) { $order->setCustomerPhoneNumber($input['customerPhoneNumber']); } // Pay for order $payment = $this->stripeWrapper->payForOrder($input); // Add order info to order $order->setChargeId($payment['chargeId']); $order->setCustomerId($payment['customerId']); // Save the Order to the db $order->save(); // Return Order objet return array('order' => $order->toArray()); }