Skip to content

Commit 9907ae7

Browse files
fix: refactor for presentation formatter (#487)
1 parent 58e0e01 commit 9907ae7

3 files changed

Lines changed: 13 additions & 69 deletions

File tree

app/Audit/ConcreteFormatters/PresentationFormatters/BasePresentationAuditLogFormatter.php

Lines changed: 4 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -22,52 +22,9 @@
2222

2323
abstract class BasePresentationAuditLogFormatter extends AbstractAuditLogFormatter
2424
{
25-
protected string $event_type;
26-
2725
public function __construct(string $event_type)
2826
{
29-
$this->event_type = $event_type;
30-
}
31-
32-
protected function extractChangedFields(array $change_set): array
33-
{
34-
$changed_fields = [];
35-
$old_status = null;
36-
$new_status = null;
37-
38-
if (isset($change_set['Title'])) {
39-
$changed_fields[] = "title";
40-
}
41-
if (isset($change_set['Abstract'])) {
42-
$changed_fields[] = "abstract";
43-
}
44-
if (isset($change_set['ProblemAddressed'])) {
45-
$changed_fields[] = "problem_addressed";
46-
}
47-
if (isset($change_set['AttendeesExpectedLearnt'])) {
48-
$changed_fields[] = "attendees_expected_learnt";
49-
}
50-
51-
if (isset($change_set['Status'])) {
52-
$changed_fields[] = "status";
53-
$old_status = $change_set['Status'][0] ?? null;
54-
$new_status = $change_set['Status'][1] ?? null;
55-
}
56-
if (isset($change_set['CategoryID']) || isset($change_set['category'])) {
57-
$changed_fields[] = "track";
58-
}
59-
if (isset($change_set['Published'])) {
60-
$changed_fields[] = "published";
61-
}
62-
if (isset($change_set['SelectionPlanID'])) {
63-
$changed_fields[] = "selection_plan";
64-
}
65-
66-
return [
67-
'fields' => !empty($changed_fields) ? implode(', ', $changed_fields) : 'properties',
68-
'old_status' => $old_status,
69-
'new_status' => $new_status,
70-
];
27+
parent::__construct($event_type);
7128
}
7229

7330
protected function getPresentationData(Presentation $subject): array
@@ -91,7 +48,7 @@ protected function getPresentationData(Presentation $subject): array
9148
];
9249
}
9350

94-
public function format($subject, array $change_set): ?string
51+
public function format(mixed $subject, array $change_set): ?string
9552
{
9653
if (!$subject instanceof Presentation) {
9754
return null;
@@ -105,9 +62,7 @@ public function format($subject, array $change_set): ?string
10562
return $this->formatCreation($data);
10663

10764
case IAuditStrategy::EVENT_ENTITY_UPDATE:
108-
$extracted = $this->extractChangedFields($change_set);
109-
$extracted['change_set'] = $change_set;
110-
return $this->formatUpdate($data, $extracted);
65+
return $this->formatUpdate($data, $change_set);
11166

11267
case IAuditStrategy::EVENT_ENTITY_DELETION:
11368
return $this->formatDeletion($data);
@@ -121,7 +76,7 @@ public function format($subject, array $change_set): ?string
12176

12277
abstract protected function formatCreation(array $data): string;
12378

124-
abstract protected function formatUpdate(array $data, array $extracted): string;
79+
abstract protected function formatUpdate(array $data, array $change_set): string;
12580

12681
abstract protected function formatDeletion(array $data): string;
12782
}

app/Audit/ConcreteFormatters/PresentationFormatters/PresentationEventApiAuditLogFormatter.php

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -30,37 +30,26 @@ protected function formatCreation(array $data): string
3030
);
3131
}
3232

33-
protected function formatUpdate(array $data, array $extracted): string
33+
protected function formatUpdate(array $data, array $change_set): string
3434
{
35-
if ($extracted['old_status'] && $extracted['new_status']) {
36-
return sprintf(
37-
"Presentation '%s' (%s) status changed: %s → %s (%s changed) by user %s",
38-
$data['title'],
39-
$data['id'],
40-
strtoupper($extracted['old_status']),
41-
strtoupper($extracted['new_status']),
42-
$extracted['fields'],
43-
$this->getUserInfo()
44-
);
45-
}
46-
4735
return sprintf(
48-
"Presentation '%s' (%s) modified (%s changed) by user %s",
36+
"Presentation '%s' (%s) updated: %s by user %s",
4937
$data['title'],
5038
$data['id'],
51-
$extracted['fields'],
39+
$this->buildChangeDetails($change_set),
5240
$this->getUserInfo()
5341
);
5442
}
5543

5644
protected function formatDeletion(array $data): string
5745
{
5846
return sprintf(
59-
"Presentation '%s' (%s) created by '%s' under track '%s' was removed by user %s",
47+
"Presentation '%s' (%s) created by '%s' under track '%s' (Plan: %s) was removed by user %s",
6048
$data['title'],
6149
$data['id'],
6250
$data['creator_name'],
6351
$data['category_name'],
52+
$data['plan_name'],
6453
$this->getUserInfo()
6554
);
6655
}

app/Audit/ConcreteFormatters/PresentationFormatters/PresentationSubmissionAuditLogFormatter.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,26 +30,26 @@ protected function formatCreation(array $data): string
3030
);
3131
}
3232

33-
protected function formatUpdate(array $data, array $extracted): string
33+
protected function formatUpdate(array $data, array $change_set): string
3434
{
35-
$change_details = $this->buildChangeDetails($extracted['change_set']);
3635
return sprintf(
3736
"Presentation '%s' (%s) updated: %s by user %s",
3837
$data['title'],
3938
$data['id'],
40-
$change_details,
39+
$this->buildChangeDetails($change_set),
4140
$this->getUserInfo()
4241
);
4342
}
4443

4544
protected function formatDeletion(array $data): string
4645
{
4746
return sprintf(
48-
"Presentation '%s' (%s) submitted by '%s' to track '%s' was deleted by user %s",
47+
"Presentation '%s' (%s) submitted by '%s' to track '%s' (Plan: %s) was deleted by user %s",
4948
$data['title'],
5049
$data['id'],
5150
$data['creator_name'],
5251
$data['category_name'],
52+
$data['plan_name'],
5353
$this->getUserInfo()
5454
);
5555
}

0 commit comments

Comments
 (0)