mirror of
https://github.com/freckle/yesod-auth-oauth2.git
synced 2026-02-25 00:57:51 +01:00
Include public_email key in credsExtra for Github
This commit is contained in:
parent
29b4a7f4e7
commit
f412b7c8f2
@ -38,6 +38,7 @@ data GithubUser = GithubUser
|
|||||||
, githubUserLogin :: Text
|
, githubUserLogin :: Text
|
||||||
, githubUserAvatarUrl :: Text
|
, githubUserAvatarUrl :: Text
|
||||||
, githubUserLocation :: Text
|
, githubUserLocation :: Text
|
||||||
|
, githubUserPublicEmail :: Maybe Text
|
||||||
}
|
}
|
||||||
|
|
||||||
instance FromJSON GithubUser where
|
instance FromJSON GithubUser where
|
||||||
@ -47,6 +48,7 @@ instance FromJSON GithubUser where
|
|||||||
<*> o .: "login"
|
<*> o .: "login"
|
||||||
<*> o .: "avatar_url"
|
<*> o .: "avatar_url"
|
||||||
<*> o .: "location"
|
<*> o .: "location"
|
||||||
|
<*> o .: "email"
|
||||||
|
|
||||||
parseJSON _ = mzero
|
parseJSON _ = mzero
|
||||||
|
|
||||||
@ -104,10 +106,16 @@ toCreds user userMails token = Creds
|
|||||||
, ("avatar_url", githubUserAvatarUrl user)
|
, ("avatar_url", githubUserAvatarUrl user)
|
||||||
, ("location", githubUserLocation user)
|
, ("location", githubUserLocation user)
|
||||||
, ("access_token", decodeUtf8 $ accessToken token)
|
, ("access_token", decodeUtf8 $ accessToken token)
|
||||||
] ++ maybeName (githubUserName user)
|
]
|
||||||
|
++ maybeName (githubUserName user)
|
||||||
|
++ maybePublicEmail (githubUserPublicEmail user)
|
||||||
}
|
}
|
||||||
|
|
||||||
where
|
where
|
||||||
email = fromMaybe (head userMails) $ find githubUserEmailPrimary userMails
|
email = fromMaybe (head userMails) $ find githubUserEmailPrimary userMails
|
||||||
|
|
||||||
maybeName Nothing = []
|
maybeName Nothing = []
|
||||||
maybeName (Just name) = [("name", name)]
|
maybeName (Just name) = [("name", name)]
|
||||||
|
|
||||||
|
maybePublicEmail Nothing = []
|
||||||
|
maybePublicEmail (Just e) = [("public_email", e)]
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user