Files
wticreatorstudio/Modules/StudioPlus/Http/Controllers/API/ContentWatermarksController.php
T
2024-02-12 22:54:20 -05:00

113 lines
3.4 KiB
PHP

<?php
namespace Modules\StudioPlus\Http\Controllers\API;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Modules\StudioPlus\Entities\ContentWatermark;
use Modules\StudioPlus\Http\Requests\StoreContentWatermarkRequest;
use Modules\StudioPlus\Repositories\ContentWatermarksRepository;
use Modules\StudioPlus\Transformers\ContentWatermarkDatabaseResource;
use Modules\StudioPlus\Transformers\ContentWatermarkRequestResource;
class ContentWatermarksController extends Controller
{
protected $repository;
public function __construct()
{
$this->repository = new ContentWatermarksRepository();
}
public function index(Request $request)
{
return $this->repository->getCollection();
}
public function store(StoreContentWatermarkRequest $request)
{
$watermark = $this->repository->store($request);
if ($watermark) {
$watermark->load(['contentType', 'contentVariant']);
return response()->json([
'message' => 'Watermark has been saved.',
'watermark' => $this->repository->toResource($watermark),
'watermarks' => $this->repository->getCollection()
]);
}
return response()->json([
'message' => 'Failed to save watermark.'
], 400);
}
public function update(StoreContentWatermarkRequest $request)
{
$watermark = $this->repository->find($request->id);
if ($watermark) {
$this->repository->update($watermark, $request);
return response()->json([
'message' => 'Watermark has been updated.',
'watermark' => $this->repository->toResource($watermark),
'watermarks' => $this->repository->getCollection()
]);
}
return response()->json([
'message' => 'Watermark not found.'
], 404);
}
public function setStatus(Request $request)
{
if ($request->has('id')) {
$watermark = $this->repository->find($request->id);
if ($watermark) {
$this->repository->update($watermark, ['active' => $request->active]);
return response()->json([
'message' => 'Watermark status has been updated.',
'watermarks' => $this->repository->getCollection()
]);
}
return response()->json([
'message' => 'Watermark not found.'
], 404);
}
return response()->json([
'message' => 'Missing parameter.'
], 400);
}
public function destroy(Request $request)
{
if ($request->has('id')) {
$watermark = $this->repository->find($request->id);
if ($watermark) {
$watermark->delete();
return response()->json([
'message' => 'Watermark has been deleted.',
'watermarks' => $this->repository->getCollection()
]);
}
return response()->json([
'message' => 'Watermark not found.'
], 404);
}
return response()->json([
'message' => 'Missing parameter.'
], 400);
}
}