@@ -50,19 +50,21 @@ router.get('/', async (req, res, next) => {
50
50
User . paginate ( query , options , async ( err , result ) => {
51
51
if ( err ) {
52
52
LOGGER . error ( 'An error occurred when finding User livestream info: {}' , err ) ;
53
- next ( err ) ;
54
- } else {
55
- const streams = [ ] ;
56
- for ( const user of result . docs ) {
53
+ return next ( err ) ;
54
+ }
55
+
56
+ const streams = await Promise . all ( result . docs . map ( user => {
57
+ return async ( ) => {
57
58
const streamKey = user . streamInfo . streamKey ;
58
59
let thumbnailURL ;
59
60
try {
60
61
thumbnailURL = await getThumbnail ( streamKey ) ;
61
62
} catch ( err ) {
62
- LOGGER . info ( 'An error occurred when getting thumbnail for stream (stream key: {}). Returning default thumbnail. Error: {}' , streamKey , err ) ;
63
+ LOGGER . info ( 'An error occurred when getting thumbnail for stream (stream key: {}). ' +
64
+ 'Returning default thumbnail. Error: {}' , streamKey , err ) ;
63
65
thumbnailURL = config . defaultThumbnailURL ;
64
66
}
65
- streams . push ( {
67
+ return {
66
68
username : user . username ,
67
69
displayName : user . displayName ,
68
70
profilePicURL : user . getProfilePicURL ( ) ,
@@ -72,13 +74,14 @@ router.get('/', async (req, res, next) => {
72
74
viewCount : user . streamInfo . viewCount ,
73
75
startTime : user . streamInfo . startTime ,
74
76
thumbnailURL
75
- } ) ;
76
- }
77
- res . json ( {
78
- streams,
79
- nextPage : result . nextPage
80
- } ) ;
81
- }
77
+ } ;
78
+ } ;
79
+ } ) ) ;
80
+
81
+ res . json ( {
82
+ streams,
83
+ nextPage : result . nextPage
84
+ } ) ;
82
85
} ) ;
83
86
} ) ;
84
87
@@ -151,28 +154,31 @@ router.get('/event-stages', async (req, res, next) => {
151
154
return next ( err ) ;
152
155
}
153
156
154
- const streams = [ ] ;
155
- for ( const eventStage of result . docs ) {
156
- const streamKey = eventStage . streamInfo . streamKey ;
157
- let thumbnailURL ;
158
- try {
159
- thumbnailURL = await getThumbnail ( streamKey ) ;
160
- } catch ( err ) {
161
- LOGGER . info ( 'An error occurred when getting thumbnail for stream (stream key: {}). Returning default thumbnail. Error: {}' , streamKey , err ) ;
162
- thumbnailURL = config . defaultThumbnailURL ;
163
- }
164
- streams . push ( {
165
- eventStageId : eventStage . _id ,
166
- stageName : eventStage . stageName ,
167
- event : eventStage . event ,
168
- title : eventStage . streamInfo . title ,
169
- genre : eventStage . streamInfo . genre ,
170
- category : eventStage . streamInfo . category ,
171
- viewCount : eventStage . streamInfo . viewCount ,
172
- startTime : eventStage . streamInfo . startTime ,
173
- thumbnailURL
174
- } ) ;
175
- }
157
+ const streams = await Promise . all ( result . docs . map ( eventStage => {
158
+ return async ( ) => {
159
+ const streamKey = eventStage . streamInfo . streamKey ;
160
+ let thumbnailURL ;
161
+ try {
162
+ thumbnailURL = await getThumbnail ( streamKey ) ;
163
+ } catch ( err ) {
164
+ LOGGER . info ( 'An error occurred when getting thumbnail for stream (stream key: {}). ' +
165
+ 'Returning default thumbnail. Error: {}' , streamKey , err ) ;
166
+ thumbnailURL = config . defaultThumbnailURL ;
167
+ }
168
+ return {
169
+ eventStageId : eventStage . _id ,
170
+ stageName : eventStage . stageName ,
171
+ event : eventStage . event ,
172
+ title : eventStage . streamInfo . title ,
173
+ genre : eventStage . streamInfo . genre ,
174
+ category : eventStage . streamInfo . category ,
175
+ viewCount : eventStage . streamInfo . viewCount ,
176
+ startTime : eventStage . streamInfo . startTime ,
177
+ thumbnailURL
178
+ } ;
179
+ } ;
180
+ } ) ) ;
181
+
176
182
res . json ( {
177
183
streams,
178
184
nextPage : result . nextPage
0 commit comments