Skip to content

Commit 15edf6f

Browse files
author
dev92
committed
added trailer to detail page
1 parent 0b08273 commit 15edf6f

12 files changed

Lines changed: 123 additions & 23 deletions

public/project/client/services/movie.services.client.js

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,14 @@
88

99
var api = {
1010
userLikesMovie: userLikesMovie,
11-
findUserLikes: findUserLikes
11+
findUserLikes: findUserLikes,
12+
findUserLikedMovies:findUserLikedMovies,
13+
userDislikesMovie:userDislikesMovie
1214
};
1315
return api;
1416

1517
function findUserLikes (imdbID) {
1618
var defer = $q.defer();
17-
console.log(imdbID);
1819
var url = "/api/project/movie/"+imdbID+"/user";
1920
$http.get(url)
2021
.success(function(response){
@@ -32,5 +33,25 @@
3233
});
3334
return defer.promise;
3435
}
36+
37+
function findUserLikedMovies(userId,movieIds){
38+
var defer = $q.defer();
39+
var url = "/api/project/user/"+userId+"/movies";
40+
$http.get(url,movieIds)
41+
.success(function(response){
42+
defer.resolve(response);
43+
});
44+
return defer.promise;
45+
}
46+
47+
function userDislikesMovie(userId,imdbId){
48+
var defer = $q.defer();
49+
var url = "/api/project/user/"+userId+"/movie/"+imdbId;
50+
$http.delete(url)
51+
.success(function(response){
52+
defer.resolve(response);
53+
});
54+
return defer.promise;
55+
}
3556
}
3657
})();

public/project/client/services/movieapi.services.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,16 @@
1111
var searchUrl = "http://api.themoviedb.org/3/search/movie?query=QUERY&api_key=c8fee912d3f3866df68026f0ebadc6f6";
1212
var genreMovies = "http://api.themoviedb.org/3/genre/GENRE/movies?api_key=c8fee912d3f3866df68026f0ebadc6f6";
1313
var detailsUrl = "http://api.themoviedb.org/3/movie/ID?api_key=c8fee912d3f3866df68026f0ebadc6f6";
14-
var imdbdetailsUrl = "https://api.themoviedb.org/3/find/IMDBID?external_source=imdb_id&api_key=c8fee912d3f3866df68026f0ebadc6f6"
14+
var imdbdetailsUrl = "https://api.themoviedb.org/3/find/IMDBID?external_source=imdb_id&api_key=c8fee912d3f3866df68026f0ebadc6f6";
15+
var trailerUrl = "http://api.themoviedb.org/3/movie/ID/videos?api_key=c8fee912d3f3866df68026f0ebadc6f6";
1516

1617

1718

1819
var api = {
1920
findMovieByTitle : findMovieByTitle,
2021
findMovieByImdbID:findMovieByImdbID,
21-
findBasePath:findBasePath
22+
findBasePath:findBasePath,
23+
findTrailers:findTrailers
2224
};
2325

2426
return api;
@@ -43,5 +45,10 @@
4345
.success(callback);
4446
}
4547

48+
function findTrailers(tmdbId,callback){
49+
$http.get(trailerUrl.replace("ID",tmdbId))
50+
.success(callback);
51+
}
52+
4653
}
4754
})();

public/project/client/views/myspace/favorites.controller.js

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,23 @@
33
.module("CinephiliaApp")
44
.controller("FavoritesController", FavoritesController);
55

6-
function FavoritesController($scope) {
6+
function FavoritesController($scope,$rootScope,MovieService) {
7+
8+
$scope.movies = [];
9+
10+
if($rootScope.currentusr){
11+
MovieService.findUserLikedMovies($rootScope.currentusr._id)
12+
.then(function(response){
13+
$scope.movies = response;
14+
});
15+
}
16+
17+
$scope.removeFavorite = function(imdbId){
18+
MovieService.userDislikesMovie($rootScope.currentusr._id,imdbId)
19+
.then(function(response){
20+
$scope.movies = response;
21+
})
22+
}
723

8-
$scope.movies = [{Title:"Batman",imdbID:"tt0096895",poster:"https://i.ytimg.com/vi/A0f3vH3BNvc/maxresdefault.jpg",
9-
favorite:true},{Title:"Avatar",imdbID:"tt0499549",poster:"http://t0.gstatic.com/images?q=tbn:ANd9GcQCfmvrE4fMo2cd8esc7mDZPtFSJThAujddMPkRtti1_ij6u-jp",
10-
favorite:true},{Title:"12 Angry men",imdbID:"tt0050083",poster:"http://t0.gstatic.com/images?q=tbn:ANd9GcTDnld_1CpP-iESMfN_iAF0yEOYAhv0gX7F3RKIf47oQIua_vAS",
11-
favorite:true}]
1224
}
1325
})();

public/project/client/views/myspace/favorites.view.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
</md-tab>
1313
</md-tabs>
1414
</md-content>
15-
<div class="well" style="background-color: rgba(96, 125, 139, 0.7)" ng-controller="FavoritesController">
15+
<div class="well" style="background-color: rgba(96, 125, 139, 0.7)">
1616
<div class="md-padding" layout="row" layout-xs="column" layout-align="center center" flex="33" layout-wrap>
1717
<md-card ng-repeat="movie in movies">
1818
<md-card-title>
@@ -23,7 +23,7 @@
2323
<img class = "img-responsive" style="height: 300px;width: 300px;display: block;margin: 0 auto" ng-src="{{movie.poster}}" onerror="this.src='http://www.filmfodder.com/reviews/images/poster-not-available.jpg'" class="md-card-image" alt="Washed Out">
2424
<md-card-actions layout="row" layout-align="center center">
2525
<md-button class="md-icon-button" aria-label="Favorite">
26-
<md-icon ng-click="movie.favorite = !movie.favorite" class="md-icon-button md-accent"><i ng-class="{'fa fa-heart-o fa-lg':!movie.favorite,'fa fa-heart fa-lg':movie.favorite}"></i></md-icon>
26+
<md-icon ng-click="removeFavorite(movie.imdbID)" class="md-icon-button md-accent"><i class="fa fa-heart fa-lg"></i></md-icon>
2727
</md-button>
2828
<md-button class="md-icon-button" aria-label="Details">
2929
<md-icon><a href="#/detail/{{movie.imdbID}}"><i class="fa fa-info-circle fa-lg"></i></a></md-icon>

public/project/client/views/myspace/reviews.view.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<div id="page-wrapper">
2-
<!--<div class="container-fluid">-->
2+
<div class="container-fluid">
33
<!--<div class="row">-->
44
<div class="col-md-10 col-md-offset-2 main">
55
<md-content>
@@ -29,5 +29,5 @@
2929
</div>
3030
<!--</div>-->
3131
</div>
32-
<!--</div>-->
32+
</div>
3333
</div>

public/project/client/views/search/details.controller.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
.module("CinephiliaApp")
44
.controller("DetailController", DetailController);
55

6-
function DetailController($scope, $rootScope, $routeParams, MovieApiService,MovieService) {
6+
function DetailController($scope, $rootScope, $routeParams, MovieApiService,MovieService,$sce) {
77

88
$scope.imdbID = $routeParams.imdbID;
99
$scope.users = [];
@@ -26,6 +26,14 @@
2626
//console.log(response.imdbID);
2727
$scope.rating = Number(response.imdbRating).toFixed();
2828
$scope.movie = response;
29+
MovieApiService.findTrailers($scope.imdbID,function(response){
30+
for(var r in response.results){
31+
if(response.results[r].type == "Trailer"){
32+
$scope.movie.trailer = $sce.trustAsResourceUrl("http://www.youtube.com/v/"+response.results[r].key);
33+
}
34+
}
35+
});
36+
2937
MovieService.findUserLikes($scope.movie.imdbID)
3038
.then(function(response){
3139
$scope.users = response;

public/project/client/views/search/details.view.html

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,12 @@ <h4>Release Year:<p>{{movie.Released}}</p></h4>
6161
<h4>Rated:<p>{{movie.Rated}}</p></h4>
6262
</div>
6363
</div>
64+
<div class="row">
65+
<h4 style="text-align: center">Trailer</h4>
66+
<div class="embed-responsive embed-responsive-16by9">
67+
<iframe class="embed-responsive-item" controls="true" frameborder="0" src="{{movie.trailer}}" allowfullscreen="true"></iframe>
68+
</div>
69+
</div>
6470
<hr>
6571
<div class="row" style="padding-left: 40px">
6672
<div class="col-md-6">

public/project/server/models/movie.model.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ module.exports = function() {
88
findMovieByImdbID: findMovieByImdbID,
99
findMoviesByImdbIDs: findMoviesByImdbIDs,
1010
createMovie: createMovie,
11-
userLikesMovie: userLikesMovie
11+
userLikesMovie: userLikesMovie,
12+
userDislikesMovie:userDislikesMovie
1213
};
1314
return api;
1415

@@ -47,5 +48,16 @@ module.exports = function() {
4748
return movies[i];
4849
}
4950
}
51+
return null;
52+
}
53+
54+
function userDislikesMovie(userId,imdbId){
55+
var movie = findMovieByImdbID(imdbId);
56+
for(var i in movie.userFavorites){
57+
if(movie.userFavorites[i] == userId){
58+
movie.userFavorites.splice(i,1)
59+
return movie;
60+
}
61+
}
5062
}
5163
}
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[
2-
{"imdbID": "tt0050083", "tmdbID":389,"title": "12 Angry men", "userFavorites":[234]},
3-
{"imdbID": "tt0096895", "tmdbID":268,"title":"Batman", "userFavorites":[123,345]},
4-
{"imdbID": "tt0295297", "tmdbID":672,"title":"Harry Potter and the Chamber of Secrets","userFavorites":[234,456]}
2+
{"imdbID": "tt0050083", "tmdbID":389,"title": "12 Angry men", "userFavorites":[234],"poster":"http://img.omdbapi.com/?i=tt0050083&apikey=2bf5ee9"},
3+
{"imdbID": "tt0096895", "tmdbID":268,"title":"Batman", "userFavorites":[123,345],"poster":"http://img.omdbapi.com/?i=tt0096895&apikey=2bf5ee9"},
4+
{"imdbID": "tt0295297", "tmdbID":672,"title":"Harry Potter and the Chamber of Secrets","userFavorites":[234,456],"poster":"http://img.omdbapi.com/?i=tt0295297&apikey=2bf5ee9"}
55
]

public/project/server/models/user.model.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ module.exports = function() {
1818
findFriendsById: findFriendsById,
1919
findUsersByIds: findUsersByIds,
2020
userLikesMovie: userLikesMovie,
21+
userDislikesMovie:userDislikesMovie,
2122
deleteUserFriend:deleteUserFriend,
2223
checkExistingUser:checkExistingUser
2324
};
@@ -121,7 +122,7 @@ module.exports = function() {
121122
for (var u in users[i].friends) {
122123
if (users[i].friends[u] == friendId) {
123124
users[i].friends.splice(u, 1);
124-
return findUsersByIds(Update(userId, users[i])._id)
125+
return findFriendsById(Update(userId, users[i])._id)
125126
}
126127
}
127128
}
@@ -145,4 +146,17 @@ module.exports = function() {
145146
}
146147
}
147148

149+
function userDislikesMovie(userId,imdbId){
150+
var user = FindById(userId);
151+
if(user){
152+
for(var m in user.favorites){
153+
if(user.favorites[m] == imdbId){
154+
user.favorites.splice(m,1);
155+
return Update(userId,user);
156+
}
157+
}
158+
159+
}
160+
}
161+
148162
}

0 commit comments

Comments
 (0)