Commit 55baf21
Changed files (15)
app
assets
javascripts
controllers
models
routes
templates
controllers
models
views
environments
config
spec
app/assets/javascripts/controllers/failures.js.coffee
@@ -0,0 +1,1 @@
+App.FailuresController = Ember.ArrayController.extend()
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')
app/assets/javascripts/routes/failures.js.coffee
@@ -0,0 +1,3 @@
+App.FailuresRoute = Ember.Route.extend
+ model: ->
+ @store.findAll('failure')
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">
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}}
app/assets/javascripts/router.js.coffee
@@ -15,3 +15,4 @@ App.Router.map ()->
@route 'environments', ->
@route 'new'
@resource 'environment', { path: ':environment_id' }
+ @resource 'failures'
app/controllers/failures_controller.rb
@@ -0,0 +1,5 @@
+class FailuresController < ApplicationController
+ def index
+ @failures = Failure.includes(:environment).all
+ end
+end
app/models/failure.rb
@@ -1,2 +1,3 @@
class Failure < ActiveRecord::Base
+ belongs_to :environment
end
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)
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
app/views/failures/index.json.jbuilder
@@ -0,0 +1,3 @@
+json.failures @failures do |failure|
+ json.partial! failure, failure: failure
+end
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'
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
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
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