Angular2 - GET i POST w jednej metodzie

Angular2 - GET i POST w jednej metodzie
TE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 67
0

Cześć,

Zacząłem ogarniać Angulara2, robiąc na początku TODO app. Natrafiłem na problem:

Chciałbym po kliknięciu na przycisk "Add" na stronie pobrać JSONa z bazy danych IMDB. Mając tego JSONa chciałbym od razu zapisać go w mojej lokalnej bazie danych. Mam takie dwie metody:

Kopiuj
 createMovietoDatabase(id: string): Promise<Movie> {
        return this.http
            .post('localhost/api/movies/', JSON.stringify(this.result), { headers: this.headers })
            .toPromise()
            .then(res => res.json())
            .catch(this.handleError);
    }
Kopiuj
getMovieFromImdb(id: string): Promise<Movie> {
        const url = `'imdb.com/api/movies/${id}`;
        return this.http.get(url)
            .toPromise()
            .then(response => response.json() as Movie)
            .catch(this.handleError);
    } 

Czyli chciałbym połączyć te metody w jedno. Czy w ogóle dobrze się do tego zabieram? Zaznaczam, że słabo ogarniam JS/Angulara. Zamiast przeczytać mądre książki od razu zacząłem od projektu no i utknąłem. Pomoże ktoś?

mr_jaro
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Grudziądz/Bydgoszcz
  • Postów: 5300
0

przecież to co zwrócone jest z api nie musisz od razu zwracać z metody tylko wczytaj do zmiennej. Innymi słowy zamiast return daj

Kopiuj
var zmienna = 
jarekr000000
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: U krasnoludów - pod górą
  • Postów: 4712
2
Kopiuj
getMovieFromImdb('przeminelo_z_wiadrem').then ( movie=> createMovieToDatabase( 'przeminelo_z_wiadrem', movie);

Co wymaga aby metoda createMovie była zrobiona raczej tak:

Kopiuj
createMovietoDatabase(id: string, movieData:any): Promise<Movie> {
        return this.http
            .post('localhost/api/movies/', JSON.stringify(movieData), { headers: this.headers })
            .toPromise()
            .then(res => res.json())
            .catch(this.handleError);
    }

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.