4848from connect_ext_ppr .models .ppr import PPRVersion
4949from connect_ext_ppr .models .task import Task
5050from connect_ext_ppr .models .replicas import Product
51+ from connect_ext_ppr .pagination import apply_pagination , PaginationParams
5152from connect_ext_ppr .service import (
5253 add_deployments ,
5354 add_new_deployment_request ,
@@ -182,6 +183,8 @@ def add_dep_request(
182183 )
183184 def list_deployment_requests (
184185 self ,
186+ pagination_params : PaginationParams = Depends (),
187+ response : Response = None ,
185188 client : ConnectClient = Depends (get_installation_client ),
186189 db : VerboseBaseSession = Depends (get_db ),
187190 installation : dict = Depends (get_installation ),
@@ -203,6 +206,7 @@ def list_deployment_requests(
203206 ).filter (
204207 DeploymentRequest .deployment_id .in_ (deployments ),
205208 )
209+ deployment_requests = apply_pagination (deployment_requests , db , pagination_params , response )
206210
207211 response_list = []
208212 for dr in deployment_requests :
@@ -272,6 +276,8 @@ def list_deployment_request_tasks(
272276 def list_deployment_request_marketplaces (
273277 self ,
274278 depl_req_id : str ,
279+ pagination_params : PaginationParams = Depends (),
280+ response : Response = None ,
275281 db : VerboseBaseSession = Depends (get_db ),
276282 client : ConnectClient = Depends (get_installation_client ),
277283 installation : dict = Depends (get_installation ),
@@ -282,6 +288,7 @@ def list_deployment_request_marketplaces(
282288 marketplaces = db .query (MarketplaceConfiguration ).options (
283289 selectinload (MarketplaceConfiguration .ppr ),
284290 ).filter_by (deployment_request = dr .id )
291+ marketplaces = apply_pagination (marketplaces , db , pagination_params , response )
285292
286293 marketplaces_pprs = {m .marketplace : m .ppr for m in marketplaces }
287294 marketplaces_data = get_marketplaces (client , list (marketplaces_pprs .keys ()))
@@ -369,6 +376,8 @@ def get_deployment(
369376 def list_requests_for_deployment (
370377 self ,
371378 deployment_id : str ,
379+ pagination_params : PaginationParams = Depends (),
380+ response : Response = None ,
372381 client : ConnectClient = Depends (get_installation_client ),
373382 db : VerboseBaseSession = Depends (get_db ),
374383 installation : dict = Depends (get_installation ),
@@ -384,7 +393,8 @@ def list_requests_for_deployment(
384393 .filter_by (deployment_id = deployment_id )
385394 .order_by (desc (DeploymentRequest .id ))
386395 )
387- for dr in qs :
396+
397+ for dr in apply_pagination (qs , db , pagination_params , response ):
388398 response_list .append (get_deployment_request_schema (dr , hub ))
389399 return response_list
390400
@@ -396,12 +406,15 @@ def list_requests_for_deployment(
396406 def get_deployments (
397407 self ,
398408 deployment_filter : DeploymentFilter = FilterDepends (DeploymentFilter ),
409+ pagination_params : PaginationParams = Depends (),
410+ response : Response = None ,
399411 client : ConnectClient = Depends (get_installation_client ),
400412 db : VerboseBaseSession = Depends (get_db ),
401413 installation : dict = Depends (get_installation ),
402414 ):
403415 deployments = db .query (Deployment ).filter_by (account_id = installation ['owner' ]['id' ])
404416 deployments = deployment_filter .filter (deployments )
417+ deployments = apply_pagination (deployments , db , pagination_params , response )
405418 listings = get_all_listing_info (client )
406419 vendors = [li ['vendor' ] for li in listings ]
407420 hubs = [hub ['hub' ] for li in listings for hub in li ['contract' ]['marketplace' ]['hubs' ]]
@@ -422,17 +435,19 @@ def get_deployments(
422435 def get_configurations (
423436 self ,
424437 deployment_id : str ,
438+ pagination_params : PaginationParams = Depends (),
439+ response : Response = None ,
425440 db : VerboseBaseSession = Depends (get_db ),
426441 installation : dict = Depends (get_installation ),
427442 ):
428443 get_deployment_by_id (deployment_id , db , installation )
429444
430- conf_file_list = (
445+ conf_file_qs = (
431446 db .query (Configuration , File )
432447 .filter_by (deployment = deployment_id )
433448 .join (File , Configuration .file == File .id )
434- .all ()
435449 )
450+ conf_file_list = apply_pagination (conf_file_qs , db , pagination_params , response )
436451 response_list = []
437452 for conf , file in conf_file_list :
438453 response_list .append (
@@ -569,20 +584,21 @@ def remove_configuration(
569584 def get_pprs (
570585 self ,
571586 deployment_id : str ,
587+ pagination_params : PaginationParams = Depends (),
588+ response : Response = None ,
572589 db : VerboseBaseSession = Depends (get_db ),
573590 installation : dict = Depends (get_installation ),
574591 ):
575592 get_deployment_by_id (deployment_id , db , installation )
576593
577- ppr_file_conf_list = (
594+ ppr_file_conf_qs = (
578595 db .query (PPRVersion , File , Configuration )
579596 .filter_by (deployment = deployment_id )
580597 .join (File , PPRVersion .file == File .id )
581598 .outerjoin (Configuration , PPRVersion .configuration == Configuration .id )
582599 .order_by (desc (PPRVersion .version ))
583- .all ()
584600 )
585-
601+ ppr_file_conf_list = apply_pagination ( ppr_file_conf_qs , db , pagination_params , response )
586602 response_list = []
587603 for ppr , file , conf in ppr_file_conf_list :
588604 response_list .append (
@@ -642,6 +658,8 @@ def add_ppr(
642658 def get_marketplaces_by_deployment (
643659 self ,
644660 deployment_id : str ,
661+ pagination_params : PaginationParams = Depends (),
662+ response : Response = None ,
645663 client : ConnectClient = Depends (get_installation_client ),
646664 db : VerboseBaseSession = Depends (get_db ),
647665 installation : dict = Depends (get_installation ),
@@ -651,6 +669,7 @@ def get_marketplaces_by_deployment(
651669 mkplc_configs = db .query (MarketplaceConfiguration ).options (
652670 selectinload (MarketplaceConfiguration .ppr ),
653671 ).filter_by (deployment_id = deployment_id , active = True )
672+ mkplc_configs = apply_pagination (mkplc_configs , db , pagination_params , response )
654673
655674 mkplc_ids = [m .marketplace for m in mkplc_configs ]
656675
@@ -668,19 +687,23 @@ def get_marketplaces_by_deployment(
668687 )
669688 def list_products (
670689 self ,
690+ pagination_params : PaginationParams = Depends (),
691+ response : Response = None ,
671692 db : VerboseBaseSession = Depends (get_db ),
672693 installation : dict = Depends (get_installation ),
673694 ):
674695 products_ids = db .query (Deployment .product_id ).filter_by (
675696 account_id = installation ['owner' ]['id' ],
676697 ).distinct ()
677-
678- response_list = []
679698 products = db .query (Product ).filter (Product .id .in_ (products_ids )).options (
680699 selectinload (Product .owner ),
681700 )
701+ products = apply_pagination (products , db , pagination_params , response )
702+
703+ response_list = []
682704 for product in products :
683705 response_list .append (get_product_schema (product ))
706+
684707 return response_list
685708
686709 @router .get (
0 commit comments