11using System . Linq ;
2- using System . Net ;
3- using System . Net . Http ;
42using Microsoft . AspNetCore . Mvc ;
53using WebApi . Hal . Web . Api . Resources ;
64using WebApi . Hal . Web . Data ;
97
108namespace WebApi . Hal . Web . Api
119{
10+ [ Route ( "[controller]" ) ]
1211 public class BeersController : Controller
1312 {
1413 public const int PageSize = 5 ;
@@ -20,6 +19,7 @@ public BeersController(IRepository repository)
2019 this . repository = repository ;
2120 }
2221
22+ [ HttpGet ]
2323 // GET beers
2424 public BeerListRepresentation Get ( int page = 1 )
2525 {
@@ -30,7 +30,8 @@ public BeerListRepresentation Get(int page = 1)
3030 return resourceList ;
3131 }
3232
33- [ HttpGet ]
33+ [ HttpGet ( "Search" ) ]
34+ // GET beers/Search?searchTerm=Roger
3435 public BeerListRepresentation Search ( string searchTerm , int page = 1 )
3536 {
3637 var beers = repository . Find ( new GetBeersQuery ( b => b . Name . Contains ( searchTerm ) ) , page , PageSize ) ;
@@ -39,24 +40,28 @@ public BeerListRepresentation Search(string searchTerm, int page = 1)
3940 if ( page > beers . TotalPages ) page = beers . TotalPages ;
4041
4142 //var link = LinkTemplates.Beers.SearchBeers.CreateLink(new { searchTerm, page });
42- var beersResource = new BeerListRepresentation ( beers . ToList ( ) , beers . TotalResults , beers . TotalPages , page ,
43+ var beersResource = new BeerListRepresentation ( beers . ToList ( ) ,
44+ beers . TotalResults ,
45+ beers . TotalPages ,
46+ page ,
4347 LinkTemplates . Beers . SearchBeers ,
44- new { searchTerm } )
45- {
46- Page = page ,
47- TotalResults = beers . TotalResults
48- } ;
48+ new { searchTerm } )
49+ {
50+ Page = page ,
51+ TotalResults = beers . TotalResults
52+ } ;
4953
5054 return beersResource ;
5155 }
5256
57+ [ HttpPost ]
5358 // POST beers
5459 public IActionResult Post ( BeerRepresentation value )
5560 {
5661 var newBeer = new Beer ( value . Name ) ;
5762 repository . Add ( newBeer ) ;
5863
59- return Created ( LinkTemplates . Beers . Beer . CreateUri ( new { id = newBeer . Id } ) , newBeer ) ;
64+ return Created ( LinkTemplates . Beers . Beer . CreateUri ( new { id = newBeer . Id } ) , newBeer ) ;
6065 }
6166 }
6267}
0 commit comments