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,4 +1,5 @@
class Api::ToolsController < ApplicationController
module Api
class ToolsController < Api::AbstractController
def create
raise "Not implemented yet"
end
@ -18,4 +19,5 @@ class Api::ToolsController < ApplicationController
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,6 +13,8 @@ FarmBot::Application.routes.draw do
resources :schedules, only: [:create, :update, :destroy, :index]
resources :peripherals, only: [:create, :destroy, :index]
resources :corpuses, only: [:index, :show]
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

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