query changes
This commit is contained in:
parent
11087ead17
commit
be28592dfa
|
|
@ -124,7 +124,7 @@ def list_patchnotes(since: str | None = None):
|
||||||
"""GET /patchnotes – liefert neue Patchnotes und setzt last_login."""
|
"""GET /patchnotes – liefert neue Patchnotes und setzt last_login."""
|
||||||
|
|
||||||
user_id = current_user_id() # 1) aktueller Benutzer
|
user_id = current_user_id() # 1) aktueller Benutzer
|
||||||
|
last_login = last_login_collection.find_one({"user_id": user_id},{"last_login"})
|
||||||
if since is None:
|
if since is None:
|
||||||
try:
|
try:
|
||||||
docs = collection.find({})
|
docs = collection.find({})
|
||||||
|
|
@ -141,6 +141,12 @@ def list_patchnotes(since: str | None = None):
|
||||||
|
|
||||||
# 3) Datum validieren (nur wenn vorhanden)
|
# 3) Datum validieren (nur wenn vorhanden)
|
||||||
if since:
|
if since:
|
||||||
|
query = {
|
||||||
|
"patch_date": {
|
||||||
|
"$gte": last_login,
|
||||||
|
"$lte": since
|
||||||
|
}
|
||||||
|
}
|
||||||
try:
|
try:
|
||||||
datetime.strptime(since, "%Y-%m-%d")
|
datetime.strptime(since, "%Y-%m-%d")
|
||||||
except ValueError:
|
except ValueError:
|
||||||
|
|
@ -149,12 +155,11 @@ def list_patchnotes(since: str | None = None):
|
||||||
detail="since must be YYYY-MM-DD",
|
detail="since must be YYYY-MM-DD",
|
||||||
status=400,
|
status=400,
|
||||||
)
|
)
|
||||||
mongo_filter = {"patch_date": {"$gte": since}}
|
|
||||||
else:
|
else:
|
||||||
mongo_filter = {} # erster Login → alle Notes
|
query = {} # erster Login → alle Notes
|
||||||
|
|
||||||
# 4) Patchnotes abholen
|
# 4) Patchnotes abholen
|
||||||
docs = list(collection.find(mongo_filter).sort("patch_date", 1))
|
docs = list(collection.find(query).sort("patch_date", 1))
|
||||||
for d in docs:
|
for d in docs:
|
||||||
d.pop("_id", None)
|
d.pop("_id", None)
|
||||||
if isinstance(d["patch_date"], (datetime, date)):
|
if isinstance(d["patch_date"], (datetime, date)):
|
||||||
|
|
@ -167,7 +172,7 @@ def list_patchnotes(since: str | None = None):
|
||||||
{"$set": {"last_login": today}},
|
{"$set": {"last_login": today}},
|
||||||
upsert=True,
|
upsert=True,
|
||||||
)
|
)
|
||||||
if since == last_login_collection.find_one({"user_id": user_id},{"last_login"}):
|
if since == last_login:
|
||||||
return Response(json_util.dumps([]), mimetype="application/json", status=200)
|
return Response(json_util.dumps([]), mimetype="application/json", status=200)
|
||||||
|
|
||||||
return Response(json_util.dumps(docs), mimetype="application/json", status=200)
|
return Response(json_util.dumps(docs), mimetype="application/json", status=200)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue