| 
									
										
										
										
											2015-12-01 12:15:14 +01:00
										 |  |  | // #docregion
 | 
					
						
							|  |  |  | import {Injectable} from 'angular2/core'; | 
					
						
							|  |  |  | import {Jsonp, URLSearchParams} from 'angular2/http'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @Injectable() | 
					
						
							|  |  |  | export class WikipediaService { | 
					
						
							|  |  |  |   constructor(private jsonp: Jsonp) {} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   search (term: string) { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-02 02:27:52 -08:00
										 |  |  |     let wikiUrl = 'http://en.wikipedia.org/w/api.php'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // #docregion search-parameters
 | 
					
						
							| 
									
										
										
										
											2015-12-01 12:15:14 +01:00
										 |  |  |     var params = new URLSearchParams(); | 
					
						
							| 
									
										
										
										
											2016-02-02 02:27:52 -08:00
										 |  |  |     params.set('search', term); // the user's search value
 | 
					
						
							| 
									
										
										
										
											2015-12-01 12:15:14 +01:00
										 |  |  |     params.set('action', 'opensearch'); | 
					
						
							|  |  |  |     params.set('format', 'json'); | 
					
						
							| 
									
										
										
										
											2016-02-02 02:27:52 -08:00
										 |  |  |     params.set('callback', 'JSONP_CALLBACK'); | 
					
						
							|  |  |  |     // #enddocregion search-parameters
 | 
					
						
							| 
									
										
										
										
											2015-12-01 12:15:14 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-02 02:27:52 -08:00
										 |  |  |     // #docregion call-jsonp
 | 
					
						
							|  |  |  |     // TODO: Add error handling
 | 
					
						
							| 
									
										
										
										
											2015-12-01 12:15:14 +01:00
										 |  |  |     return this.jsonp | 
					
						
							|  |  |  |                .get(wikiUrl, { search: params }) | 
					
						
							| 
									
										
										
										
											2016-02-02 02:27:52 -08:00
										 |  |  |                .map(request => <string[]> request.json()[1]); | 
					
						
							|  |  |  |     // #enddocregion call-jsonp
 | 
					
						
							| 
									
										
										
										
											2015-12-01 12:15:14 +01:00
										 |  |  |   } | 
					
						
							|  |  |  | } |