@@ -4,6 +4,10 @@ import { google } from 'googleapis';
4
4
import { Octokit } from 'octokit' ;
5
5
import { assertUnreachable } from '../utils/assert' ;
6
6
7
+ export class OAuthError extends Error {
8
+ _tag = 'OAuthError' ;
9
+ }
10
+
7
11
export const getUserFromOauth = ( {
8
12
provider,
9
13
providerToken,
@@ -12,7 +16,7 @@ export const getUserFromOauth = ({
12
16
providerToken : string ;
13
17
} ) =>
14
18
Effect . gen ( function * ( ) {
15
- if ( provider === OAuthProvider . github ) {
19
+ if ( provider === OAuthProvider . GitHub ) {
16
20
return yield * Effect . tryPromise ( {
17
21
async try ( ) {
18
22
const octokit = new Octokit ( { auth : providerToken } ) ;
@@ -25,12 +29,12 @@ export const getUserFromOauth = ({
25
29
} ;
26
30
} ,
27
31
catch ( error ) {
28
- console . log ( 'Error getting info about user from GitHub' ) ;
29
-
30
- return Effect . fail ( error ) ;
32
+ return new OAuthError ( "Couldn't get user info from GitHub." , {
33
+ cause : error ,
34
+ } ) ;
31
35
} ,
32
36
} ) ;
33
- } else if ( provider === OAuthProvider . google ) {
37
+ } else if ( provider === OAuthProvider . Google ) {
34
38
return yield * Effect . tryPromise ( {
35
39
async try ( signal ) {
36
40
const googleReponse = await google . oauth2 ( 'v2' ) . userinfo . get (
@@ -45,9 +49,9 @@ export const getUserFromOauth = ({
45
49
} ;
46
50
} ,
47
51
catch ( error ) {
48
- console . log ( 'Error getting info about user from Google' ) ;
49
-
50
- return Effect . fail ( error ) ;
52
+ return new OAuthError ( "Couldn't get user info from Google." , {
53
+ cause : error ,
54
+ } ) ;
51
55
} ,
52
56
} ) ;
53
57
}
0 commit comments