Skip to content
This repository was archived by the owner on Jun 30, 2023. It is now read-only.

Commit b083286

Browse files
committed
Ensure correct setting of user variable
1 parent 19aec0a commit b083286

File tree

1 file changed

+31
-28
lines changed

1 file changed

+31
-28
lines changed

lib/opensource_challenge_web/controllers/session_controller.ex

Lines changed: 31 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -48,34 +48,37 @@ defmodule OpensourceChallengeWeb.SessionController do
4848
client = Github.OAuth2.get_token!(code: authorization_code)
4949
github_user = OAuth2.Client.get!(client, "/user").body
5050

51-
user = Repo.get_by(User, github_login: github_user["login"])
52-
53-
unless user do
54-
email =
55-
case github_user["email"] do
56-
nil ->
57-
OAuth2.Client.get!(client, "/user/emails").body
58-
|> Enum.find(fn email -> email["primary"] end)
59-
|> Map.fetch!("email")
60-
61-
email ->
62-
email
63-
end
64-
65-
Repo.insert!(
66-
User.from_github_changeset(%User{}, %{
67-
name: github_user["name"] || github_user["login"],
68-
github_login: github_user["login"],
69-
email: email,
70-
company: github_user["company"],
71-
picture: github_user["avatar_url"],
72-
website: github_user["blog"] || github_user["html_url"]
73-
})
74-
)
75-
76-
user = Repo.get_by(User, github_login: github_user["login"])
77-
Logger.info("User #{user.email} just created")
78-
end
51+
user =
52+
case Repo.get_by(User, github_login: github_user["login"]) do
53+
nil ->
54+
email =
55+
case github_user["email"] do
56+
nil ->
57+
OAuth2.Client.get!(client, "/user/emails").body
58+
|> Enum.find(fn email -> email["primary"] end)
59+
|> Map.fetch!("email")
60+
61+
email ->
62+
email
63+
end
64+
65+
Repo.insert!(
66+
User.from_github_changeset(%User{}, %{
67+
name: github_user["name"] || github_user["login"],
68+
github_login: github_user["login"],
69+
email: email,
70+
company: github_user["company"],
71+
picture: github_user["avatar_url"],
72+
website: github_user["blog"] || github_user["html_url"]
73+
})
74+
)
75+
76+
user = Repo.get_by(User, github_login: github_user["login"])
77+
Logger.info("User #{user.email} just created")
78+
79+
user ->
80+
user
81+
end
7982

8083
Logger.info("User #{user.email} just logged in")
8184

0 commit comments

Comments
 (0)