Exemple #1
0
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)
Exemple #2
0
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)
Exemple #3
0
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)
Exemple #4
0
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)
Exemple #5
0
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)
Exemple #6
0
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)
Exemple #7
0
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)
Exemple #8
0
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)
Exemple #9
0
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)
Exemple #10
0
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)
Exemple #11
0
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)
Exemple #12
0
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)
Exemple #13
0
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)
Exemple #14
0
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)
Exemple #15
0
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)
Exemple #16
0
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)
Exemple #17
0
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)