|
@@ -1,21 +1,37 @@
|
|
|
-from typing import Any, Dict, List, Optional, Union
|
|
|
+from typing import List
|
|
|
|
|
|
from sqlalchemy.orm import Session
|
|
|
+from sqlalchemy import func
|
|
|
+from sqlalchemy.sql.elements import Null
|
|
|
|
|
|
-from app.core.security import get_password_hash, verify_password
|
|
|
from app.crud.base import CRUDBase
|
|
|
-from app.models.nft import nft
|
|
|
-from app.schemas.nft import NftBase, NftCreate, NftUpdate
|
|
|
+from app.models.nft import Nft
|
|
|
+from app.schemas.nft import NftBase, NftCreate, NftUpdate # noqa
|
|
|
|
|
|
|
|
|
-class CRUDUser(CRUDBase[nft, NftBase, NftCreate]):
|
|
|
+class CRUDNft(CRUDBase[Nft, NftBase, NftCreate]):
|
|
|
def get_multi_by_owner(
|
|
|
self, db: Session, *, skip: int = 0, limit: int = 100, owner_id: str
|
|
|
- ) -> List[nft]:
|
|
|
- return db.query(nft).filter(nft.userid==owner_id).offset(skip).limit(limit).all()
|
|
|
-
|
|
|
- def create_with_owner(self, db: Session, *, obj_in: NftCreate, owner_id:str) -> nft:
|
|
|
- db_obj = nft(
|
|
|
+ ) -> List[Nft]:
|
|
|
+ return db.query(Nft).filter(
|
|
|
+ Nft.userid == owner_id).offset(skip).limit(limit).all()
|
|
|
+
|
|
|
+ def get_group_by_title(
|
|
|
+ self, db: Session, *, skip: int = 0, limit: int = 100
|
|
|
+ ) -> List[Nft]:
|
|
|
+ return db.query(Nft, func.count(Nft.userid).label('count'))\
|
|
|
+ .group_by(Nft.title).offset(skip).limit(limit).all()
|
|
|
+
|
|
|
+ def get_user_by_title(
|
|
|
+ self, db: Session, *, skip: int = 0, limit: int = 100, title: str
|
|
|
+ ) -> List[Nft]:
|
|
|
+ return db.query(Nft.userid).filter(Nft.title == title, Nft.userid != None)\
|
|
|
+ .offset(skip).limit(limit).all() # noqa
|
|
|
+
|
|
|
+ def create_with_owner(
|
|
|
+ self, db: Session, *, obj_in: NftCreate, owner_id: str
|
|
|
+ ) -> Nft:
|
|
|
+ db_obj = Nft(
|
|
|
hash=obj_in.hash,
|
|
|
imgurl=obj_in.imgurl,
|
|
|
userid=owner_id,
|
|
@@ -30,5 +46,4 @@ class CRUDUser(CRUDBase[nft, NftBase, NftCreate]):
|
|
|
return db_obj
|
|
|
|
|
|
|
|
|
-
|
|
|
-nft = CRUDUser(nft)
|
|
|
+nft = CRUDNft(Nft)
|