shahryarjb

shahryarjb

Cannot invoke remote function Regex.match?/2 inside guard

Hello, I wanted to create custom guard like this , but I have an error:

cannot invoke remote function Regex.match?/2 inside guard

guard:

defmodule TrangellHtmlSite.Blog.GuardCustom do
  defmacro amount_cheaker(number) do
    quote do
      Regex.match?(~r/^([+-]?[1-9]\d*|0)$/, unquote(number))
    end
  end
end


---

defmodule TrangellHtmlSiteWeb.PayController do
  use TrangellHtmlSiteWeb, :controller
  alias TrangellHtmlSite.Blog.ZarinPal
  import TrangellHtmlSite.Blog.GuardCustom, only: [amount_cheaker: 1]

  def check_pay(conn, %{"amount" => amount}) when amount_cheaker(amount) do
    conn = put_session(conn, :amount, amount)
    %{"{http://zarinpal.com/}Authority" => authority, "{http://zarinpal.com/}Status" =>  status} = ZarinPal.zarinpal_send(amount)
    check_status_send(conn, status, authority)
  end
end

How do I fix this?

Most Liked

radarjones

radarjones

You might want to read this.

https://hexdocs.pm/elixir/guards.html

NobbZ

NobbZ

You can’t. This is a limitation of the BEAM.

Where Next?

Popular in Questions Top

hariharasudhan94
I would like to know what is the best IDE for elixir development?
New
sergio
In Ruby, I can go: User.find_by(email: "foobar@email.com").update(email: "hello@email.com") How can I do something similar in Elixir? ...
New
dotdotdotPaul
Okay, I'm having a heck of a time trying to figure out how to best handle the validation of belongs_to associations in Ecto. I'm sure I'...
New
dokuzbir
Hello, I am trying to convert my lists to string without losing brackets.For start i have 3 map. They look like these buyer = %{ id: ...
New
Phillipp
Hey, I have a NanoPi-M3 and try to install Elixir on their Ubuntu image. I followed the Raspberry Pi installation instructions from the ...
New
chensan
I have a User schema with a :from_id field set to type :string: defmodule TweetBot.Repo.Migrations.CreateUsers do use Ecto.Migration ...
New
gonzofish
I’m currently trying to understand how to join three tables using Ecto. All the examples I’ve seen use 2, so maybe I’m just missing somet...
New
kostonstyle
Hi all I want to have a unix time, from the current time plus 1 hour. DateTime.now + 1 hour How to get it in elixir? Thanks
New
Qqwy
Original source of discussion: This topic on the Pragmatic Programmers' Functional Web Development with Elixir, OTP, and Phoenix forum. ...
New
lastday4you
I wanted to check elixir version in phoenix because i found that my elixir is 1.5 but when i use Enum.chunk_by it said the function is un...
New

Other popular topics Top

TunkShif
This post is an instruction guide to help you setup your Neovim for Elixir development from scratch. It includes general information on h...
273 38985 115
New
belgoros
I’m not a pro in using Regex and can’t figure out why the following behaviour happens, especially if we take into account the difference ...
New
sorentwo
Hello! tl;dr Announcing Oban, an Ecto based job processing library with a focus on reliability and historical observability. After spen...
977 41022 311
New
sergio
I couldn’t find any guides that worked well with Phoenix 1.6.0 and esbuild. I hope this helps people test the waters and eases you into t...
New
dokuzbir
Hello, I am trying to convert my lists to string without losing brackets.For start i have 3 map. They look like these buyer = %{ id: ...
New
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New
fireproofsocks
Forgive me if this is obvious, but how does one delete a database record WITHOUT selecting it first? https://hexdocs.pm/ecto/Ecto.Repo.h...
New
Jim
As a follow up to my earlier question: I have the code compiling and running but not getting a successful login from the rest server. ...
New
Nvim
Elixir appears to be a superior language to Python. I don’t see any advantage of Python over Elixir. Are there any?
New
senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New

We're in Beta

About us Mission Statement