shu/fix task url type (#999)
This commit is contained in:
13
skyvern/forge/sdk/core/validators.py
Normal file
13
skyvern/forge/sdk/core/validators.py
Normal file
@@ -0,0 +1,13 @@
|
||||
from pydantic import HttpUrl, ValidationError, parse_obj_as
|
||||
|
||||
from skyvern.exceptions import InvalidUrl
|
||||
|
||||
|
||||
def validate_url(url: str) -> str:
|
||||
try:
|
||||
# Use parse_obj_as to validate the string as an HttpUrl
|
||||
parse_obj_as(HttpUrl, url)
|
||||
return url
|
||||
except ValidationError:
|
||||
# Handle the validation error
|
||||
raise InvalidUrl(url=url)
|
||||
@@ -4,7 +4,7 @@ from datetime import datetime
|
||||
from enum import StrEnum
|
||||
from typing import Any
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
from pydantic import BaseModel, Field, HttpUrl
|
||||
|
||||
from skyvern.exceptions import InvalidTaskStatusTransition, TaskAlreadyCanceled
|
||||
|
||||
@@ -22,7 +22,7 @@ class ProxyLocation(StrEnum):
|
||||
NONE = "NONE"
|
||||
|
||||
|
||||
class TaskRequest(BaseModel):
|
||||
class TaskBase(BaseModel):
|
||||
title: str | None = Field(
|
||||
default=None,
|
||||
description="The title of the task.",
|
||||
@@ -76,6 +76,20 @@ class TaskRequest(BaseModel):
|
||||
)
|
||||
|
||||
|
||||
class TaskRequest(TaskBase):
|
||||
url: HttpUrl = Field(
|
||||
...,
|
||||
description="Starting URL for the task.",
|
||||
examples=["https://www.geico.com"],
|
||||
)
|
||||
webhook_callback_url: HttpUrl | None = Field(
|
||||
default=None,
|
||||
description="The URL to call when the task is completed.",
|
||||
examples=["https://my-webhook.com"],
|
||||
)
|
||||
totp_verification_url: HttpUrl | None = None
|
||||
|
||||
|
||||
class TaskStatus(StrEnum):
|
||||
created = "created"
|
||||
queued = "queued"
|
||||
@@ -144,7 +158,7 @@ class TaskStatus(StrEnum):
|
||||
return self in status_requires_failure_reason
|
||||
|
||||
|
||||
class Task(TaskRequest):
|
||||
class Task(TaskBase):
|
||||
created_at: datetime = Field(
|
||||
...,
|
||||
description="The creation datetime of the task.",
|
||||
@@ -229,7 +243,7 @@ class Task(TaskRequest):
|
||||
|
||||
|
||||
class TaskResponse(BaseModel):
|
||||
request: TaskRequest
|
||||
request: TaskBase
|
||||
task_id: str
|
||||
status: TaskStatus
|
||||
created_at: datetime
|
||||
|
||||
Reference in New Issue
Block a user