Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
30.00% covered (danger)
30.00%
3 / 10
50.00% covered (danger)
50.00%
1 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
GoogleDriveServiceProvider
30.00% covered (danger)
30.00%
3 / 10
50.00% covered (danger)
50.00%
1 / 2
3.37
0.00% covered (danger)
0.00%
0 / 1
 boot
22.22% covered (danger)
22.22%
2 / 9
0.00% covered (danger)
0.00%
0 / 1
1.47
 register
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace App\Providers;
4
5use Google\Client as GoogleClient;
6use Google\Service\Drive;
7use Illuminate\Filesystem\FilesystemAdapter;
8use Illuminate\Support\Facades\Storage;
9use Illuminate\Support\ServiceProvider;
10use League\Flysystem\Filesystem;
11use Masbug\Flysystem\GoogleDriveAdapter;
12
13class GoogleDriveServiceProvider extends ServiceProvider
14{
15    public function boot(): void
16    {
17        Storage::extend('google', function ($app, array $config): FilesystemAdapter {
18            $client = new GoogleClient();
19            $client->setClientId($config['clientId']);
20            $client->setClientSecret($config['clientSecret']);
21            $client->refreshToken($config['refreshToken']);
22
23            $service = new Drive($client);
24            $adapter = new GoogleDriveAdapter($service, $config['folderId']);
25
26            return new FilesystemAdapter(new Filesystem($adapter), $adapter, $config);
27        });
28    }
29
30    #[\Override]
31    public function register(): void
32    {
33        //
34    }
35}