82 - Refactoring to a Facade

This commit is contained in:
Adam Wathan
2017-03-13 19:07:47 -04:00
parent ed87106e4d
commit 442cc3f240
3 changed files with 20 additions and 4 deletions

View File

@@ -0,0 +1,14 @@
<?php
namespace App\Facades;
use Illuminate\Support\Facades\Facade;
use App\OrderConfirmationNumberGenerator;
class OrderConfirmationNumber extends Facade
{
protected static function getFacadeAccessor()
{
return OrderConfirmationNumberGenerator::class;
}
}

View File

@@ -3,6 +3,7 @@
namespace App; namespace App;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use App\Facades\OrderConfirmationNumber;
class Order extends Model class Order extends Model
{ {
@@ -11,14 +12,12 @@ class Order extends Model
public static function forTickets($tickets, $email, $amount) public static function forTickets($tickets, $email, $amount)
{ {
$order = self::create([ $order = self::create([
'confirmation_number' => app(OrderConfirmationNumberGenerator::class)->generate(), 'confirmation_number' => OrderConfirmationNumber::generate(),
'email' => $email, 'email' => $email,
'amount' => $amount, 'amount' => $amount,
]); ]);
foreach ($tickets as $ticket) { $order->tickets()->saveMany($tickets);
$order->tickets()->save($ticket);
}
return $order; return $order;
} }

View File

@@ -5,6 +5,8 @@ namespace App\Providers;
use App\Billing\PaymentGateway; use App\Billing\PaymentGateway;
use App\Billing\StripePaymentGateway; use App\Billing\StripePaymentGateway;
use Illuminate\Support\ServiceProvider; use Illuminate\Support\ServiceProvider;
use App\OrderConfirmationNumberGenerator;
use App\RandomOrderConfirmationNumberGenerator;
class AppServiceProvider extends ServiceProvider class AppServiceProvider extends ServiceProvider
{ {
@@ -30,5 +32,6 @@ class AppServiceProvider extends ServiceProvider
}); });
$this->app->bind(PaymentGateway::class, StripePaymentGateway::class); $this->app->bind(PaymentGateway::class, StripePaymentGateway::class);
$this->app->bind(OrderConfirmationNumberGenerator::class, RandomOrderConfirmationNumberGenerator::class);
} }
} }