Skip to content

Commit

Permalink
Make sure FarmwareEnv is updated in the API after an update
Browse files Browse the repository at this point in the history
  • Loading branch information
connor rigby authored and ConnorRigby committed Aug 12, 2019
1 parent b93c31a commit 8f56045
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 8 deletions.
12 changes: 6 additions & 6 deletions farmbot_core/lib/farmbot_core/asset.ex
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ defmodule FarmbotCore.Asset do
:ok
end


## End Device

## Begin FarmEvent
Expand Down Expand Up @@ -375,11 +374,12 @@ defmodule FarmbotCore.Asset do

def new_farmware_env(params) do
key = params["key"] || params[:key]

fwe =
if key do
Repo.get_by(FarmwareEnv, key: key)
end || %FarmwareEnv{}
fwe = with key when is_binary(key) <- key,
[fwe | _] <- Repo.all(from fwe in FarmwareEnv, where: fwe.key == ^key) do
fwe
else
_ -> %FarmwareEnv{}
end

FarmwareEnv.changeset(fwe, params)
|> Repo.insert_or_update()
Expand Down
13 changes: 11 additions & 2 deletions farmbot_os/lib/farmbot_os/sys_calls.ex
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ defmodule FarmbotOS.SysCalls do
alias FarmbotCore.Asset.{
BoxLed,
Peripheral,
Private,
Sensor
}

Expand Down Expand Up @@ -126,8 +127,16 @@ defmodule FarmbotOS.SysCalls do

@impl true
def set_user_env(key, value) do
_ = Asset.new_farmware_env(%{key: key, value: value})
:ok
with {:ok, fwe} <- Asset.new_farmware_env(%{key: key, value: value}),
_ <- Private.mark_dirty!(fwe) do
:ok
else
{:error, reason} ->
{:error, inspect(reason)}

error ->
{:error, inspect(error)}
end
end

@impl true
Expand Down

0 comments on commit 8f56045

Please sign in to comment.