Packages
nerves_hub_link
2.0.0
2.12.0
2.11.1
2.11.0
retired
2.10.2
2.10.1
2.10.0
2.9.0
2.9.0-rc.3
2.9.0-rc.2
2.9.0-rc.1
2.8.1
2.8.0
2.7.3
2.7.2
2.7.0
retired
2.6.0
2.5.2
2.5.1
2.5.0
2.4.0
2.3.0
2.2.1
2.2.0
2.1.1
2.1.0
2.0.0
1.4.1
1.4.0
1.3.0
1.2.0
1.1.0
1.0.1
1.0.0
0.13.1
0.13.0
0.12.1
0.12.0
0.11.0
0.10.2
0.10.1
retired
0.10.0
retired
0.10.0-rc.0
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.2
0.8.1
0.8.0
0.7.6
Manage your Nerves fleet by connecting it to NervesHub
Current section
Files
Jump to
Current section
Files
lib/nerves_hub_link/message/update_info.ex
defmodule NervesHubLink.Message.UpdateInfo do
@moduledoc false
alias NervesHubLink.Message.FirmwareMetadata
defstruct [:firmware_url, :firmware_meta]
@typedoc """
Payload that gets dispatched down to devices upon an update
`firmware_url` and `firmware_meta` are only available
when `update_available` is true.
"""
@type t() :: %__MODULE__{
firmware_url: URI.t(),
firmware_meta: FirmwareMetadata.t()
}
@doc "Parse an update message from NervesHub"
@spec parse(map()) :: {:ok, t()} | {:error, :invalid_params}
def parse(%{"firmware_meta" => %{} = meta, "firmware_url" => url}) do
with {:ok, firmware_meta} <- FirmwareMetadata.parse(meta) do
{:ok,
%__MODULE__{
firmware_url: URI.parse(url),
firmware_meta: firmware_meta
}}
end
end
def parse(_), do: {:error, :invalid_params}
end