From 874d1fa1643244fa228ea5d41c9361c94f1b54a7 Mon Sep 17 00:00:00 2001 From: Lars Bahner Date: Sun, 23 Jul 2023 04:32:19 +0200 Subject: [PATCH] WIP: add response helpers --- lib/ex_ipfs/utils.ex | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lib/ex_ipfs/utils.ex b/lib/ex_ipfs/utils.ex index e2568e8..cbfab7d 100644 --- a/lib/ex_ipfs/utils.ex +++ b/lib/ex_ipfs/utils.ex @@ -241,4 +241,20 @@ defmodule ExIpfs.Utils do _ -> data end end + + def map_has_keys?(response, expected_keys) do + if Enum.all?(expected_keys, &Map.has_key?(response, &1)) do + response + else + raise ArgumentError, message: "Missing some of #{inspect(expected_keys)} in response from IPFS API" + end + end + + def map_get_key!(response, key) do + case response do + %{^key => value} -> value + _ -> raise ArgumentError, message: "Problem extracting #{inspect(key)} from response from IPFS API" + end + end + end