Move tasks folder back into lib

pull/300/head
Rick Carlino 2016-11-30 09:22:19 -06:00
parent c46f0602a9
commit 6e07a23cfd
7 changed files with 100 additions and 24 deletions

View File

@ -0,0 +1,31 @@
module Api
class ToolBaysController < Api::AbstractController
def show
render json: tool_bay
end
def index
render json: tool_bays
end
def update
mutate ToolBays::Update.run(tool_bay_params)
end
private
def tool_bay
@tool_bay ||= tool_bays.find(params[:id])
end
def tool_bay_params
{ device: current_device,
tool_bay: tool_bay,
name: params[:name] }
end
def tool_bays
@tool_bays ||= current_device.tool_bays
end
end
end

View File

@ -1,21 +1,23 @@
class Api::ToolsController < ApplicationController
def create
raise "Not implemented yet"
module Api
class ToolsController < Api::AbstractController
def create
raise "Not implemented yet"
end
def show
raise "Not implemented yet"
end
def index
raise "Not implemented yet"
end
def update
raise "Not implemented yet"
end
def destroy
raise "Not implemented yet"
end
end
def show
raise "Not implemented yet"
end
def index
raise "Not implemented yet"
end
def update
raise "Not implemented yet"
end
def destroy
raise "Not implemented yet"
end
end
end

View File

@ -5,10 +5,11 @@ class DashboardController < ApplicationController
# support HTML5 push state routing.
# If anyone knows a better way to support push state routing, please let me
# know.
THE_FRONTEND_APP = File.read("public/app/index.html") # Cache in memory.
THE_FRONTEND_APP = File.read("public/app/index.html").html_safe # Cache in memory.
ACME_SECRET = ENV["ACME_SECRET"]
def index
render html: THE_FRONTEND_APP.html_safe, layout: false
render html: THE_FRONTEND_APP, layout: false
end
# This endpoint gets hit by Certbot / Let's Encrypt when its time to verify

View File

@ -0,0 +1,22 @@
module ToolBays
class Update < Mutations::Command
required do
model :device, class: Device
model :tool_bay, class: ToolBay
end
optional do
string :name
end
def execute
tool_bay.update_attributes!(update_params) && tool_bay
end
private
def update_params
inputs.except(:device, :tool_bay)
end
end
end

View File

@ -13,7 +13,9 @@ FarmBot::Application.routes.draw do
resources :schedules, only: [:create, :update, :destroy, :index]
resources :peripherals, only: [:create, :destroy, :index]
resources :corpuses, only: [:index, :show]
# resources :tools, only: [:create, :show, :index, :destroy, :update]
resources :tool_bays, only: [:show, :index, :update]
# resources :tool_slots, only: [:create, :show, :index, :destroy, :update]
# resources :tools, only: [:create, :show, :index, :destroy, :update]
end
devise_for :users

View File

@ -1,4 +1,4 @@
require_relative '../key_gen'
require_relative '../../app/lib/key_gen'
namespace :keys do
desc "Reset RSA keys used for signing / verifying tokens."

View File

@ -0,0 +1,18 @@
require 'spec_helper'
describe Api::ToolBaysController do
include Devise::Test::ControllerHelpers
describe '#update' do
let(:user) { FactoryGirl.create(:user) }
let(:tool_bay) { FactoryGirl.create(:tool_bay, device: user.device) }
it 'updates a tool bay' do
sign_in user
payload = { name: "Fooo", id: tool_bay.id }
patch :update, params: payload
expect(tool_bay.name).not_to eq(payload[:name])
expect(response.status).to eq(200)
expect(tool_bay.name).to eq(payload[:name])
expect(json[:name]).to eq(payload[:name])
end
end
end