Stub out Garden and PlantTemplate

pull/796/head
Rick Carlino 2018-04-18 16:50:20 -05:00
parent 69c24994c3
commit 147262fcbe
8 changed files with 93 additions and 11 deletions

View File

@ -0,0 +1,25 @@
module Api
class GardensController < Api::AbstractController
def index
render json: current_device.gardens
end
def create
mutate Gardens::Create.run(raw_json, device: current_device)
end
def update
mutate Gardens::Update.run(raw_json, garden: garden, device: current_device)
end
def destroy
render json: garden.destroy! && ""
end
private
def garden
@garden ||= current_device.gardens.find(params[:id])
end
end
end

View File

@ -0,0 +1,13 @@
module Gardens
class Create < Mutations::Command
required do
end
optional do
end
def execute
raise "NOT IMPLEMENTED"
end
end
end

View File

@ -0,0 +1,13 @@
module Gardens
class Create < Mutations::Command
required do
end
optional do
end
def execute
raise "NOT IMPLEMENTED"
end
end
end

View File

@ -8,6 +8,7 @@ require "rails/all"
Bundler.require(:default, Rails.env)
module FarmBot
class Application < Rails::Application
Delayed::Worker.max_attempts = 4
config.after_initialize do
Bullet.enable = true
Bullet.console = true

View File

@ -15,6 +15,7 @@ FarmBot::Application.routes.draw do
tools: [:create, :destroy, :index, :show, :update],
webcam_feeds: [:create, :destroy, :index, :show, :update],
device_configs: [:create, :destroy, :index, :update],
gardens: [:create, :destroy, :index, :update],
pin_bindings: [:create, :destroy, :index, :show, :update]
}.to_a.map { |(name, only)| resources name, only: only }

View File

@ -1,10 +0,0 @@
class CreateGardens < ActiveRecord::Migration[5.1]
def change
create_table :gardens do |t|
t.string :name, null: false
t.references :device, null: false
t.timestamps
end
add_reference :points, :garden, index: true
end
end

View File

@ -0,0 +1,20 @@
class CreateGardens < ActiveRecord::Migration[5.1]
def change
create_table :gardens do |t|
t.string :name, null: false
t.references :device, null: false
t.timestamps
end
create_table :plant_templates do |t|
t.references :garden, null: false
t.references :device, null: false
t.float "radius", default: 25.0, null: false
t.float "x", null: false
t.float "y", null: false
t.float "z", default: 0.0, null: false
t.string "name", default: "untitled", null: false
t.string "openfarm_slug", limit: 280, default: "null", null: false
end
end
end

View File

@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 20180417123713) do
ActiveRecord::Schema.define(version: 20180418205557) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@ -201,6 +201,14 @@ ActiveRecord::Schema.define(version: 20180417123713) do
t.index ["device_id"], name: "index_firmware_configs_on_device_id"
end
create_table "gardens", force: :cascade do |t|
t.string "name", null: false
t.bigint "device_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["device_id"], name: "index_gardens_on_device_id"
end
create_table "global_configs", force: :cascade do |t|
t.string "key"
t.text "value"
@ -293,6 +301,17 @@ ActiveRecord::Schema.define(version: 20180417123713) do
t.index ["sequence_id"], name: "index_pin_bindings_on_sequence_id"
end
create_table "plant_templates", force: :cascade do |t|
t.float "radius", default: 25.0, null: false
t.float "x", null: false
t.float "y", null: false
t.float "z", default: 0.0, null: false
t.bigint "garden_id", null: false
t.string "name", default: "untitled", null: false
t.string "openfarm_slug", limit: 280, default: "50", null: false
t.index ["garden_id"], name: "index_plant_templates_on_garden_id"
end
create_table "points", id: :serial, force: :cascade do |t|
t.float "radius", default: 25.0, null: false
t.float "x", null: false