49 lines
1.6 KiB
Python
49 lines
1.6 KiB
Python
import sys
|
|
import os
|
|
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "src")))
|
|
|
|
from dotenv import load_dotenv
|
|
load_dotenv(".env")
|
|
|
|
from lib.custom_logger import get_logger
|
|
logger = get_logger(level=10)
|
|
|
|
from providers.firestore_provider import FireStoreProvider
|
|
from models.user import UserModel
|
|
FireStoreProvider()
|
|
|
|
def example_firestore():
|
|
logger.info("Starting Firestore example")
|
|
doc_id = FireStoreProvider.create_document(
|
|
"users", {"name": "Alice", "age": 30, "tags": ["admin", "beta"]}
|
|
)
|
|
logger.info(f"Created document with ID: {doc_id}")
|
|
doc = FireStoreProvider.get_document("users", doc_id)
|
|
logger.info(f"show document: {doc}")
|
|
rows = FireStoreProvider.list_documents(
|
|
"users",
|
|
filters=[("age", ">=", 18)],
|
|
order_by=["-age"],
|
|
limit=50,
|
|
)
|
|
logger.info(f"Listed documents: {rows}")
|
|
FireStoreProvider.update_document("users", doc_id, {"age": 31}, merge=True)
|
|
FireStoreProvider.delete_document("users", doc_id)
|
|
|
|
def example_user_model():
|
|
logger.info("Starting UserModel example")
|
|
user = UserModel(name="Bob", email="example@example.com", age=30)
|
|
user.save()
|
|
logger.info(f"User saved with ID: {user._doc_id}")
|
|
|
|
user2 = UserModel.get(user._doc_id)
|
|
logger.info(f"Fetched user: {user2._doc_id}")
|
|
user2.name = "Robert"
|
|
user2.age = 31
|
|
user2.save()
|
|
logger.info(f"Updated user: {user2._doc_id}")
|
|
users = UserModel.list()
|
|
logger.info(f"Listed users: {[user._doc_id for user in users] }")
|
|
|
|
# example_firestore()
|
|
example_user_model() |