"""共享接口:meetup 申请、create_user 等""" import logging import time from fastapi import APIRouter, HTTPException from pydantic import BaseModel from ..services import get_pb_client from ..sdk.memos import MemosSDK from ..config import MEMOS_API, MEMOS_TOKEN router = APIRouter(tags=["common"]) @router.post("/submit_meetup_application") async def submit_meetup_application(item: dict): """数字游民社区报名表单""" logging.info("submit_meetup_application item: %s", item) user_id = item.get("user_id") if not user_id: raise HTTPException(status_code=400, detail="missing user_id") try: pb_client = get_pb_client() solan = pb_client.collection("solan") pb_data = { "user_id": user_id, "nickname": item.get("nickname", ""), "occupation": item.get("occupation", ""), "reason": item.get("reason", ""), "wechatId": item.get("wechatId", ""), "gender": item.get("gender", ""), "education": item.get("education", ""), "gradYear": item.get("gradYear", ""), "phone": item.get("phone", ""), "calculated_age": item.get("calculated_age", 0), "type": "", "order_id": "", "amount": 0, } record = solan.create(pb_data) logging.info(f"meetup 申请表单提交成功(待支付) - user_id: {user_id}, record_id: {record.id}") return {"status": "ok", "record_id": record.id} except Exception as e: logging.error("meetup 申请提交失败: %s", e) logging.error(f"meetup 申请提交失败 - user_id: {user_id}, error: {e}") raise HTTPException(status_code=500, detail="submit failed") class CreateUserRequest(BaseModel): username: str | None = None password: str | None = None @router.post("/create_user") async def create_user(item: CreateUserRequest): """创建 Memos 用户(基于 MemosSDK)""" sdk = MemosSDK(api_url=MEMOS_API, token=MEMOS_TOKEN, enabled=bool(MEMOS_API and MEMOS_TOKEN)) if not sdk.enabled: return {"error": "Memos 未配置"} timenew = str(int(time.time())) username = item.username or f"user{timenew}" password = item.password or "12345678" result = sdk.create_user_by_username(username=username, password=password) logging.info("memos_result- %s", result) return result