@@ -26,6 +26,7 @@ use omicron_common::api::external::IdentityMetadataCreateParams;
2626use omicron_common:: api:: external:: InstanceCreateParams ;
2727use omicron_common:: api:: external:: InstanceState ;
2828use omicron_common:: api:: external:: ListResult ;
29+ use omicron_common:: api:: external:: ListResultVec ;
2930use omicron_common:: api:: external:: LookupResult ;
3031use omicron_common:: api:: external:: Name ;
3132use omicron_common:: api:: external:: ProjectCreateParams ;
@@ -346,18 +347,36 @@ impl Nexus {
346347 . map_err ( |e| e. into ( ) )
347348 }
348349
349- pub async fn projects_list_by_name (
350+ pub fn projects_list_by_name (
350351 & self ,
351352 pagparams : & DataPageParams < ' _ , Name > ,
352- ) -> ListResult < db:: model:: Project > {
353- self . db_datastore . projects_list_by_name ( pagparams) . await
353+ ) -> ListResultVec < db:: model:: DieselProject > {
354+ use db:: diesel_schema:: project:: dsl:: * ;
355+ let conn = self . dpool . get ( ) . unwrap ( ) ;
356+ // TODO these are incompatible arm types
357+ // let order = match pagparams.direction {
358+ // PaginationOrder::Ascending => name.asc(),
359+ // PaginationOrder::Descending => name.desc(),
360+ // };
361+ project
362+ . limit ( pagparams. limit . get ( ) . into ( ) )
363+ . order ( name. asc ( ) )
364+ . load :: < db:: model:: DieselProject > ( & * conn)
365+ . map_err ( |e| e. into ( ) )
354366 }
355367
356- pub async fn projects_list_by_id (
368+ pub fn projects_list_by_id (
357369 & self ,
358370 pagparams : & DataPageParams < ' _ , Uuid > ,
359- ) -> ListResult < db:: model:: Project > {
360- self . db_datastore . projects_list_by_id ( pagparams) . await
371+ ) -> ListResultVec < db:: model:: DieselProject > {
372+ use db:: diesel_schema:: project:: dsl:: * ;
373+ let conn = self . dpool . get ( ) . unwrap ( ) ;
374+ // TODO figure out order here too
375+ project
376+ . limit ( pagparams. limit . get ( ) . into ( ) )
377+ . order ( id. asc ( ) )
378+ . load :: < db:: model:: DieselProject > ( & * conn)
379+ . map_err ( |e| e. into ( ) )
361380 }
362381
363382 pub async fn project_delete ( & self , name : & Name ) -> DeleteResult {
0 commit comments