Files
ticketbeast/app/Http/Controllers/ConcertOrdersController.php
2016-11-09 10:35:43 -05:00

35 lines
863 B
PHP

<?php
namespace App\Http\Controllers;
use App\Concert;
use Illuminate\Http\Request;
use App\Billing\PaymentGateway;
class ConcertOrdersController extends Controller
{
private $paymentGateway;
public function __construct(PaymentGateway $paymentGateway)
{
$this->paymentGateway = $paymentGateway;
}
public function store($concertId)
{
$concert = Concert::find($concertId);
$ticketQuantity = request('ticket_quantity');
$amount = $ticketQuantity * $concert->ticket_price;
$token = request('payment_token');
$this->paymentGateway->charge($amount, $token);
$order = $concert->orders()->create(['email' => request('email')]);
foreach (range(1, $ticketQuantity) as $i) {
$order->tickets()->create([]);
}
return response()->json([], 201);
}
}