|
# retoor <retoor@molodetz.nl>
|
|
|
|
from __future__ import annotations
|
|
|
|
from ..spec import Action
|
|
from ._shared import ATTACHMENTS, body, confirm, path, query
|
|
|
|
|
|
GIST_ACTIONS: tuple[Action, ...] = (
|
|
Action(
|
|
name="list_gists",
|
|
method="GET",
|
|
path="/gists",
|
|
summary="List gists",
|
|
requires_auth=False,
|
|
params=(
|
|
query("language", "Filter by language."),
|
|
query("user_uid", "Filter by owner uid."),
|
|
query("search", "Search gist title, description, and author username."),
|
|
query("before", "Pagination cursor."),
|
|
),
|
|
),
|
|
Action(
|
|
name="view_gist",
|
|
method="GET",
|
|
path="/gists/{gist_slug}",
|
|
summary="View a gist by slug",
|
|
requires_auth=False,
|
|
params=(
|
|
path(
|
|
"gist_slug",
|
|
"Exact gist slug copied from a /gists/... link in a listing response; do not build it from the title.",
|
|
),
|
|
),
|
|
),
|
|
Action(
|
|
name="create_gist",
|
|
method="POST",
|
|
path="/gists/create",
|
|
summary="Create a gist",
|
|
params=(
|
|
body("title", "Gist title.", required=True),
|
|
body("source_code", "Gist source code.", required=True),
|
|
body("description", "Gist description."),
|
|
body("language", "Programming language."),
|
|
body("attachment_uids", ATTACHMENTS),
|
|
),
|
|
),
|
|
Action(
|
|
name="edit_gist",
|
|
method="POST",
|
|
path="/gists/edit/{gist_slug}",
|
|
summary="Edit a gist",
|
|
params=(
|
|
path(
|
|
"gist_slug",
|
|
"Exact gist slug copied from a /gists/... link in a listing response; do not build it from the title.",
|
|
),
|
|
body("title", "Gist title.", required=True),
|
|
body("source_code", "Gist source code.", required=True),
|
|
body("description", "Gist description."),
|
|
body("language", "Programming language."),
|
|
),
|
|
),
|
|
Action(
|
|
name="delete_gist",
|
|
method="POST",
|
|
path="/gists/delete/{gist_slug}",
|
|
summary="Delete a gist (your own, or any gist when you are an administrator). Soft delete, confirmation required",
|
|
params=(
|
|
path(
|
|
"gist_slug",
|
|
"Exact gist slug copied from a /gists/... link in a listing response; do not build it from the title.",
|
|
),
|
|
confirm(),
|
|
),
|
|
),
|
|
)
|