# retoor 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")