/**
* @param callable(string, Model):bool $condition
- * @param callable(Model):void $format
+ * @param callable(Model):void $format
*/
public function addModelFormatter(callable $condition, callable $format): void
{
$this->modelFormatters[] = [
'condition' => $condition,
- 'format' => $format,
+ 'format' => $format,
];
}
{
// Load entity owner, creator, updater details
$this->addModelFormatter(
- fn($event, $model) => ($model instanceof Entity),
- fn($model) => $model->load(['ownedBy', 'createdBy', 'updatedBy'])
+ fn ($event, $model) => ($model instanceof Entity),
+ fn ($model) => $model->load(['ownedBy', 'createdBy', 'updatedBy'])
);
// Load revision detail for page update and create events
$this->addModelFormatter(
- fn($event, $model) => ($model instanceof Page && ($event === ActivityType::PAGE_CREATE || $event === ActivityType::PAGE_UPDATE)),
- fn($model) => $model->load('currentRevision')
+ fn ($event, $model) => ($model instanceof Page && ($event === ActivityType::PAGE_CREATE || $event === ActivityType::PAGE_UPDATE)),
+ fn ($model) => $model->load('currentRevision')
);
}
{
$instance = new static($event, $webhook, $detail, $initiator, $initiatedTime);
$instance->addDefaultModelFormatters();
+
return $instance;
}
-}
\ No newline at end of file
+}
/**
* Class PageRevision.
*
- * @property mixed $id
+ * @property mixed $id
* @property int $page_id
* @property string $slug
* @property string $book_slug
* can be used (At least when created using binary string data) so we need to do some
* implementation on our side to use the original image data.
* Bulk of logic taken from: https://github.com/Intervention/image/blob/b734a4988b2148e7d10364b0609978a88d277536/src/Intervention/Image/Commands/OrientateCommand.php
- * Copyright (c) Oliver Vogel, MIT License
+ * Copyright (c) Oliver Vogel, MIT License.
*/
protected function orientImageToOriginalExif(InterventionImage $image, string $originalData): void
{
}
$stream = Utils::streamFor($originalData)->detach();
- $orientation = exif_read_data($stream)['Orientation'] ?? null;
+ $exif = @exif_read_data($stream);
+ $orientation = $exif ? ($exif['Orientation'] ?? null) : null;
switch ($orientation) {
case 2:
public function test_entity_events_show_related_user_info()
{
$events = [
- ActivityType::BOOK_UPDATE => Book::query()->first(),
+ ActivityType::BOOK_UPDATE => Book::query()->first(),
ActivityType::CHAPTER_CREATE => Chapter::query()->first(),
- ActivityType::PAGE_MOVE => Page::query()->first(),
+ ActivityType::PAGE_MOVE => Page::query()->first(),
];
foreach ($events as $event => $entity) {
$webhook = Webhook::factory()->make();
$user = $this->getEditor();
$formatter = WebhookFormatter::getDefault($event, $webhook, $detail, $user, time());
+
return $formatter->format();
}
-}
\ No newline at end of file
+}
dispatch((new DispatchWebhookJob($webhook, $event, $detail)));
- $this->assertCount(3, $args);
+ $this->assertCount(5, $args);
$this->assertEquals($event, $args[0]);
$this->assertEquals($webhook->id, $args[1]->id);
$this->assertEquals($detail->id, $args[2]->id);