publish operations
This commit is contained in:
@@ -3,22 +3,23 @@
|
||||
use Carbon\Carbon;
|
||||
use Lucent\Core\Data\Record;
|
||||
use Lucent\Core\Data\RecordField;
|
||||
use Lucent\Core\Data\RecordStatus;
|
||||
use stdClass;
|
||||
|
||||
class RecordModule
|
||||
{
|
||||
public static function updateField(
|
||||
Record $record,
|
||||
RecordField $field,
|
||||
): Record {
|
||||
$recordFields = collect($record->draftData)->filter(
|
||||
fn(RecordField $rf) => !(
|
||||
$rf->id == $field->id && $rf->locale == $field->locale
|
||||
),
|
||||
);
|
||||
$recordFields->push($field);
|
||||
$record->draftData = $recordFields->values()->toArray();
|
||||
return $record;
|
||||
public static function getStatus(Record $record): RecordStatus
|
||||
{
|
||||
if ($record->trashedBy) {
|
||||
return RecordStatus::TRASHED;
|
||||
} elseif ($record->publishedBy && $record->scheduledAt) {
|
||||
return RecordStatus::SCHEDULED_AND_PUBLISHED;
|
||||
} elseif ($record->publishedBy) {
|
||||
return RecordStatus::PUBLISHED;
|
||||
} elseif ($record->scheduledAt) {
|
||||
return RecordStatus::SCHEDULED;
|
||||
}
|
||||
return RecordStatus::DRAFT;
|
||||
}
|
||||
|
||||
public static function toDb(Record $record): array
|
||||
@@ -30,11 +31,15 @@ class RecordModule
|
||||
"created_by" => $record->createdBy,
|
||||
"published_at" => empty($record->publishedAt)
|
||||
? null
|
||||
: record->publishedAt->toJSON(),
|
||||
: $record->publishedAt->toJSON(),
|
||||
"published_by" => $record->publishedBy,
|
||||
"scheduled_at" => empty($record->scheduledAt)
|
||||
? null
|
||||
: $record->scheduledAt->toJSON(),
|
||||
"scheduled_by" => $record->scheduledBy,
|
||||
"trashed_at" => empty($record->trashedAt)
|
||||
? null
|
||||
: record->trashedAt->toJSON(),
|
||||
: $record->trashedAt->toJSON(),
|
||||
"trashed_by" => $record->trashedBy,
|
||||
];
|
||||
}
|
||||
@@ -50,6 +55,10 @@ class RecordModule
|
||||
? null
|
||||
: Carbon::parse(data_get($data, "published_at")),
|
||||
publishedBy: data_get($data, "published_by"),
|
||||
scheduledAt: empty(data_get($data, "scheduled_at"))
|
||||
? null
|
||||
: Carbon::parse(data_get($data, "scheduled_at")),
|
||||
scheduledBy: data_get($data, "scheduled_by"),
|
||||
trashedAt: empty(data_get($data, "trashed_at"))
|
||||
? null
|
||||
: Carbon::parse(data_get($data, "trashed_at")),
|
||||
|
||||
Reference in New Issue
Block a user