@@ -196,4 +196,44 @@ export default class LibraryModel {
196196 return deferred . promise
197197 }
198198
199+ addCommentToMovie ( movieId : string , comment : any ) {
200+ let deferred = Q . defer ( )
201+ comment . date = new Date ( ) . getTime ( )
202+ this . commentModel . create ( comment , ( err , resp ) => {
203+ if ( err ) {
204+ deferred . reject ( err )
205+ } else {
206+ // add comment to relevant user and library
207+ const update = { $push : { comments : resp . _id } }
208+ Q . all ( [
209+ this . userModel . findByIdAndUpdate ( comment . userId , update ) ,
210+ this . libraryModel . findByIdAndUpdate ( comment . target , update )
211+ ] ) . then ( success => {
212+ deferred . resolve ( resp )
213+ } , error => { deferred . reject ( error ) } )
214+ }
215+ } )
216+ return deferred . promise
217+ }
218+
219+ editCommentForLibrary ( movieId : string , commentId : string , commentText : string ) {
220+ let deferred = Q . defer ( )
221+ const date = new Date ( ) . getTime ( )
222+ this . commentModel . findByIdAndUpdate ( commentId , { comment : commentText , date } , { new : true } , ( err , resp ) => {
223+ if ( err ) {
224+ deferred . reject ( err )
225+ } else {
226+ // add comment to relevant user and library
227+ const update = { $push : { comments : resp . _id } }
228+ Q . all ( [
229+ this . userModel . findByIdAndUpdate ( resp . userId , update ) ,
230+ this . libraryModel . findByIdAndUpdate ( resp . target , update )
231+ ] ) . then ( success => {
232+ deferred . resolve ( resp )
233+ } , error => { deferred . reject ( error ) } )
234+ }
235+ } )
236+ return deferred . promise
237+ }
238+
199239}
0 commit comments