donwhit

donwhit

I have a nested map and I want to enter a password_hash value in a field.
map = %{
“city” => “Meadville”,
“credential” => %{
“email” => “don@mail”,
“password” => “qwerty”,
“password_hash” => “”
},
“firstname” => “Don”,
“lastname” => “Whitbeck”,
“phoneone” => “xxx-xxx-xxxx”,
“phonetwo” => “”,
“spousename” => “xxx”,
“state” => “xx”,
“streetaddress” => “xxxx”,
“username” => “donwhit”,
“zipcode” => “xxxxxx”
}

In iex everything works
iex> password = get_in(map, [“credential”, “password”])
iex > hash = Pbkdf2.hash_pwd_salt(password)
“$pbkdf2-sha512$160000$POD__etcetera”

Here is the puzzle.
when I compile this code and try to run this, I get errors.

In the browser I have
ArgumentError at GET /parents/new
errors were found at the given arguments:
:erlang.iolist_to_binary/1
1.nil

The offending code line is - hash = Pbkdf2.hash_pwd_salt(password)
in the following function (partly shown here)

def changeset(parent, attrs) do # Create a parent
password = get_in(attrs, [“credential”, “password”])
hash = Pbkdf2.hash_pwd_salt(password) # offending line of code

I have tried a dozen ways to analyze this error with no results.

Showing Posts 5 to 1

donwhit

donwhit OP

many thanks

al2o3cr

al2o3cr

A typical “new” action initializes a changeset with attributes of %{}; that would cause exactly this error message.

kokolegorille

kokolegorille

Hello,

You can wrap your code with ``` to make it more readable.

I have edited your last post, to show You the difference :slight_smile:

donwhit

donwhit OP

Thank you for your quick response, I input the data into a template using form_for.
in my function. I inspected the data in this function
def changeset(parent, attrs) do # Create a parent

IO.inspect(parent) # which produces output

%Coop.Schema.Parent{
__meta__: #Ecto.Schema.Metadata<:built, "parents">,
city: nil,
credential: #Ecto.Association.NotLoaded<association :credential is not loaded>,
current: "Y",
firstname: nil,
id: nil,
inserted_at: nil,
lastname: nil,
phoneone: nil,
phonetwo: nil,
spousename: nil,
state: nil,
streetaddress: nil,
title: nil,
updated_at: nil,
username: nil,
zipcode: nil
}

IO.inspect(attrs) # which produces output - note I only filled in the minimum required fields
%{
"city" => "",
"credential" => %{
"email" => "whit@mail",
"password" => "qwerty",
"password_hash" => ""
},
"firstname" => "Don",
"lastname" => "Whitbeck",
"phoneone" => "",
"phonetwo" => "",
"spousename" => "",
"state" => "",
"streetaddress" => "",
"username" => "donwhit",
"zipcode" => ""
}
password = get_in(attrs, ["credential", "password"]) # next line of code

IO.inspect(password) # which produces
"qwerty"
hauleth

hauleth

It seems that you send wrong data to the endpoint. There is no such field that you want and get_in/2 returns nil atom, which is not correct IO list.

— All posts loaded —

Where Next? Top

Trending in Questions Top

RSP87
I’m working on a project that simulates the bumbl example in the programming phoenix book. It acts almost like an email client. We have a...
New
nseaSeb
Hello, I know there is an approach for handling lists that allows for optimized traversal, but I can’t recall the specific method (somet...
New
brecabral
Documentation While reading the Scoped Routes section, I noticed that the documentation currently refers to a problem without explainin...
New
RemyXRenard
I’m seeing that a list inside a Kino.DataTable will be interpreted as a charlist, even if the Kino.configure() is set to charlists: :as_l...
New
velrest
So my question is quite simple and i have found no conclusive answer on forum, google or AI. Should we use :erlang.float for Integer to ...
New
samoloth
Hi, I’ve just set up an application with ash_authentication. There is only magic link strategy for now, so there is no confirmation add o...
New
asweet-confluent
I recently noticed that Elixir’s Logger defaults its primary log level to :debug when no :logger, :level application configuration is pre...
New

Other Trending Topics Top

JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
New
mhanberg
Hi everyone! The first release candidate for the Expert language server project is now available! We’ve published a press release detai...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Dmk
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
New

Latest on Elixir Forum

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews