Current section

Files

Jump to
elixir_wechat lib http builder.ex
Raw

lib/http/builder.ex

defmodule WeChat.Builder do
@moduledoc false
require Logger
alias WeChat.{Http, APIGenerator}
def do_request(:get, %{uri_prefix: "cgi-bin/token"} = configs, module, opts) do
Logger.info("get access_token, configs: #{inspect(configs)}, module: #{inspect(module)}")
url = APIGenerator.splice_url(configs)
opts
|> Http.new(module)
|> Http.get_request(url)
end
def do_request(:get, configs, module, opts) do
Logger.info("get request, configs: #{inspect(configs)}")
url = APIGenerator.splice_url(configs)
opts
|> Http.new(module)
|> Http.get_request(url)
end
def do_request(:get, uri_supplement, configs, module, opts) when is_atom(uri_supplement) do
Logger.info("get request: #{uri_supplement}, configs: #{inspect(configs)}")
url = APIGenerator.splice_url(uri_supplement, configs)
opts
|> Http.new(module)
|> Http.get_request(url)
end
def do_request(:get, query, configs, module, opts) do
Logger.info("get request, configs: #{inspect(configs)}")
url = APIGenerator.splice_url(configs)
opts
|> Http.new(module)
|> Http.get_request(url, query)
end
def do_request(:post, body, configs, module, opts) do
Logger.info("post request, configs: #{inspect(configs)}, body: #{inspect(body)}")
url = APIGenerator.splice_url(configs)
opts
|> Http.new(module)
|> Http.get_request(url, body)
end
def do_request(:post_form, body, configs, module, opts) do
Logger.info("post_form request, configs: #{inspect(configs)}, body: #{inspect(body)}")
url = APIGenerator.splice_url(configs)
opts
|> Http.new(module)
|> Http.post_form_request(url, body)
end
def do_request(:get, uri_supplement, query, configs, module, opts)
when is_atom(uri_supplement) do
Logger.info("get request: #{uri_supplement}, configs: #{inspect(configs)}")
url = APIGenerator.splice_url(uri_supplement, configs)
opts
|> Http.new(module)
|> Http.get_request(url, query)
end
def do_request(:post, uri_supplement, body, configs, module, opts)
when is_atom(uri_supplement) do
Logger.info(
"post request: #{uri_supplement}, configs: #{inspect(configs)}, body: #{inspect(body)}"
)
url = APIGenerator.splice_url(uri_supplement, configs)
opts
|> Http.new(module)
|> Http.post_request(url, body)
end
def do_request(:post_form, uri_supplement, body, configs, module, opts)
when is_atom(uri_supplement) do
Logger.info(
"post_form request: #{uri_supplement}, configs: #{inspect(configs)}, body: #{
inspect(body)
}"
)
url = APIGenerator.splice_url(uri_supplement, configs)
opts
|> Http.new(module)
|> Http.post_form_request(url, body)
end
## prepare WeChat common apis for WeChat.Component using
def do_request_by_component(:get, authorizer_appid, configs, module, opts)
when is_bitstring(authorizer_appid) do
Logger.info(
"get request configs: #{inspect(configs)}, authorizer_appid: #{inspect(authorizer_appid)}"
)
url = APIGenerator.splice_url(configs)
opts
|> Http.new(module, authorizer_appid)
|> Http.get_request(url)
end
def do_request_by_component(:get, authorizer_appid, uri_supplement, configs, module, opts)
when is_bitstring(authorizer_appid) and is_atom(uri_supplement) do
Logger.info(
"get request uri: #{uri_supplement}, configs: #{inspect(configs)}, authorizer_appid: #{
inspect(authorizer_appid)
}"
)
url = APIGenerator.splice_url(uri_supplement, configs)
opts
|> Http.new(module, authorizer_appid)
|> Http.get_request(url)
end
def do_request_by_component(:get, authorizer_appid, query, configs, module, opts)
when is_bitstring(authorizer_appid) do
Logger.info(
"get request, configs: #{inspect(configs)}, authorizer_appid: #{inspect(authorizer_appid)}, query: #{
inspect(query)
}"
)
url = APIGenerator.splice_url(configs)
opts
|> Http.new(module, authorizer_appid)
|> Http.get_request(url, query)
end
def do_request_by_component(:post, authorizer_appid, body, configs, module, opts) do
Logger.info(
"post request, configs: #{inspect(configs)}, body: #{inspect(body)}, authorizer_appid: #{
inspect(authorizer_appid)
}"
)
url = APIGenerator.splice_url(configs)
opts
|> Http.new(module, authorizer_appid)
|> Http.post_request(url, body)
end
def do_request_by_component(:post_form, authorizer_appid, body, configs, module, opts) do
Logger.info(
"post_form request, configs: #{inspect(configs)}, body: #{inspect(body)}, authorizer_appid: #{
inspect(authorizer_appid)
}"
)
url = APIGenerator.splice_url(configs)
opts
|> Http.new(module, authorizer_appid)
|> Http.post_form_request(url, body)
end
def do_request_by_component(
:get,
authorizer_appid,
uri_supplement,
query,
configs,
module,
opts
)
when is_bitstring(authorizer_appid) and is_atom(uri_supplement) do
Logger.info(
"get request: #{uri_supplement}, configs: #{inspect(configs)}, authorizer_appid: #{
inspect(authorizer_appid)
}"
)
url = APIGenerator.splice_url(uri_supplement, configs)
opts
|> Http.new(module, authorizer_appid)
|> Http.get_request(url, query)
end
def do_request_by_component(
:post,
authorizer_appid,
uri_supplement,
body,
configs,
module,
opts
)
when is_bitstring(authorizer_appid) and is_atom(uri_supplement) do
Logger.info(
"post request uri: #{uri_supplement}, configs: #{inspect(configs)}, body: #{inspect(body)}, authorizer_appid: #{
inspect(authorizer_appid)
}"
)
url = APIGenerator.splice_url(uri_supplement, configs)
opts
|> Http.new(module, authorizer_appid)
|> Http.post_request(url, body)
end
def do_request_by_component(
:post_form,
authorizer_appid,
uri_supplement,
body,
configs,
module,
opts
)
when is_bitstring(authorizer_appid) and is_atom(uri_supplement) do
Logger.info(
"post_form request uri: #{uri_supplement}, configs: #{inspect(configs)}, body: #{
inspect(body)
}, authorizer_appid: #{inspect(authorizer_appid)}"
)
url = APIGenerator.splice_url(uri_supplement, configs)
opts
|> Http.new(module, authorizer_appid)
|> Http.post_form_request(url, body)
end
end
defmodule WeChat.Component.Builder do
@moduledoc false
require Logger
alias WeChat.{Http, APIGenerator}
def do_request(:post, body, configs, module, opts) do
url = APIGenerator.splice_url(configs)
opts
|> Http.new_component(module)
|> Http.post_request(url, body)
end
def do_request(:post, uri_supplement, body, configs, module, opts)
when is_atom(uri_supplement) do
url = APIGenerator.splice_url(uri_supplement, configs)
opts
|> Http.new_component(module)
|> Http.post_request(url, body)
end
end