File tree Expand file tree Collapse file tree 4 files changed +5
-31
lines changed Expand file tree Collapse file tree 4 files changed +5
-31
lines changed Original file line number Diff line number Diff line change @@ -214,7 +214,7 @@ async fn authenticate_via_token(
214214 let token =
215215 HashedToken :: parse ( header_value) . map_err ( |_| InsecurelyGeneratedTokenRevoked :: boxed ( ) ) ?;
216216
217- let token = ApiToken :: async_find_by_api_token ( conn, & token)
217+ let token = ApiToken :: find_by_api_token ( conn, & token)
218218 . await
219219 . map_err ( |e| {
220220 let cause = format ! ( "invalid token caused by {e}" ) ;
Original file line number Diff line number Diff line change @@ -21,7 +21,7 @@ pub async fn run(opts: Opts) -> anyhow::Result<()> {
2121 . context ( "Failed to connect to the database" ) ?;
2222
2323 let token = HashedToken :: parse ( & opts. api_token ) ?;
24- let token = ApiToken :: async_find_by_api_token ( & mut conn, & token) . await ?;
24+ let token = ApiToken :: find_by_api_token ( & mut conn, & token) . await ?;
2525 let user = User :: async_find ( & mut conn, token. user_id ) . await ?;
2626 println ! ( "The token belongs to user {}" , user. gh_login) ;
2727 Ok ( ( ) )
Original file line number Diff line number Diff line change @@ -69,32 +69,7 @@ impl ApiToken {
6969 } )
7070 }
7171
72- pub fn find_by_api_token ( conn : & mut impl Conn , token : & HashedToken ) -> QueryResult < ApiToken > {
73- use diesel:: RunQueryDsl ;
74- use diesel:: { dsl:: now, update} ;
75-
76- let tokens = api_tokens:: table
77- . filter ( api_tokens:: revoked. eq ( false ) )
78- . filter (
79- api_tokens:: expired_at
80- . is_null ( )
81- . or ( api_tokens:: expired_at. gt ( now) ) ,
82- )
83- . filter ( api_tokens:: token. eq ( token) ) ;
84-
85- // If the database is in read only mode, we can't update last_used_at.
86- // Try updating in a new transaction, if that fails, fall back to reading
87- conn. transaction ( |conn| {
88- update ( tokens)
89- . set ( api_tokens:: last_used_at. eq ( now. nullable ( ) ) )
90- . returning ( ApiToken :: as_returning ( ) )
91- . get_result ( conn)
92- } )
93- . or_else ( |_| tokens. select ( ApiToken :: as_select ( ) ) . first ( conn) )
94- . map_err ( Into :: into)
95- }
96-
97- pub async fn async_find_by_api_token (
72+ pub async fn find_by_api_token (
9873 conn : & mut AsyncPgConnection ,
9974 token : & HashedToken ,
10075 ) -> QueryResult < ApiToken > {
Original file line number Diff line number Diff line change @@ -36,9 +36,8 @@ async fn updating_existing_user_doesnt_change_api_token() {
3636
3737 // Use the original API token to find the now updated user
3838 let hashed_token = assert_ok ! ( HashedToken :: parse( token. expose_secret( ) ) ) ;
39- let mut conn = app. db_conn ( ) ;
40- let api_token = assert_ok ! ( ApiToken :: find_by_api_token( & mut conn, & hashed_token) ) ;
41- let user = assert_ok ! ( User :: find( & mut conn, api_token. user_id) ) ;
39+ let api_token = assert_ok ! ( ApiToken :: find_by_api_token( & mut conn, & hashed_token) . await ) ;
40+ let user = assert_ok ! ( User :: async_find( & mut conn, api_token. user_id) . await ) ;
4241
4342 assert_eq ! ( user. gh_login, "bar" ) ;
4443 assert_eq ! ( user. gh_access_token, "bar_token" ) ;
You can’t perform that action at this time.
0 commit comments