Skip to content

Commit

Permalink
Add user to existent not registered company (#105)
Browse files Browse the repository at this point in the history
  • Loading branch information
BrunoMartins11 authored Jan 31, 2021
1 parent a1aae7c commit e5ea495
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 1 deletion.
5 changes: 4 additions & 1 deletion lib/infin/companies.ex
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,10 @@ defmodule Infin.Companies do
"""
def get_company_by_nif!(nif), do: Repo.get_by!(Company, nif: nif)

def get_company_by_nif(nif), do: Repo.get_by(Company, nif: nif)
def get_company_by_nif(nif) do
query = from(c in Company, where: c.nif == ^nif, preload: :users)
Repo.one(query)
end

@doc """
Creates a company.
Expand Down
20 changes: 20 additions & 0 deletions lib/infin_web/controllers/user_registration_controller.ex
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,33 @@ defmodule InfinWeb.UserRegistrationController do
alias Infin.Accounts
alias Infin.Accounts.User
alias InfinWeb.UserAuth
alias Infin.Companies

def new(conn, _params) do
changeset = Accounts.change_user_registration(%User{})
render(conn, "new.html", changeset: changeset)
end

def create(conn, %{"user" => user_params}) do
company = Companies.get_company_by_nif(user_params["company"]["nif"])
if (not is_nil(company)) and company.users == [] do
user_params = Map.put(user_params, "company_id", company.id)
case Accounts.add_user(user_params) do
{:ok, user} ->
{:ok, _} =
Accounts.deliver_user_confirmation_instructions(
user,
&Routes.user_confirmation_url(conn, :confirm, &1)
)

conn
|> put_flash(:info, "User created successfully.")
|> UserAuth.log_in_user(user)

{:error, %Ecto.Changeset{} = changeset} ->
render(conn, "new.html", changeset: changeset)
end
end
case Accounts.register_user(user_params) do
{:ok, user} ->
{:ok, _} =
Expand Down

0 comments on commit e5ea495

Please sign in to comment.