Create add_user rout

And fix some bullshit
This commit is contained in:
IgorVolochay
2025-02-17 14:22:49 +03:00
parent 388c89cc40
commit 51cc2eb2b2
4 changed files with 33 additions and 22 deletions
+19 -5
View File
@@ -1,24 +1,38 @@
import uvicorn
import asyncio
from schemas import *
from fastapi import FastAPI, Depends
from schemas.api_schemas import *
from mongo_worker import MongoWorker
from typing import Annotated
from fastapi import FastAPI, Depends, UploadFile, File
app = FastAPI()
@app.get("/check_user")
async def check_user(user_id: int, mongo: MongoWorker = Depends(MongoWorker)) -> BaseResponse:
async def check_user(user_id: int,
mongo: MongoWorker = Depends(MongoWorker)) -> BaseResponse:
result = mongo.check_user(user_id)
return BaseResponse(result=result)
@app.get("/get_user")
async def get_user(user_id: int, mongo: MongoWorker = Depends(MongoWorker)) -> BaseResponse:
async def get_user(user_id: int,
mongo: MongoWorker = Depends(MongoWorker)) -> BaseResponse:
result = mongo.get_user(user_id)
return BaseResponse(result=result)
@app.post("/add_user")
async def add_user(user_id: int,
username: str,
first_name: str,
last_name: str,
photo_url: str,
mongo: MongoWorker = Depends(MongoWorker)) -> BaseResponse:
result = mongo.add_user(user_id, username, first_name, last_name, photo_url)
return BaseResponse(result=result)
async def main():
config = uvicorn.Config("main:app", port=5000, log_level="info")
+4 -9
View File
@@ -2,7 +2,7 @@ import os
import pymongo
from schemas import *
from schemas.base_schemas import *
from datetime import datetime
from dotenv import load_dotenv
@@ -19,28 +19,23 @@ class MongoWorker:
self.users_data = self.db["users_data"]
self.game_data = self.db["game_data"]
def get_mongodb_info(self) -> None:
print(self.client.list_database_names())
print(self.db.list_collection_names())
def check_user(self, user_id: int) -> bool:
if self.users_data.find_one({"user_id": user_id}):
return True
else:
return False
def add_user(self, user_id: int, username: str, first_name: str, last_name: str, photo_id: str) -> User:
def add_user(self, user_id: int, username: str, first_name: str, last_name: str, photo_url: str) -> User:
new_user = User(user_id=user_id,
username=username,
first_name=first_name,
last_name=last_name,
photo_id=photo_id,
photo_url=photo_url,
registration_date=datetime.now().isoformat())
try:
res = self.users_data.insert_one(new_user.model_dump())
self.users_data.insert_one(new_user.model_dump())
return new_user
except Exception as exception:
print(exception)
return new_user
def get_user(self, user_id: int) -> User:
+8
View File
@@ -0,0 +1,8 @@
import typing
from pydantic import BaseModel
class BaseResponse(BaseModel):
result: typing.Any
error: bool = False
@@ -1,5 +1,3 @@
import typing
from pydantic import BaseModel
@@ -9,15 +7,11 @@ class User(BaseModel):
first_name: str
last_name: str
photo_id: str
photo_url: str
activity: int = 0
liked_post_ids: list[int] = list()
disliked_post_ids: list[int] = list()
comments_ids: list[int] = list()
registration_date: str
class BaseResponse(BaseModel):
result: typing.Any
error: bool = False
registration_date: str