Skip to content

Commit

Permalink
Fix not all cars have hood data (#57)
Browse files Browse the repository at this point in the history
  • Loading branch information
DurgNomis-drol authored Sep 18, 2021
1 parent 466d33f commit e855661
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 15 deletions.
13 changes: 5 additions & 8 deletions mytoyota/models.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"""Models for mytoyota"""

from mytoyota.const import CLOSED, HOOD, INCAR, LOCKED, OFF, STATE, WARNING
from mytoyota.const import CLOSED, INCAR, LOCKED, OFF, STATE, WARNING


class Hood:
Expand Down Expand Up @@ -48,18 +48,16 @@ def as_dict(self) -> dict:
class Doors:
"""Represent all car doors"""

hood: Hood
driverseat: Door
passengerseat: Door
rightrearseat: Door
leftrearseat: Door
tailgate: Door
trunk: Door
warning: bool = False

def __init__(self, hood, doors):
def __init__(self, doors: dict):
self.warning = doors[WARNING]

self.hood = Hood(hood)
self.driverseat = (
Door(doors["driverSeatDoor"]) if "driverSeatDoor" in doors else None
)
Expand All @@ -72,7 +70,7 @@ def __init__(self, hood, doors):
self.leftrearseat = (
Door(doors["rearLeftSeatDoor"]) if "rearLeftSeatDoor" in doors else None
)
self.tailgate = Door(doors["backDoor"]) if "backDoor" in doors else None
self.trunk = Door(doors["backDoor"]) if "backDoor" in doors else None

def __str__(self) -> str:
return str(self.as_dict())
Expand All @@ -81,12 +79,11 @@ def as_dict(self) -> dict:
"""Return as dict."""
return {
WARNING: self.warning,
HOOD: self.hood.as_dict(),
"driverseat": self.driverseat.as_dict(),
"passengerseat": self.passengerseat.as_dict(),
"rightrearseat": self.rightrearseat.as_dict(),
"leftrearseat": self.rightrearseat.as_dict(),
"tailgate": self.tailgate.as_dict(),
"trunk": self.trunk.as_dict(),
}


Expand Down
19 changes: 12 additions & 7 deletions mytoyota/vehicle.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from typing import Optional

from mytoyota.const import DOORS, HOOD, KEY, LIGHTS, WINDOWS
from mytoyota.models import Doors, Key, Lights, Windows
from mytoyota.models import Doors, Hood, Key, Lights, Windows

_LOGGER: logging.Logger = logging.getLogger(__package__)

Expand Down Expand Up @@ -94,6 +94,7 @@ class Status:
"""Vehicle status representation"""

lights: Optional[Lights] = None
hood: Optional[Hood] = None
doors: Optional[Doors] = None
windows: Optional[Windows] = None
key: Optional[Key] = None
Expand All @@ -106,14 +107,17 @@ def __init__(self, status: Optional[dict]):
_LOGGER.debug("Raw status data: %s", str(status))

if status is not None:
self.overallstatus = status["overallStatus"]
self.overallstatus = (
status["overallStatus"] if "overallStatus" in status else None
)

self.lights = Lights(status[LIGHTS])
self.doors = Doors(status[HOOD], status[DOORS])
self.windows = Windows(status[WINDOWS])
self.key = Key(status[KEY])
self.lights = Lights(status[LIGHTS]) if LIGHTS in status else None
self.hood = Hood(status[HOOD]) if HOOD in status else None
self.doors = Doors(status[DOORS]) if DOORS in status else None
self.windows = Windows(status[WINDOWS]) if WINDOWS in status else None
self.key = Key(status[KEY]) if KEY in status else None

self.last_updated = status["timestamp"]
self.last_updated = status["timestamp"] if "timestamp" in status else None

def __str__(self) -> str:
return str(self.as_dict())
Expand All @@ -123,6 +127,7 @@ def as_dict(self) -> dict:
return {
"overallstatus": self.overallstatus,
"lights": self.lights.as_dict() if self.lights is not None else None,
"hood": self.hood.as_dict() if self.hood is not None else None,
"doors": self.doors.as_dict() if self.doors is not None else None,
"windows": self.windows.as_dict() if self.windows is not None else None,
"key": self.key.as_dict() if self.key is not None else None,
Expand Down

0 comments on commit e855661

Please sign in to comment.