Skip to content

Commit ae250ef

Browse files
committed
SNIPPET: Add draft model functions for snippets.
1 parent 1a5802c commit ae250ef

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

bot/libs/snippets/model.py

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
from collections import namedtuple
2+
3+
import asyncpg.pool
4+
5+
SnippetHeader = namedtuple(
6+
"SnippetHeader",
7+
["id", "name", "content", "uses", "owner_id", "location_id",
8+
"created_at"]
9+
)
10+
11+
12+
async def get_snippet(
13+
pool: asyncpg.pool.Pool, guild_id: int, owner_id: int, snippet_name: str
14+
):
15+
fields_str = ",".join(SnippetHeader._fields)
16+
query = f"""
17+
SELECT {fields_str} from snippets
18+
WHERE location_id = $1 AND owner_id = $2 AND name = $3
19+
"""
20+
row = await pool.fetchrow(query, guild_id, owner_id, snippet_name)
21+
if not row:
22+
return None
23+
return SnippetHeader(*row)
24+
25+
26+
async def create_snippet(
27+
pool: asyncpg.pool.Pool, guild_id: int, owner_id: int, snippet_name: str,
28+
snippet_text: str
29+
):
30+
query = """
31+
INSERT INTO snippets (owner_id, location_id, name, content)
32+
VALUES ($1, $2, $3, $4)
33+
"""
34+
await pool.execute(
35+
query, guild_id, owner_id, snippet_name, snippet_text
36+
)

0 commit comments

Comments
 (0)