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-08-27 01:12:38 +08:00
|
|
|
.map(response => <string[]> response.json()[1]);
|
2016-02-02 02:27:52 -08:00
|
|
|
// #enddocregion call-jsonp
|
2015-12-01 12:15:14 +01:00
|
|
|
}
|
|
|
|
}
|