Commit 59dc5a5
Changed files (8)
app
assets
javascripts
controllers
templates
controllers
models
views
services
config
spec
controllers
app/assets/javascripts/controllers/service.js.coffee
@@ -1,1 +1,5 @@
-App.ServiceController = Ember.ObjectController.extend()
+App.ServiceController = Ember.ObjectController.extend
+ actions:
+ deleteService: ->
+ @get('model').destroyRecord().then =>
+ @transitionToRoute('services')
app/assets/javascripts/controllers/services_new.js.coffee
@@ -5,6 +5,6 @@ App.ServicesNewController = Ember.Controller.extend
if App.Service.valid(fields)
service = @store.createRecord('service', @get('fields'))
service.save().then =>
- @transitionTo('services', service)
+ @transitionTo('services')
else
@set('showError', true)
app/assets/javascripts/templates/service.hbs
@@ -1,4 +1,6 @@
<h3>{{name}}</h3>
+<a href="#" {{action "deleteService"}}>delete</a>
{{#link-to 'service.environments' this}}environments{{/link-to}}
+
{{outlet}}
app/controllers/services_controller.rb
@@ -4,7 +4,12 @@ class ServicesController < ApplicationController
end
def create
- Service.create!(application_params)
+ @service = Service.create!(application_params)
+ end
+
+ def destroy
+ Service.find(params[:id]).destroy!
+ render json: {}
end
private
app/models/service.rb
@@ -1,3 +1,3 @@
class Service < ActiveRecord::Base
- has_many :environments
+ has_many :environments, dependent: :destroy
end
app/views/services/create.json.jbuilder
@@ -1,3 +1,3 @@
json.service do
- json.partial! service, service: @service
+ json.partial! @service, service: @service
end
config/routes.rb
@@ -1,7 +1,7 @@
Erkell::Application.routes.draw do
resources :sessions, only: [:new, :create, :destroy]
resources :videos, only: [:index, :create, :update, :destroy]
- resources :services, only: [:index, :create]
+ resources :services, only: [:index, :create, :destroy]
resources :environments, only: [:index, :show, :create, :destroy]
get 'dashboard', to: 'dashboard#index'
spec/controllers/services_controller_spec.rb
@@ -25,4 +25,13 @@ describe ServicesController do
expect(Service.last.name).to eql('blah')
end
end
+
+ describe "#destroy" do
+ let(:service) { create(:service) }
+
+ it 'deletes the services' do
+ xhr :delete, :destroy, id: service.id
+ expect(Service.count).to eql(0)
+ end
+ end
end