diff --git a/CHANGELOG.md b/CHANGELOG.md index 4bd5953..1c90b58 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ #### Features - Support basic authentication +- Support stored procedures (RPC) ### v0.1.1 diff --git a/README.md b/README.md index 1dccd19..e18ee3f 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,14 @@ PostgREST client for Python. This library provides an ORM interface to PostgREST ### Instructions +#### With Poetry + +```sh +$ poetry add git+https://github.com/lqmanh/postgrest_py.git#v0.1.1 +``` + +#### With Pip + ## USAGE ## DOCUMENTATION diff --git a/postgrest_py/client.py b/postgrest_py/client.py index 72275ba..92857c7 100644 --- a/postgrest_py/client.py +++ b/postgrest_py/client.py @@ -1,4 +1,4 @@ -from httpx import AsyncClient +from httpx import AsyncClient, Response from postgrest_py.request_builder import RequestBuilder @@ -22,7 +22,7 @@ async def __aexit__(self, exc_type, exc, tb) -> None: async def aclose(self) -> None: await self.session.aclose() - def auth(self, bearer_token: str, *, username: str = None, password=""): + def auth(self, bearer_token: str, *, username: str = None, password: str = None): """Authenticate the request, with either bearer token or basic authentication.""" if username: @@ -44,3 +44,10 @@ def from_(self, table: str) -> RequestBuilder: """Alias to Self.from_table().""" return self.from_table(table) + + async def rpc(self, func: str, params: dict) -> Response: + """Execute a stored procedure call.""" + + path = f"/rpc/{func}" + r = await self.session.post(path, json=params) + return r