874415f3885608c07c3de2f77563fc1e3110401d
Тестовое задание
На хост машине
make help
make build
make install
make run # заполнит базу и запустит тесты
make bash # попасть в контейнер
pgadmin http://localhost:8081
Маршруты в api.php
Route::post('/login', [AuthController::class, 'login']);
Route::middleware(['auth:sanctum'])->group(function () {
Route::post('/logout', [AuthController::class, 'logout']);
Route::prefix('tasks')->name('tasks.')->group(function () {
Route::get('/', [TaskController::class, 'index'])->name('index');
Route::post('/', [TaskController::class, 'store'])->name('store');
Route::get('/{task}', [TaskController::class, 'show'])->name('show');
Route::match(['put', 'patch'], '/{task}', [TaskController::class, 'update'])->name('update');
Route::delete('/{task}', [TaskController::class, 'destroy'])->name('destroy');
});
});
Комментарий:
Маршруты явно прописал, для наглядности
Настроил крон, воспользовался библеотекой https://github.com/webdevops/go-crond, показалось удобной
Не стал ставить редис для очередей, тк тестовое задание, в продакшене использовал https://laravel.com/docs/12.x/horizon
Жестко не стал базу ограничивать, сделал просто каст через php enum (статус таски)
Выбрал frankenphp пхп из-за простоты и любви
В тестах не рефреш датабейз трейт использовал, а транзакции, мне было удобнее просто
Description
Languages
PHP
52.7%
Blade
45.6%
Dockerfile
0.6%
Makefile
0.6%
JavaScript
0.3%
Other
0.2%