@@ -72,24 +72,35 @@ public function getData(Feed $feed): array
72
72
return [];
73
73
}
74
74
75
- $ resources = $ configuration ['resources ' ];
75
+ $ requestedResources = $ configuration ['resources ' ];
76
+
77
+ $ allResources = $ this ->loadResources ();
76
78
77
79
$ events = [];
78
80
79
- foreach ($ resources as $ resource ) {
80
- $ events += $ this ->getResourceEvents ($ resource );
81
+ foreach ($ requestedResources as $ requestedResource ) {
82
+ $ events = array_merge ( $ events , $ this ->getResourceEvents ($ requestedResource ) );
81
83
}
82
84
83
85
$ modifiedResults = static ::applyModifiersToEvents ($ events , $ this ->eventModifiers , $ enabledModifiers );
84
86
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 );
93
104
94
105
// Sort bookings by start time.
95
106
usort ($ resultsAsArray , fn (array $ a , array $ b ) => $ a ['startTime ' ] > $ b ['startTime ' ] ? 1 : -1 );
@@ -357,13 +368,15 @@ private function loadResources(): array
357
368
358
369
// Only include resources that are included in events endpoint.
359
370
if ($ includeValue ) {
371
+ $ id = $ resourceEntry [$ this ->getMapping ('resourceId ' )];
372
+
360
373
$ resource = new Resource (
361
- $ resourceEntry [ $ this -> getMapping ( ' resourceId ' )] ,
374
+ $ id ,
362
375
$ resourceEntry [$ this ->getMapping ('resourceLocationId ' )],
363
376
$ resourceEntry [$ this ->getMapping ('resourceDisplayName ' )],
364
377
);
365
378
366
- $ resources [] = $ resource ;
379
+ $ resources [$ id ] = $ resource ;
367
380
}
368
381
}
369
382
0 commit comments