Module pypowerautomate.actions.http

Expand source code
from typing import Dict
from urllib.parse import urlparse
from .base import BaseAction

METHODS = set(["GET", "POST"])


class HttpAction(BaseAction):
    """
    Defines an action for making HTTP requests. This class allows setting various aspects of an HTTP request including headers, body, cookies, and queries.

    Attributes:
        METHODS (set): Valid HTTP methods for the action.
    """
    # Todo: Cookie handling
    # Todo: HTTP response handling

    def __init__(self, name: str, uri: str, method: str):
        """
        Initializes a new HttpAction with specified parameters.

        Args:
            name (str): The name of the action.
            uri (str): The URI to which the HTTP request will be sent.
            method (str): The HTTP method to be used for the request. Must be either 'GET' or 'POST'.

        Raises:
            ValueError: If the method is not supported (not in METHODS).
        """
        super().__init__(name)
        self.type = "Http"
        if method not in METHODS:
            raise ValueError("Unsupported method type")
        self.method: str = method
        self.uri: str = uri
        self.queries: Dict[str, str] = None
        self.body: str = None
        self.headers: Dict[str, str] = None
        self.cookie: str = None

    def set_body(self, body: str):
        """
        Sets the request body for the HTTP action.

        Args:
            body (str): The request body to be sent.
        """
        self.body = body

    def set_headers(self, headers: Dict[str, str]):
        """
        Sets the request headers for the HTTP action.

        Args:
            headers (Dict[str, str]): A dictionary of headers to be sent.
        """
        self.headers = headers

    def set_cookie(self, cookie: str):
        """
        Sets the cookie for the HTTP action.

        Args:
            cookie (str): The cookie string to be sent with the request.
        """
        self.cookie = cookie

    def set_queries(self, queries: Dict[str, str]):
        """
        Sets the URL query parameters for the HTTP action.

        Args:
            queries (Dict[str, str]): A dictionary of query parameters to be appended to the URI.
        """
        self.queries = queries

    def export(self) -> Dict:
        """
        Exports the current state and configuration of the HTTP action in a dictionary format suitable for JSON serialization.

        Returns:
            Dict: A dictionary containing all the inputs and settings of the HTTP action.
        """
        d = {}
        inputs = {}

        inputs["method"] = self.method
        inputs["uri"] = self.uri
        if self.body:
            inputs["body"] = self.body
        if self.headers:
            inputs["headers"] = self.headers
        if self.cookie:
            inputs["cookie"] = self.cookie
        if self.queries:
            inputs["queries"] = self.queries
        d["metadata"] = self.metadata
        d["type"] = self.type
        d["runAfter"] = self.runafter
        d["inputs"] = inputs

        return d

Classes

class HttpAction (name: str, uri: str, method: str)

Defines an action for making HTTP requests. This class allows setting various aspects of an HTTP request including headers, body, cookies, and queries.

Attributes

METHODS : set
Valid HTTP methods for the action.

Initializes a new HttpAction with specified parameters.

Args

name : str
The name of the action.
uri : str
The URI to which the HTTP request will be sent.
method : str
The HTTP method to be used for the request. Must be either 'GET' or 'POST'.

Raises

ValueError
If the method is not supported (not in METHODS).
Expand source code
class HttpAction(BaseAction):
    """
    Defines an action for making HTTP requests. This class allows setting various aspects of an HTTP request including headers, body, cookies, and queries.

    Attributes:
        METHODS (set): Valid HTTP methods for the action.
    """
    # Todo: Cookie handling
    # Todo: HTTP response handling

    def __init__(self, name: str, uri: str, method: str):
        """
        Initializes a new HttpAction with specified parameters.

        Args:
            name (str): The name of the action.
            uri (str): The URI to which the HTTP request will be sent.
            method (str): The HTTP method to be used for the request. Must be either 'GET' or 'POST'.

        Raises:
            ValueError: If the method is not supported (not in METHODS).
        """
        super().__init__(name)
        self.type = "Http"
        if method not in METHODS:
            raise ValueError("Unsupported method type")
        self.method: str = method
        self.uri: str = uri
        self.queries: Dict[str, str] = None
        self.body: str = None
        self.headers: Dict[str, str] = None
        self.cookie: str = None

    def set_body(self, body: str):
        """
        Sets the request body for the HTTP action.

        Args:
            body (str): The request body to be sent.
        """
        self.body = body

    def set_headers(self, headers: Dict[str, str]):
        """
        Sets the request headers for the HTTP action.

        Args:
            headers (Dict[str, str]): A dictionary of headers to be sent.
        """
        self.headers = headers

    def set_cookie(self, cookie: str):
        """
        Sets the cookie for the HTTP action.

        Args:
            cookie (str): The cookie string to be sent with the request.
        """
        self.cookie = cookie

    def set_queries(self, queries: Dict[str, str]):
        """
        Sets the URL query parameters for the HTTP action.

        Args:
            queries (Dict[str, str]): A dictionary of query parameters to be appended to the URI.
        """
        self.queries = queries

    def export(self) -> Dict:
        """
        Exports the current state and configuration of the HTTP action in a dictionary format suitable for JSON serialization.

        Returns:
            Dict: A dictionary containing all the inputs and settings of the HTTP action.
        """
        d = {}
        inputs = {}

        inputs["method"] = self.method
        inputs["uri"] = self.uri
        if self.body:
            inputs["body"] = self.body
        if self.headers:
            inputs["headers"] = self.headers
        if self.cookie:
            inputs["cookie"] = self.cookie
        if self.queries:
            inputs["queries"] = self.queries
        d["metadata"] = self.metadata
        d["type"] = self.type
        d["runAfter"] = self.runafter
        d["inputs"] = inputs

        return d

Ancestors

Methods

def export(self) ‑> Dict

Exports the current state and configuration of the HTTP action in a dictionary format suitable for JSON serialization.

Returns

Dict
A dictionary containing all the inputs and settings of the HTTP action.
Expand source code
def export(self) -> Dict:
    """
    Exports the current state and configuration of the HTTP action in a dictionary format suitable for JSON serialization.

    Returns:
        Dict: A dictionary containing all the inputs and settings of the HTTP action.
    """
    d = {}
    inputs = {}

    inputs["method"] = self.method
    inputs["uri"] = self.uri
    if self.body:
        inputs["body"] = self.body
    if self.headers:
        inputs["headers"] = self.headers
    if self.cookie:
        inputs["cookie"] = self.cookie
    if self.queries:
        inputs["queries"] = self.queries
    d["metadata"] = self.metadata
    d["type"] = self.type
    d["runAfter"] = self.runafter
    d["inputs"] = inputs

    return d
def set_body(self, body: str)

Sets the request body for the HTTP action.

Args

body : str
The request body to be sent.
Expand source code
def set_body(self, body: str):
    """
    Sets the request body for the HTTP action.

    Args:
        body (str): The request body to be sent.
    """
    self.body = body

Sets the cookie for the HTTP action.

Args

cookie : str
The cookie string to be sent with the request.
Expand source code
def set_cookie(self, cookie: str):
    """
    Sets the cookie for the HTTP action.

    Args:
        cookie (str): The cookie string to be sent with the request.
    """
    self.cookie = cookie
def set_headers(self, headers: Dict[str, str])

Sets the request headers for the HTTP action.

Args

headers : Dict[str, str]
A dictionary of headers to be sent.
Expand source code
def set_headers(self, headers: Dict[str, str]):
    """
    Sets the request headers for the HTTP action.

    Args:
        headers (Dict[str, str]): A dictionary of headers to be sent.
    """
    self.headers = headers
def set_queries(self, queries: Dict[str, str])

Sets the URL query parameters for the HTTP action.

Args

queries : Dict[str, str]
A dictionary of query parameters to be appended to the URI.
Expand source code
def set_queries(self, queries: Dict[str, str]):
    """
    Sets the URL query parameters for the HTTP action.

    Args:
        queries (Dict[str, str]): A dictionary of query parameters to be appended to the URI.
    """
    self.queries = queries

Inherited members