@@ -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