diff options
| author | mo khan <mo@mokhan.ca> | 2014-11-10 22:26:08 -0700 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2014-11-10 22:26:08 -0700 |
| commit | 55baf2141ce9328639b26c1b430465e8aded8c55 (patch) | |
| tree | 03c0809d8afc6ee5c7e95fc9923a5141c388eb2b | |
| parent | f3fec0d7b0f9b1fc166c2176532339f32f4f6450 (diff) | |
display list of failures.
| -rw-r--r-- | app/assets/javascripts/controllers/failures.js.coffee | 1 | ||||
| -rw-r--r-- | app/assets/javascripts/models/failure.js.coffee | 6 | ||||
| -rw-r--r-- | app/assets/javascripts/router.js.coffee | 1 | ||||
| -rw-r--r-- | app/assets/javascripts/routes/failures.js.coffee | 3 | ||||
| -rw-r--r-- | app/assets/javascripts/templates/application.hbs | 1 | ||||
| -rw-r--r-- | app/assets/javascripts/templates/failures.hbs | 10 | ||||
| -rw-r--r-- | app/controllers/failures_controller.rb | 5 | ||||
| -rw-r--r-- | app/models/failure.rb | 1 | ||||
| -rw-r--r-- | app/views/environments/_environment.json.jbuilder | 2 | ||||
| -rw-r--r-- | app/views/failures/_failure.json.jbuilder | 6 | ||||
| -rw-r--r-- | app/views/failures/index.json.jbuilder | 3 | ||||
| -rw-r--r-- | config/routes.rb | 1 | ||||
| -rw-r--r-- | spec/controllers/environments_controller_spec.rb | 2 | ||||
| -rw-r--r-- | spec/controllers/failures_controller_spec.rb | 19 | ||||
| -rw-r--r-- | spec/factories.rb | 5 |
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 |
