Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
57.69% |
15 / 26 |
|
0.00% |
0 / 2 |
CRAP | |
0.00% |
0 / 1 |
AppServiceProvider | |
57.69% |
15 / 26 |
|
0.00% |
0 / 2 |
12.85 | |
0.00% |
0 / 1 |
register | |
75.00% |
3 / 4 |
|
0.00% |
0 / 1 |
2.06 | |||
boot | |
54.55% |
12 / 22 |
|
0.00% |
0 / 1 |
9.38 |
1 | <?php |
2 | |
3 | namespace App\Providers; |
4 | |
5 | use Stripe\Stripe; |
6 | use SimpleXMLElement; |
7 | use Laravel\Cashier\Cashier; |
8 | use Illuminate\Http\Response; |
9 | use App\Http\Models\Auth\User; |
10 | use App\Http\Models\Subscription; |
11 | use App\Http\Models\Passport\Token; |
12 | use Illuminate\Support\Facades\URL; |
13 | use App\Http\Models\Passport\Client; |
14 | use App\Http\Models\SubscriptionItem; |
15 | use App\Http\Models\Passport\AuthCode; |
16 | use Illuminate\Foundation\AliasLoader; |
17 | use Illuminate\Support\ServiceProvider; |
18 | use App\Http\Models\Passport\RefreshToken; |
19 | use App\Http\Resolvers\SocialUserResolver; |
20 | use App\Http\Models\Passport\PersonalAccessClient; |
21 | use App\Http\Repositories\interfaces\ISavedPromptRepository; |
22 | use App\Http\Repositories\SavedPromptsRepository; |
23 | use Coderello\SocialGrant\Resolvers\SocialUserResolverInterface; |
24 | |
25 | class AppServiceProvider extends ServiceProvider |
26 | { |
27 | public $bindings = [ |
28 | SocialUserResolverInterface::class => SocialUserResolver::class, |
29 | ]; |
30 | |
31 | /** |
32 | * Register any application services. |
33 | */ |
34 | public function register(): void |
35 | { |
36 | if ($this->app->isLocal()) { |
37 | $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class); |
38 | } |
39 | |
40 | Stripe::setApiKey(config('services.stripe.secret')); |
41 | |
42 | $this->app->bind(ISavedPromptRepository::class, SavedPromptsRepository::class); |
43 | } |
44 | |
45 | /** |
46 | * Bootstrap any application services. |
47 | */ |
48 | public function boot(): void |
49 | { |
50 | if (config('app.env') === 'production') { |
51 | URL::forceScheme('https'); |
52 | } |
53 | $loader = AliasLoader::getInstance(); |
54 | |
55 | // Passport client extends Eloquent model by default, so we alias them. |
56 | $loader->alias('Laravel\Passport\AuthCode', AuthCode::class); |
57 | $loader->alias('Laravel\Passport\Client', Client::class); |
58 | $loader->alias('Laravel\Passport\PersonalAccessClient', PersonalAccessClient::class); |
59 | $loader->alias('Laravel\Passport\RefreshToken', RefreshToken::class); |
60 | $loader->alias('Laravel\Passport\Token', Token::class); |
61 | |
62 | $loader->alias('Laravel\Cashier\Subscription', Subscription::class); |
63 | $loader->alias('Laravel\Cashier\SubscriptionItem', SubscriptionItem::class); |
64 | |
65 | Cashier::useCustomerModel(User::class); |
66 | Response::macro('xml', function (array $vars, $status = 200, array $header = [], $xml = null) { |
67 | if (is_null($xml)) { |
68 | $xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><response/>'); |
69 | } |
70 | foreach ($vars as $key => $value) { |
71 | if (is_array($value)) { |
72 | Response::xml($value, $status, $header, $xml->addChild($key)); |
73 | } else { |
74 | $xml->addChild($key, $value); |
75 | } |
76 | } |
77 | if (empty($header)) { |
78 | $header['Content-Type'] = 'application/xml'; |
79 | } |
80 | return Response::make($xml->asXML(), $status, $header); |
81 | }); |
82 | } |
83 | } |