def getLevel(identifier): """Get a level with its questions and their responses""" # Get the connection conn = getConnection() # Get the question question_cursor = executeRequest( """SELECT Level.Id, Level.Title, Question.Id, Question.Question, Response.Value, Response.Response, Response.Id FROM Level INNER JOIN Question ON Level.Id = Question.IdLevel INNER JOIN Response ON Question.Id = Response.IdQuestion WHERE Level.Id = """ + identifier + """ ORDER BY Question.Id, Response.Value""", conn) if question_cursor is not None: level = None current_question = None for row in question_cursor.fetchall(): # Title if level is None: level = Level() level.id = row[0] level.title = row[1] # Question if current_question is None or current_question.id != row[1]: current_question = Question() current_question.id = row[2] current_question.question = row[3] current_question.id_level = level.id level.questions.append(current_question) # Responses Level.Id, Level.Title, Question.Id, Question.Question, Response.Value, Response.Response, Response.Id response = Response() response.value = row[4] response.response = row[5] response.id = row[6] response.id_question = current_question.id current_question.responses.append(response) # Set the result result = getHTTPResponse(200, level) else: # Level does not exist result = getHTTPResponse(500, "This level does not exist", False) conn.close() return result
def getAll(): """Get all levels with their questions and their responses""" # Get the connection conn = getConnection() # Get the question question_cursor = executeRequest( """SELECT Level.Id, Level.Title, Question.Id, Question.Question, Response.Value, Response.Response, Response.Id FROM Level INNER JOIN Question ON Level.Id = Question.IdLevel INNER JOIN Response ON Question.Id = Response.IdQuestion ORDER BY Level.Id, Question.Id, Response.Value""", conn) levels = [] current_level = None current_question = None for row in question_cursor.fetchall(): # New level with title if current_level is None or current_level.id != row[0]: current_level = Level() current_level.id = row[0] current_level.title = row[1] levels.append(current_level) # Question if current_question is None or current_question.id != row[2]: current_question = Question() current_question.id = row[2] current_question.id_level = current_level.id current_question.question = row[3] current_level.questions.append(current_question) # Responses response = Response() response.value = row[4] response.response = row[5] response.id = row[6] response.id_question = current_question.id current_question.responses.append(response) # Set the result result = getHTTPResponse(200, levels) conn.close() return result
def load(path): questions = [] data = pandas.read_excel(io=path, header=None) for row in data.iterrows(): question = Question() question.answer = [] for column in row: if type(column) is int: continue for j, value in column.items(): print("Value: ", value) if j == 0: question.question = value else: if type(value) == float: question.answer.append("") else: question.answer.append(value) questions.append(question) return questions