def update_student_by_id(self, student_id: int, data: Dict) -> bool:
     """
     put student by id
     :param student_id:
     :param data:
     :return:
     """
     if not data:
         raise RequestDataEmpty("Student data is empty")
     if not self.input_validate.validate_json(data, student_schema):
         self.logger.error("All student field input must be required.")
         raise ValidateFail("Student update validation fail")
     try:
         self.logger.info(
             "Update student info by student_id:{}".format(student_id))
         return StudentModel.update_student(
             student_id,
             StudentModel(name=data["name"],
                          deactivated_at=data["deactivated_at"],
                          birth_date=data["birth_date"],
                          father_name=data["father_name"],
                          mother_name=data["mother_name"],
                          parents_occupation=data["parents_occupation"],
                          photo=data["photo"],
                          address_id=data["address_id"]))
     except SQLAlchemyError as error:
         self.logger.error("Error: {}".format(error))
         raise SQLCustomError(description="Update student by ID SQL ERROR")
     except SQLCustomError as error:
         self.logger.error("Error: {}".format(error))
         raise SQLCustomError(description="No record for requested student")
 def put(self, email=None):
     student = StudentModel.get_by_email(email)
     if not student:
         return {
             "Result":
             "record not exists for {email} id".format(email=email)
         }, 404
     data = update_parser.parse_args()
     record = StudentModel.update_student(student, data)
     return {"Result": record}, 200