oauth2_github/extensions/
builder.rs

1use oauth2_client::{
2    extensions::{
3        AccessTokenResponseSuccessfulBody, Builder, BuilderObtainUserInfoError,
4        BuilderObtainUserInfoOutput, GrantInfo,
5    },
6    re_exports::Scope,
7};
8
9use super::GithubUserInfoEndpoint;
10
11//
12#[derive(Debug, Clone)]
13pub struct GithubExtensionsBuilder;
14
15impl<SCOPE> Builder<SCOPE> for GithubExtensionsBuilder
16where
17    SCOPE: Scope,
18{
19    fn obtain_user_info(
20        &self,
21        _grant_info: GrantInfo<SCOPE>,
22        access_token: &AccessTokenResponseSuccessfulBody<SCOPE>,
23    ) -> Result<BuilderObtainUserInfoOutput, BuilderObtainUserInfoError> {
24        Ok(BuilderObtainUserInfoOutput::Respond(Box::new(
25            GithubUserInfoEndpoint::new(&access_token.access_token),
26        )))
27    }
28}