Skip to content

Commit aedf80b

Browse files
committed
feat: raise error if generation post>A x capacity
1 parent 917296f commit aedf80b

File tree

1 file changed

+26
-0
lines changed
  • src/india_api/internal/inputs/indiadb

1 file changed

+26
-0
lines changed

src/india_api/internal/inputs/indiadb/client.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from typing import Optional
66
from fastapi import HTTPException
77
from uuid import UUID
8+
import sentry_sdk
89

910
from pvsite_datamodel import DatabaseConnection
1011
from pvsite_datamodel.read import (
@@ -370,6 +371,31 @@ def post_site_generation(
370371
)
371372

372373
generation_values_df = pd.DataFrame(generations)
374+
capacity_factor = 1.1
375+
site = get_site_by_uuid(session=session, site_uuid=site_uuid)
376+
site_capacity_kw = site.capacity_kw
377+
exceeded_capacity = generation_values_df[
378+
generation_values_df["power_kw"] > site_capacity_kw * capacity_factor
379+
]
380+
if len(exceeded_capacity) > 0:
381+
# alert Sentry and return 422 validation error
382+
sentry_sdk.capture_message(
383+
f"Error processing generation values. "
384+
f"One (or more) values are larger than {capacity_factor} "
385+
f"times the site capacity of {site_capacity_kw} kWp. "
386+
# f"User: {auth['https://openclimatefix.org/email']}"
387+
f"Site: {site_uuid}"
388+
)
389+
raise HTTPException(
390+
status_code=422,
391+
detail=(
392+
f"Error processing generation values. "
393+
f"One (or more) values are larger than {capacity_factor} "
394+
f"times the site capacity of {site_capacity_kw} kWp. "
395+
"Please adjust this generation value, the site capacity, "
396+
"or contact quartz.support@openclimatefix.org."
397+
),
398+
)
373399

374400
insert_generation_values(session, generation_values_df)
375401
session.commit()

0 commit comments

Comments
 (0)