Create add_user rout
And fix some bullshit
This commit is contained in:
+19
-5
@@ -1,24 +1,38 @@
|
|||||||
import uvicorn
|
import uvicorn
|
||||||
import asyncio
|
import asyncio
|
||||||
|
|
||||||
from schemas import *
|
from schemas.api_schemas import *
|
||||||
|
|
||||||
from fastapi import FastAPI, Depends
|
|
||||||
from mongo_worker import MongoWorker
|
from mongo_worker import MongoWorker
|
||||||
|
|
||||||
|
from typing import Annotated
|
||||||
|
|
||||||
|
from fastapi import FastAPI, Depends, UploadFile, File
|
||||||
|
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
@app.get("/check_user")
|
@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)
|
result = mongo.check_user(user_id)
|
||||||
return BaseResponse(result=result)
|
return BaseResponse(result=result)
|
||||||
|
|
||||||
@app.get("/get_user")
|
@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)
|
result = mongo.get_user(user_id)
|
||||||
return BaseResponse(result=result)
|
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():
|
async def main():
|
||||||
config = uvicorn.Config("main:app", port=5000, log_level="info")
|
config = uvicorn.Config("main:app", port=5000, log_level="info")
|
||||||
|
|||||||
+4
-9
@@ -2,7 +2,7 @@ import os
|
|||||||
|
|
||||||
import pymongo
|
import pymongo
|
||||||
|
|
||||||
from schemas import *
|
from schemas.base_schemas import *
|
||||||
|
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
@@ -19,28 +19,23 @@ class MongoWorker:
|
|||||||
self.users_data = self.db["users_data"]
|
self.users_data = self.db["users_data"]
|
||||||
self.game_data = self.db["game_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:
|
def check_user(self, user_id: int) -> bool:
|
||||||
if self.users_data.find_one({"user_id": user_id}):
|
if self.users_data.find_one({"user_id": user_id}):
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
return False
|
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,
|
new_user = User(user_id=user_id,
|
||||||
username=username,
|
username=username,
|
||||||
first_name=first_name,
|
first_name=first_name,
|
||||||
last_name=last_name,
|
last_name=last_name,
|
||||||
photo_id=photo_id,
|
photo_url=photo_url,
|
||||||
registration_date=datetime.now().isoformat())
|
registration_date=datetime.now().isoformat())
|
||||||
try:
|
try:
|
||||||
res = self.users_data.insert_one(new_user.model_dump())
|
self.users_data.insert_one(new_user.model_dump())
|
||||||
return new_user
|
return new_user
|
||||||
except Exception as exception:
|
except Exception as exception:
|
||||||
print(exception)
|
|
||||||
return new_user
|
return new_user
|
||||||
|
|
||||||
def get_user(self, user_id: int) -> User:
|
def get_user(self, user_id: int) -> User:
|
||||||
|
|||||||
@@ -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
|
from pydantic import BaseModel
|
||||||
|
|
||||||
|
|
||||||
@@ -9,7 +7,7 @@ class User(BaseModel):
|
|||||||
|
|
||||||
first_name: str
|
first_name: str
|
||||||
last_name: str
|
last_name: str
|
||||||
photo_id: str
|
photo_url: str
|
||||||
|
|
||||||
activity: int = 0
|
activity: int = 0
|
||||||
liked_post_ids: list[int] = list()
|
liked_post_ids: list[int] = list()
|
||||||
@@ -17,7 +15,3 @@ class User(BaseModel):
|
|||||||
comments_ids: list[int] = list()
|
comments_ids: list[int] = list()
|
||||||
|
|
||||||
registration_date: str
|
registration_date: str
|
||||||
|
|
||||||
class BaseResponse(BaseModel):
|
|
||||||
result: typing.Any
|
|
||||||
error: bool = False
|
|
||||||
Reference in New Issue
Block a user