from fastapi import APIRouter,File,Form,UploadFile import sqlite3 from os.path import exists from os import makedirs,chmod from PIL import Image from io import BytesIO UserItemAddRouter=APIRouter(prefix="/Users") @UserItemAddRouter.post("/AddUserItem") def adduser(Email:str=Form(...),Name:str=Form(...),Password:str=Form(...),Images:UploadFile=File(...)): try: State=False connect=sqlite3.connect("DataBase/DataBase.bd") cursor=connect.execute(f''' SELECT UserId,Password FROM Users where Email='{ Email}' ''') FData=cursor.fetchall() if len(FData) !=0 : if FData[0][0]==None: return {"Status":False,"Message":"Email or Password Is Incorrect "} HasedPassword=FData[0][1] UserId=FData[0][0] State= Password==HasedPassword Name= Name if not State: return {"Status":False,"Message":"Email or Password is not correct"} if not exists(f"./FaceRecognition/ExtactedFaces/{UserId}/Train/{Name}"): connect.execute(f''' INSERT INTO UserItems (UserId ,UserItemName ) VALUES ({UserId},'{Name}') ''') connect.commit() if not exists(f"./FaceRecognition/ExtactedFaces/{UserId}/Train/{Name}"): makedirs(f"./FaceRecognition/ExtactedFaces/{UserId}/Train/{Name}") chmod(f"./FaceRecognition/ExtactedFaces/{UserId}/Train/{Name}",0o777) if not exists(f"./FaceRecognition/ExtactedFaces/{UserId}/Test/{Name}"): makedirs(f"./FaceRecognition/ExtactedFaces/{UserId}/Test/{Name}") chmod(f"./FaceRecognition/ExtactedFaces/{UserId}/Test/{Name}",0o777) if not exists(f"./static/{UserId}/{Name}"): makedirs(f"./static/{UserId}/{Name}") chmod(f"./static/{UserId}/{Name}",0o777) Image.open(BytesIO(Images.file.read())).save(f"./static/{UserId}/{Name}/user.png","PNG") chmod(f"./static/{UserId}/{Name}/user.png",0o777) return {"Status":True,"Message":"User Is Added Correctly"} else: return {"Status":False,"Message":"Name Is Already Exist"} except Exception as e: return {"Status":False,"Message":e}