Files
Azmog 6f5b8182ca chore: durcit la configuration pour la production
- mobile: externalise l'URL d'API via EXPO_PUBLIC_API_URL (repli localhost en dev)
- backend: .env.example adapté au projet (PostgreSQL, JWT, FRONTEND_URL, Redis)
- frontend/mobile: ajoute .env.example (+ exception gitignore front)
- mobile: supprime les 4 `any` (helper getApiError, type Feed, glyphMap Ionicons)
- backend: normalise le style PSR-12 via Pint (13 fichiers)

Tests backend 15/15, mobile tsc 0, Pint pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 17:00:33 +02:00

63 lines
1.5 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests\StoreFeedRequest;
use App\Models\Feed;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Str;
class AdminFeedController extends Controller
{
public function index(): JsonResponse
{
$feeds = Feed::with('auteur:id,nom,prenom')
->orderBy('ordre')
->orderBy('created_at', 'desc')
->get();
return response()->json($feeds);
}
public function store(StoreFeedRequest $request): JsonResponse
{
$data = $request->validated();
$data['auteur_id'] = auth()->id();
$data['slug'] = $data['slug'] ?? Str::slug($data['titre']);
$feed = Feed::create($data);
return response()->json([
'message' => 'Contenu créé',
'feed' => $feed,
], 201);
}
public function update(StoreFeedRequest $request, int $id): JsonResponse
{
$feed = Feed::findOrFail($id);
$data = $request->validated();
if (isset($data['titre']) && ! isset($data['slug'])) {
$data['slug'] = Str::slug($data['titre']);
}
$feed->update($data);
return response()->json([
'message' => 'Contenu modifié',
'feed' => $feed,
]);
}
public function destroy(int $id): JsonResponse
{
Feed::findOrFail($id)->delete();
return response()->json([
'message' => 'Contenu supprimé',
]);
}
}