diff --git a/src/nsls2api/api/models/stats_model.py b/src/nsls2api/api/models/stats_model.py index 5b0b735..101cbd5 100644 --- a/src/nsls2api/api/models/stats_model.py +++ b/src/nsls2api/api/models/stats_model.py @@ -13,7 +13,8 @@ class StatsModel(pydantic.BaseModel): beamline_count: int commissioning_proposal_count: int facility_data_health: bool - nsls2_proposals_per_cycle: Optional[list[ProposalsPerCycleModel]] = [] + nsls2_proposals_per_cycle: Optional[list[ProposalsPerCycleModel]] + lbms_proposals_per_cycle: Optional[list[ProposalsPerCycleModel]] class AboutModel(pydantic.BaseModel): diff --git a/src/nsls2api/api/v1/stats_api.py b/src/nsls2api/api/v1/stats_api.py index 490e9c8..8a62f1b 100644 --- a/src/nsls2api/api/v1/stats_api.py +++ b/src/nsls2api/api/v1/stats_api.py @@ -24,8 +24,8 @@ async def stats(): facility_data_health = await facility_service.is_healthy("nsls2") + # Get the NSLS-II proposals per cycle nsls2_proposals_per_cycle: list[ProposalsPerCycleModel] = [] - nsls2_cycle_list = await facility_service.facility_cycles("nsls2") for cycle in nsls2_cycle_list: proposal_list = await proposal_service.fetch_proposals_for_cycle(cycle) @@ -35,6 +35,17 @@ async def stats(): ) nsls2_proposals_per_cycle.append(model) + # Get the LBMS proposals per cycle + lbms_proposals_per_cycle: list[ProposalsPerCycleModel] = [] + lbms_cycle_list = await facility_service.facility_cycles("lbms") + for cycle in lbms_cycle_list: + proposal_list = await proposal_service.fetch_proposals_for_cycle(cycle) + if proposal_list is not None: + model = ProposalsPerCycleModel( + cycle=cycle, proposal_count=len(proposal_list) + ) + lbms_proposals_per_cycle.append(model) + model = StatsModel( facility_count=facilities, beamline_count=beamlines, @@ -42,6 +53,7 @@ async def stats(): commissioning_proposal_count=commissioning, facility_data_health=facility_data_health, nsls2_proposals_per_cycle=nsls2_proposals_per_cycle, + lbms_proposals_per_cycle=lbms_proposals_per_cycle, ) return model