RELEASE 1.0! #5
+19
-5
@@ -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
@@ -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:
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user