refactor(http-request): Remove the reflective calls to ssrf_proxy and replace them with explicitly defined dictionary retrievals. (#24596)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
This commit is contained in:
@@ -329,22 +329,16 @@ class Executor:
|
|||||||
"""
|
"""
|
||||||
do http request depending on api bundle
|
do http request depending on api bundle
|
||||||
"""
|
"""
|
||||||
if self.method not in {
|
_METHOD_MAP = {
|
||||||
"get",
|
"get": ssrf_proxy.get,
|
||||||
"head",
|
"head": ssrf_proxy.head,
|
||||||
"post",
|
"post": ssrf_proxy.post,
|
||||||
"put",
|
"put": ssrf_proxy.put,
|
||||||
"delete",
|
"delete": ssrf_proxy.delete,
|
||||||
"patch",
|
"patch": ssrf_proxy.patch,
|
||||||
"options",
|
}
|
||||||
"GET",
|
method_lc = self.method.lower()
|
||||||
"POST",
|
if method_lc not in _METHOD_MAP:
|
||||||
"PUT",
|
|
||||||
"PATCH",
|
|
||||||
"DELETE",
|
|
||||||
"HEAD",
|
|
||||||
"OPTIONS",
|
|
||||||
}:
|
|
||||||
raise InvalidHttpMethodError(f"Invalid http method {self.method}")
|
raise InvalidHttpMethodError(f"Invalid http method {self.method}")
|
||||||
|
|
||||||
request_args = {
|
request_args = {
|
||||||
@@ -362,11 +356,11 @@ class Executor:
|
|||||||
}
|
}
|
||||||
# request_args = {k: v for k, v in request_args.items() if v is not None}
|
# request_args = {k: v for k, v in request_args.items() if v is not None}
|
||||||
try:
|
try:
|
||||||
response = getattr(ssrf_proxy, self.method.lower())(**request_args)
|
response: httpx.Response = _METHOD_MAP[method_lc](**request_args)
|
||||||
except (ssrf_proxy.MaxRetriesExceededError, httpx.RequestError) as e:
|
except (ssrf_proxy.MaxRetriesExceededError, httpx.RequestError) as e:
|
||||||
raise HttpRequestNodeError(str(e)) from e
|
raise HttpRequestNodeError(str(e)) from e
|
||||||
# FIXME: fix type ignore, this maybe httpx type issue
|
# FIXME: fix type ignore, this maybe httpx type issue
|
||||||
return response # type: ignore
|
return response
|
||||||
|
|
||||||
def invoke(self) -> Response:
|
def invoke(self) -> Response:
|
||||||
# assemble headers
|
# assemble headers
|
||||||
|
@@ -9,6 +9,7 @@ from sqlalchemy import select
|
|||||||
from constants import HIDDEN_VALUE
|
from constants import HIDDEN_VALUE
|
||||||
from core.helper import ssrf_proxy
|
from core.helper import ssrf_proxy
|
||||||
from core.rag.entities.metadata_entities import MetadataCondition
|
from core.rag.entities.metadata_entities import MetadataCondition
|
||||||
|
from core.workflow.nodes.http_request.exc import InvalidHttpMethodError
|
||||||
from extensions.ext_database import db
|
from extensions.ext_database import db
|
||||||
from libs.datetime_utils import naive_utc_now
|
from libs.datetime_utils import naive_utc_now
|
||||||
from models.dataset import (
|
from models.dataset import (
|
||||||
@@ -185,9 +186,19 @@ class ExternalDatasetService:
|
|||||||
"follow_redirects": True,
|
"follow_redirects": True,
|
||||||
}
|
}
|
||||||
|
|
||||||
response: httpx.Response = getattr(ssrf_proxy, settings.request_method)(
|
_METHOD_MAP = {
|
||||||
data=json.dumps(settings.params), files=files, **kwargs
|
"get": ssrf_proxy.get,
|
||||||
)
|
"head": ssrf_proxy.head,
|
||||||
|
"post": ssrf_proxy.post,
|
||||||
|
"put": ssrf_proxy.put,
|
||||||
|
"delete": ssrf_proxy.delete,
|
||||||
|
"patch": ssrf_proxy.patch,
|
||||||
|
}
|
||||||
|
method_lc = settings.request_method.lower()
|
||||||
|
if method_lc not in _METHOD_MAP:
|
||||||
|
raise InvalidHttpMethodError(f"Invalid http method {settings.request_method}")
|
||||||
|
|
||||||
|
response: httpx.Response = _METHOD_MAP[method_lc](data=json.dumps(settings.params), files=files, **kwargs)
|
||||||
return response
|
return response
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
Reference in New Issue
Block a user