Skip to content

Commit

Permalink
fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
feijooso committed Apr 24, 2024
1 parent 3d48da5 commit 6be24ce
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 10 deletions.
2 changes: 1 addition & 1 deletion app/exceptions/deviating_parameters.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
class DeviatedParametersError(Exception):
def __init__(self, parameters):
self.parameters = parameters
super().__init__(f"Out of range parameters: {self.parameters}")
super().__init__(f"Out of range parameters: {self.parameters} type: {type(self.parameters)}")
56 changes: 47 additions & 9 deletions app/service/rabbitmq/consumer.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
from resources.parser import apply_rules
from os import environ
from firebase_admin import messaging
import sys

Base = declarative_base(
metadata=MetaData(schema=environ.get("POSTGRES_SCHEMA", "measurements_service"))
Expand Down Expand Up @@ -67,20 +68,57 @@ def check_package(self, measurement):

if len(empty_values) > 0:
raise EmptyPackageError(empty_values)

def generate_notification_body(self, error):
parameters = {
'temperature': 'temperatura',
'humidity': 'humedad',
'light': 'luz',
'watering': 'riego'
}

low_parameters = []
high_parameters = []
error_dict = error.parameters.dict()

for param, value in error_dict.items():
if value == 'lower':
low_parameters.append(parameters.get(param, param))
elif value == 'higher':
high_parameters.append(parameters.get(param, param))

low_msg = ", ".join(f"{param}" for param in low_parameters)
high_msg = ", ".join(f"{param}" for param in high_parameters)

if low_msg and high_msg:
return f"Los siguientes parámetros están bajos: {low_msg}. Y los siguientes están altos: {high_msg}."
elif low_msg:
return f"Los siguientes parámetros están bajos: {low_msg}."
elif high_msg:
return f"Los siguientes parámetros están altos: {high_msg}."

def send_notification(self, id_user, measurement, error, details):
logger.info(LoggerMessages.USER_NOTIFIED.format(id_user))

def send_notification(self, id_user, measurement, error, details):
print(f"details: {details}")
print(f"measurement: {measurement}")
print(f"error: {error}")

# if measurement.device_token is not None:
# message = messaging.Message(
# notification=messaging.Notification(title="Estado de tu planta", body="details"),
# token=measurement.device_token,
# )
# messaging.send(message)
notification_body = self.generate_notification_body(error)

print(f"notif body: {notification_body}")

try:
if measurement.device_token is not None:
message = messaging.Message(
notification=messaging.Notification(title="Estado de tu planta", body="notification_body"),
token=measurement.device_token,
)
messaging.send(message)
logger.info(LoggerMessages.USER_NOTIFIED.format(id_user))

except Exception:
pass


def apply_rules(self, measurement, device_plant):
deviated_parameters = apply_rules(measurement, device_plant.plant_type)
Expand Down Expand Up @@ -142,7 +180,7 @@ def __callback(self, body):
logger.warn(LoggerMessages.EMPTY_PACKAGE_RECEIVED)
logger.debug(LoggerMessages.ERROR_DETAILS.format(err, body))

self.send_notification(device_plant.id_user, measurement, err, body)
#self.send_notification(device_plant.id_user, measurement, err, body)

measurement = None # For not saving the measurement.
except DeviatedParametersError as err:
Expand Down

0 comments on commit 6be24ce

Please sign in to comment.