Browse Source

mod qrcode

tomoya 1 year ago
parent
commit
b1a11a4444

+ 1 - 3
backend/app/app/api/api_v1/endpoints/images.py

@@ -24,7 +24,7 @@ LOCAL_ZIP_STORAGE = Path("/").joinpath(settings.LOCAL_ZIP_STORAGE)
 
 
 router = APIRouter()
-
+sr_clients = {}
 
 @router.post("/sr")
 async def supser_resolution(
@@ -106,8 +106,6 @@ def get_image(
 def del_image():
     pass
 
-sr_clients = {}
-
 @router.websocket("/sr")
 async def websocket_endpoint(websocket: WebSocket):
     await websocket.accept()

+ 33 - 25
backend/app/app/api/api_v1/endpoints/login.py

@@ -22,7 +22,7 @@ from google.auth.transport import requests
 router = APIRouter()
 
 
-@router.post("/login/access-token", response_model=schemas.Token)
+@router.post("/login/access-token")#, response_model=schemas.Token)
 def login_access_token(
     db: Session = Depends(deps.get_db), form_data: OAuth2PasswordRequestForm = Depends(), add_time_code: Optional[str] = None
 ) -> Any:
@@ -37,24 +37,28 @@ def login_access_token(
     elif not crud.user.is_active(user):
         raise HTTPException(status_code=400, detail="Inactive user")
     access_token_expires = timedelta(minutes=settings.ACCESS_TOKEN_EXPIRE_MINUTES)
-
-    if add_time_code:
-        available_ser_no = crud.serial_number.available(db, ser_no=add_time_code)
-        
-        user_in = schemas.UserUpdate(available_time=user.available_time+available_ser_no.time)
-        crud.user.update(db, db_obj=user, obj_in=user_in)
-    
-        ser_no_in = schemas.SerialNumberUpdate(code=available_ser_no.code, is_used=True, used_datetime=str(datetime.now()), owner_id=user.id)
-        crud.serial_number.update(db, db_obj=available_ser_no, obj_in=ser_no_in)
-    
-    return {
+    return_msg = {
         "access_token": security.create_access_token(
             user.id, expires_delta=access_token_expires
         ),
         "token_type": "bearer",
     }
-
-@router.post("/login/google/access-token", response_model=schemas.Token)
+    if add_time_code:
+        available_ser_no = crud.serial_number.available(db, ser_no=add_time_code)
+        print(available_ser_no)
+        if available_ser_no:
+            user_in = schemas.UserUpdate(available_time=user.available_time+available_ser_no.time)
+            crud.user.update(db, db_obj=user, obj_in=user_in)
+        
+            ser_no_in = schemas.SerialNumberUpdate(code=available_ser_no.code, is_used=True, used_datetime=str(datetime.now()), owner_id=user.id)
+            crud.serial_number.update(db, db_obj=available_ser_no, obj_in=ser_no_in)
+            print(available_ser_no.time, type(available_ser_no.time))
+            return_msg['time_added'] = available_ser_no.time
+        else:
+            return_msg['time_added'] = -1
+    return return_msg 
+
+@router.post("/login/google/access-token")#, response_model=schemas.Token)
 def login_access_token(
     db: Session = Depends(deps.get_db), form_data: OAuth2PasswordRequestForm = Depends(), add_time_code: Optional[str] = None
 ) -> Any:
@@ -70,22 +74,26 @@ def login_access_token(
     elif not crud.user.is_active(user):
         raise HTTPException(status_code=400, detail="Inactive user")
     access_token_expires = timedelta(minutes=settings.ACCESS_TOKEN_EXPIRE_MINUTES)
-
-    if add_time_code:
-        available_ser_no = crud.serial_number.available(db, ser_no=add_time_code)
-        
-        user_in = schemas.UserUpdate(available_time=user.available_time+available_ser_no.time)
-        crud.user.update(db, db_obj=user, obj_in=user_in)
-    
-        ser_no_in = schemas.SerialNumberUpdate(code=available_ser_no.code, is_used=True, used_datetime=str(datetime.now()), owner_id=user.id)
-        crud.serial_number.update(db, db_obj=available_ser_no, obj_in=ser_no_in)
-    
-    return {
+    return_msg = {
         "access_token": security.create_access_token(
             user.id, expires_delta=access_token_expires
         ),
         "token_type": "bearer",
     }
+    if add_time_code:
+        available_ser_no = crud.serial_number.available(db, ser_no=add_time_code)
+        print(available_ser_no)
+        if available_ser_no:
+            user_in = schemas.UserUpdate(available_time=user.available_time+available_ser_no.time)
+            crud.user.update(db, db_obj=user, obj_in=user_in)
+        
+            ser_no_in = schemas.SerialNumberUpdate(code=available_ser_no.code, is_used=True, used_datetime=str(datetime.now()), owner_id=user.id)
+            crud.serial_number.update(db, db_obj=available_ser_no, obj_in=ser_no_in)
+            print(available_ser_no.time, type(available_ser_no.time))
+            return_msg['time_added'] = available_ser_no.time
+        else:
+            return_msg['time_added'] = -1
+    return return_msg 
 
 
 

+ 1 - 1
backend/app/app/api/api_v1/endpoints/ser_no.py

@@ -28,7 +28,7 @@ def add_time(
     ser_no_in = schemas.SerialNumberUpdate(code=ser_no.code, is_used=True, used_datetime=str(datetime.now()), owner_id=current_user.id)
     crud.serial_number.update(db, db_obj=ser_no, obj_in=ser_no_in)
 
-    return "ok"
+    return {"time_added": ser_no.time}
 
 @router.get("/add-time-no-token")
 def add_time_no_token(

+ 1 - 0
backend/app/app/db/base.py

@@ -7,3 +7,4 @@ from app.models.enum import Progress, Membership
 from app.models.character import Character
 from app.models.article import Article
 from app.models.serial_number import SerialNumber
+from app.models.voice import Voice

+ 2 - 1
backend/app/app/models/__init__.py

@@ -2,4 +2,5 @@ from .user import User
 from .video import Video
 from .enum import Membership, Progress
 from .article import Article
-from .serial_number import SerialNumber
+from .serial_number import SerialNumber
+from .voice import Voice

+ 1 - 1
backend/app/app/models/video.py

@@ -13,7 +13,7 @@ if TYPE_CHECKING:
 class Video(Base):
   id = Column(Integer, primary_key=True, index=True)
   title = Column(String(20), index=True, nullable=False)
-  stored_file_name = Column(String(30), unique=True, nullable=False)
+  stored_filename = Column(String(30), unique=True, nullable=False)
   progress_state = Column(String(10), 
                     ForeignKey("progress.state", ondelete="RESTRICT", onupdate="CASCADE"),
                     default="waiting")

+ 10 - 0
backend/app/app/models/voice.py

@@ -0,0 +1,10 @@
+from typing import TYPE_CHECKING
+
+from sqlalchemy import Column, ForeignKey, Integer, String, DateTime, Boolean
+
+from app.db.base_class import Base
+
+class Voice(Base):
+  id = Column(Integer, primary_key=True, index=True,)
+  name = Column(String(30))
+  play_id = Column(String(30))