@@ -7,45 +7,27 @@ const router = express.Router();
7
7
8
8
router . get ( "/" , asyncHandler ( async ( req , res ) => {
9
9
const search = req . query ;
10
- console . log ( search )
11
- const { searchType , query } = search ;
10
+ let { searchType , query , id } = search ;
11
+ id = parseInt ( id , 10 ) ;
12
12
const accessToken = req . cookies [ "TAPPDIN_ACCESS_TOKEN" ] ;
13
+
13
14
if ( searchType === "beers" ) {
14
15
const results = await searchBeers ( query , accessToken )
15
16
const beers = results . slice ( 0 , 10 ) ;
16
- beers . forEach ( ( beer ) => {
17
- if ( beer . Checkin && beer . Checkin . length ) {
18
- const checkinsScores = checkins . map ( ( checkin ) => checkin . rating ) ;
19
- beer . avgRating =
20
- checkinsScores . reduce ( ( sum , rating ) => {
21
- sum += rating ;
22
- } ) / checkins . length ;
23
- }
24
- beer . image = beer . image || "/imgs/beer-default.jpg" ;
25
- date = new Date ( beer . createdAt ) ;
26
- beer . createdAt = date . toDateString ( ) ;
27
- } ) ;
17
+ cleanBeerData ( beers ) ;
28
18
res . render ( "search-results" , { query, beers } ) ;
19
+
20
+ } else if ( searchType === "beersByBrewery" ) {
21
+ const beers = await searchBeersByBrewery ( id , accessToken ) ;
22
+ console . log ( beers [ 1 ] )
23
+
24
+ cleanBeerData ( beers ) ;
25
+ res . render ( "search-results" , { query, beers} ) ;
26
+
29
27
} else {
30
- const data = await FetchRouter . post (
31
- `${ process . env . BACKEND_URL } /breweries/search` ,
32
- accessToken ,
33
- { query }
34
- ) ;
35
- const { results } = await data . json ( ) ;
28
+ const results = await searchBreweries ( query , accessToken )
36
29
const breweries = results . slice ( 0 , 10 ) ;
37
- breweries . forEach ( ( brewery ) => {
38
- if ( brewery . Checkin && brewery . Checkin . length ) {
39
- const checkinsScores = checkins . map ( ( checkin ) => checkin . rating ) ;
40
- brewery . avgRating =
41
- checkinsScores . reduce ( ( sum , rating ) => {
42
- sum += rating ;
43
- } ) / checkins . length ;
44
- }
45
- // brewery.image = brewery.image || "/imgs/brewery-default.jpg";
46
- date = new Date ( brewery . createdAt ) ;
47
- brewery . createdAt = date . toDateString ( ) ;
48
- } ) ;
30
+ cleanBreweryData ( breweries ) ;
49
31
res . render ( "search-results" , { query, breweries } ) ;
50
32
}
51
33
} ) ) ;
@@ -60,5 +42,53 @@ async function searchBeers(query, token){
60
42
return results ;
61
43
}
62
44
45
+ async function searchBeersByBrewery ( id , token ) {
46
+ console . log ( "TOKEN" , token )
47
+ const data = await FetchRouter . get (
48
+ `${ process . env . BACKEND_URL } /beers/brewery/${ id } ` ,
49
+ token
50
+ ) ;
51
+ const { beers} = await data . json ( ) ;
52
+ return beers ;
53
+ }
54
+ async function searchBreweries ( query , token ) {
55
+ const data = await FetchRouter . post (
56
+ `${ process . env . BACKEND_URL } /breweries/search` ,
57
+ token ,
58
+ { query }
59
+ ) ;
60
+ const { results } = await data . json ( ) ;
61
+ return results ;
62
+ }
63
+
64
+ function cleanBeerData ( beers ) {
65
+ beers . forEach ( ( beer ) => {
66
+ if ( beer . Checkin && beer . Checkin . length ) {
67
+ const checkinsScores = checkins . map ( ( checkin ) => checkin . rating ) ;
68
+ beer . avgRating =
69
+ checkinsScores . reduce ( ( sum , rating ) => {
70
+ sum += rating ;
71
+ } ) / checkins . length ;
72
+ }
73
+ beer . image = beer . image || "/imgs/beer-default.jpg" ;
74
+ date = new Date ( beer . createdAt ) ;
75
+ beer . createdAt = date . toDateString ( ) ;
76
+ } ) ;
77
+ }
78
+
79
+ function cleanBreweryData ( breweries ) {
80
+ breweries . forEach ( ( brewery ) => {
81
+ if ( brewery . Checkin && brewery . Checkin . length ) {
82
+ const checkinsScores = checkins . map ( ( checkin ) => checkin . rating ) ;
83
+ brewery . avgRating =
84
+ checkinsScores . reduce ( ( sum , rating ) => {
85
+ sum += rating ;
86
+ } ) / checkins . length ;
87
+ }
88
+ date = new Date ( brewery . createdAt ) ;
89
+ brewery . createdAt = date . toDateString ( ) ;
90
+ } ) ;
91
+ }
92
+
63
93
64
94
module . exports = router ;
0 commit comments