Commit b5f0d91
Changed files (10)
app
assets
javascripts
controllers
config
spec
controllers
app/assets/javascripts/controllers/application_controller.js → app/assets/javascripts/controllers/application.js
File renamed without changes
app/assets/javascripts/controllers/video.js.coffee
@@ -0,0 +1,8 @@
+App.VideoController = Ember.ObjectController.extend(
+ isEditing: false
+ actions:
+ delete: ->
+ @get('model').destroyRecord().then =>
+ @transitionToRoute('videos')
+)
+
app/assets/javascripts/controllers/video_controller.js.coffee
@@ -1,4 +0,0 @@
-App.VideoController = Ember.ObjectController.extend(
- isEditing: false
-)
-
app/assets/javascripts/controllers/video_edit_controller.js.coffee → app/assets/javascripts/controllers/video_edit.js.coffee
File renamed without changes
app/assets/javascripts/controllers/videos_controller.js.coffee → app/assets/javascripts/controllers/videos.js.coffee
File renamed without changes
app/assets/javascripts/controllers/videos_index_controller.js.coffee → app/assets/javascripts/controllers/videos_index.js.coffee
File renamed without changes
app/assets/javascripts/templates/video.hbs
@@ -1,6 +1,7 @@
{{#unless isEditing}}
<h3>Video {{title}}</h3>
{{#link-to 'video.edit' this}}edit{{/link-to}}
+ <a href="#"{{action 'delete'}}>delete</a>
<p>{{description}}</p>
<a href="{{uri}}">{{uri}}</a>
{{/unless}}
app/controllers/videos_controller.rb
@@ -12,6 +12,11 @@ class VideosController < ApplicationController
@video.update(video_params)
end
+ def destroy
+ current_user.videos.find(params[:id]).destroy!
+ render json: {}
+ end
+
private
def video_params
config/routes.rb
@@ -1,6 +1,6 @@
Mocode::Application.routes.draw do
resources :sessions, only: [:new, :create, :destroy]
- resources :videos, only: [:index, :create, :update]
+ resources :videos, only: [:index, :create, :update, :destroy]
get 'dashboard', to: 'dashboard#index'
root 'dashboard#index'
# The priority is based upon order of creation: first created -> highest priority.
spec/controllers/videos_controller_spec.rb
@@ -2,6 +2,7 @@ require 'rails_helper'
describe VideosController do
let(:user_session) { create(:session) }
+ let(:user) { user_session.user }
before :each do
session[:user_session_id] = user_session.id
@@ -35,7 +36,7 @@ describe VideosController do
context "#update" do
render_views
- let(:video) { create(:video, user: user_session.user) }
+ let(:video) { create(:video, user: user) }
it 'updates the video' do
xhr :put, :update, id: video.id, video: { title: 'hello', description: 'blah', uri: 'http://youtu.be/blah' }
@@ -54,4 +55,14 @@ describe VideosController do
expect(json['video']['uri']).to eql("http://youtu.be/blah")
end
end
+
+ context "#destroy" do
+ let(:video) { create(:video, user: user) }
+
+ it 'deletes the video' do
+ xhr :delete, :destroy, id: video.id
+ expect(response).to be_success
+ expect(Video.find_by(id: video.id)).to be_nil
+ end
+ end
end