Packages
ex_gram
0.5.0-rc4
0.67.0
0.66.0
0.65.0
0.64.0
0.63.0
0.62.0
0.61.0
0.60.0
0.58.0
0.57.0
0.56.1
0.56.0
0.55.1
0.55.0
0.54.0
0.53.0
0.52.2
0.52.1
0.52.0
0.51.1
0.51.0
0.50.2
0.50.1
0.50.0
0.41.0
0.40.0
0.34.0
0.33.0
0.32.0
0.31.0
0.30.0
0.29.0
0.28.0
0.27.0
0.26.0
0.25.0
0.24.1
0.24.0
0.23.0
0.22.0
0.21.0
0.20.0
0.15.0
0.14.0
0.13.0
0.12.0
0.11.0
0.10.0
0.9.0
0.8.1
0.8.0
0.7.1
0.7.0
0.6.2
0.6.1
0.6.0
0.5.0
0.5.0-rc6
0.5.0-rc5
0.5.0-rc4
0.5.0-rc3
0.5.0-rc2
Telegram Bot API low level and framework
Current section
Files
Jump to
Current section
Files
lib/ex_gram/middleware.ex
defmodule ExGram.Middleware do
@moduledoc """
Allow creating middlewares
"""
@type opts :: binary | tuple | atom | integer | float | [opts] | %{opts => opts}
@callback init(opts) :: opts
@optional_callbacks init: 1
@callback call(ExGram.Cnt.t(), opts) :: ExGram.Cnt.t()
defmacro __using__(_opts) do
quote do
import ExGram.Middleware, only: [add_extra: 2, add_extra: 3]
@behaviour ExGram.Middleware
def init(opts), do: opts
defoverridable ExGram.Middleware
end
end
def add_extra(%ExGram.Cnt{extra: extra} = cnt, values) when is_map(values) do
%{cnt | extra: Map.merge(extra, values)}
end
def add_extra(%ExGram.Cnt{extra: extra} = cnt, key, value) do
%{cnt | extra: Map.put(extra, key, value)}
end
end