@@ -48,34 +48,37 @@ defmodule OpensourceChallengeWeb.SessionController do
48
48
client = Github.OAuth2 . get_token! ( code: authorization_code )
49
49
github_user = OAuth2.Client . get! ( client , "/user" ) . body
50
50
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
79
82
80
83
Logger . info ( "User #{ user . email } just logged in" )
81
84
0 commit comments