Implement creator studio and upload updates
This commit is contained in:
@@ -16,6 +16,7 @@ use App\Services\NovaCards\NovaCardDraftService;
|
||||
use App\Services\NovaCards\NovaCardPresenter;
|
||||
use App\Services\NovaCards\NovaCardPublishService;
|
||||
use App\Services\NovaCards\NovaCardRenderService;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
@@ -115,9 +116,10 @@ class NovaCardDraftController extends Controller
|
||||
public function publish(SaveNovaCardDraftRequest $request, int $id): JsonResponse
|
||||
{
|
||||
$card = $this->editableCard($request, $id);
|
||||
$validated = $request->validated();
|
||||
|
||||
if ($request->validated() !== []) {
|
||||
$card = $this->drafts->autosave($card, $request->validated());
|
||||
if ($validated !== []) {
|
||||
$card = $this->drafts->autosave($card, $validated);
|
||||
}
|
||||
|
||||
if (trim((string) $card->title) === '' || trim((string) $card->quote_text) === '') {
|
||||
@@ -126,6 +128,32 @@ class NovaCardDraftController extends Controller
|
||||
], Response::HTTP_UNPROCESSABLE_ENTITY);
|
||||
}
|
||||
|
||||
$publishMode = (string) ($validated['publish_mode'] ?? 'now');
|
||||
|
||||
if ($publishMode === 'schedule') {
|
||||
if (empty($validated['scheduled_for'])) {
|
||||
return response()->json([
|
||||
'message' => 'Choose a date and time for scheduled publishing.',
|
||||
], Response::HTTP_UNPROCESSABLE_ENTITY);
|
||||
}
|
||||
|
||||
try {
|
||||
$card = $this->publishes->schedule(
|
||||
$card->loadMissing('backgroundImage'),
|
||||
Carbon::parse((string) $validated['scheduled_for']),
|
||||
isset($validated['scheduling_timezone']) ? (string) $validated['scheduling_timezone'] : null,
|
||||
);
|
||||
} catch (\InvalidArgumentException $exception) {
|
||||
return response()->json([
|
||||
'message' => $exception->getMessage(),
|
||||
], Response::HTTP_UNPROCESSABLE_ENTITY);
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'data' => $this->presenter->card($card, true, $request->user()),
|
||||
]);
|
||||
}
|
||||
|
||||
$card = $this->publishes->publishNow($card->loadMissing('backgroundImage'));
|
||||
event(new NovaCardPublished($card));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user