示例#1
0
 def _is_user_exist(self, user: RegisterUserSchema) -> bool:
     with scoped_session() as session:
         find_user = session.query(UserModel).filter(
             or_(UserModel.email == user.email,
                 UserModel.username == user.username))\
             .first()
     return False if find_user is None else True
示例#2
0
 def create_offer(self, offer: CreateOfferSchema) -> OfferModel:
     with scoped_session() as session:
         new_offer = OfferModel(user_id=offer.user_id,
                                title=offer.title,
                                text=offer.text)
         session.add(new_offer)
         session.flush()
     return new_offer
示例#3
0
 def create_user(self, user: RegisterUserSchema) -> Optional[UserModel]:
     if self._is_user_exist(user):
         raise UserExistExcept()
     password_hash = generate_password_hash(user.password)
     with scoped_session() as session:
         new_user = UserModel(username=user.username,
                              password=password_hash,
                              email=user.email)
         session.add(new_user)
         session.flush()
     return new_user
示例#4
0
 def authenticate(self, auth_schema: AuthUserSchema) -> Tuple[int, bytes]:
     password, username = auth_schema.password, auth_schema.username
     with scoped_session() as session:
         user = session.query(UserModel).filter(
             UserModel.username == username).first()
         if user is None:
             raise IncorrectlyLoginPassExcept()
         if check_password_hash(user.password, password):
             token = self.encode_auth_token(user.id)
             return user.id, token.decode()
         else:
             raise IncorrectlyLoginPassExcept()
示例#5
0
 def get_user_by_id(self, id: int) -> UserModel:
     with scoped_session() as session:
         user = session.query(UserModel).filter(UserModel.id == id).first()
         if user is None:
             raise UserNotFound()
         return user
示例#6
0
 def get_offer_by_id(self, offer_id) -> OfferModel:
     with scoped_session() as session:
         offer = session.query(OfferModel).filter(
             OfferModel.id == offer_id).first()
     return offer
示例#7
0
 def get_offers_by_user_id(self, user_id) -> List[Dict]:
     with scoped_session() as session:
         offers = session.query(OfferModel).filter(
             OfferModel.user_id == user_id).all()
     return [o.as_dict() for o in offers]