@@ -11,18 +11,30 @@ const router = Router();
1111const androidpublisher = google . androidpublisher ( 'v3' ) ;
1212const sponsorImagesPath = resolve ( __dirname , '../../data/sponsors' ) ;
1313
14- router . get ( '/' , async ( req , res ) => {
15- const { page, limit } = req . query ;
16-
17- const rows = await Sponsor . get (
18- Sponsor . safeColumns ,
19- [
20- [ Sponsor . STATUS , Sponsor . STATE_PURCHASED ] ,
21- [ Sponsor . PUBLIC , 1 ] ,
22- [ Sponsor . CREATED_AT , moment ( ) . add ( - 30 , 'days' ) . toISOString ( ) , '>' ] ,
23- ] ,
24- { page, limit } ,
25- ) ;
14+ router . get ( '/{:top}' , async ( req , res ) => {
15+ let page ;
16+ let limit ;
17+ const isTop = req . params . top === 'top' ;
18+ const whereClause = [
19+ [ Sponsor . STATUS , Sponsor . STATE_PURCHASED ] ,
20+ [ Sponsor . PUBLIC , 1 ] ,
21+ [ Sponsor . CREATED_AT , moment ( ) . add ( - 30 , 'days' ) . toISOString ( ) , '>' ] ,
22+ ] ;
23+
24+ if ( isTop ) {
25+ whereClause . push ( [ Sponsor . TIER , 'titanium' ] ) ;
26+ } else {
27+ page = req . query . page ;
28+ limit = req . query . limit ;
29+ }
30+
31+ const rows = await Sponsor . get ( Sponsor . safeColumns , whereClause , { page, limit } ) ;
32+
33+ if ( isTop ) {
34+ const randomTop = Math . floor ( Math . random ( ) * rows . length ) ;
35+ res . send ( rows [ randomTop ] ) ;
36+ return ;
37+ }
2638
2739 res . send ( rows ) ;
2840} ) ;
0 commit comments