Skip to content

Commit

Permalink
Fixes issues with old signal.get (#3671)
Browse files Browse the repository at this point in the history
  • Loading branch information
kevgliss authored Aug 8, 2023
1 parent 2cea742 commit 8d20e45
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 5 deletions.
7 changes: 7 additions & 0 deletions src/dispatch/signal/service.py
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,13 @@ def get_signal_instance(


def get(*, db_session: Session, signal_id: Union[str, int]) -> Optional[Signal]:
"""Gets a signal by id or external_id."""
return db_session.query(Signal).filter(Signal.id == signal_id).one_or_none()


def get_by_primary_or_external_id(
*, db_session: Session, signal_id: Union[str, int]
) -> Optional[Signal]:
"""Gets a signal by id or external_id."""
if isinstance(signal_id, int):
signal = db_session.query(Signal).filter(Signal.id == signal_id).one_or_none()
Expand Down
13 changes: 8 additions & 5 deletions src/dispatch/signal/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
delete,
delete_signal_filter,
get,
get_by_primary_or_external_id,
get_signal_filter,
update,
update_signal_filter,
Expand Down Expand Up @@ -259,7 +260,7 @@ def get_signals(common: CommonParameters):
@router.get("/{signal_id}", response_model=SignalRead)
def get_signal(db_session: DbSession, signal_id: Union[str, PrimaryKey]):
"""Gets a signal by its id."""
signal = get(db_session=db_session, signal_id=signal_id)
signal = get_by_primary_or_external_id(db_session=db_session, signal_id=signal_id)
if not signal:
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
Expand All @@ -279,9 +280,11 @@ def create_signal(db_session: DbSession, signal_in: SignalCreate):
response_model=SignalRead,
dependencies=[Depends(PermissionsDependency([SensitiveProjectActionPermission]))],
)
def update_signal(db_session: DbSession, signal_id: PrimaryKey, signal_in: SignalUpdate):
def update_signal(
db_session: DbSession, signal_id: Union[str, PrimaryKey], signal_in: SignalUpdate
):
"""Updates an existing signal."""
signal = get(db_session=db_session, signal_id=signal_id)
signal = get_by_primary_or_external_id(db_session=db_session, signal_id=signal_id)
if not signal:
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
Expand All @@ -304,9 +307,9 @@ def update_signal(db_session: DbSession, signal_id: PrimaryKey, signal_in: Signa
response_model=None,
dependencies=[Depends(PermissionsDependency([SensitiveProjectActionPermission]))],
)
def delete_signal(db_session: DbSession, signal_id: PrimaryKey):
def delete_signal(db_session: DbSession, signal_id: Union[str, PrimaryKey]):
"""Deletes a signal."""
signal = get(db_session=db_session, signal_id=signal_id)
signal = get_by_primary_or_external_id(db_session=db_session, signal_id=signal_id)
if not signal:
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
Expand Down

0 comments on commit 8d20e45

Please sign in to comment.