forked from retoor/devplacepy
refactor: split devii catalog.py into package (ref.md 3.5)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
# retoor <retoor@molodetz.nl>
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from ..spec import Action
|
||||
from ._shared import body, confirm, path, query
|
||||
|
||||
|
||||
PROFILE_ACTIONS: tuple[Action, ...] = (
|
||||
Action(
|
||||
name="search_users",
|
||||
method="GET",
|
||||
path="/profile/search",
|
||||
summary="Search for users by name",
|
||||
params=(query("q", "Search query."),),
|
||||
),
|
||||
Action(
|
||||
name="my_profile",
|
||||
method="GET",
|
||||
path="/profile",
|
||||
summary="View the current user's own profile",
|
||||
params=(query("tab", "Profile tab."),),
|
||||
),
|
||||
Action(
|
||||
name="view_profile",
|
||||
method="GET",
|
||||
path="/profile/{username}",
|
||||
summary="View a user profile",
|
||||
requires_auth=False,
|
||||
params=(
|
||||
path("username", "Username to view."),
|
||||
query("tab", "Profile tab."),
|
||||
),
|
||||
),
|
||||
Action(
|
||||
name="update_profile",
|
||||
method="POST",
|
||||
path="/profile/update",
|
||||
summary="Update the current user's profile",
|
||||
params=(
|
||||
body("bio", "Profile biography."),
|
||||
body("location", "Location."),
|
||||
body("git_link", "Git profile link."),
|
||||
body("website", "Personal website."),
|
||||
),
|
||||
),
|
||||
Action(
|
||||
name="regenerate_api_key",
|
||||
method="POST",
|
||||
path="/profile/regenerate-api-key",
|
||||
summary="Issue a new API key and invalidate the current one",
|
||||
description=(
|
||||
"Returns the new api_key. Warning: this immediately invalidates any key currently "
|
||||
"used for authentication, so confirm with the user before calling it."
|
||||
),
|
||||
params=(
|
||||
body(
|
||||
"confirm",
|
||||
"Must be true, set only after the user has explicitly confirmed.",
|
||||
required=True,
|
||||
),
|
||||
),
|
||||
),
|
||||
Action(
|
||||
name="regenerate_avatar",
|
||||
method="POST",
|
||||
path="/profile/{username}/regenerate-avatar",
|
||||
summary="Generate a new random avatar for a user",
|
||||
description=(
|
||||
"Replaces the user's avatar with a freshly generated random one and returns the new "
|
||||
"avatar_url. Owner-or-admin only. Irreversible: the previous avatar is gone for good, "
|
||||
"so confirm with the user before calling it."
|
||||
),
|
||||
params=(
|
||||
path("username", "Username whose avatar to regenerate."),
|
||||
confirm(),
|
||||
),
|
||||
),
|
||||
)
|
||||
Reference in New Issue
Block a user