File tree Expand file tree Collapse file tree 1 file changed +19
-0
lines changed Expand file tree Collapse file tree 1 file changed +19
-0
lines changed Original file line number Diff line number Diff line change @@ -13,13 +13,15 @@ use crate::util::ApiResult;
13
13
use crate :: util:: RequestIdExt ;
14
14
15
15
use super :: ApiError ;
16
+ use super :: ApiPackage ;
16
17
use super :: ApiScope ;
17
18
use super :: ApiUser ;
18
19
19
20
pub fn users_router ( ) -> Router < Body , ApiError > {
20
21
Router :: builder ( )
21
22
. get ( "/:id" , util:: json ( get_handler) )
22
23
. get ( "/:id/scopes" , util:: json ( get_scopes_handler) )
24
+ . get ( "/:id/packages" , util:: json ( get_packages_handler) )
23
25
. build ( )
24
26
. unwrap ( )
25
27
}
@@ -54,3 +56,20 @@ pub async fn get_scopes_handler(
54
56
55
57
Ok ( scopes. into_iter ( ) . map ( ApiScope :: from) . collect ( ) )
56
58
}
59
+
60
+ #[ instrument( name = "GET /api/users/:id/packages" , skip( req) , err, fields( id) ) ]
61
+ pub async fn get_packages_handler (
62
+ req : Request < Body > ,
63
+ ) -> ApiResult < Vec < ApiPackage > > {
64
+ let id = req. param_uuid ( "id" ) ?;
65
+ Span :: current ( ) . record ( "id" , field:: display ( id) ) ;
66
+
67
+ let db = req. data :: < Database > ( ) . unwrap ( ) ;
68
+ db. get_user_public ( id)
69
+ . await ?
70
+ . ok_or ( ApiError :: UserNotFound ) ?;
71
+
72
+ let packages = db. get_recent_packages_by_user ( & id) . await ?;
73
+
74
+ Ok ( packages. into_iter ( ) . map ( ApiPackage :: from) . collect ( ) )
75
+ }
You can’t perform that action at this time.
0 commit comments