Streamlit + Readme update: copy to cURL (#22)

This commit is contained in:
Suchintan 2024-03-04 12:41:38 -05:00 committed by GitHub
parent 0495552b11
commit 3bf56717c9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 79 additions and 34 deletions

View file

@ -1,7 +1,9 @@
import json
from typing import Any
import curlify
import requests
from requests import PreparedRequest
from skyvern.forge.sdk.schemas.tasks import TaskRequest
@ -11,7 +13,7 @@ class SkyvernClient:
self.base_url = base_url
self.credentials = credentials
def create_task(self, task_request_body: TaskRequest) -> str | None:
def generate_curl_params(self, task_request_body: TaskRequest) -> PreparedRequest:
url = f"{self.base_url}/tasks"
payload = task_request_body.model_dump()
headers = {
@ -19,11 +21,23 @@ class SkyvernClient:
"x-api-key": self.credentials,
}
return url, payload, headers
def create_task(self, task_request_body: TaskRequest) -> str | None:
url, payload, headers = self.generate_curl_params(task_request_body)
response = requests.post(url, headers=headers, data=json.dumps(payload))
if "task_id" not in response.json():
return None
return response.json()["task_id"]
def copy_curl(self, task_request_body: TaskRequest) -> str:
url, payload, headers = self.generate_curl_params(task_request_body)
req = requests.Request("POST", url, headers=headers, data=json.dumps(payload, indent=4))
return curlify.to_curl(req.prepare())
def get_task(self, task_id: str) -> dict[str, Any] | None:
"""Get a task by id."""
url = f"{self.base_url}/internal/tasks/{task_id}"