Spaces:
Sleeping
Sleeping
from database.setup_db import get_database | |
from datetime import datetime | |
import uuid | |
from pymongo import DESCENDING | |
def get_current_week_identifier(): | |
""" | |
Generate a week identifier based on the current year and week number. | |
Example: '2023_45' for the 45th week of 2023. | |
""" | |
now = datetime.now() | |
year = now.year | |
week_number = now.isocalendar()[1] # ISO week number | |
return f"{year}_Week_{week_number}" | |
def insert_weekly_task_data(json_data,): | |
""" | |
Insert JSON data into the weekly_tasks collection. | |
Args: | |
json_data (dict): JSON object containing task data. | |
""" | |
db = get_database() | |
collection = db["weekly_tasks"] | |
# Generate the current week identifier | |
week_identifier = get_current_week_identifier() | |
unique_id = str(uuid.uuid4()) | |
# Check if a document for the given week already exists | |
existing_document = collection.find_one({"unique_id": unique_id}) | |
if existing_document: | |
print(f"Document with id: {unique_id} already exists. Skipping insert.") | |
return | |
# Insert the document if it doesn't already exist | |
document = { | |
"week": week_identifier, | |
"unique_id": unique_id, | |
"tasks": json_data, | |
"created_at": datetime.now() | |
} | |
result = collection.insert_one(document) | |
print(f"Inserted document with ID: {result.inserted_id}") | |
def fetch_recent_two_entries(): | |
""" | |
Fetch the two most recent entries from the weekly_tasks collection | |
based on the created_at timestamp. | |
Returns: | |
list: A list of the two most recent documents from the collection. | |
""" | |
db = get_database() | |
collection = db["weekly_tasks"] | |
# Query to fetch the two most recent entries | |
recent_entries = list( | |
collection.find().sort("created_at", DESCENDING).limit(2) | |
) | |
return recent_entries | |