43 lines
1.3 KiB
PHP
43 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Api\Website;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\Website\Service;
|
|
|
|
class ServiceController extends Controller
|
|
{
|
|
public function index($locale)
|
|
{
|
|
$services = Service::with(['translations' => function ($query) use ($locale) {
|
|
$query->where('locale', $locale);
|
|
}])->get();
|
|
|
|
$response = $services->map(function ($service) use ($locale) {
|
|
return [
|
|
'id' => $service->id,
|
|
'imageSrc' => $service->imageSrc,
|
|
'altText' => $service->translations->first()->altText ?? '',
|
|
'created_at' => $service->created_at,
|
|
'updated_at' => $service->updated_at,
|
|
'title' => optional($service->translations->first())->title,
|
|
'description' => optional($service->translations->first())->description,
|
|
];
|
|
});
|
|
|
|
return response()->json($response);
|
|
}
|
|
|
|
public function showTranslation($id, $locale)
|
|
{
|
|
$service = Service::with('translations')->findOrFail($id);
|
|
|
|
return response()->json([
|
|
'id' => $service->id,
|
|
'imageSrc' => $service->imageSrc,
|
|
'title' => $service->getTitle($locale),
|
|
'description' => $service->getDescription($locale),
|
|
]);
|
|
}
|
|
}
|