def find_user(session, firstname, lastname): user_row = (session.query(UserSchema) .filter(UserSchema.firstname == firstname) .filter(UserSchema.lastname == lastname) .first()) if not user_row: return None return db_converter.to_model(user_row)
def _rows_to_user_model(user_rows): if not user_rows: return [] users = [] for user_row in user_rows: user_model = db_converter.to_model(user_row) users.append(user_model) return users
def get_main_user_by_line_id(session, line_id): row = (session.query(UserSchema, UserLineSchema) .filter(UserLineSchema.user_id == UserSchema.id) .filter(UserLineSchema.line_id == line_id) .filter(UserLineSchema.main_user == True) .first()) if not row: raise ElementNotExistsError('MainUser', line_id=line_id) user_row, _ = row return db_converter.to_model(user_row)
def get_main_user_by_line_id(session, line_id): row = (session.query(UserSchema, UserLineSchema) .filter(UserLineSchema.user_id == UserSchema.id) .filter(UserLineSchema.line_id == line_id) .filter(UserLineSchema.main_user == True) .first()) if not row: raise errors.not_found('User', line_id=line_id) user_row, _ = row return db_converter.to_model(user_row)
def _find_by_number_context(session, number, context): user_row = (session.query(UserSchema) .join(ExtensionSchema, and_(ExtensionSchema.context == context, ExtensionSchema.exten == number, ExtensionSchema.commented == 0)) .join(LineSchema, and_(LineSchema.commented == 0)) .join(UserLineSchema, and_(UserLineSchema.user_id == UserSchema.id, UserLineSchema.extension_id == ExtensionSchema.id, UserLineSchema.line_id == LineSchema.id, UserLineSchema.main_line == True)) .first()) if not user_row: return None return db_converter.to_model(user_row)
def get(session, user_id): user_row = _fetch_commented_user_row(session, user_id) return db_converter.to_model(user_row)