Update Asset commands for Sensors

pull/974/head
Connor Rigby 2019-06-12 12:07:58 -07:00
parent e9fca5515e
commit fc9f31cfa8
No known key found for this signature in database
GPG Key ID: 29A88B24B70456E0
3 changed files with 23 additions and 3 deletions

View File

@ -241,8 +241,19 @@ defmodule FarmbotCore.Asset do
## Begin Sensor
def get_sensor(args) do
Repo.get_by(Sensor, args)
def get_sensor(id) do
Repo.get_by(Sensor, id: id)
end
def new_sensor!(params) do
Sensor.changeset(%Sensor{}, params)
|> Repo.insert!()
end
def update_sensor!(sensor, params) do
sensor
|> Sensor.changeset(params)
|> Repo.update!()
end
## End Sensor

View File

@ -71,6 +71,15 @@ defmodule FarmbotCore.Asset.Command do
:ok
end
def update("Sensor", id, params) do
old = Asset.get_sensor(id)
if old,
do: Asset.update_sensor!(old, params),
else: Asset.new_sensor!(params)
:ok
end
# Catch-all use case:
def update(asset_kind, id, params) do
Logger.warn "Implement me: #{asset_kind}"

View File

@ -220,7 +220,7 @@ defmodule FarmbotOS.SysCalls do
end
def named_pin("Sensor", id) do
case Asset.get_sensor(id: id) do
case Asset.get_sensor(id) do
%{pin: pin} -> pin
nil -> {:error, "Could not find peripheral by id: #{id}"}
end