def cancel_booking()

in src/backend/booking/src/cancel-booking/cancel.py [0:0]


def cancel_booking(booking_id):
    try:
        logger.debug({"operation": "booking_cancellation", "details": {"booking_id": booking_id}})
        ret = table.update_item(
            Key={"id": booking_id},
            ConditionExpression="id = :idVal",
            UpdateExpression="SET #STATUS = :cancelled",
            ExpressionAttributeNames={"#STATUS": "status"},
            ExpressionAttributeValues={":idVal": booking_id, ":cancelled": "CANCELLED"},
            ReturnValues="UPDATED_NEW",
        )

        logger.info({"operation": "booking_cancellation", "details": ret})
        tracer.put_metadata(booking_id, ret)

        return True
    except ClientError as err:
        logger.exception({"operation": "booking_cancellation"})
        raise BookingCancellationException(details=err)