diff --git a/app/Http/Controllers/LearnController.php b/app/Http/Controllers/LearnController.php new file mode 100644 index 0000000000000000000000000000000000000000..f47ae32f342ccf8de59dfff1e3f5653d2be525b7 --- /dev/null +++ b/app/Http/Controllers/LearnController.php @@ -0,0 +1,104 @@ +<?php + +namespace App\Http\Controllers; + +use Illuminate\Http\Request; +use Google_Client; + +class LearnController extends Controller +{ + /** + * Create a new controller instance. + * + * @return void + */ + public function __construct() + { + $this->middleware('auth'); + } + + /** + * Show the application dashboard. + * + * @return \Illuminate\Contracts\Support\Renderable + */ + public function index() + { + + } + + /** + * Create new Spreadsheet. + * + * @return id_spreadsheet + */ + public function new() + { + echo 'nyampe1'; + $client = LearnController::getClient(); + $service = new \Google_Service_Sheets($client); + + echo 'nyampe 2'; + $spreadsheet = new \Google_Service_Sheets_Spreadsheet([ + 'properties' => [ + 'title' => 'Testing' + ] + ]); + echo 'nyampe 3'; + $response = $service->spreadsheets->create($spreadsheet, ['fields' => 'spreadsheetId']); + echo 'nyampe'; + + $data = array( + 'role' => 'owner', + 'type' => 'user', + 'emailAddress' => 'piscokn@gmail.com' + ); + + echo $response->spreadsheetId; + $service2 = new \Google_Service_Drive($client); + $permission2 = new \Google_Service_Drive_Permission([ + 'role' => 'writer', + 'type' => 'user', + 'emailAddress' => 'piscokn@gmail.com' + ]); + // $permission2->setValue('piscokn@gmail.com'); + // $permission2->setType('user'); + // $permission2->setRole('owner'); + $response2 = $service2->permissions->create($response->spreadsheetId, $permission2); + // # Create a connection + // echo $response->spreadsheetId . '\n'; + // $url = 'https://www.googleapis.com/drive/v3/files/' . $response->spreadsheetId . '/permissions'; + // echo $url; + // $ch = curl_init($url); + // # Form data string + // $postString = http_build_query($data, '', '&'); + // # Setting our options + // curl_setopt($ch, CURLOPT_POST, 1); + // curl_setopt($ch, CURLOPT_POSTFIELDS, $postString); + // curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + // # Get the response + // $responsee = curl_exec($ch); + // curl_close($ch); + + // echo $responsee; + + // return view('welcome'); + // printf("Spreadsheet ID: %s\n", $spreadsheet->spreadsheetId); + } + + /** + * Returns an authorized API client. + * @return Google_Client the authorized client object + */ + public function getClient() + { + $client = new Google_Client(); + $client->setApplicationName('Datalearn'); + $client->setAuthConfig(__DIR__.'/credentials.json'); + $client->addScope(\Google_Service_Sheets::SPREADSHEETS); + $client->addScope(\Google_Service_Sheets::DRIVE); + $client->setAccessType('offline'); + + return $client; + } +} diff --git a/app/Http/Controllers/LearnControllerr.php b/app/Http/Controllers/LearnControllerr.php deleted file mode 100644 index 04689379cc56b6a3199987db3d188b1c937af330..0000000000000000000000000000000000000000 --- a/app/Http/Controllers/LearnControllerr.php +++ /dev/null @@ -1,10 +0,0 @@ -<?php - -namespace App\Http\Controllers; - -use Illuminate\Http\Request; - -class LearnControllerr extends Controller -{ - // -} diff --git a/app/Http/Controllers/a.php b/app/Http/Controllers/a.php new file mode 100644 index 0000000000000000000000000000000000000000..dc934042bff5d6b7ab68e1d233fff23ac426c9b5 --- /dev/null +++ b/app/Http/Controllers/a.php @@ -0,0 +1,76 @@ +<?php +require __DIR__.'/../../../vendor/autoload.php'; + +if (php_sapi_name() != 'cli') { + throw new Exception('This application must be run on the command line.'); +} + +/** + * Returns an authorized API client. + * @return Google_Client the authorized client object + */ +function getClient() +{ + $client = new Google_Client(); + $client->setApplicationName('Datalearn'); + $client->setScopes(\Google_Service_Sheets::SPREADSHEETS); + $client->setAuthConfig('e3.json'); + $client->setAccessType('offline'); + $client->setPrompt('select_account consent'); + + + // Load previously authorized token from a file, if it exists. + // The file token.json stores the user's access and refresh tokens, and is + // created automatically when the authorization flow completes for the first + // time. + $tokenPath = 'token.json'; + if (file_exists($tokenPath)) { + $accessToken = json_decode(file_get_contents($tokenPath), true); + $client->setAccessToken($accessToken); + } + + // If there is no previous token or it's expired. + if ($client->isAccessTokenExpired()) { + // Refresh the token if possible, else fetch a new one. + if ($client->getRefreshToken()) { + $client->fetchAccessTokenWithRefreshToken($client->getRefreshToken()); + } else { + // Request authorization from the user. + $authUrl = $client->createAuthUrl(); + printf("Open the following link in your browser:\n%s\n", $authUrl); + print 'Enter verification code: '; + $authCode = trim(fgets(STDIN)); + + // Exchange authorization code for an access token. + $accessToken = $client->fetchAccessTokenWithAuthCode($authCode); + $client->setAccessToken($accessToken); + + // Check to see if there was an error. + if (array_key_exists('error', $accessToken)) { + throw new Exception(join(', ', $accessToken)); + } + } + // Save the token to a file. + if (!file_exists(dirname($tokenPath))) { + mkdir(dirname($tokenPath), 0700, true); + } + file_put_contents($tokenPath, json_encode($client->getAccessToken())); + } + return $client; +} + + +// Get the API client and construct the service object. +$client = getClient(); +$service = new Google_Service_Sheets($client); + +// Prints the names and majors of students in a sample spreadsheet: +// https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit +$spreadsheet = new \Google_Service_Sheets_Spreadsheet([ + 'properties' => [ + 'title' => 'Testin' + ] + ]); +$response = $service->spreadsheets->create($spreadsheet, ['fields' => 'spreadsheetId']); + echo 'nyampe 4'; + echo $response->spreadsheetId; \ No newline at end of file diff --git a/app/Http/Controllers/cre1.json b/app/Http/Controllers/cre1.json new file mode 100644 index 0000000000000000000000000000000000000000..e87d346a4e7af140c563accc7a31e731de2eab69 --- /dev/null +++ b/app/Http/Controllers/cre1.json @@ -0,0 +1 @@ +{"web":{"client_id":"1038840787003-olj0fj86t5t0g4rlsree58eh3knq2atk.apps.googleusercontent.com","project_id":"datalearn","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"u3hi8Sa59C6QAfInptyncvYd","javascript_origins":["http://localhost:8000"]}} \ No newline at end of file diff --git a/app/Http/Controllers/credentials.json b/app/Http/Controllers/credentials.json new file mode 100644 index 0000000000000000000000000000000000000000..f5377c7a8d2b71c2b14fd64803c5c691c1ea8031 --- /dev/null +++ b/app/Http/Controllers/credentials.json @@ -0,0 +1,12 @@ +{ + "type": "service_account", + "project_id": "datalearn", + "private_key_id": "049b061b5b9de5f1f32142109307deb932917eea", + "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCUa1lxNZ82CwFu\n48ndNtYB9MRwGLVy7OeE2S8m/WiMpXjGL23qdq8s9G1VBfBbf+ibMeVvQcUjXJHw\nUmoggvRgW6UJ5GjxNcprPMhghas84JCU8MB+qfvH3hXxEU/ZrXJ1e9WqWKLV2WmB\ni2TNPJOVSCTOEaxyuDQyS/8PNy25xRktf7O2aXeuhO/F1+6KGkfpXAf39NMdBQ2W\nbK61WIjWaHqWicBSDXgkxGGHyw28U3TDW5qXOjfzxxz+/aROv+qHb5uopeLJIBQI\n6SWDjRlRNh19N5dZm6/KVS81Cmx7HoZpOAjc0O3+kiBLOyPnYIvJOEVDNUeaFkrs\nU4zqJxizAgMBAAECggEADRM18nS8XWjzy96SYoQZr1tuUMfEeGbpcHknn8I0Syuq\nq57zCnRBM28nEJXw2ka26bEoGriLEvXtP2QrSEjxGWoJbIksO4+3EOJubp5n+vl3\nkz9wXdhAv5dPjIivZahTjIkHxjV/xuIb2tc6XqBHCiAsaeEBtauHoaSzSBZe114k\n3XCu3ubB6/meQeNMxRI+Al26CUfMENejkB1dIU2eaVJXa0cTog1wkdOan4A4jV/U\ncu6uF+8TZEu0Y7PoL7VQR0STKXmEX8Fj2PH7qKbLLu9kSwawyBaoIzLjcDVyHX5R\nRTTldQoFomwNlSQGudG7CHP/nDDPgOWSXnoGituowQKBgQDLM8jQG4KkrnlXv2LQ\nc8PUBJEVDU+jaKdb5wnDsU74JNRBhpXAZvsz8bJIcXzuIB2Cs2bMD0Fh6iFCFkZw\nnzce8fsHzuYdZPpC9WJvZYFv2cmeri/Uu0R5q/sn3io09kS3JYlwiAdRGmKtXRsJ\ns9sT8ZmsL2oTBVLK+ME+L4qD8wKBgQC6+55xlGZsAk4My7QpqnTpPHGKYiwqa/5B\nW/wxPmaPWAtVQfJ+/hFrJA3BPnC07DTM8AwsTmkXgx1M3khPqNEX0t+eYRcx8mcP\nKQn0aOqoZGX9RYJIF+F6MAraQ039WM0u3InfszvZOBdqio3OhNJWxzv7WYXTd1ck\nV39fj7QIQQKBgC4aOKRmqXRdlXBAHtY2faabxqLlGz1y4A2s1H1OvCD2kiWvuEgn\n1TSK0K04+mQ4axmdRGRlzaq+aP9KeH7S0Lm3owG5gmIG5/TLIaMuf3h2DBVxZa65\nMib8ywXXlPHhMePvo0ghxK808lBtAFZqNPlIZlo3g7R/D7K3T3ihZqbbAoGAbnRZ\nAotBfahW5uQmhz50VZspDzAzGtQ0m/N0pLpR53eBKloMn8wCCiKAJZl3BslJ344m\nAr5HAmanllLwsG3vJn2hL3P3OcAR9Tiu8rxPci3suZKoBWJmBcH/hzOfDHu6qWYJ\n5CWCwyyJWJyEbGy1vCFxY2dc0LB8v7EYQyEmnoECgYBIsScq8OWX+OUaYjj47ySL\nIQyyOxStwv0nr6LKoeW1hUjFKi3BQi6LaG343vZkSWEIRKIENXnpn+3pa79+dUfJ\n7OLv3OozOhyPqiT+yUjakhilnwnQ4c0cZNz0nlXzJf49ugxn+tXlHaDs7EzoF2ag\n7GGhIVGKIIejOAH/1Oe9Rg==\n-----END PRIVATE KEY-----\n", + "client_email": "aljabar@datalearn.iam.gserviceaccount.com", + "client_id": "112946705019770577593", + "auth_uri": "https://accounts.google.com/o/oauth2/auth", + "token_uri": "https://oauth2.googleapis.com/token", + "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", + "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/aljabar%40datalearn.iam.gserviceaccount.com" +} diff --git a/app/Http/Controllers/credentials1.json b/app/Http/Controllers/credentials1.json new file mode 100644 index 0000000000000000000000000000000000000000..30ca0b3525f47397454be508ff35c1f027dc07a2 --- /dev/null +++ b/app/Http/Controllers/credentials1.json @@ -0,0 +1 @@ +{"web":{"client_id":"596977500283-23ka11e3cvdkqn74gum49huse2os9hvo.apps.googleusercontent.com","project_id":"quickstart-1586270192915","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"EilEhMA3QrB3T0o4AV9rNuux","javascript_origins":["http://localhost:8000"]}} \ No newline at end of file diff --git a/app/Http/Controllers/credentials2.json b/app/Http/Controllers/credentials2.json new file mode 100644 index 0000000000000000000000000000000000000000..30ca0b3525f47397454be508ff35c1f027dc07a2 --- /dev/null +++ b/app/Http/Controllers/credentials2.json @@ -0,0 +1 @@ +{"web":{"client_id":"596977500283-23ka11e3cvdkqn74gum49huse2os9hvo.apps.googleusercontent.com","project_id":"quickstart-1586270192915","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"EilEhMA3QrB3T0o4AV9rNuux","javascript_origins":["http://localhost:8000"]}} \ No newline at end of file diff --git a/app/Http/Controllers/e3.json b/app/Http/Controllers/e3.json new file mode 100644 index 0000000000000000000000000000000000000000..5e3859f38c6f3753dbf67be1b8114dbbc0ef45b9 --- /dev/null +++ b/app/Http/Controllers/e3.json @@ -0,0 +1 @@ +{"installed":{"client_id":"596977500283-7put6bokjiqf0r63vb52ksja3umpssc7.apps.googleusercontent.com","project_id":"quickstart-1586270192915","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"Pm5stg2CPDYlRvIJFYq2QZel","redirect_uris":["urn:ietf:wg:oauth:2.0:oob","http://localhost"]}} \ No newline at end of file diff --git a/app/Http/Controllers/token.json b/app/Http/Controllers/token.json new file mode 100644 index 0000000000000000000000000000000000000000..4b62849a5deff339609fdb99b1eee65f7468f505 --- /dev/null +++ b/app/Http/Controllers/token.json @@ -0,0 +1 @@ +{"access_token":"ya29.a0Ae4lvC0gzsPFpKrZaTMsmIJBn_Nhm5wVKXY2Lyy7A1kzxeCUZmiUdz5rH0ty4eRqTKD9g3SJskJMbQ203ufXWNCEPZao6v86JiZ5OvYe81zp2QP31xqpmiZcPSBfUADat5rvNeZLSfAjvtUHKuL0s6-HiLbPLQCOA1M","expires_in":3599,"refresh_token":"1\/\/0gemlmny29IG1CgYIARAAGBASNwF-L9Ir10D1ArUamttBe9ZBrrOu0-O4VfPwS927GKRWVJB0xMLAa3hRJbsiVm7pU6kEpyId7a4","scope":"https:\/\/www.googleapis.com\/auth\/spreadsheets","token_type":"Bearer","created":1586279916} \ No newline at end of file diff --git a/composer.lock b/composer.lock index f0b1b9d9bb209973fa0a7ee555513490a0f96e0c..fb7baa2f9d6114cfc18797574893f862ddbb09f3 100644 --- a/composer.lock +++ b/composer.lock @@ -438,16 +438,16 @@ }, { "name": "google/apiclient-services", - "version": "v0.127", + "version": "v0.129", "source": { "type": "git", "url": "https://github.com/googleapis/google-api-php-client-services.git", - "reference": "19eacad739807e522891bf3f911ffab4a4c29869" + "reference": "1b7d3bcd683603bcd42ea588923775a85a89222e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/19eacad739807e522891bf3f911ffab4a4c29869", - "reference": "19eacad739807e522891bf3f911ffab4a4c29869", + "url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/1b7d3bcd683603bcd42ea588923775a85a89222e", + "reference": "1b7d3bcd683603bcd42ea588923775a85a89222e", "shasum": "" }, "require": { @@ -471,7 +471,7 @@ "keywords": [ "google" ], - "time": "2020-02-17T00:24:19+00:00" + "time": "2020-04-04T00:24:12+00:00" }, { "name": "google/auth", @@ -692,106 +692,18 @@ ], "time": "2016-02-18T21:54:00+00:00" }, - { - "name": "jakub-onderka/php-console-color", - "version": "v0.2", - "source": { - "type": "git", - "url": "https://github.com/JakubOnderka/PHP-Console-Color.git", - "reference": "d5deaecff52a0d61ccb613bb3804088da0307191" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Color/zipball/d5deaecff52a0d61ccb613bb3804088da0307191", - "reference": "d5deaecff52a0d61ccb613bb3804088da0307191", - "shasum": "" - }, - "require": { - "php": ">=5.4.0" - }, - "require-dev": { - "jakub-onderka/php-code-style": "1.0", - "jakub-onderka/php-parallel-lint": "1.0", - "jakub-onderka/php-var-dump-check": "0.*", - "phpunit/phpunit": "~4.3", - "squizlabs/php_codesniffer": "1.*" - }, - "type": "library", - "autoload": { - "psr-4": { - "JakubOnderka\\PhpConsoleColor\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], - "authors": [ - { - "name": "Jakub Onderka", - "email": "jakub.onderka@gmail.com" - } - ], - "time": "2018-09-29T17:23:10+00:00" - }, - { - "name": "jakub-onderka/php-console-highlighter", - "version": "v0.4", - "source": { - "type": "git", - "url": "https://github.com/JakubOnderka/PHP-Console-Highlighter.git", - "reference": "9f7a229a69d52506914b4bc61bfdb199d90c5547" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Highlighter/zipball/9f7a229a69d52506914b4bc61bfdb199d90c5547", - "reference": "9f7a229a69d52506914b4bc61bfdb199d90c5547", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "jakub-onderka/php-console-color": "~0.2", - "php": ">=5.4.0" - }, - "require-dev": { - "jakub-onderka/php-code-style": "~1.0", - "jakub-onderka/php-parallel-lint": "~1.0", - "jakub-onderka/php-var-dump-check": "~0.1", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~1.5" - }, - "type": "library", - "autoload": { - "psr-4": { - "JakubOnderka\\PhpConsoleHighlighter\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jakub Onderka", - "email": "acci@acci.cz", - "homepage": "http://www.acci.cz/" - } - ], - "description": "Highlight PHP code in terminal", - "time": "2018-09-29T18:48:56+00:00" - }, { "name": "laravel/framework", - "version": "v6.18.2", + "version": "v6.18.3", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "9425a2f410d05d5bba493f62cff03854a8b19559" + "reference": "4e48acfaba87f08320a2764d36c3b6a4a4112ccf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/9425a2f410d05d5bba493f62cff03854a8b19559", - "reference": "9425a2f410d05d5bba493f62cff03854a8b19559", + "url": "https://api.github.com/repos/laravel/framework/zipball/4e48acfaba87f08320a2764d36c3b6a4a4112ccf", + "reference": "4e48acfaba87f08320a2764d36c3b6a4a4112ccf", "shasum": "" }, "require": { @@ -924,7 +836,7 @@ "framework", "laravel" ], - "time": "2020-03-17T17:08:02+00:00" + "time": "2020-03-24T16:37:50+00:00" }, { "name": "laravel/tinker", @@ -992,16 +904,16 @@ }, { "name": "league/commonmark", - "version": "1.3.1", + "version": "1.3.3", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "8015f806173c6ee54de25a87c2d69736696e88db" + "reference": "5a67afc2572ec6d430526cdc9c637ef124812389" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/8015f806173c6ee54de25a87c2d69736696e88db", - "reference": "8015f806173c6ee54de25a87c2d69736696e88db", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/5a67afc2572ec6d430526cdc9c637ef124812389", + "reference": "5a67afc2572ec6d430526cdc9c637ef124812389", "shasum": "" }, "require": { @@ -1062,7 +974,7 @@ "md", "parser" ], - "time": "2020-02-28T18:53:50+00:00" + "time": "2020-04-05T16:01:48+00:00" }, { "name": "league/flysystem", @@ -1226,16 +1138,16 @@ }, { "name": "nesbot/carbon", - "version": "2.31.0", + "version": "2.32.2", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "bbc0ab53f41a4c6f223c18efcdbd9bc725eb5d2d" + "reference": "f10e22cf546704fab1db4ad4b9dedbc5c797a0dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/bbc0ab53f41a4c6f223c18efcdbd9bc725eb5d2d", - "reference": "bbc0ab53f41a4c6f223c18efcdbd9bc725eb5d2d", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/f10e22cf546704fab1db4ad4b9dedbc5c797a0dc", + "reference": "f10e22cf546704fab1db4ad4b9dedbc5c797a0dc", "shasum": "" }, "require": { @@ -1244,6 +1156,7 @@ "symfony/translation": "^3.4 || ^4.0 || ^5.0" }, "require-dev": { + "doctrine/orm": "^2.7", "friendsofphp/php-cs-fixer": "^2.14 || ^3.0", "kylekatarnls/multi-tester": "^1.1", "phpmd/phpmd": "^2.8", @@ -1292,7 +1205,7 @@ "datetime", "time" ], - "time": "2020-03-01T11:11:58+00:00" + "time": "2020-03-31T13:43:19+00:00" }, { "name": "nikic/php-parser", @@ -1509,16 +1422,16 @@ }, { "name": "phpseclib/phpseclib", - "version": "2.0.26", + "version": "2.0.27", "source": { "type": "git", "url": "https://github.com/phpseclib/phpseclib.git", - "reference": "09655fcc1f8bab65727be036b28f6f20311c126c" + "reference": "34620af4df7d1988d8f0d7e91f6c8a3bf931d8dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/09655fcc1f8bab65727be036b28f6f20311c126c", - "reference": "09655fcc1f8bab65727be036b28f6f20311c126c", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/34620af4df7d1988d8f0d7e91f6c8a3bf931d8dc", + "reference": "34620af4df7d1988d8f0d7e91f6c8a3bf931d8dc", "shasum": "" }, "require": { @@ -1597,7 +1510,7 @@ "x.509", "x509" ], - "time": "2020-03-13T04:15:39+00:00" + "time": "2020-04-04T23:17:33+00:00" }, { "name": "psr/cache", @@ -1746,16 +1659,16 @@ }, { "name": "psr/log", - "version": "1.1.2", + "version": "1.1.3", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801" + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801", - "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801", + "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", "shasum": "" }, "require": { @@ -1789,7 +1702,7 @@ "psr", "psr-3" ], - "time": "2019-11-01T11:05:21+00:00" + "time": "2020-03-23T09:12:05+00:00" }, { "name": "psr/simple-cache", @@ -1841,23 +1754,22 @@ }, { "name": "psy/psysh", - "version": "v0.10.2", + "version": "v0.10.3", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "573c2362c3cdebe846b4adae4b630eecb350afd8" + "reference": "2bde2fa03e05dff0aee834598b951d6fc7c6fe02" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/573c2362c3cdebe846b4adae4b630eecb350afd8", - "reference": "573c2362c3cdebe846b4adae4b630eecb350afd8", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/2bde2fa03e05dff0aee834598b951d6fc7c6fe02", + "reference": "2bde2fa03e05dff0aee834598b951d6fc7c6fe02", "shasum": "" }, "require": { "dnoegel/php-xdg-base-dir": "0.1.*", "ext-json": "*", "ext-tokenizer": "*", - "jakub-onderka/php-console-highlighter": "0.4.*|0.3.*", "nikic/php-parser": "~4.0|~3.0|~2.0|~1.3", "php": "^8.0 || ^7.0 || ^5.5.9", "symfony/console": "~5.0|~4.0|~3.0|^2.4.2|~2.3.10", @@ -1865,7 +1777,7 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.2", - "hoa/console": "~3.16|~2.15" + "hoa/console": "3.17.*" }, "suggest": { "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", @@ -1910,7 +1822,7 @@ "interactive", "shell" ], - "time": "2020-03-21T06:55:27+00:00" + "time": "2020-04-07T06:44:48+00:00" }, { "name": "ramsey/uuid", @@ -2063,16 +1975,16 @@ }, { "name": "symfony/console", - "version": "v4.4.5", + "version": "v4.4.7", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "4fa15ae7be74e53f6ec8c83ed403b97e23b665e9" + "reference": "10bb3ee3c97308869d53b3e3d03f6ac23ff985f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/4fa15ae7be74e53f6ec8c83ed403b97e23b665e9", - "reference": "4fa15ae7be74e53f6ec8c83ed403b97e23b665e9", + "url": "https://api.github.com/repos/symfony/console/zipball/10bb3ee3c97308869d53b3e3d03f6ac23ff985f7", + "reference": "10bb3ee3c97308869d53b3e3d03f6ac23ff985f7", "shasum": "" }, "require": { @@ -2135,20 +2047,20 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2020-02-24T13:10:00+00:00" + "time": "2020-03-30T11:41:10+00:00" }, { "name": "symfony/css-selector", - "version": "v5.0.5", + "version": "v5.0.7", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "a0b51ba9938ccc206d9284de7eb527c2d4550b44" + "reference": "5f8d5271303dad260692ba73dfa21777d38e124e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/a0b51ba9938ccc206d9284de7eb527c2d4550b44", - "reference": "a0b51ba9938ccc206d9284de7eb527c2d4550b44", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/5f8d5271303dad260692ba73dfa21777d38e124e", + "reference": "5f8d5271303dad260692ba73dfa21777d38e124e", "shasum": "" }, "require": { @@ -2188,20 +2100,20 @@ ], "description": "Symfony CssSelector Component", "homepage": "https://symfony.com", - "time": "2020-02-04T09:41:09+00:00" + "time": "2020-03-27T16:56:45+00:00" }, { "name": "symfony/debug", - "version": "v4.4.5", + "version": "v4.4.7", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "a980d87a659648980d89193fd8b7a7ca89d97d21" + "reference": "346636d2cae417992ecfd761979b2ab98b339a45" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/a980d87a659648980d89193fd8b7a7ca89d97d21", - "reference": "a980d87a659648980d89193fd8b7a7ca89d97d21", + "url": "https://api.github.com/repos/symfony/debug/zipball/346636d2cae417992ecfd761979b2ab98b339a45", + "reference": "346636d2cae417992ecfd761979b2ab98b339a45", "shasum": "" }, "require": { @@ -2244,20 +2156,20 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2020-02-23T14:41:43+00:00" + "time": "2020-03-27T16:54:36+00:00" }, { "name": "symfony/error-handler", - "version": "v4.4.5", + "version": "v4.4.7", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "89aa4b9ac6f1f35171b8621b24f60477312085be" + "reference": "7e9828fc98aa1cf27b422fe478a84f5b0abb7358" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/89aa4b9ac6f1f35171b8621b24f60477312085be", - "reference": "89aa4b9ac6f1f35171b8621b24f60477312085be", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/7e9828fc98aa1cf27b422fe478a84f5b0abb7358", + "reference": "7e9828fc98aa1cf27b422fe478a84f5b0abb7358", "shasum": "" }, "require": { @@ -2300,20 +2212,20 @@ ], "description": "Symfony ErrorHandler Component", "homepage": "https://symfony.com", - "time": "2020-02-26T11:45:31+00:00" + "time": "2020-03-30T14:07:33+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v4.4.5", + "version": "v4.4.7", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "4ad8e149799d3128621a3a1f70e92b9897a8930d" + "reference": "abc8e3618bfdb55e44c8c6a00abd333f831bbfed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/4ad8e149799d3128621a3a1f70e92b9897a8930d", - "reference": "4ad8e149799d3128621a3a1f70e92b9897a8930d", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/abc8e3618bfdb55e44c8c6a00abd333f831bbfed", + "reference": "abc8e3618bfdb55e44c8c6a00abd333f831bbfed", "shasum": "" }, "require": { @@ -2370,7 +2282,7 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2020-02-04T09:32:40+00:00" + "time": "2020-03-27T16:54:36+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -2432,16 +2344,16 @@ }, { "name": "symfony/finder", - "version": "v4.4.5", + "version": "v4.4.7", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "ea69c129aed9fdeca781d4b77eb20b62cf5d5357" + "reference": "5729f943f9854c5781984ed4907bbb817735776b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/ea69c129aed9fdeca781d4b77eb20b62cf5d5357", - "reference": "ea69c129aed9fdeca781d4b77eb20b62cf5d5357", + "url": "https://api.github.com/repos/symfony/finder/zipball/5729f943f9854c5781984ed4907bbb817735776b", + "reference": "5729f943f9854c5781984ed4907bbb817735776b", "shasum": "" }, "require": { @@ -2477,20 +2389,20 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2020-02-14T07:42:58+00:00" + "time": "2020-03-27T16:54:36+00:00" }, { "name": "symfony/http-foundation", - "version": "v4.4.5", + "version": "v4.4.7", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "7e41b4fcad4619535f45f8bfa7744c4f384e1648" + "reference": "62f92509c9abfd1f73e17b8cf1b72c0bdac6611b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/7e41b4fcad4619535f45f8bfa7744c4f384e1648", - "reference": "7e41b4fcad4619535f45f8bfa7744c4f384e1648", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/62f92509c9abfd1f73e17b8cf1b72c0bdac6611b", + "reference": "62f92509c9abfd1f73e17b8cf1b72c0bdac6611b", "shasum": "" }, "require": { @@ -2532,20 +2444,20 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "time": "2020-02-13T19:40:01+00:00" + "time": "2020-03-30T14:07:33+00:00" }, { "name": "symfony/http-kernel", - "version": "v4.4.5", + "version": "v4.4.7", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "8c8734486dada83a6041ab744709bdc1651a8462" + "reference": "f356a489e51856b99908005eb7f2c51a1dfc95dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/8c8734486dada83a6041ab744709bdc1651a8462", - "reference": "8c8734486dada83a6041ab744709bdc1651a8462", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/f356a489e51856b99908005eb7f2c51a1dfc95dc", + "reference": "f356a489e51856b99908005eb7f2c51a1dfc95dc", "shasum": "" }, "require": { @@ -2622,20 +2534,20 @@ ], "description": "Symfony HttpKernel Component", "homepage": "https://symfony.com", - "time": "2020-02-29T10:31:38+00:00" + "time": "2020-03-30T14:59:15+00:00" }, { "name": "symfony/mime", - "version": "v5.0.5", + "version": "v5.0.7", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "9b3e5b5e58c56bbd76628c952d2b78556d305f3c" + "reference": "481b7d6da88922fb1e0d86a943987722b08f3955" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/9b3e5b5e58c56bbd76628c952d2b78556d305f3c", - "reference": "9b3e5b5e58c56bbd76628c952d2b78556d305f3c", + "url": "https://api.github.com/repos/symfony/mime/zipball/481b7d6da88922fb1e0d86a943987722b08f3955", + "reference": "481b7d6da88922fb1e0d86a943987722b08f3955", "shasum": "" }, "require": { @@ -2684,20 +2596,20 @@ "mime", "mime-type" ], - "time": "2020-02-04T09:41:09+00:00" + "time": "2020-03-27T16:56:45+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.14.0", + "version": "v1.15.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38" + "reference": "4719fa9c18b0464d399f1a63bf624b42b6fa8d14" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/fbdeaec0df06cf3d51c93de80c7eb76e271f5a38", - "reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/4719fa9c18b0464d399f1a63bf624b42b6fa8d14", + "reference": "4719fa9c18b0464d399f1a63bf624b42b6fa8d14", "shasum": "" }, "require": { @@ -2709,7 +2621,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.14-dev" + "dev-master": "1.15-dev" } }, "autoload": { @@ -2742,20 +2654,20 @@ "polyfill", "portable" ], - "time": "2020-01-13T11:15:53+00:00" + "time": "2020-02-27T09:26:54+00:00" }, { "name": "symfony/polyfill-iconv", - "version": "v1.14.0", + "version": "v1.15.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "926832ce51059bb58211b7b2080a88e0c3b5328e" + "reference": "ad6d62792bfbcfc385dd34b424d4fcf9712a32c8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/926832ce51059bb58211b7b2080a88e0c3b5328e", - "reference": "926832ce51059bb58211b7b2080a88e0c3b5328e", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/ad6d62792bfbcfc385dd34b424d4fcf9712a32c8", + "reference": "ad6d62792bfbcfc385dd34b424d4fcf9712a32c8", "shasum": "" }, "require": { @@ -2767,7 +2679,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.14-dev" + "dev-master": "1.15-dev" } }, "autoload": { @@ -2801,20 +2713,20 @@ "portable", "shim" ], - "time": "2020-01-13T11:15:53+00:00" + "time": "2020-03-09T19:04:49+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.14.0", + "version": "v1.15.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "6842f1a39cf7d580655688069a03dd7cd83d244a" + "reference": "47bd6aa45beb1cd7c6a16b7d1810133b728bdfcf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/6842f1a39cf7d580655688069a03dd7cd83d244a", - "reference": "6842f1a39cf7d580655688069a03dd7cd83d244a", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/47bd6aa45beb1cd7c6a16b7d1810133b728bdfcf", + "reference": "47bd6aa45beb1cd7c6a16b7d1810133b728bdfcf", "shasum": "" }, "require": { @@ -2828,7 +2740,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.14-dev" + "dev-master": "1.15-dev" } }, "autoload": { @@ -2863,20 +2775,20 @@ "portable", "shim" ], - "time": "2020-01-17T12:01:36+00:00" + "time": "2020-03-09T19:04:49+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.14.0", + "version": "v1.15.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "34094cfa9abe1f0f14f48f490772db7a775559f2" + "reference": "81ffd3a9c6d707be22e3012b827de1c9775fc5ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/34094cfa9abe1f0f14f48f490772db7a775559f2", - "reference": "34094cfa9abe1f0f14f48f490772db7a775559f2", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/81ffd3a9c6d707be22e3012b827de1c9775fc5ac", + "reference": "81ffd3a9c6d707be22e3012b827de1c9775fc5ac", "shasum": "" }, "require": { @@ -2888,7 +2800,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.14-dev" + "dev-master": "1.15-dev" } }, "autoload": { @@ -2922,20 +2834,20 @@ "portable", "shim" ], - "time": "2020-01-13T11:15:53+00:00" + "time": "2020-03-09T19:04:49+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.14.0", + "version": "v1.15.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "46ecacf4751dd0dc81e4f6bf01dbf9da1dc1dadf" + "reference": "37b0976c78b94856543260ce09b460a7bc852747" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/46ecacf4751dd0dc81e4f6bf01dbf9da1dc1dadf", - "reference": "46ecacf4751dd0dc81e4f6bf01dbf9da1dc1dadf", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/37b0976c78b94856543260ce09b460a7bc852747", + "reference": "37b0976c78b94856543260ce09b460a7bc852747", "shasum": "" }, "require": { @@ -2944,7 +2856,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.14-dev" + "dev-master": "1.15-dev" } }, "autoload": { @@ -2977,20 +2889,20 @@ "portable", "shim" ], - "time": "2020-01-13T11:15:53+00:00" + "time": "2020-02-27T09:26:54+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.14.0", + "version": "v1.15.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "5e66a0fa1070bf46bec4bea7962d285108edd675" + "reference": "0f27e9f464ea3da33cbe7ca3bdf4eb66def9d0f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/5e66a0fa1070bf46bec4bea7962d285108edd675", - "reference": "5e66a0fa1070bf46bec4bea7962d285108edd675", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/0f27e9f464ea3da33cbe7ca3bdf4eb66def9d0f7", + "reference": "0f27e9f464ea3da33cbe7ca3bdf4eb66def9d0f7", "shasum": "" }, "require": { @@ -2999,7 +2911,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.14-dev" + "dev-master": "1.15-dev" } }, "autoload": { @@ -3035,20 +2947,20 @@ "portable", "shim" ], - "time": "2020-01-13T11:15:53+00:00" + "time": "2020-02-27T09:26:54+00:00" }, { "name": "symfony/process", - "version": "v4.4.5", + "version": "v4.4.7", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "bf9166bac906c9e69fb7a11d94875e7ced97bcd7" + "reference": "3e40e87a20eaf83a1db825e1fa5097ae89042db3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/bf9166bac906c9e69fb7a11d94875e7ced97bcd7", - "reference": "bf9166bac906c9e69fb7a11d94875e7ced97bcd7", + "url": "https://api.github.com/repos/symfony/process/zipball/3e40e87a20eaf83a1db825e1fa5097ae89042db3", + "reference": "3e40e87a20eaf83a1db825e1fa5097ae89042db3", "shasum": "" }, "require": { @@ -3084,20 +2996,20 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2020-02-07T20:06:44+00:00" + "time": "2020-03-27T16:54:36+00:00" }, { "name": "symfony/routing", - "version": "v4.4.5", + "version": "v4.4.7", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "4124d621d0e445732520037f888a0456951bde8c" + "reference": "0f562fa613e288d7dbae6c63abbc9b33ed75a8f8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/4124d621d0e445732520037f888a0456951bde8c", - "reference": "4124d621d0e445732520037f888a0456951bde8c", + "url": "https://api.github.com/repos/symfony/routing/zipball/0f562fa613e288d7dbae6c63abbc9b33ed75a8f8", + "reference": "0f562fa613e288d7dbae6c63abbc9b33ed75a8f8", "shasum": "" }, "require": { @@ -3160,7 +3072,7 @@ "uri", "url" ], - "time": "2020-02-25T12:41:09+00:00" + "time": "2020-03-30T11:41:10+00:00" }, { "name": "symfony/service-contracts", @@ -3222,16 +3134,16 @@ }, { "name": "symfony/translation", - "version": "v4.4.5", + "version": "v4.4.7", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "0a19a77fba20818a969ef03fdaf1602de0546353" + "reference": "4e54d336f2eca5facad449d0b0118bb449375b76" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/0a19a77fba20818a969ef03fdaf1602de0546353", - "reference": "0a19a77fba20818a969ef03fdaf1602de0546353", + "url": "https://api.github.com/repos/symfony/translation/zipball/4e54d336f2eca5facad449d0b0118bb449375b76", + "reference": "4e54d336f2eca5facad449d0b0118bb449375b76", "shasum": "" }, "require": { @@ -3294,7 +3206,7 @@ ], "description": "Symfony Translation Component", "homepage": "https://symfony.com", - "time": "2020-02-04T09:32:40+00:00" + "time": "2020-03-27T16:54:36+00:00" }, { "name": "symfony/translation-contracts", @@ -3355,16 +3267,16 @@ }, { "name": "symfony/var-dumper", - "version": "v4.4.5", + "version": "v4.4.7", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "2572839911702b0405479410ea7a1334bfab0b96" + "reference": "5a0c2d93006131a36cf6f767d10e2ca8333b0d4a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/2572839911702b0405479410ea7a1334bfab0b96", - "reference": "2572839911702b0405479410ea7a1334bfab0b96", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/5a0c2d93006131a36cf6f767d10e2ca8333b0d4a", + "reference": "5a0c2d93006131a36cf6f767d10e2ca8333b0d4a", "shasum": "" }, "require": { @@ -3427,7 +3339,7 @@ "debug", "dump" ], - "time": "2020-02-24T13:10:00+00:00" + "time": "2020-03-27T16:54:36+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -3480,16 +3392,16 @@ }, { "name": "vlucas/phpdotenv", - "version": "v3.6.1", + "version": "v3.6.2", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "8f7961f7b9deb3b432452c18093cf16f88205902" + "reference": "786a947e57086cf236cefdee80784634224b99fa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/8f7961f7b9deb3b432452c18093cf16f88205902", - "reference": "8f7961f7b9deb3b432452c18093cf16f88205902", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/786a947e57086cf236cefdee80784634224b99fa", + "reference": "786a947e57086cf236cefdee80784634224b99fa", "shasum": "" }, "require": { @@ -3499,10 +3411,12 @@ }, "require-dev": { "ext-filter": "*", + "ext-pcre": "*", "phpunit/phpunit": "^4.8.35 || ^5.0 || ^6.0 || ^7.0" }, "suggest": { - "ext-filter": "Required to use the boolean validator." + "ext-filter": "Required to use the boolean validator.", + "ext-pcre": "Required to use most of the library." }, "type": "library", "extra": { @@ -3537,7 +3451,7 @@ "env", "environment" ], - "time": "2020-03-12T13:44:00+00:00" + "time": "2020-03-27T23:36:02+00:00" } ], "packages-dev": [ @@ -3925,6 +3839,96 @@ ], "time": "2016-01-20T08:20:44+00:00" }, + { + "name": "jakub-onderka/php-console-color", + "version": "v0.2", + "source": { + "type": "git", + "url": "https://github.com/JakubOnderka/PHP-Console-Color.git", + "reference": "d5deaecff52a0d61ccb613bb3804088da0307191" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Color/zipball/d5deaecff52a0d61ccb613bb3804088da0307191", + "reference": "d5deaecff52a0d61ccb613bb3804088da0307191", + "shasum": "" + }, + "require": { + "php": ">=5.4.0" + }, + "require-dev": { + "jakub-onderka/php-code-style": "1.0", + "jakub-onderka/php-parallel-lint": "1.0", + "jakub-onderka/php-var-dump-check": "0.*", + "phpunit/phpunit": "~4.3", + "squizlabs/php_codesniffer": "1.*" + }, + "type": "library", + "autoload": { + "psr-4": { + "JakubOnderka\\PhpConsoleColor\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-2-Clause" + ], + "authors": [ + { + "name": "Jakub Onderka", + "email": "jakub.onderka@gmail.com" + } + ], + "abandoned": "php-parallel-lint/php-console-color", + "time": "2018-09-29T17:23:10+00:00" + }, + { + "name": "jakub-onderka/php-console-highlighter", + "version": "v0.4", + "source": { + "type": "git", + "url": "https://github.com/JakubOnderka/PHP-Console-Highlighter.git", + "reference": "9f7a229a69d52506914b4bc61bfdb199d90c5547" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Highlighter/zipball/9f7a229a69d52506914b4bc61bfdb199d90c5547", + "reference": "9f7a229a69d52506914b4bc61bfdb199d90c5547", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "jakub-onderka/php-console-color": "~0.2", + "php": ">=5.4.0" + }, + "require-dev": { + "jakub-onderka/php-code-style": "~1.0", + "jakub-onderka/php-parallel-lint": "~1.0", + "jakub-onderka/php-var-dump-check": "~0.1", + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "~1.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "JakubOnderka\\PhpConsoleHighlighter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jakub Onderka", + "email": "acci@acci.cz", + "homepage": "http://www.acci.cz/" + } + ], + "description": "Highlight PHP code in terminal", + "abandoned": "php-parallel-lint/php-console-highlighter", + "time": "2018-09-29T18:48:56+00:00" + }, { "name": "laravel/ui", "version": "v1.0.0", @@ -4729,16 +4733,16 @@ }, { "name": "phpunit/phpunit", - "version": "8.5.2", + "version": "8.5.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "018b6ac3c8ab20916db85fa91bf6465acb64d1e0" + "reference": "67750516bc02f300e2742fed2f50177f8f37bedf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/018b6ac3c8ab20916db85fa91bf6465acb64d1e0", - "reference": "018b6ac3c8ab20916db85fa91bf6465acb64d1e0", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/67750516bc02f300e2742fed2f50177f8f37bedf", + "reference": "67750516bc02f300e2742fed2f50177f8f37bedf", "shasum": "" }, "require": { @@ -4808,7 +4812,7 @@ "testing", "xunit" ], - "time": "2020-01-08T08:49:49+00:00" + "time": "2020-03-31T08:52:04+00:00" }, { "name": "scrivo/highlight.php", diff --git a/resources/views/credentials.json b/resources/views/credentials.json deleted file mode 100644 index e5cc528f889652c2d7ce0c1043aa53f930e40655..0000000000000000000000000000000000000000 --- a/resources/views/credentials.json +++ /dev/null @@ -1 +0,0 @@ -{"installed":{"client_id":"203499803850-801l1qnh8emaje13o69djnks4329517c.apps.googleusercontent.com","project_id":"datalearn-1584958564354","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"JWjkNxsT1JQssnD1MXaxlGAc","redirect_uris":["urn:ietf:wg:oauth:2.0:oob","http://localhost"]}} \ No newline at end of file diff --git a/resources/views/redirect.blade.php b/resources/views/redirect.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..ca5cafc16ec9ba3372c4b6d9f3a95c9658566c77 --- /dev/null +++ b/resources/views/redirect.blade.php @@ -0,0 +1,45 @@ +<?php + session_start(); + // init configuration + $clientID = '1038840787003-n9lfv6h5tg3pdu38c6lksvkvivl1geor.apps.googleusercontent.com'; + $clientSecret = 'n9qmB0e0811fHzW4jgMBhAh7'; + $redirectUri = 'http://localhost:8000/redirect.php'; + + // create Client Request to access Google API + $client = new Google_Client(); + $client->setApplicationName("Datalearn"); + $client->setClientId($clientID); + $client->setClientSecret($clientSecret); + $client->setRedirectUri($redirectUri); + $client->addScope("email"); + $client->addScope("profile"); + + // authenticate code from Google OAuth Flow + if (isset($_GET['code'])) { + // $token = $client->fetchAccessTokenWithAuthCode($_GET['code']); + // $client->setAccessToken($token['access_token']); + + // // get profile info + // $google_oauth = new \Google_Service_Oauth2($client); + // $google_account_info = $google_oauth->userinfo->get(); + // $email = $google_account_info->email; + // $name = $google_account_info->name; + $client->authenticate($_GET['code']); + $_SESSION['access_token'] = $client->getAccessToken(); + header('Location: ' . filter_var($redirectUri, FILTER_SANITIZE_URL)); + if (isset($_SESSION['access_token']) && $_SESSION['access_token']) { + $client->setAccessToken($_SESSION['access_token']); + } + echo 'berhasil'; + // get profile info + $google_oauth = new Google_Service_Oauth2($client); + $google_account_info = $google_oauth->userinfo->get(); + $email = $google_account_info->email; + $name = $google_account_info->name; + echo $name; + echo $email; + // now you can use this profile info to create account in your website and make user logged in. + } else { + echo "<a href='".$client->createAuthUrl()."'>Google Login</a>"; + } +?> \ No newline at end of file diff --git a/resources/views/token.json b/resources/views/token.json deleted file mode 100644 index 1deb6f2eb0b02f1bcc9928f62c4055d0c1ee8288..0000000000000000000000000000000000000000 --- a/resources/views/token.json +++ /dev/null @@ -1 +0,0 @@ -{"access_token":"ya29.a0Adw1xeWgubk0UA2GfpfBcE4iZ2KcLD5_2tRMN8z4jo4wO1amESg-M1uof6iStIMrisGg8LPjGJu7rPCoNilqNhWzAnMvitwTZJHwsp2QHO3T1b0lY-Tz8xaFEJ2XS6SbRfGBam5XWsK1dkYpOTZ5G3kzbLSAy5aV21M","expires_in":3599,"refresh_token":"1\/\/0gSzfFC85SeXlCgYIARAAGBASNwF-L9Ir32KqSrEfEjJRCmTLVkBv_yPTMXD4Znx7FklpILGaXjgAFGe2CltDUmruEha5MHTc9mw","scope":"https:\/\/www.googleapis.com\/auth\/spreadsheets.readonly","token_type":"Bearer","created":1584960990} \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index e81dddcf0ee24aabb1139b33e317496d7b86aec5..6b0953e0da8e3545cf976efebcb9fb107441d5ef 100644 --- a/routes/web.php +++ b/routes/web.php @@ -17,8 +17,12 @@ Route::get('/', function () { Route::get('/test', function () { return view('test'); }); +Route::get('/redirect.php', function () { + return view('redirect'); +}); Auth::routes(); Route::get('/home', 'HomeController@index')->name('home'); Route::get('/course/{id_course}', 'CourseController@index')->name('course'); +Route::get('/course/{id_course}/learn/new', 'LearnController@new')->name('learn/new'); Route::get('/course/{id_course}/learn/{id_spreadsheet}', 'LearnController@index')->name('learn'); \ No newline at end of file diff --git a/server.php b/server.php index 5fb6379e71f275a1784e6638adc96420aaa5c5b2..e14da8b36e0d9a9f51bffb1861ae1204a18bda59 100644 --- a/server.php +++ b/server.php @@ -19,3 +19,4 @@ if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) { } require_once __DIR__.'/public/index.php'; +require_once __DIR__.'/vendor/autoload.php'; \ No newline at end of file