Backend enhancements: auth, channels, restaurants, daemon improvements

- Add admin auth dependency and role checks
- Expand channel and restaurant API routes
- Improve YouTube transcript fetching
- Enhance daemon worker with better error handling and scheduling

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
joungmin
2026-03-09 10:59:22 +09:00
parent d6afb62c18
commit 6c47d3c57d
9 changed files with 208 additions and 42 deletions

View File

@@ -67,6 +67,9 @@ def find_or_create_user(
"email": email, "nickname": nickname,
"avatar_url": avatar_url, "id": row[0],
})
# Fetch is_admin
cur.execute("SELECT is_admin FROM tasteby_users WHERE id = :id", {"id": row[0]})
is_admin = bool(cur.fetchone()[0])
return {
"id": row[0],
"provider": row[1],
@@ -74,6 +77,7 @@ def find_or_create_user(
"email": email or row[3],
"nickname": nickname or row[4],
"avatar_url": avatar_url or row[5],
"is_admin": is_admin,
}
# Create new user
@@ -99,6 +103,7 @@ def find_or_create_user(
"email": email,
"nickname": nickname,
"avatar_url": avatar_url,
"is_admin": False,
}
@@ -108,6 +113,7 @@ def create_jwt(user: dict) -> str:
"sub": user["id"],
"email": user.get("email"),
"nickname": user.get("nickname"),
"is_admin": user.get("is_admin", False),
"exp": datetime.now(timezone.utc) + timedelta(days=JWT_EXPIRE_DAYS),
"iat": datetime.now(timezone.utc),
}