defmodule Dust.Protocol.Message do @doc "Build a hello message." def hello(capver, device_id, token) do %{type: "hello", capver: capver, device_id: device_id, token: token} end @doc "Build a hello response." def hello_response(capver_min, capver_max, your_capver, stores) do %{ type: "hello_response", capver_min: capver_min, capver_max: capver_max, your_capver: your_capver, stores: stores } end @doc "Build a join message." def join(store, last_store_seq) do %{type: "join", store: store, last_store_seq: last_store_seq} end @doc "Build a write message." def write(store, op, path, value, device_id, client_op_id) do %{ type: "write", store: store, op: to_string(op), path: path, value: value, device_id: device_id, client_op_id: client_op_id } end @doc "Build a canonical event." def event(store, store_seq, op, path, value, device_id, client_op_id) do %{ type: "event", store: store, store_seq: store_seq, op: to_string(op), path: path, value: value, device_id: device_id, client_op_id: client_op_id } end @doc "Build an error message." def error(code, message) do %{type: "error", code: code, message: message} end end