Skip to content

Commit d7426e8

Browse files
authored
Merge pull request #242 from os2display/feature/4423-resource-display-name
Changed calendar api feed type to use display name from resources feed instead of events feed
2 parents a895a85 + 3696c8a commit d7426e8

File tree

2 files changed

+29
-13
lines changed

2 files changed

+29
-13
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ All notable changes to this project will be documented in this file.
44

55
## [Unreleased]
66

7+
- [#242](https://github.com/os2display/display-api-service/pull/242)
8+
- Changed calendar api feed type to use display name from resources feed instead of events feed.
9+
710
## [2.5.0] - 2025-05-09
811

912
- [#240](https://github.com/os2display/display-api-service/pull/240)

src/Feed/CalendarApiFeedType.php

Lines changed: 26 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -72,24 +72,35 @@ public function getData(Feed $feed): array
7272
return [];
7373
}
7474

75-
$resources = $configuration['resources'];
75+
$requestedResources = $configuration['resources'];
76+
77+
$allResources = $this->loadResources();
7678

7779
$events = [];
7880

79-
foreach ($resources as $resource) {
80-
$events += $this->getResourceEvents($resource);
81+
foreach ($requestedResources as $requestedResource) {
82+
$events = array_merge($events, $this->getResourceEvents($requestedResource));
8183
}
8284

8385
$modifiedResults = static::applyModifiersToEvents($events, $this->eventModifiers, $enabledModifiers);
8486

85-
$resultsAsArray = array_map(fn (CalendarEvent $event) => [
86-
'id' => Ulid::generate(),
87-
'title' => $event->title,
88-
'startTime' => $event->startTimeTimestamp,
89-
'endTime' => $event->endTimeTimestamp,
90-
'resourceTitle' => $event->resourceDisplayName,
91-
'resourceId' => $event->resourceId,
92-
], $modifiedResults);
87+
$resultsAsArray = array_map(function (CalendarEvent $event) use ($allResources) {
88+
$resourceDisplayName = $event->resourceDisplayName;
89+
90+
// Override resource title with resource display name from resources list.
91+
if (isset($allResources[$event->resourceId])) {
92+
$resourceDisplayName = $allResources[$event->resourceId]->displayName;
93+
}
94+
95+
return [
96+
'id' => Ulid::generate(),
97+
'title' => $event->title,
98+
'startTime' => $event->startTimeTimestamp,
99+
'endTime' => $event->endTimeTimestamp,
100+
'resourceTitle' => $resourceDisplayName,
101+
'resourceId' => $event->resourceId,
102+
];
103+
}, $modifiedResults);
93104

94105
// Sort bookings by start time.
95106
usort($resultsAsArray, fn (array $a, array $b) => $a['startTime'] > $b['startTime'] ? 1 : -1);
@@ -357,13 +368,15 @@ private function loadResources(): array
357368

358369
// Only include resources that are included in events endpoint.
359370
if ($includeValue) {
371+
$id = $resourceEntry[$this->getMapping('resourceId')];
372+
360373
$resource = new Resource(
361-
$resourceEntry[$this->getMapping('resourceId')],
374+
$id,
362375
$resourceEntry[$this->getMapping('resourceLocationId')],
363376
$resourceEntry[$this->getMapping('resourceDisplayName')],
364377
);
365378

366-
$resources[] = $resource;
379+
$resources[$id] = $resource;
367380
}
368381
}
369382

0 commit comments

Comments
 (0)