mirror of
https://github.com/robonen/education-project.git
synced 2026-03-20 02:44:31 +00:00
Новости(CRUD + PhotoStorage)
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Http\Controllers\News;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\NewsFile;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\News;
|
||||
|
||||
@@ -34,7 +35,10 @@ class NewsController extends Controller
|
||||
|
||||
public function show(News $news) {
|
||||
|
||||
return response()->json($news, 200);
|
||||
return response()->json([
|
||||
$news,
|
||||
'photo_id' => NewsFile::where('news_id', '=', $news->id)->get(['id'])
|
||||
], 200);
|
||||
}
|
||||
|
||||
public function edit(News $news, Request $request) {
|
||||
|
||||
@@ -40,6 +40,7 @@ class NewsFileController extends Controller
|
||||
$request->name . $ext
|
||||
]);
|
||||
$news->photo_uri = '/storage/news' . '/' . $newsId . '/' . $type . '/' . $request->name;
|
||||
$news->save();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@@ -51,7 +52,7 @@ class NewsFileController extends Controller
|
||||
|
||||
public function delete(NewsFile $file) {
|
||||
|
||||
if (Storage::disk('local')->exists('/public/news/' . $file->news_id . '/' . $file->type . '/' . $file->name )) {
|
||||
if (Storage::disk('local')->exists('/public/news/' . $file->news_id . '/' . $file->type . '/' . $file->name)) {
|
||||
if (Storage::disk('local')->delete('/public/news/' . $file->news_id . '/' . $file->type . '/' . $file->name)) {
|
||||
return response()->json($file->delete(), 204);
|
||||
}
|
||||
|
||||
@@ -8,6 +8,6 @@ use Illuminate\Database\Eloquent\Model;
|
||||
class BankTaskFile extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
protected $table = 'bank_tasks_files';
|
||||
protected $table = 'bank_task_files';
|
||||
protected $fillable = ['name', 'type', 'extension', 'url', 'banktask_id'];
|
||||
}
|
||||
|
||||
@@ -9,4 +9,5 @@ class NewsFile extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
protected $table = 'news_files';
|
||||
protected $fillable = ['name', 'type', 'extension', 'url', 'news_id'];
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ class RouteServiceProvider extends ServiceProvider
|
||||
protected function configureRateLimiting()
|
||||
{
|
||||
RateLimiter::for('api', function (Request $request) {
|
||||
return Limit::perMinute(60)->by(optional($request->user())->id ?: $request->ip());
|
||||
return Limit::perMinute(100)->by(optional($request->user())->id ?: $request->ip());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ class CreateBankTaskFilesTable extends Migration
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('bank_tasks_files', function (Blueprint $table) {
|
||||
Schema::create('bank_task_files', function (Blueprint $table) {
|
||||
$table->bigIncrements('id');
|
||||
$table->string('name');
|
||||
$table->string('type');
|
||||
@@ -23,7 +23,7 @@ class CreateBankTaskFilesTable extends Migration
|
||||
$table->unsignedInteger('banktask_id');
|
||||
$table->foreign('banktask_id')
|
||||
->references('id')->on('bank_tasks')
|
||||
->onDelete('no action');
|
||||
->onDelete('cascade');
|
||||
|
||||
});
|
||||
}
|
||||
@@ -35,6 +35,6 @@ class CreateBankTaskFilesTable extends Migration
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('bank_tasks_files');
|
||||
Schema::dropIfExists('bank_task_files');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ class CreateNewsFilesTable extends Migration
|
||||
$table->unsignedInteger('news_id');
|
||||
$table->foreign('news_id')
|
||||
->references('id')->on('news')
|
||||
->onDelete('no action');
|
||||
->onDelete('cascade');
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
@@ -50,5 +50,5 @@ Route::group(['prefix' => 'news'], function () {
|
||||
Route::put('/{news}', 'News\NewsController@edit');
|
||||
Route::delete('/{news}', 'News\NewsController@delete');
|
||||
Route::post('/{news}/addphoto', 'News\NewsFileController@store');
|
||||
Route::delete('/{file}', 'News\NewsFileController@delete');
|
||||
Route::delete('/photo/{file}', 'News\NewsFileController@delete');
|
||||
});
|
||||
Reference in New Issue
Block a user