def post(self, data: dict, auth: Auth, **kwargs): print('new_professor') session = Session() duplicate_login = session.query(Auth).filter( Auth.login == data['login']).all() if len(duplicate_login) == 1: raise Exception('login') professor = Professor.new(session, first_name=data['first_name'], last_name=data['last_name'], middle_name=data['middle_name']) contact = ContactInfo.new(session, email=data['email']) professor.contact = contact session.commit() auth = Auth.new(session, login=data['login'], password=data['password'], user_type=UserType.PROFESSOR, user_id=professor.id) session.commit() return {'ok': 'ok'}
def new_professor(): print('new_professor') response = Response('new_professor') data = JsonParser.read(request.data.decode('utf8').replace("'", '"')) session = Session() duplicate_login = session.query(Auth).filter( Auth.login == data['data']['login']).all() if len(duplicate_login) == 1: response.set_error('login') return response() professor = Professor.new(session, first_name=data['data']['first_name'], last_name=data['data']['last_name'], middle_name=data['data']['middle_name']) contact = ContactInfo.new(session, email=data['data']['email']) professor.contact = contact session.commit() auth = Auth.new(session, login=data['data']['login'], password=data['data']['password'], user_type=UserType.PROFESSOR, user_id=professor.id) session.commit() response.set_data({'ok': 'ok'}, NewProfessorResponse) return response()
def on_response(self, received_data: Dict, progress_bar): def create_row(item_data: Dict, class_: Type[_DBObject]): if not class_.get(session, **item_data): class_.new(session, **item_data) session.flush() progress_bar.increment() session = Session() received_data = ServerFirstLoadData(**received_data) TOTAL_LENGTH = progress_bar.last() progress_bar.set_part(TOTAL_LENGTH, len(received_data.data), "Загрузка данных") received_data.data.foreach(create_row) Auth.new(session, **received_data.auth) professor = Professor.new(session, **Map.item_type(received_data.professor[0], Professor)) professor._last_update_in = datetime.now() professor._last_update_out = datetime.now() session.commit()
def apply(data): def create_row(item_data: Dict, class_: Type[_DBObject]): if not class_.get(session, **item_data): class_.new(session, **item_data) session.flush() received_data = ServerFirstLoadData(**data) session = Session() auth = Auth.new(session, **received_data.auth) received_data.data.foreach(create_row) professor = Professor.new( session, **Map.item_type(received_data.professor[0], Professor)) professor._last_update_in = datetime.now() professor._last_update_out = datetime.now() session.commit() if on_finish: on_finish()