<?php

namespace App\Console\Commands;

use GrahamCampbell\Flysystem\FlysystemManager;
use Illuminate\Console\Command;
use Kreait\Firebase\Factory as FirebaseFactory;
use Kreait\Firebase\ServiceAccount;
use Kreait\Firebase\Storage;
use League\Flysystem\Filesystem;


/**
 * Class CurlCommand
 *
 * @package App\Console\Commands
 */
class CurlCommand extends Command
{
    protected $signature = 'command:curl';

    public function handle()
    {
        $this->info('started');

        $serviceAccount = ServiceAccount::fromJsonFile(base_path().'/keys/timecaps-firebase-service-key.json');
        $firebase = (new FirebaseFactory)
            ->withServiceAccount($serviceAccount)
//            ->withDefaultStorageBucket()
            ->create();

        /** @var Storage $storage */
        $storage = $firebase->getStorage();
        /** @var Filesystem $fileSystem */
        $fileSystem = $storage->getFilesystem();



        $time = time();

        $file = $fileSystem->get('220mb.MOV');


        /** @var Filesystem $spacesConnection */
        $flySystemManager = app()->make(FlysystemManager::class);
        $spacesConnection = $flySystemManager->connection('video');

        $this->info('Got file, start upload');


        $response = $spacesConnection->put(
            rand(1,000) . "test-file.MOV", $file->read(), ['visibility' => 'public']
        );




        $this->info('Finished: ' . (time() - $time) . 's');


//        $firebase = (new FirebaseFactory)->create();
//        $storage = $firebase->getStorage();
//
//
//        dd($storage);

        $this->info($response);


//        $this->info('started');
//
//        $client = new Client();
//
//        /** @var Response $response */
//        $response = $client->request('GET', 'http://api.timecaps.com/v1/feed/timeline-initial', [
//            'headers' => [
//                'KEY' => '12345',
//                'Content-Type' => 'application/json',
//                'Accept' => 'application/json',
//                'Authorization' => 'Bearer iYTXucMQCvZgC9430UkAPjwHNq37slvBXGCO1V5foTsAv2SgJQLlNB84Ak7epPaatkv5H6DJqVKvSg7GdaqBnNvwm1OBBLLDDISGLtGJxHaSzqQbHQf0ANNI',
//            ]
//        ]);
//
////        dd(json_decode($response->getBody()));
////        dd($response->getStatusCode());
//
//        for ($i = 1; $i <= 1000; $i++) {
//
//            $response = $client->request('GET', 'http://api.timecaps.com/v1/feed/timeline-initial', [
//                'headers' => [
//                    'KEY' => '12345',
//                    'Content-Type' => 'application/json',
//                    'Accept' => 'application/json',
//                    'Authorization' => 'Bearer iYTXucMQCvZgC9430UkAPjwHNq37slvBXGCO1V5foTsAv2SgJQLlNB84Ak7epPaatkv5H6DJqVKvSg7GdaqBnNvwm1OBBLLDDISGLtGJxHaSzqQbHQf0ANNI',
//                ]
//            ]);
//            var_dump($response->getStatusCode());
////
////            $client->requestAsync('GET', 'http://api.timecaps.com/v1/feed/profile?user=9d496a62-0737-4d89-90e5-58121963560e&locked=0', [
////                'headers' => [
////                    'KEY' => '12345',
////                    'Content-Type' => 'application/json',
////                    'Accept' => 'application/json',
////                    'Authorization' => 'Bearer iYTXucMQCvZgC9430UkAPjwHNq37slvBXGCO1V5foTsAv2SgJQLlNB84Ak7epPaatkv5H6DJqVKvSg7GdaqBnNvwm1OBBLLDDISGLtGJxHaSzqQbHQf0ANNI',
////                ]
////            ])->then(function(Response $response) {
////
////                var_dump($response->getStatusCode());
////            });
//
//        }
//
//        $this->info('Endeed');
    }
}















