diff --git a/app/Filters/JournalFilter.php b/app/Filters/JournalFilter.php index 07413e7..0666450 100644 --- a/app/Filters/JournalFilter.php +++ b/app/Filters/JournalFilter.php @@ -23,12 +23,27 @@ class JournalFilter extends QueryFilter $this->builder = $this->builder->where('subject_id', $value); } - protected function date($value) + protected function start($value) { - $value = Carbon::createFromTimestamp($value/1000)->floorDays(); - $this->builder = $this->builder->where('updated_at', $value); + $this->builder = $this->builder->where('updated_at', '>=', $this->transformDate($value)); } + protected function end($value) + { + $this->builder = $this->builder->where('updated_at', '<=', $this->transformDate($value)); + } + + protected function transformDate($value) + { + return Carbon::createFromTimestamp($value/1000)->floorDays();; + } + +// protected function date($value) +// { +// $value = Carbon::createFromTimestamp($value/1000)->floorDays(); +// $this->builder = $this->builder->where('updated_at', $value); +// } + protected function last($value) { $date = Carbon::now()->subDays($value); diff --git a/app/Http/Controllers/TimetableController.php b/app/Http/Controllers/TimetableController.php index 439af2c..093a623 100644 --- a/app/Http/Controllers/TimetableController.php +++ b/app/Http/Controllers/TimetableController.php @@ -47,14 +47,14 @@ class TimetableController extends Controller } $dateTimetables = []; - if (!$filterTimetables->isEmpty()) { + //if (!$filterTimetables->isEmpty()) { for ($i = 0; $i < 6; $i++) { $date = Carbon::parse($request->input('date')) ->startOfWeek() ->addDays($i) ->format('Y-m-d'); array_push($dateTimetables, [$date => $filterTimetables->where('date', $date)->values()]); - } + // } } return response()->json($dateTimetables, 200); } diff --git a/app/Http/Controllers/Users/StudentController.php b/app/Http/Controllers/Users/StudentController.php index ea70170..0cc6bfa 100644 --- a/app/Http/Controllers/Users/StudentController.php +++ b/app/Http/Controllers/Users/StudentController.php @@ -7,6 +7,7 @@ use App\Http\Requests\StudentRequest; use App\Models\SchoolClass; use App\Models\Student; use Illuminate\Http\JsonResponse; +use App\Models\AnswerToTask; class StudentController extends Controller { @@ -66,7 +67,17 @@ class StudentController extends Controller return response()->json(collect($student)->except('school_class'), 200); } + + public function destroy(Student $student) + { + $user = $student->user; + $user->delete(); + return response()->json(null, 204); + } + + public function getAnswers(Student $student) { return AnswerToTask::where('student_id', '=', $student->id)->get(); } + } diff --git a/app/Models/SchoolClass.php b/app/Models/SchoolClass.php index f232bbc..64041cd 100644 --- a/app/Models/SchoolClass.php +++ b/app/Models/SchoolClass.php @@ -26,14 +26,18 @@ class SchoolClass extends Model ->withPivot('hours_per_week', 'hours_per_year'); } - public function chatLinks() - { - return $this->hasMany(ChatLink::class, 'class_id'); - } public function tasks() { return $this->hasMany(Task::class, 'class_id'); } + + public function chatLinks() + { + return $this->hasMany(ChatLink::class, 'class_id'); + } + + + } diff --git a/app/Models/Teacher.php b/app/Models/Teacher.php index 46213e6..5abfce6 100644 --- a/app/Models/Teacher.php +++ b/app/Models/Teacher.php @@ -34,7 +34,9 @@ class Teacher extends Model return $this->belongsTo(User::class); } + public function tasks(){ return $this->hasMany(Task::class); } + } diff --git a/composer.lock b/composer.lock index 6019409..12e7f46 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "b864dde6a95522044afee456c400fb07", + "content-hash": "7a7b53e8f06f6bcd7118e6f3b9093703", "packages": [ { "name": "asm89/stack-cors", @@ -1055,16 +1055,16 @@ }, { "name": "laravel/framework", - "version": "v8.18.1", + "version": "v8.19.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "31747193c26ba0a9cb7929a912895d3cdefd10cf" + "reference": "f5f331cee60f1bbe672503b7eb9ba5b22b2ceacb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/31747193c26ba0a9cb7929a912895d3cdefd10cf", - "reference": "31747193c26ba0a9cb7929a912895d3cdefd10cf", + "url": "https://api.github.com/repos/laravel/framework/zipball/f5f331cee60f1bbe672503b7eb9ba5b22b2ceacb", + "reference": "f5f331cee60f1bbe672503b7eb9ba5b22b2ceacb", "shasum": "" }, "require": { @@ -1214,20 +1214,20 @@ "framework", "laravel" ], - "time": "2020-12-08T22:05:12+00:00" + "time": "2020-12-15T16:16:31+00:00" }, { "name": "laravel/passport", - "version": "v10.1.0", + "version": "v10.0.1", "source": { "type": "git", "url": "https://github.com/laravel/passport.git", - "reference": "c2b93a7d8d93cf303bb1eefbfa5610f084f9bdd4" + "reference": "4e53f1b237a9e51ac10f0b30c6ebedd68f6848ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/passport/zipball/c2b93a7d8d93cf303bb1eefbfa5610f084f9bdd4", - "reference": "c2b93a7d8d93cf303bb1eefbfa5610f084f9bdd4", + "url": "https://api.github.com/repos/laravel/passport/zipball/4e53f1b237a9e51ac10f0b30c6ebedd68f6848ab", + "reference": "4e53f1b237a9e51ac10f0b30c6ebedd68f6848ab", "shasum": "" }, "require": { @@ -1242,10 +1242,9 @@ "illuminate/encryption": "^8.2", "illuminate/http": "^8.2", "illuminate/support": "^8.2", - "lcobucci/jwt": "^3.4|^4.0", - "league/oauth2-server": "^8.2", + "league/oauth2-server": "^8.1", "nyholm/psr7": "^1.3", - "php": "^7.3|^8.0", + "php": "^7.3", "phpseclib/phpseclib": "^2.0", "symfony/psr-http-message-bridge": "^2.0" }, @@ -1287,7 +1286,7 @@ "oauth", "passport" ], - "time": "2020-11-26T07:57:30+00:00" + "time": "2020-09-15T16:41:42+00:00" }, { "name": "laravel/tinker", @@ -1353,100 +1352,36 @@ ], "time": "2020-10-29T13:07:12+00:00" }, - { - "name": "lcobucci/clock", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/lcobucci/clock.git", - "reference": "353d83fe2e6ae95745b16b3d911813df6a05bfb3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/lcobucci/clock/zipball/353d83fe2e6ae95745b16b3d911813df6a05bfb3", - "reference": "353d83fe2e6ae95745b16b3d911813df6a05bfb3", - "shasum": "" - }, - "require": { - "php": "^7.4 || ^8.0" - }, - "require-dev": { - "infection/infection": "^0.17", - "lcobucci/coding-standard": "^6.0", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-deprecation-rules": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", - "phpstan/phpstan-strict-rules": "^0.12", - "phpunit/php-code-coverage": "9.1.4", - "phpunit/phpunit": "9.3.7" - }, - "type": "library", - "autoload": { - "psr-4": { - "Lcobucci\\Clock\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Luís Cobucci", - "email": "lcobucci@gmail.com" - } - ], - "description": "Yet another clock abstraction", - "funding": [ - { - "url": "https://github.com/lcobucci", - "type": "github" - }, - { - "url": "https://www.patreon.com/lcobucci", - "type": "patreon" - } - ], - "time": "2020-08-27T18:56:02+00:00" - }, { "name": "lcobucci/jwt", - "version": "4.0.0", + "version": "3.3.3", "source": { "type": "git", "url": "https://github.com/lcobucci/jwt.git", - "reference": "6d8665ccd924dc076a9b65d1ea8abe21d68f6958" + "reference": "c1123697f6a2ec29162b82f170dd4a491f524773" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/lcobucci/jwt/zipball/6d8665ccd924dc076a9b65d1ea8abe21d68f6958", - "reference": "6d8665ccd924dc076a9b65d1ea8abe21d68f6958", + "url": "https://api.github.com/repos/lcobucci/jwt/zipball/c1123697f6a2ec29162b82f170dd4a491f524773", + "reference": "c1123697f6a2ec29162b82f170dd4a491f524773", "shasum": "" }, "require": { "ext-mbstring": "*", "ext-openssl": "*", - "lcobucci/clock": "^2.0", - "php": "^7.4 || ^8.0" + "php": "^5.6 || ^7.0" }, "require-dev": { - "infection/infection": "^0.20", - "lcobucci/coding-standard": "^6.0", - "mikey179/vfsstream": "^1.6", - "phpbench/phpbench": "^0.17", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-deprecation-rules": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", - "phpstan/phpstan-strict-rules": "^0.12", - "phpunit/php-invoker": "^3.1", - "phpunit/phpunit": "^9.4" + "mikey179/vfsstream": "~1.5", + "phpmd/phpmd": "~2.2", + "phpunit/php-invoker": "~1.1", + "phpunit/phpunit": "^5.7 || ^7.3", + "squizlabs/php_codesniffer": "~2.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-master": "3.1-dev" } }, "autoload": { @@ -1460,7 +1395,7 @@ ], "authors": [ { - "name": "Luís Cobucci", + "name": "Luís Otávio Cobucci Oblonczyk", "email": "lcobucci@gmail.com", "role": "Developer" } @@ -1480,7 +1415,7 @@ "type": "patreon" } ], - "time": "2020-11-25T02:06:12+00:00" + "time": "2020-08-20T13:22:28+00:00" }, { "name": "league/commonmark", @@ -1771,25 +1706,25 @@ }, { "name": "league/oauth2-server", - "version": "8.2.4", + "version": "8.1.1", "source": { "type": "git", "url": "https://github.com/thephpleague/oauth2-server.git", - "reference": "622eaa1f28eb4a2dea0cfc7e4f5280fac794e83c" + "reference": "09f22e8121fa1832962dba18213b80d4267ef8a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/oauth2-server/zipball/622eaa1f28eb4a2dea0cfc7e4f5280fac794e83c", - "reference": "622eaa1f28eb4a2dea0cfc7e4f5280fac794e83c", + "url": "https://api.github.com/repos/thephpleague/oauth2-server/zipball/09f22e8121fa1832962dba18213b80d4267ef8a3", + "reference": "09f22e8121fa1832962dba18213b80d4267ef8a3", "shasum": "" }, "require": { "defuse/php-encryption": "^2.2.1", "ext-json": "*", "ext-openssl": "*", - "lcobucci/jwt": "^3.4 || ^4.0", + "lcobucci/jwt": "^3.3.1", "league/event": "^2.2", - "php": "^7.2 || ^8.0", + "php": ">=7.2.0", "psr/http-message": "^1.0.1" }, "replace": { @@ -1797,10 +1732,10 @@ "lncd/oauth2": "*" }, "require-dev": { - "laminas/laminas-diactoros": "^2.4.1", - "phpstan/phpstan": "^0.12.57", - "phpstan/phpstan-phpunit": "^0.12.16", - "phpunit/phpunit": "^8.5.13", + "laminas/laminas-diactoros": "^2.3.0", + "phpstan/phpstan": "^0.11.19", + "phpstan/phpstan-phpunit": "^0.11.2", + "phpunit/phpunit": "^8.5.4 || ^9.1.3", "roave/security-advisories": "dev-master" }, "type": "library", @@ -1850,20 +1785,20 @@ "type": "github" } ], - "time": "2020-12-10T11:35:44+00:00" + "time": "2020-07-01T11:33:50+00:00" }, { "name": "monolog/monolog", - "version": "2.1.1", + "version": "2.2.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "f9eee5cec93dfb313a38b6b288741e84e53f02d5" + "reference": "1cb1cde8e8dd0f70cc0fe51354a59acad9302084" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f9eee5cec93dfb313a38b6b288741e84e53f02d5", - "reference": "f9eee5cec93dfb313a38b6b288741e84e53f02d5", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/1cb1cde8e8dd0f70cc0fe51354a59acad9302084", + "reference": "1cb1cde8e8dd0f70cc0fe51354a59acad9302084", "shasum": "" }, "require": { @@ -1876,16 +1811,17 @@ "require-dev": { "aws/aws-sdk-php": "^2.4.9 || ^3.0", "doctrine/couchdb": "~1.0@dev", - "elasticsearch/elasticsearch": "^6.0", + "elasticsearch/elasticsearch": "^7", "graylog2/gelf-php": "^1.4.2", + "mongodb/mongodb": "^1.8", "php-amqplib/php-amqplib": "~2.4", "php-console/php-console": "^3.1.3", - "php-parallel-lint/php-parallel-lint": "^1.0", "phpspec/prophecy": "^1.6.1", + "phpstan/phpstan": "^0.12.59", "phpunit/phpunit": "^8.5", "predis/predis": "^1.1", "rollbar/rollbar": "^1.3", - "ruflin/elastica": ">=0.90 <3.0", + "ruflin/elastica": ">=0.90 <7.0.1", "swiftmailer/swiftmailer": "^5.3|^6.0" }, "suggest": { @@ -1905,7 +1841,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.x-dev" + "dev-main": "2.x-dev" } }, "autoload": { @@ -1921,11 +1857,11 @@ { "name": "Jordi Boggiano", "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" + "homepage": "https://seld.be" } ], "description": "Sends your logs to files, sockets, inboxes, databases and various web services", - "homepage": "http://github.com/Seldaek/monolog", + "homepage": "https://github.com/Seldaek/monolog", "keywords": [ "log", "logging", @@ -1941,7 +1877,7 @@ "type": "tidelift" } ], - "time": "2020-07-23T08:41:23+00:00" + "time": "2020-12-14T13:15:25+00:00" }, { "name": "nesbot/carbon", @@ -6708,16 +6644,16 @@ }, { "name": "phar-io/version", - "version": "3.0.3", + "version": "3.0.4", "source": { "type": "git", "url": "https://github.com/phar-io/version.git", - "reference": "726c026815142e4f8677b7cb7f2249c9ffb7ecae" + "reference": "e4782611070e50613683d2b9a57730e9a3ba5451" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/726c026815142e4f8677b7cb7f2249c9ffb7ecae", - "reference": "726c026815142e4f8677b7cb7f2249c9ffb7ecae", + "url": "https://api.github.com/repos/phar-io/version/zipball/e4782611070e50613683d2b9a57730e9a3ba5451", + "reference": "e4782611070e50613683d2b9a57730e9a3ba5451", "shasum": "" }, "require": { @@ -6751,7 +6687,7 @@ } ], "description": "Library for handling version information and constraints", - "time": "2020-11-30T09:21:21+00:00" + "time": "2020-12-13T23:18:30+00:00" }, { "name": "phpdocumentor/reflection-common", diff --git a/config/app.php b/config/app.php index 1c868c1..e90597a 100644 --- a/config/app.php +++ b/config/app.php @@ -160,6 +160,7 @@ return [ Illuminate\Session\SessionServiceProvider::class, Illuminate\Translation\TranslationServiceProvider::class, Illuminate\Validation\ValidationServiceProvider::class, + \Laravel\Passport\PassportServiceProvider::class, Illuminate\View\ViewServiceProvider::class, diff --git a/routes/api.php b/routes/api.php index b515579..0c7ee4f 100644 --- a/routes/api.php +++ b/routes/api.php @@ -18,7 +18,7 @@ Route::apiResource('headteachers', 'Users\HeadTeacherController'); Route::apiResource('teachers', 'Users\TeacherController');//->middleware(['auth:api','role:headteacher|teacher']); Route::get('teacher/{teacher}/classes', 'Users\TeacherController@getClasses'); //получить классы у которых ведет учитель Route::get('teacher/{teacher}/classes', 'Users\TeacherController@getClasses'); -Route::get('teacher/{teacher}/classes/{class}/uncheked-task', 'Users\TeacherController@getUncheckedTask'); +Route::get('teacher/{teacher}/classes/{class}/unchecked-task', 'Users\TeacherController@getUncheckedTask'); Route::apiResource('students', 'Users\StudentController'); Route::get('/student/{student}/answers', 'Users\StudentController@getAnswers'); @@ -33,6 +33,7 @@ Route::get('classes/{class}/students', 'SchoolClassController@getStudents'); // Route::get('classes/{class}/journal', 'SchoolClassController@getStudentsJournal'); //все ученики класса с оценками Route::get('classes/{class}/subjects', 'SchoolClassController@getSubjects'); //все предметы класса + Route::apiResource('journal', 'JournalController'); Route::apiResource('themes', 'BankTask\ThemeController'); @@ -47,14 +48,12 @@ Route::group(['prefix' => 'banktask'], function () { Route::delete('{banktask}', 'BankTask\BankTaskController@delete'); //удаление задания Route::post('{banktask}/addfile', 'BankTask\BankTaskFileController@store'); Route::get('{banktask}/files', 'BankTask\BankTaskFileController@showFiles'); - Route::get('/file/{file}/download', 'BankTask\BankTaskFileController@download'); - Route::delete('/file/{file}/delete', 'BankTask\BankTaskFileController@delete'); - Route::put('/file/{file}/update', 'BankTask\BankTaskFileController@update'); + Route::delete('banktask/file/{file}/delete', 'BankTask\BankTaskFileController@delete'); + Route::put('banktask/file/{file}/update', 'BankTask\BankTaskFileController@update'); }); -Route::get('/file/{file}/download', 'BankTaskFileController@download'); -Route::delete('/file/{file}/delete', 'BankTaskFileController@delete'); -Route::put('/file/{file}/update', 'BankTaskFileController@update'); + + Route::group(['prefix' => 'news'], function () { Route::post('', 'News\NewsController@store'); @@ -83,3 +82,4 @@ Route::group(['prefix' => 'task'], function () { Route::get('/{task}/file/{file}', 'TaskFileController@download'); // Скачать файл Route::delete('/file/{file}', 'TaskFileController@delete'); // Удалить файл }); + diff --git a/routes/web.php b/routes/web.php index 60b14a6..efa1311 100644 --- a/routes/web.php +++ b/routes/web.php @@ -13,4 +13,4 @@ | */ -Route::view('/', 'auth'); +