Skip to content

Commit

Permalink
🗃️ add secrets functions to repository
Browse files Browse the repository at this point in the history
  • Loading branch information
gozineb committed Nov 7, 2023
1 parent ac5407a commit 917a848
Show file tree
Hide file tree
Showing 5 changed files with 67 additions and 0 deletions.
3 changes: 3 additions & 0 deletions backend/repository/external_api_secret/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from .create_secret import create_secret
from .delete_secret import delete_secret
from .read_secret import read_secret
21 changes: 21 additions & 0 deletions backend/repository/external_api_secret/create_secret.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
from uuid import UUID

from models import get_supabase_client
from utils import build_secret_unique_name


def create_secret(
user_id: UUID, brain_id: UUID, secret_name: str, secret_value
) -> UUID | None:
supabase_client = get_supabase_client()
response = supabase_client.rpc(
"insert_secret",
{
"name": build_secret_unique_name(
user_id=user_id, brain_id=brain_id, secret_name=secret_name
),
"secret": secret_value,
},
).execute()

return response.data
18 changes: 18 additions & 0 deletions backend/repository/external_api_secret/delete_secret.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
from uuid import UUID

from models import get_supabase_client
from utils import build_secret_unique_name


def delete_secret(user_id: UUID, brain_id: UUID, secret_name: str) -> bool:
supabase_client = get_supabase_client()
response = supabase_client.rpc(
"delete_secret",
{
"name": build_secret_unique_name(
user_id=user_id, brain_id=brain_id, secret_name=secret_name
),
},
).execute()

return response.data
20 changes: 20 additions & 0 deletions backend/repository/external_api_secret/read_secret.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
from uuid import UUID

from models import get_supabase_client
from utils import build_secret_unique_name


def read_secret(
user_id: UUID, brain_id: UUID, secret_name: str, secret_value
) -> UUID | None:
supabase_client = get_supabase_client()
response = supabase_client.rpc(
"read_secret",
{
"secret_name": build_secret_unique_name(
user_id=user_id, brain_id=brain_id, secret_name=secret_name
),
},
).execute()

return response.data
5 changes: 5 additions & 0 deletions backend/repository/external_api_secret/utils.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
from uuid import UUID


def build_secret_unique_name(user_id: UUID, brain_id: UUID, secret_name: str):
return f"{user_id}-{brain_id}-{secret_name}"

0 comments on commit 917a848

Please sign in to comment.