Size: a a a

2020 December 19

AL

Anton Lapshin in pro.elixir
ну или да, вообще свести всё к валидациям через ecto
источник

AL

Anton Lapshin in pro.elixir
да по-всякому короче можно
источник

AL

Anton Lapshin in pro.elixir
тем более ecto changeset можно по идее и без привязки к схеме из базы юзать спокойно
источник

AL

Anton Lapshin in pro.elixir
если бы это всё так просто копипастилось ещё, я ж тем более только примерно накидываю куда копать
источник

AL

Anton Lapshin in pro.elixir
не вижу ничего плохого в этом
источник

AL

Anton Lapshin in pro.elixir
а то ведём себя как в филиале киберфорума
источник

SK

Suren Kirakosyan in pro.elixir
Anton Lapshin
def check_password(nil), do: "password blank"
def check_password(pwd), do: # тут проверочки всякие по паролю
# .....
def check_email(nil), do: "email blank"
def check_email(email), do: # проверочки
# .....

def check(email, uname, pwd) do
 result = check_password(pwd) ++ check_email(email) ++ check_username(uname)
 case result do
   [] -> :ok
   errors -> Enum.join(errors, "\n")
 end
end
как вариант
Ясно, спасибо большое.
источник

SK

Suren Kirakosyan in pro.elixir
Anastasiya Dyachenko
Почему не ecto changeset то тогда? Вопрос же про него был
Я сейчас снова с экто вожусь.
источник

AD

Anastasiya Dyachenko in pro.elixir
Anton Lapshin
не вижу ничего плохого в этом
Я не вижу плохого тоже, но это уже не первый год. Извиняюсь ещё раз
источник

AD

Anastasiya Dyachenko in pro.elixir
Хорошо, не хочу обижать, удалила
источник

SK

Suren Kirakosyan in pro.elixir
Anastasiya Dyachenko
Хорошо, не хочу обижать, удалила
Я вам очень признателен, не в этом вопрос, просто самому обидно, что оставил такое впечатление.🥺
источник

AB

Alex Bubnov in pro.elixir
Suren Kirakosyan
Привет всем. Кто может помочь с рефакторингом этого кода?

 @username_regex ~r/^[[:alnum:]]+(\.[[:alnum:]]+)?$/
 @mail_regex ~r/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/
 defp check_username_or_email_and_password_on_blink(username, email, password) do
   IO.inspect(username)
   IO.inspect(email)
   IO.inspect(password)

   cond do
     username == nil && email == nil && password == nil ->
       "Please type username, email and password"

     username == nil && email == nil && String.length(password) <= 2 ->
       "Please type username and email. Password is shorter"

     username == nil && email == nil && String.length(password) >= 11 ->
       "Please type username and email. Password is longer"

     username == nil && email == nil && password != nil ->
       "Please type username, email."

     username != nil && String.length(username) <= 2 && email == nil &&
         String.length(password) <= 2 ->
       "Username shorter. Password shorter"

     username != nil && String.length(username) >= 11 && email == nil &&
         String.length(password) <= 2 ->
       "Username longer. Password shorter"

     username != nil && String.length(username) >= 11 && email == nil &&
         String.length(password) >= 11 ->
       "Username longer. Password longer"

     username == nil && String.length(email) <= 2 && String.length(password) <= 2 ->
       "Email shorter. Password shorter"

     username == nil && String.length(email) >= 11 && String.length(password) <= 2 ->
       "Email longer. Password shorter"

     username == nil && String.length(email) >= 11 && String.length(password) >= 11 ->
       "Email longer. Password longer"

     username != nil && Regex.match?(@username_regex, username) == false && email == nil &&
         String.length(password) <= 2 ->
       "Wrong username format. Password shorter"

     username != nil && Regex.match?(@username_regex, username) == false && email == nil &&
         String.length(password) >= 11 ->
       "Wrong username format. Password longer"

     username != nil && Regex.match?(@username_regex, username) == false && email == nil &&
       String.length(password) >= 3 && String.length(password) <= 10 ->
       "Wrong username format"

     email != nil && Regex.match?(@mail_regex, email) == false && username == nil &&
         String.length(password) <= 2 ->
       "Wrong email format. Password shorter"

     email != nil && Regex.match?(@mail_regex, email) == false && username == nil &&
         String.length(password) >= 11 ->
       "Wrong email format. Password longer"

     email != nil && Regex.match?(@mail_regex, email) == false && username == nil &&
       String.length(password) >= 3 && String.length(password) <= 10 ->
       "Wrong email format"

     password == nil ->
       "Please type password"

     String.length(password) <= 2 ->
       "Password shorter"

     String.length(password) >= 11 ->
       "Password longer"

     username != nil && Regex.match?(@username_regex, username) == true && email == nil &&
       String.length(password) >= 3 && String.length(password) <= 10 ->
       %{username: username}

     username == nil && Regex.match?(@mail_regex, email) == true && String.length(password) >= 3 &&
         String.length(password) <= 10 ->
       %{email: email}

     true ->
       :error
   end
 end
У тебя ограничение на максимальную длину пароля?..
источник

SK

Suren Kirakosyan in pro.elixir
Alex Bubnov
У тебя ограничение на максимальную длину пароля?..
Да, но это условное ограничение.
источник

SK

Suren Kirakosyan in pro.elixir
Вообщем ограничение нужно ставить в любом случаи, даже для URL, потому что кому-то может в ум прийти отправить запрос с длиной URL в несколько сто тысяч символов, а это сервер скорее не обработает.
источник

PT

Pavel Tsiukhtsiayeu in pro.elixir
Password longer => Password is too short
источник

T

TGG in pro.elixir
Добрый вечер.
Есть какой-то гайд по правильному стилю в Элексире?
Ну, как оформлять мэйн, как правильно писать отступы и места переменных и прочее.
источник

AN

Alexey Novoselov in pro.elixir
TGG
Добрый вечер.
Есть какой-то гайд по правильному стилю в Элексире?
Ну, как оформлять мэйн, как правильно писать отступы и места переменных и прочее.
mix format почти все по гайдам сделает
источник

T

TGG in pro.elixir
Alexey Novoselov
mix format почти все по гайдам сделает
Всё же хочется посмотреть, ибо "на mix надейся, а сам не плошай..."
источник

SK

Suren Kirakosyan in pro.elixir
TGG
Добрый вечер.
Есть какой-то гайд по правильному стилю в Элексире?
Ну, как оформлять мэйн, как правильно писать отступы и места переменных и прочее.
источник

T

TGG in pro.elixir
Спасибо.
источник