SO - 30837086

by Arun P Johny

JavaScript

'use strict';

let movieData = [{
    id: '1011',
    name: 'Gleaming the cube',
    year: "1989"
}, {
    id: "1012",
    name: "Airborne",
    year: "1989"
}]

let MovieApi = {
    findMovie: function (id) {
        return new Promise(function (resolve, reject) {
            if (id === undefined) reject(Error('incorrect movie id'));

            let movie = ''
            for (let m of movieData) {
                if (m.id.toLowerCase() === id.toLowerCase()) {
                    movie = m
                    break
                }
            }
            resolve(movie)
        });
    },
    findAllMovies: function () {
        return new Promise(function (resolve, reject) {
            if (movieData === undefined) reject(Error('Could not find any movies'))

            resolve(movieData)
        });
    }
}

//just to test
var req = {
    params: {
        id: '1011'
    }
}

MovieApi.findAllMovies().then(function (movies) {
    return MovieApi.findMovie(req.params.id)
}).then(function (movie) {
    console.log('found', movie)
    //movies is local to the first callback so won't be available here
    let MovieStore = {
        movie: movie,
        movies: movies
    }
}).
catch (function (error) {
    console.error("Failed!", error);
});