From: Christopher Date: Wed, 1 Apr 2020 22:15:55 +0000 (-0500) Subject: handle errors better X-Git-Url: http://git.entropealabs.com/?a=commitdiff_plain;h=40b0f3765cd9c2930d576b203e0e7ab3679f7129;p=wampex_client.git handle errors better --- diff --git a/lib/client.ex b/lib/client.ex index e7b2ae7..b9815b4 100644 --- a/lib/client.ex +++ b/lib/client.ex @@ -78,6 +78,11 @@ defmodule Wampex.Client do sync(name, Caller.call(call), timeout) end + @spec error(name :: module(), error :: Error.t()) :: :ok + def error(name, error) do + sync(name, Callee.invocation_error(error)) + end + @spec publish(name :: module, event :: Publish.t()) :: :ok def publish(name, event) do cast(name, Publisher.publish(event)) diff --git a/lib/client/session.ex b/lib/client/session.ex index 143bba7..8222a53 100644 --- a/lib/client/session.ex +++ b/lib/client/session.ex @@ -20,6 +20,7 @@ defmodule Wampex.Client.Session do @yield 70 @hello 1 @abort 3 + @error 8 @enforce_keys [:url, :roles] @@ -400,6 +401,7 @@ defmodule Wampex.Client.Session do defp maybe_inject_request_id(r_id, [@yield | _] = message), do: {r_id, message} defp maybe_inject_request_id(r_id, [@hello | _] = message), do: {r_id, message} defp maybe_inject_request_id(r_id, [@abort | _] = message), do: {r_id, message} + defp maybe_inject_request_id(r_id, [@error | _] = message), do: {r_id, message} defp maybe_inject_request_id(r_id, message) do request_id = get_request_id(r_id) diff --git a/mix.exs b/mix.exs index 2d2c415..f2c6e0c 100644 --- a/mix.exs +++ b/mix.exs @@ -47,7 +47,7 @@ defmodule Wampex.Client.MixProject do {:states_language, "~> 0.2"}, {:wampex, git: "https://gitlab.com/entropealabs/wampex.git", - tag: "591a03f9ed1585942afc043fe4a73beb7641e1e3"}, + tag: "c7bb690087f9f14832dcd4f222a8bd92154af78d"}, {:websockex, "~> 0.4.2"} ] end diff --git a/mix.lock b/mix.lock index 18203db..09755d8 100644 --- a/mix.lock +++ b/mix.lock @@ -24,7 +24,7 @@ "states_language": {:hex, :states_language, "0.2.8", "f9dfd3c0bd9a9d7bda25ef315f2d90944cd6b2022a7f3c403deb1d4ec451825e", [:mix], [{:elixpath, "~> 0.1.0", [hex: :elixpath, repo: "hexpm", optional: false]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: false]}, {:json_xema, "~> 0.4.0", [hex: :json_xema, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:xema, "~> 0.11.0", [hex: :xema, repo: "hexpm", optional: false]}], "hexpm", "a5231691e7cb37fe32dc7de54c2dc86d1d60e84c4f0379f3246e55be2a85ec78"}, "telemetry": {:hex, :telemetry, "0.4.1", "ae2718484892448a24470e6aa341bc847c3277bfb8d4e9289f7474d752c09c7f", [:rebar3], [], "hexpm", "4738382e36a0a9a2b6e25d67c960e40e1a2c95560b9f936d8e29de8cd858480f"}, "unicode_util_compat": {:hex, :unicode_util_compat, "0.4.1", "d869e4c68901dd9531385bb0c8c40444ebf624e60b6962d95952775cac5e90cd", [:rebar3], [], "hexpm", "1d1848c40487cdb0b30e8ed975e34e025860c02e419cb615d255849f3427439d"}, - "wampex": {:git, "https://gitlab.com/entropealabs/wampex.git", "591a03f9ed1585942afc043fe4a73beb7641e1e3", [tag: "591a03f9ed1585942afc043fe4a73beb7641e1e3"]}, + "wampex": {:git, "https://gitlab.com/entropealabs/wampex.git", "c7bb690087f9f14832dcd4f222a8bd92154af78d", [tag: "c7bb690087f9f14832dcd4f222a8bd92154af78d"]}, "websockex": {:hex, :websockex, "0.4.2", "9a3b7dc25655517ecd3f8ff7109a77fce94956096b942836cdcfbc7c86603ecc", [:mix], [], "hexpm", "803cd76e91544b56f0e655e36790be797fa6436db9224f7c303db9b9df2a3df4"}, "xema": {:hex, :xema, "0.11.0", "7b5118418633cffc27092110d02d4faeea938149dd3f6c64299e41e747067e80", [:mix], [{:conv_case, "~> 0.2.2", [hex: :conv_case, repo: "hexpm", optional: false]}, {:decimal, "~> 1.7", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "51491c9a953d65069d4b30aa2f70bc45ff99fd1bc3345bc72ce4e644d01ea14e"}, }