def convertJSONToList(itemType: type, jsonObject): list = json.loads(jsonObject) newList = [] newItem = None for item in list: if itemType is Student: newItem = Student( TypeParser.parseInt(item["studentId"], InvalidStudentId), item["name"], TypeParser.parseInt(item["group"], InvalidStudentGroup)) StudentValidator.validateStudent(newItem) elif itemType is Grade: newItem = Grade( TypeParser.parseInt(item["studentId"], InvalidStudentId), TypeParser.parseInt(item["assignmentId"], InvalidAssignmentId), item["grade"]) GradeValidator.validateGrade(newItem) elif itemType is Assignment: newItem = Assignment( TypeParser.parseInt(item["assignmentId"], InvalidAssignmentId), item["description"], TypeParser.parseDate(item["deadline"], InvalidAssignmentDeadline)) AssignmentValidator.validateAssignment(newItem) newList.append(newItem) return newList
def findAssignment(self, assignmentId: int) -> Assignment: """ Searches an assignment and returns it if found. Raises InvalidAssignmentId otherwise """ assignment = Assignment(assignmentId) foundAssignment = self.__assignmentRepository.getItem(assignment) if foundAssignment is None: raise AssignmentIdNotFound return foundAssignment
def addAssignment(self, assignmentId: int, description: str, deadline: datetime.date) -> Assignment: """ Adds an assignment to the repository """ assignment = Assignment(assignmentId, description, deadline) AssignmentValidator.validateAssignment(assignment) self.__assignmentRepository.addItem(assignment) self.__changesStack.addChange(ChangesStack.ItemAdded(assignment), newCommit=True) return assignment
def convertTuples(tupleList: List[Tuple], itemType: type): newList = [] newItem = None for item in tupleList: if itemType is Student: newItem = Student(item[0], item[1], item[2]) elif itemType is Grade: newItem = Grade(item[0], item[1], item[2] if item[2] != "NULL" else None) elif itemType is Assignment: newItem = Assignment(item[0], item[1], TypeParser.parseDate(item[2], InvalidAssignmentDeadline)) newList.append(newItem) return newList
def assignmentToStr(assignment: Assignment): deadline = ManageAssignmentsMenu.dateToStr(assignment.getDeadline()) return str(assignment.getAssignmentId() ) + " - " + assignment.getDescription() + " - " + deadline
def validateAssignment(assignment: Assignment): AssignmentValidator.validateId(assignment.getAssignmentId()) AssignmentValidator.validateDescription(assignment.getDescription()) AssignmentValidator.validateDeadline(assignment.getDeadline())