75 lines
2.2 KiB
Elixir
75 lines
2.2 KiB
Elixir
# Script for populating the database. You can run it as:
|
|
#
|
|
# mix run priv/repo/seeds.exs
|
|
#
|
|
# Inside the script, you can read and write to any of your
|
|
# repositories directly:
|
|
#
|
|
# Shift73k.Repo.insert!(%Shift73k.SomeSchema{})
|
|
#
|
|
# We recommend using the bang functions (`insert!`, `update!`
|
|
# and so on) as they will fail if something goes wrong.
|
|
|
|
alias Shift73k.Repo
|
|
alias Shift73k.Accounts
|
|
alias Shift73k.Accounts.User
|
|
|
|
############################################################################
|
|
## INSERTING MOCK USER DATA
|
|
|
|
{:ok, _admin} =
|
|
Accounts.register_user(%{
|
|
email: "admin@company.com",
|
|
password: "123456789abC",
|
|
password_confirmation: "123456789abC",
|
|
role: Accounts.registration_role()
|
|
})
|
|
|
|
{:ok, _user_1} =
|
|
Accounts.register_user(%{
|
|
email: "user1@company.com",
|
|
password: "123456789abC",
|
|
password_confirmation: "123456789abC",
|
|
role: Accounts.registration_role()
|
|
})
|
|
|
|
{:ok, _user_2} =
|
|
Accounts.register_user(%{
|
|
email: "user2@company.com",
|
|
password: "123456789abC",
|
|
password_confirmation: "123456789abC",
|
|
role: Accounts.registration_role()
|
|
})
|
|
|
|
# if Mix.env() == :dev do
|
|
this_path = Path.dirname(__ENV__.file)
|
|
|
|
users_json = Path.join(this_path, "MOCK_DATA_users.json")
|
|
|
|
# count_to_take = 15
|
|
|
|
mock_users = users_json |> File.read!() |> Jason.decode!()
|
|
# |> Enum.take_random(count_to_take)
|
|
|
|
mock_users = ~s([
|
|
{"email":"adam@73k.us","password":"adamadamA1","role":"admin","inserted_at":"2018-12-14T01:01:01Z","confirmed_at":true},
|
|
{"email":"karen@73k.us","password":"karenkarenA1","role":"manager","inserted_at":"2018-12-14T01:06:01Z","confirmed_at":true},
|
|
{"email":"kat@73k.us","password":"katkatA1","role":"manager","inserted_at":"2018-12-14T01:06:01Z","confirmed_at":true}
|
|
]) |> Jason.decode!() |> Enum.concat(mock_users)
|
|
|
|
mock_users =
|
|
Enum.map(mock_users, fn e ->
|
|
add_dt = NaiveDateTime.from_iso8601!(e["inserted_at"])
|
|
|
|
%{
|
|
email: e["email"],
|
|
role: String.to_existing_atom(e["role"]),
|
|
hashed_password: Bcrypt.hash_pwd_salt(e["password"]),
|
|
inserted_at: add_dt,
|
|
updated_at: add_dt,
|
|
confirmed_at: (e["confirmed_at"] && NaiveDateTime.add(add_dt, 300, :second)) || nil
|
|
}
|
|
end)
|
|
|
|
Repo.insert_all(User, mock_users)
|
|
# end
|