| 
									
										
										
										
											2015-12-01 12:15:14 +01:00
										 |  |  | // #docregion
 | 
					
						
							| 
									
										
										
										
											2016-05-03 14:06:32 +02:00
										 |  |  | import { Injectable } from '@angular/core'; | 
					
						
							|  |  |  | import { Jsonp, URLSearchParams } from '@angular/http'; | 
					
						
							| 
									
										
										
										
											2015-12-01 12:15:14 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | @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
 | 
					
						
							| 
									
										
										
										
											2016-05-17 01:45:52 -07:00
										 |  |  |     let params = new URLSearchParams(); | 
					
						
							| 
									
										
										
										
											2016-08-09 17:38:25 +01: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
										 |  |  |   } | 
					
						
							|  |  |  | } |