Ejemplo n.º 1
0
def getExceptionsFile(module, assignment):
    global s
    try:
        if setSocket():
            args = {'module': module, 'assignment': assignment}
            addLecturerAuthDetails(args)

            response = request(
                Request(s, FileServerCommands.GET_EXCEPTIONS_FILE, args))

            if response is not None:
                if not response.disconnected:
                    if response.success == "True":
                        return response.data['exceptions'], False
                    else:
                        error = True
                        doError(f"{response.message}")
                else:
                    s = None
                    error = True
                    if response.error:
                        logging.error(
                            f"Response Error: {response.error_message}")
            else:
                s = None
                error = True
                logging.error(f"Request Error")
        else:
            error = True
    except MessagingError as m:
        s = None
        doError(f"{m}")
        error = True

    return {}, error
Ejemplo n.º 2
0
def alertMacAddress(lecturer, mac):
    global alertMacAddressStr, s
    try:
        if setSocket():
            args = {}
            addLecturerAuthDetails(args)
            args['mac'] = mac

            response = request(
                Request(s, FileServerCommands.ALERT_MAC_ADDRESS, args))

            if response is not None:
                if not response.disconnected:
                    if response.success == "True":
                        data = response.data

                        if 'alertMacAddress' in data:
                            alertMacAddressStr = data['alertMacAddress']

                        alert = False
                        if 'alert' in data:
                            alert = data['alert']

                        alert = alert.upper()

                        if alert == "TRUE":
                            alert = True
                        else:
                            alert = False

                        return alert, False
                    else:
                        error = True
                        doError(
                            f"A server error occurred checking if MAC address should be alerted: {response.message}"
                        )
                else:
                    s = None
                    error = True
                    if response.error:
                        logging.error(
                            f"Response Error: {response.error_message}")
            else:
                s = None
                error = True
                logging.error(f"Request Error")
        else:
            error = True
    except MessagingError as m:
        s = None
        doError(f"{m}")
        error = True

    return False, error
Ejemplo n.º 3
0
def checkAssignmentExists(module, academic_year, assignment):
    global s
    try:
        if setSocket():
            args = {
                FileServerCommands.CheckExistsRequestCodes.CODE:
                FileServerCommands.CheckExistsRequestCodes.ASSIGNMENT_EXISTS,
                'module':
                module,
                'academic_year':
                academic_year,
                'assignment':
                assignment
            }

            response = request(
                Request(s, FileServerCommands.CHECK_EXISTS, args))

            if response is not None:
                if not response.disconnected:
                    if response.success == "True":
                        exists = response.data['exists']

                        if exists == "True":
                            exists = True
                        else:
                            exists = False

                        return exists, False
                    else:
                        error = True
                        doError(
                            f"A server error occurred checking if assignment exists: {response.message}"
                        )
                else:
                    s = None
                    error = True
                    if response.error:
                        logging.error(
                            f"Response Error: {response.error_message}")
            else:
                s = None
                error = True
                logging.error(f"Request Error")

        else:
            error = True
    except MessagingError as m:
        s = None
        doError(f"{m}")
        error = True

    return False, error
Ejemplo n.º 4
0
def checkCredentials(lect, passw):
    global s, lecturer, password
    try:
        if setSocket():
            args = {'lecturer': lect, 'password': passw}

            response = request(
                Request(s, FileServerCommands.AUTHENTICATE_LECTURER, args))

            if response is not None:
                if not response.disconnected:
                    if response.success == "True":
                        if response.message == "AUTHENTICATED":
                            lecturer = lect
                            password = passw
                            return True, False
                        elif response.message == "NOT_AUTHENTICATED":
                            return False, False  # Return false for login_error parameter as this failure is a credential error, not socket error
                        else:
                            login_error = True
                            doError(
                                f"A server error occurred checking credentials: {response.message}"
                            )
                    else:
                        login_error = True
                        doError(
                            f"A server error occurred checking credentials: {response.message}"
                        )
                else:
                    s = None
                    login_error = True
                    if response.error:
                        logging.error(
                            f"Response Error: {response.error_message}")
            else:
                s = None
                login_error = True
                logging.error(f"Request Error")
        else:
            login_error = True
    except MessagingError as m:
        s = None
        doError(f"{m}")
        login_error = True

    return False, login_error
Ejemplo n.º 5
0
def get_all_test_items(module_code, assignment) -> tuple[list, bool]:
    global s
    try:
        if setSocket():
            args = {}
            addLecturerAuthDetails(args)
            args[
                FileServerCommands.ModuleInfoRequestCodes.
                CODE] = FileServerCommands.ModuleInfoRequestCodes.MODULE_TEST_ITEMS
            args['module_code'] = module_code
            args['assignment'] = assignment

            response = request(Request(s, FileServerCommands.MODULE_INFO,
                                       args))

            if response is not None:
                if not response.disconnected:
                    if response.success == "True":
                        return response.data['test_items'], False
                    else:
                        error = True
                        doError(
                            f"A server error occurred retrieving test items: {response.message}"
                        )
                else:
                    s = None
                    error = True
                    if response.error:
                        logging.error(
                            f"Response Error: {response.error_message}")
            else:
                s = None
                error = True
                logging.error(f"Request Error")
        else:
            error = True
    except MessagingError as m:
        s = None
        doError(f"{m}")
        error = True

    return [], error
Ejemplo n.º 6
0
def getLecturerModules(lecturer):
    global s
    try:
        if setSocket():
            args = {}
            addLecturerAuthDetails(args)

            response = request(
                Request(s, FileServerCommands.GET_LECTURER_MODULES, args))

            if response is not None:
                if not response.disconnected:
                    if response.success == "True":
                        modules = []
                        for value in response.data['modules']:
                            modules.append(value)

                        return modules, False
                    else:
                        error = True
                        doError(
                            f"A server error occurred retrieving lecturer modules: {response.message}"
                        )
                else:
                    s = None
                    error = True
                    if response.error:
                        logging.error(
                            f"Response Error: {response.error_message}")
            else:
                s = None
                error = True
                logging.error(f"Request Error")
        else:
            error = True
    except MessagingError as m:
        s = None
        doError(f"{m}")
        error = True

    return {}, error
Ejemplo n.º 7
0
def updateExceptionsFile(module, assignment, student_id, exceptions):
    global s
    try:
        if setSocket():
            args = {
                'module': module,
                'assignment': assignment,
                'student_id': student_id,
                'exceptions': exceptions
            }
            addLecturerAuthDetails(args)

            response = request(
                Request(s, FileServerCommands.UPDATE_EXCEPTIONS_FILE, args))

            if response is not None:
                if not response.disconnected:
                    if response.success == "True":
                        return False
                    else:
                        error = True
                        doError(f"{response.message}")
                else:
                    s = None
                    error = True
                    if response.error:
                        logging.error(
                            f"Response Error: {response.error_message}")
            else:
                s = None
                error = True
                logging.error(f"Request Error")
        else:
            error = True
    except MessagingError as m:
        s = None
        doError(f"{m}")
        error = True

    return error
Ejemplo n.º 8
0
def updateDefinitionsFile(definitions_file, definitions):
    global s
    try:
        if setSocket():
            args = {
                'definitions_file': definitions_file,
                'definitions': definitions
            }

            response = request(
                Request(s, FileServerCommands.UPDATE_DEFINITIONS_FILE, args))

            if response is not None:
                if not response.disconnected:
                    if response.success == "True":
                        return False
                    else:
                        error = True
                        doError(
                            f"A server error occurred updating definitions file: {response.message}"
                        )
                else:
                    s = None
                    error = True
                    if response.error:
                        logging.error(
                            f"Response Error: {response.error_message}")
            else:
                s = None
                error = True
                logging.error(f"Request Error")
        else:
            error = True
    except MessagingError as m:
        s = None
        doError(f"{m}")
        error = True

    return error
Ejemplo n.º 9
0
def get_vars(module, week_number, student_id):
    global s
    try:
        if setSocket():
            args = {
                'module': module,
                'week_number': week_number,
                'student_id': student_id
            }

            response = request(Request(s, FileServerCommands.GET_VARS, args))

            if response is not None:
                if not response.disconnected:
                    if response.success == "True":
                        return response.data['vars'], False
                    else:
                        error = True
                        doError(
                            f"A server error occurred retrieving vars: {response.message}"
                        )
                else:
                    s = None
                    error = True
                    if response.error:
                        logging.error(
                            f"Response Error: {response.error_message}")
            else:
                s = None
                error = True
                logging.error(f"Request Error")
        else:
            error = True
    except MessagingError as m:
        s = None
        doError(f"{m}")
        error = True

    return {}, error
Ejemplo n.º 10
0
def trustMacAddress(lecturer, trust):
    global s
    try:
        if setSocket():
            args = {}
            addLecturerAuthDetails(args)
            args['mac'] = alertMacAddressStr
            args['trust'] = trust

            response = request(
                Request(s, FileServerCommands.TRUST_MAC_ADDRESS, args))

            if response is not None:
                if not response.disconnected:
                    if response.success == "True":
                        return False
                    else:
                        error = True
                        doError(
                            f"A server error occurred trusting MAC address: {response.message}"
                        )
                else:
                    s = None
                    error = True
                    if response.error:
                        logging.error(
                            f"Response Error: {response.error_message}")
            else:
                s = None
                error = True
                logging.error(f"Request Error")
        else:
            error = True
    except MessagingError as m:
        s = None
        doError(f"{m}")
        error = True

    return error
Ejemplo n.º 11
0
def cloneAssignment(module, assignment, content):
    global s
    try:
        if setSocket():
            args = {
                'module': module,
                'assignment': assignment,
                'content': content
            }

            response = request(
                Request(s, FileServerCommands.CLONE_ASSIGNMENT, args))

            if response is not None:
                if not response.disconnected:
                    if response.success == "True":
                        return response.data, False
                    else:
                        error = True
                        doError(f"Error: {response.message}")
                else:
                    s = None
                    error = True
                    if response.error:
                        logging.error(
                            f"Response Error: {response.error_message}")
            else:
                s = None
                error = True
                logging.error(f"Request Error")
        else:
            error = True
    except MessagingError as m:
        s = None
        doError(f"{m}")
        error = True

    return "", error
Ejemplo n.º 12
0
def createAssignmentDirectory(module, assignment_name):
    global s
    try:
        if setSocket():
            args = {'module': module, 'assignment': assignment_name}

            response = request(
                Request(s, FileServerCommands.CREATE_ASSIGNMENT_DIRECTORY,
                        args))

            if response is not None:
                if not response.disconnected:
                    if response.success == "True":
                        return response.data['params_path'], False
                    else:
                        error = True
                        doError(
                            f"A server error occurred checking if assignment exists: {response.message}"
                        )
                else:
                    s = None
                    error = True
                    if response.error:
                        logging.error(
                            f"Response Error: {response.error_message}")
            else:
                s = None
                error = True
                logging.error(f"Request Error")

        else:
            error = True
    except MessagingError as m:
        s = None
        doError(f"{m}")
        error = True

    return "", error
Ejemplo n.º 13
0
def uploadFile(file, destination_path):
    global s
    try:
        if setSocket():
            contents, error = readFileContents(file)

            if not error:
                args = {'contents': contents, 'destination': destination_path}

                response = request(
                    Request(s, FileServerCommands.UPLOAD_FILE, args))

                if response is not None:
                    if not response.disconnected:
                        if response.success == "True":
                            return False
                        else:
                            error = True
                            doError(f"{response.message}")
                    else:
                        s = None
                        error = True
                        if response.error:
                            logging.error(
                                f"Response Error: {response.error_message}")
                else:
                    s = None
                    error = True
                    logging.error(f"Request Error")
        else:
            error = True
    except MessagingError as m:
        s = None
        doError(f"{m}")
        error = True

    return error
Ejemplo n.º 14
0
def generateAssignmentCSV(module, assignment='all') -> bool:
    global s
    try:
        error = False
        if setSocket():
            args = {
                'module': module,
                'assignment': assignment  # for now, we only support all
            }

            response = request(
                Request(s, FileServerCommands.GENERATE_ASSIGNMENT_CSV, args))

            if response is not None:
                if not response.disconnected:
                    if response.success == "True":
                        return False
                    else:
                        error = True
                        doError(f"{response.message}")
                else:
                    s = None
                    error = True
                    if response.error:
                        logging.error(
                            f"Response Error: {response.error_message}")
            else:
                s = None
                error = True
                logging.error(f"Request Error")
    except MessagingError as m:
        s = None
        doError(f"{m}")
        error = True

    return error
Ejemplo n.º 15
0
def getParams(module, assignment):
    global s
    try:
        if setSocket():
            args = {'module': module, 'assignment': assignment}

            response = request(Request(s, FileServerCommands.GET_PARAMS, args))

            if response is not None:
                if not response.disconnected:
                    if response.success == "True":
                        return response.data['content'], response.data[
                            'filename'], False
                    else:
                        error = True
                        doError(
                            f"A server error occurred retrieving params: {response.message}"
                        )
                else:
                    s = None
                    error = True
                    if response.error:
                        logging.error(
                            f"Response Error: {response.error_message}")
            else:
                s = None
                error = True
                logging.error(f"Request Error")
        else:
            error = True
    except MessagingError as m:
        s = None
        doError(f"{m}")
        error = True

    return "", "", error
Ejemplo n.º 16
0
def getDefinitions(module, academic_year):
    global s
    try:
        if setSocket():
            args = {'module': module, 'academic_year': academic_year}

            response = request(
                Request(s, FileServerCommands.GET_DEFINITIONS_FILE, args))

            if response is not None:
                if not response.disconnected:
                    if response.success == "True":
                        return response.data['definitions'], False
                    else:
                        error = True
                        doError(
                            f"A server error occurred retrieving definitions: {response.message}"
                        )
                else:
                    s = None
                    error = True
                    if response.error:
                        logging.error(
                            f"Response Error: {response.error_message}")
            else:
                s = None
                error = True
                logging.error(f"Request Error")
        else:
            error = True
    except MessagingError as m:
        s = None
        doError(f"{m}")
        error = True

    return {}, error