Files
ad/molodetz/database/joins.py
T

48 lines
1.3 KiB
Python
Raw Normal View History

2026-10-05 09:36:20 +02:00
# retoor <retoor@molodetz.nl>
from molodetz.database.core import db, generate_uid, now_iso
def insert_join_request(name, contact, repo_url, message, ip_hash):
row = {
"uid": generate_uid(),
"name": name,
"contact": contact,
"repo_url": repo_url or None,
"message": message or "",
"status": "open",
"ip_hash": ip_hash,
"link_title": None,
"link_checked_at": None,
"link_status": None,
"created_at": now_iso(),
"updated_at": now_iso(),
"deleted_at": None,
"deleted_by": None,
}
db["join_requests"].insert(row)
return row
def list_join_requests(limit=500):
if "join_requests" not in db.tables:
return []
return list(db["join_requests"].find(deleted_at=None, order_by=["-created_at"], _limit=limit))
def get_join_request(uid):
if "join_requests" not in db.tables:
return None
return db["join_requests"].find_one(uid=uid, deleted_at=None)
def update_join_request(uid, **fields):
fields["uid"] = uid
fields["updated_at"] = now_iso()
db["join_requests"].update(fields, ["uid"])
def count_open_join_requests():
if "join_requests" not in db.tables:
return 0
return db["join_requests"].count(deleted_at=None, status="open")