diff --git a/lib/ssb_bfe/encoder.ex b/lib/ssb_bfe/encoder.ex index d5406d3..31f3910 100644 --- a/lib/ssb_bfe/encoder.ex +++ b/lib/ssb_bfe/encoder.ex @@ -2,10 +2,14 @@ # - use the `where` conditional guard with e.g. `is_number` defmodule SsbBfe.Encoder do + defp extract_base64_data(str) do + base64_data = String.slice(str, 1, 44) + Base.decode64(base64_data) + end + def encode_blob(blob_id) do blob_tf_tag = SsbBfe.Types.get_blob_type(blob_id) - base64_data = String.slice(blob_id, 1, 44) - {:ok, decoded_base64_data} = Base.decode64(base64_data) + {:ok, decoded_base64_data} = extract_base64_data(blob_id) blob_tf_tag <> decoded_base64_data end @@ -19,4 +23,16 @@ defmodule SsbBfe.Encoder do {:ok, decoded_base64_data} = Base.decode64(base64_data) box_tf_tag <> decoded_base64_data end + + def encode_feed(feed_id) do + feed_tf_tag = SsbBfe.Types.get_feed_type(feed_id) + {:ok, decoded_base64_data} = extract_base64_data(feed_id) + feed_tf_tag <> decoded_base64_data + end + + def encode_msg(msg_id) do + msg_tf_tag = SsbBfe.Types.get_msg_type(msg_id) + {:ok, decoded_base64_data} = extract_base64_data(msg_id) + msg_tf_tag <> decoded_base64_data + end end