shu/fix task url type (#999)

This commit is contained in:
Shuchang Zheng
2024-10-17 23:47:59 -07:00
committed by GitHub
parent dad53e1f6a
commit f69016088b
4 changed files with 43 additions and 7 deletions

View 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)

View File

@@ -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