def roomSimulation(username=None, buildingName=None, roomName=None): if request.method == "POST": sessionKey = validateInput(request.form["sessionKey"]) userUuid = validateInput(request.form["userUuid"]) occupancyTimeRangeFrom = validateInput(request.form["occupancyTimeRangeFrom"]) occupancyTimeRangeTo = validateInput(request.form["occupancyTimeRangeTo"]) roomTemperature = validateInput(request.form["roomTemperature"]) externalTemperature = validateInput(request.form["externalTemperature"]) weather = validateInput(request.form["weather"]) try: session = SessionManager() session.checkSessionValidity(sessionKey, userUuid) buildingsManager = BuildingsManager() buildingsManager.checkUserBinding(buildingName, username) roomSimulator = RoomSimulator( buildingName=buildingName, roomName=roomName, occupancyTimeRangeFrom=occupancyTimeRangeFrom, occupancyTimeRangeTo=occupancyTimeRangeTo, roomTemperature=roomTemperature, externalTemperature=externalTemperature, weather=weather, ) return returnResult(roomSimulator.start()) except Exception as e: return returnError(e)
def registerUser(username=None): if request.method == "POST": sessionKey = validateInput(request.form["sessionKey"]) userUuid = validateInput(request.form["userUuid"]) creatorUuid = userUuid newUserUsername = username newUserPassword = request.form["password"] newUserEmail = request.form["email"] newUserPersonName = request.form["personName"] newUserLevel = request.form["level"] try: session = SessionManager() session.checkSessionValidity(sessionKey, userUuid) userManager = UsersManager() return returnResult( userManager.register( creatorUuid, newUserUsername, newUserPassword, newUserEmail, newUserPersonName, newUserLevel ) ) except Exception as e: return returnError(e)
def editGroupInBuilding(username=None, buildingName=None, groupId=None): if request.method == "POST": sessionKey = validateInput(request.form["sessionKey"]) userUuid = validateInput(request.form["userUuid"]) description = validateInput(request.form["description"]) crossRoomsValidation = ( validateInput(request.form["crossRoomsValidation"]) if "crossRoomsValidation" in request.form.keys() else False ) # BOOLEAN VALUE crossRoomsValidationCategories = ( validateInput(request.form["crossRoomsValidationCategories"]) if "crossRoomsValidationCategories" in request.form.keys() else None ) # LIST IN JSON FORMAT try: session = SessionManager() session.checkSessionValidity(sessionKey, userUuid) buildingsManager = BuildingsManager() return returnResult( buildingsManager.editGroup( groupId=groupId, buildingName=buildingName, description=description, crossRoomsValidation=crossRoomsValidation, crossRoomsValidationCategories=crossRoomsValidationCategories, ) ) except Exception as e: return returnError(e)
def editRuleInRoom(username=None, buildingName=None, roomName=None, ruleId=None): if request.method == "POST": sessionKey = validateInput(request.form["sessionKey"]) userUuid = validateInput(request.form["userUuid"]) priority = validateInput(request.form["priority"]) ruleBody = validateInput(request.form["ruleBody"]) groupId = request.form["groupId"] if "groupId" in request.form.keys() else None # authorUuid = userUuid editorUuid = userUuid try: session = SessionManager() session.checkSessionValidity(sessionKey, userUuid) buildingsManager = BuildingsManager() buildingsManager.checkUserBinding(buildingName, username) roomsManager = RoomsManager() return returnResult( roomsManager.editRule( ruleId=ruleId, priority=priority, buildingName=buildingName, roomName=roomName, editorUuid=userUuid, ruleBody=ruleBody, groupId=groupId, ) ) except Exception as e: return returnError(e)
def addRuleToGroup(username=None, buildingName=None, groupId=None): if request.method == "POST": sessionKey = validateInput(request.form["sessionKey"]) userUuid = validateInput(request.form["userUuid"]) priority = validateInput(request.form["priority"]) ruleBody = validateInput(request.form["ruleBody"]) authorUuid = userUuid try: session = SessionManager() session.checkSessionValidity(sessionKey, userUuid) buildingsManager = BuildingsManager() buildingsManager.checkUserBinding(buildingName, username) groupsManager = GroupsManager() return returnResult( groupsManager.addRule( priority=priority, buildingName=buildingName, groupId=groupId, authorUuid=authorUuid, ruleBody=ruleBody, ) ) except Exception as e: return returnError(e)
def roomRules(username=None, buildingName=None, roomName=None): if request.method == "POST": sessionKey = validateInput(request.form["sessionKey"]) userUuid = validateInput(request.form["userUuid"]) filterByAuthor = ( getBoolFromString(validateInput(request.form["filterByAuthor"])) if "filterByAuthor" in request.form.keys() else False ) includeGroupsRules = ( getBoolFromString(validateInput(request.form["includeGroupsRules"])) if "includeGroupsRules" in request.form.keys() else False ) orderByPriority = ( getBoolFromString(validateInput(request.form["orderByPriority"])) if "orderByPriority" in request.form.keys() else False ) includeTriggerCategory = ( getBoolFromString(validateInput(request.form["includeTriggerCategory"])) if "includeTriggerCategory" in request.form.keys() else False ) try: categoriesFilter = request.form["categoriesFilter"] if "categoriesFilter" in request.form.keys() else None except Exception as e: return returnError(e) usernameFilter = username if filterByAuthor else None try: session = SessionManager() session.checkSessionValidity(sessionKey, userUuid) buildingsManager = BuildingsManager() buildingsManager.checkUserBinding(buildingName, username) roomsManager = RoomsManager() return returnResult( roomsManager.getRules( roomName=roomName, buildingName=buildingName, username=usernameFilter, includeGroupsRules=includeGroupsRules, orderByPriority=orderByPriority, includeDisabled=True, categoriesFilter=categoriesFilter, includeTriggerCategory=includeTriggerCategory, ) ) except Exception as e: return returnError(e)
def userBuildings(username=None): if request.method == "POST": sessionKey = validateInput(request.form["sessionKey"]) userUuid = validateInput(request.form["userUuid"]) try: session = SessionManager() session.checkSessionValidity(sessionKey, userUuid) userManager = UsersManager() return returnResult(userManager.getBuildingList(username)) except Exception as e: return returnError(e)
def mturkInfo(username=None): if request.method == "POST": sessionKey = validateInput(request.form["sessionKey"]) userUuid = validateInput(request.form["userUuid"]) try: session = SessionManager() session.checkSessionValidity(sessionKey, userUuid) mTurkManager = MTurkManager() return returnResult(mTurkManager.getTodayToken(userUuid=userUuid)) except Exception as e: return returnError(e)
def translateAction(): if request.method == "POST": sessionKey = validateInput(request.form["sessionKey"]) userUuid = validateInput(request.form["userUuid"]) consequent = validateInput(request.form["consequent"]) try: session = SessionManager() session.checkSessionValidity(sessionKey, userUuid) actionManager = ActionManager() return returnResult(actionManager.translateAction(ruleConsequent=consequent, getDict=True)) except Exception as e: return returnError(e)
def roomActiveRules(username=None, buildingName=None, roomName=None): if request.method == "POST": sessionKey = validateInput(request.form["sessionKey"]) userUuid = validateInput(request.form["userUuid"]) try: session = SessionManager() session.checkSessionValidity(sessionKey, userUuid) buildingsManager = BuildingsManager() buildingsManager.checkUserBinding(buildingName, username) roomsManager = RoomsManager() return returnResult(roomsManager.getActiveRulesId(roomName=roomName, buildingName=buildingName)) except Exception as e: return returnError(e)
def addRoomToGroup(username=None, buildingName=None, groupId=None, roomName=None): if request.method == "POST": sessionKey = validateInput(request.form["sessionKey"]) userUuid = validateInput(request.form["userUuid"]) try: session = SessionManager() session.checkSessionValidity(sessionKey, userUuid) buildingsManager = BuildingsManager() buildingsManager.checkUserBinding(buildingName, username) groupsManager = GroupsManager() return returnResult(groupsManager.addRoom(groupId=groupId, buildingName=buildingName, roomName=roomName)) except Exception as e: return returnError(e)
def translateTrigger(): if request.method == "POST": sessionKey = validateInput(request.form["sessionKey"]) userUuid = validateInput(request.form["userUuid"]) antecedent = validateInput(request.form["antecedent"]) try: session = SessionManager() session.checkSessionValidity(sessionKey, userUuid) triggerManager = TriggerManager() return returnResult(triggerManager.translateTrigger(ruleAntecedent=antecedent, getDict=True)) except Exception as e: return returnError(e)
def userNotifications(username=None): if request.method == "POST": sessionKey = validateInput(request.form["sessionKey"]) userUuid = validateInput(request.form["userUuid"]) try: session = SessionManager() session.checkSessionValidity(sessionKey, userUuid) from app.backend.controller.notificationsManager import NotificationsManager notifications = NotificationsManager() return returnResult(notifications.getNotifications(username=username, userUuid=userUuid)) except Exception as e: return returnError(e)
def addRoomToBuilding(username=None, buildingName=None, roomName=None): if request.method == "POST": sessionKey = validateInput(request.form["sessionKey"]) userUuid = validateInput(request.form["userUuid"]) description = validateInput(request.form["description"]) try: session = SessionManager() session.checkSessionValidity(sessionKey, userUuid) buildingsManager = BuildingsManager() return returnResult( buildingsManager.addRoom(roomName=roomName, buildingName=buildingName, description=description) ) except Exception as e: return returnError(e)
def disableRuleInRoom(username=None, buildingName=None, roomName=None, ruleId=None): if request.method == "POST": sessionKey = validateInput(request.form["sessionKey"]) userUuid = validateInput(request.form["userUuid"]) try: session = SessionManager() session.checkSessionValidity(sessionKey, userUuid) buildingsManager = BuildingsManager() buildingsManager.checkUserBinding(buildingName, username) roomsManager = RoomsManager() return returnResult( roomsManager.disableRule( ruleId=ruleId, buildingName=buildingName, roomName=roomName, editorUuid=userUuid ) ) except Exception as e: return returnError(e)
def storeFeedback(username=None): if request.method == "POST": sessionKey = validateInput(request.form["sessionKey"]) userUuid = validateInput(request.form["userUuid"]) authorUuid = userUuid alternativeContact = validateInput(request.form["alternativeContact"]) score = validateInput(request.form["score"]) message = validateInput(request.form["message"]) try: session = SessionManager() session.checkSessionValidity(sessionKey, userUuid) feedbackManager = FeedbackManager() return returnResult( feedbackManager.storeFeedback( authorUuid=authorUuid, alternativeContact=alternativeContact, score=score, message=message ) ) except Exception as e: return returnError(e)
def ruleCategories(username=None): if request.method == "POST": sessionKey = validateInput(request.form["sessionKey"]) userUuid = validateInput(request.form["userUuid"]) try: session = SessionManager() session.checkSessionValidity(sessionKey, userUuid) userManager = UsersManager() from app.backend.controller.actionManager import ActionManager actionManager = ActionManager() categories = actionManager.getActionCategories() result = {"categories": categories} return returnResult(result) except Exception as e: return returnError(e)