RELEASE 1.0! #5

Merged
IgorVolochay merged 95 commits from prebuild into main 2026-09-09 08:45:32 +00:00
6 changed files with 58 additions and 22 deletions
Showing only changes of commit e5b336e8e4 - Show all commits
+3
View File
@@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml
+1 -1
View File
@@ -19,5 +19,5 @@ pip3 install -r requirements.txt
3. Installing MongoDB database. You can use the [official manual](https://www.mongodb.com/docs/manual/installation/) to install MongoDB manually, or use a [Docker image](https://hub.docker.com/r/mongodb/mongodb-community-server) to run the container:
```bash
docker run --name mongodb -d -p 27017:27017 mongodb/mongodb-community-server
docker run --name mongodb -d -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=user -e MONGO_INITDB_ROOT_PASSWORD=pass mongodb/mongodb-community-server
```
+5
View File
@@ -0,0 +1,5 @@
MONGO_HOST = 127.0.0.1
MONGO_PORT = 27017
MONGO_USER = user
MONGO_PASS = pass
+31 -21
View File
@@ -1,13 +1,20 @@
import os
import pymongo
from datetime import datetime
from schemas import *
from bson import ObjectId
from datetime import datetime
from dotenv import load_dotenv
class MongoWorker:
def __init__(self):
self.client = pymongo.MongoClient(host="127.0.0.1", port=27017)
load_dotenv()
self.client = pymongo.MongoClient(host = os.getenv('MONGO_HOST'),
port = int(os.getenv('MONGO_PORT')),
username = os.getenv('MONGO_USER'),
password = os.getenv('MONGO_PASS'))
self.db = self.client["data"]
self.users_data = self.db["users_data"]
self.game_data = self.db["game_data"]
@@ -16,30 +23,33 @@ class MongoWorker:
print(self.client.list_database_names())
print(self.db.list_collection_names())
def find_user(self, user_id: int) -> dict:
result = self.users_data.find_one({"user_id": user_id})
return result
def check_user(self, user_id: int) -> True | False:
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_path: str) -> ObjectId:
def add_user(self, user_id: int, username: str, first_name: str, last_name: str, photo_path: str) -> User:
new_user = User(user_id=user_id,
username=username,
first_name=first_name,
last_name=last_name,
photo_path=photo_path,
registration_date=datetime.now().isoformat())
try:
res = self.users_data.insert_one({"user_id": user_id,
"username": username,
"first_name": first_name,
"last_name": last_name,
"photo_path": photo_path,
"activity": 0,
"liked_post_ids": [],
"disliked_post_ids": [],
"comments_ids": [],
"registration_date": datetime.now().isoformat()
})
return res.inserted_id
res = 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:
return User.model_validate(self.users_data.find_one({"user_id": user_id}))
if __name__ == "__main__":
mongo = MongoWorker()
mongo.get_mongodb_info()
print(mongo.add_user(123, "VolochayIgor", "Igor", "Volochay", "path/to/img"))
print(mongo.find_user(123))
print(mongo.check_user(123))
# print(mongo.add_user(123, "VolochayIgor", "Igor", "Volochay", os.path.join("/path/to", "photo.jpg")))
print(mongo.get_user(123))
+17
View File
@@ -0,0 +1,17 @@
from pydantic import BaseModel
class User(BaseModel):
user_id: int
username: str
first_name: str
last_name: str
photo_path: str
activity: int = 0
liked_post_ids: list[int] = None
disliked_post_ids: list[int] = None
comments_ids: list[int] = None
registration_date: str
+1
View File
@@ -1,2 +1,3 @@
fastapi==0.115.7
pymongo==4.10.1
python-dotenv==1.0.1