summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2014-11-10 22:26:08 -0700
committermo khan <mo@mokhan.ca>2014-11-10 22:26:08 -0700
commit55baf2141ce9328639b26c1b430465e8aded8c55 (patch)
tree03c0809d8afc6ee5c7e95fc9923a5141c388eb2b
parentf3fec0d7b0f9b1fc166c2176532339f32f4f6450 (diff)
display list of failures.
-rw-r--r--app/assets/javascripts/controllers/failures.js.coffee1
-rw-r--r--app/assets/javascripts/models/failure.js.coffee6
-rw-r--r--app/assets/javascripts/router.js.coffee1
-rw-r--r--app/assets/javascripts/routes/failures.js.coffee3
-rw-r--r--app/assets/javascripts/templates/application.hbs1
-rw-r--r--app/assets/javascripts/templates/failures.hbs10
-rw-r--r--app/controllers/failures_controller.rb5
-rw-r--r--app/models/failure.rb1
-rw-r--r--app/views/environments/_environment.json.jbuilder2
-rw-r--r--app/views/failures/_failure.json.jbuilder6
-rw-r--r--app/views/failures/index.json.jbuilder3
-rw-r--r--config/routes.rb1
-rw-r--r--spec/controllers/environments_controller_spec.rb2
-rw-r--r--spec/controllers/failures_controller_spec.rb19
-rw-r--r--spec/factories.rb5
15 files changed, 63 insertions, 3 deletions
diff --git a/app/assets/javascripts/controllers/failures.js.coffee b/app/assets/javascripts/controllers/failures.js.coffee
new file mode 100644
index 0000000..967019a
--- /dev/null
+++ b/app/assets/javascripts/controllers/failures.js.coffee
@@ -0,0 +1 @@
+App.FailuresController = Ember.ArrayController.extend()
diff --git a/app/assets/javascripts/models/failure.js.coffee b/app/assets/javascripts/models/failure.js.coffee
new file mode 100644
index 0000000..cdc29d9
--- /dev/null
+++ b/app/assets/javascripts/models/failure.js.coffee
@@ -0,0 +1,6 @@
+App.Failure = DS.Model.extend
+ environment: DS.belongsTo('environment', async: true)
+ message: DS.attr('string')
+ hostname: DS.attr('string')
+ error_type: DS.attr('string')
+ backtrace: DS.attr('string')
diff --git a/app/assets/javascripts/router.js.coffee b/app/assets/javascripts/router.js.coffee
index 20b304b..531c5f3 100644
--- a/app/assets/javascripts/router.js.coffee
+++ b/app/assets/javascripts/router.js.coffee
@@ -15,3 +15,4 @@ App.Router.map ()->
@route 'environments', ->
@route 'new'
@resource 'environment', { path: ':environment_id' }
+ @resource 'failures'
diff --git a/app/assets/javascripts/routes/failures.js.coffee b/app/assets/javascripts/routes/failures.js.coffee
new file mode 100644
index 0000000..8974014
--- /dev/null
+++ b/app/assets/javascripts/routes/failures.js.coffee
@@ -0,0 +1,3 @@
+App.FailuresRoute = Ember.Route.extend
+ model: ->
+ @store.findAll('failure')
diff --git a/app/assets/javascripts/templates/application.hbs b/app/assets/javascripts/templates/application.hbs
index 698e92f..f94fc18 100644
--- a/app/assets/javascripts/templates/application.hbs
+++ b/app/assets/javascripts/templates/application.hbs
@@ -5,6 +5,7 @@
<li>{{#link-to 'index'}}Overview{{/link-to}}</li>
<li>{{#link-to 'videos'}}Videos{{/link-to}}</li>
<li>{{#link-to 'services'}}Services{{/link-to}}</li>
+ <li>{{#link-to 'failures'}}Failures{{/link-to}}</li>
</ul>
</div>
<div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
diff --git a/app/assets/javascripts/templates/failures.hbs b/app/assets/javascripts/templates/failures.hbs
new file mode 100644
index 0000000..c67d5a9
--- /dev/null
+++ b/app/assets/javascripts/templates/failures.hbs
@@ -0,0 +1,10 @@
+<h1>Failures</h1>
+{{#each failure in controller}}
+<div>
+ <p>{{failure.environment.name}}</p>
+ <p>{{failure.error_type}}</p>
+ <p>{{failure.message}}</p>
+ <p>{{failure.hostname}}</p>
+ <p>{{failure.backtrace}}</p>
+</div>
+{{/each}}
diff --git a/app/controllers/failures_controller.rb b/app/controllers/failures_controller.rb
new file mode 100644
index 0000000..6511df3
--- /dev/null
+++ b/app/controllers/failures_controller.rb
@@ -0,0 +1,5 @@
+class FailuresController < ApplicationController
+ def index
+ @failures = Failure.includes(:environment).all
+ end
+end
diff --git a/app/models/failure.rb b/app/models/failure.rb
index d56edbb..a5896c3 100644
--- a/app/models/failure.rb
+++ b/app/models/failure.rb
@@ -1,2 +1,3 @@
class Failure < ActiveRecord::Base
+ belongs_to :environment
end
diff --git a/app/views/environments/_environment.json.jbuilder b/app/views/environments/_environment.json.jbuilder
index d4e3b1a..fe35f04 100644
--- a/app/views/environments/_environment.json.jbuilder
+++ b/app/views/environments/_environment.json.jbuilder
@@ -1,4 +1,4 @@
json.id environment.id
json.name environment.name
json.apiKey environment.api_key
-json.service environment.service.id
+json.service environment.try(:service).try(:id)
diff --git a/app/views/failures/_failure.json.jbuilder b/app/views/failures/_failure.json.jbuilder
new file mode 100644
index 0000000..fa3418e
--- /dev/null
+++ b/app/views/failures/_failure.json.jbuilder
@@ -0,0 +1,6 @@
+json.id failure.id
+json.message failure.message
+json.hostname failure.hostname
+json.error_type failure.error_type
+json.backtrace failure.backtrace.join(' ')
+json.environment failure.environment.id
diff --git a/app/views/failures/index.json.jbuilder b/app/views/failures/index.json.jbuilder
new file mode 100644
index 0000000..36453e6
--- /dev/null
+++ b/app/views/failures/index.json.jbuilder
@@ -0,0 +1,3 @@
+json.failures @failures do |failure|
+ json.partial! failure, failure: failure
+end
diff --git a/config/routes.rb b/config/routes.rb
index c183714..a36b603 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -3,6 +3,7 @@ Erkell::Application.routes.draw do
resources :videos, only: [:index, :create, :update, :destroy]
resources :services, only: [:index, :create, :update, :destroy]
resources :environments, only: [:index, :show, :create, :destroy]
+ resources :failures, only: [:index]
get 'dashboard', to: 'dashboard#index'
diff --git a/spec/controllers/environments_controller_spec.rb b/spec/controllers/environments_controller_spec.rb
index 267a6a3..3e9dbac 100644
--- a/spec/controllers/environments_controller_spec.rb
+++ b/spec/controllers/environments_controller_spec.rb
@@ -19,6 +19,8 @@ describe EnvironmentsController do
end
describe "#show" do
+ render_views
+
let(:environment) { create(:environment) }
it 'returns info on the environment' do
diff --git a/spec/controllers/failures_controller_spec.rb b/spec/controllers/failures_controller_spec.rb
new file mode 100644
index 0000000..f406df1
--- /dev/null
+++ b/spec/controllers/failures_controller_spec.rb
@@ -0,0 +1,19 @@
+require 'rails_helper'
+
+describe FailuresController do
+ let(:user) { user_session.user }
+ let(:user_session) { create(:session) }
+
+ before :each do
+ session[:user_session_id] = user_session.id
+ end
+
+ describe "#index" do
+ let!(:failure) { create(:failure) }
+
+ it 'returns all failures' do
+ xhr :get, :index
+ expect(assigns(:failures)).to match_array([failure])
+ end
+ end
+end
diff --git a/spec/factories.rb b/spec/factories.rb
index 2713691..3af30fc 100644
--- a/spec/factories.rb
+++ b/spec/factories.rb
@@ -21,13 +21,14 @@ FactoryGirl.define do
end
factory :environment do
+ association :service
name Faker::Lorem.word
end
factory :failure do
- environment
+ association :environment
message "heck"
hostname "local"
- type ""
+ error_type "StandardError"
end
end