示例#1
0
from zgw_consumers.models import Service

from bptl.tasks.models import BaseTask
from bptl.tasks.registry import register

from ..clients import JSONClient, get_client as _get_client
from ..services import get_alias_service

logger = logging.getLogger(__name__)

XENTIAL_ALIAS = "xential"
DRC_ALIAS = "DRC"

require_xential_service = register.require_service(
    APITypes.orc,
    description=_("The Xential API to use."),
    alias=XENTIAL_ALIAS,
)

require_drc_service = register.require_service(
    APITypes.drc,
    description=_("The DRC API to use."),
    alias=DRC_ALIAS,
)


class XentialClient(JSONClient):
    def __init__(self, service: Service, auth_header: Dict[str, str]):
        super().__init__(service, auth_header)

        self.cookie_header = self.set_cookie_header()
示例#2
0
from django.utils.translation import gettext_lazy as _

from zgw_consumers.client import ZGWClient
from zgw_consumers.constants import APITypes

from bptl.credentials.api import get_credentials
from bptl.tasks.base import BaseTask, check_variable
from bptl.tasks.models import DefaultService
from bptl.tasks.registry import register
from bptl.work_units.zgw.client import (  # TODO: move exceptions to more generic place
    NoService, )

ALIAS = "kownsl"
PROCESS_VAR_NAME = "bptlAppId"

require_kownsl_service = register.require_service(
    APITypes.orc, description=_("The Kownsl instance to use."), alias=ALIAS)


def get_client(task: BaseTask) -> ZGWClient:
    # find the configured service
    task_variables = task.get_variables()
    app_id = task_variables.get(PROCESS_VAR_NAME)
    topic_name = task.topic_name

    default_services = DefaultService.objects.filter(
        task_mapping__topic_name=topic_name,
        service__api_type=APITypes.orc,
        alias=ALIAS).select_related("service")

    if not default_services:
        raise NoService(
示例#3
0
from django.utils.translation import gettext_lazy as _

from zgw_consumers.constants import APITypes

from bptl.tasks.models import BaseTask
from bptl.tasks.registry import register

from ..clients import JSONClient, get_client as _get_client
from ..services import get_alias_service

logger = logging.getLogger(__name__)

ALIAS = "zac"

require_zac_service = register.require_service(
    APITypes.orc,
    description=_("The ZAC API to use."),
    alias=ALIAS,
)


def get_client(task: BaseTask) -> "ZACClient":
    # get the service and credentials
    service = get_alias_service(task, ALIAS)
    return _get_client(task, service, cls=ZACClient)


class ZACClient(JSONClient):
    pass
示例#4
0
import warnings

from django.utils.translation import gettext_lazy as _

from zgw_consumers.constants import APITypes

from bptl.credentials.api import get_credentials
from bptl.tasks.base import WorkUnit
from bptl.tasks.models import DefaultService
from bptl.tasks.registry import register

from ..client import MultipleServices, NoAuth, NoService

PROCESS_VAR_NAME = "bptlAppId"

require_zrc = register.require_service(APITypes.zrc,
                                       description=_("The Zaken API to use."))
require_ztc = register.require_service(
    APITypes.ztc, description=_("The Catalogi API to use."))
require_drc = register.require_service(
    APITypes.drc, description=_("The Documenten API to use."))
require_brc = register.require_service(
    APITypes.brc, description=_("The Besluiten API to use."))


class ZGWWorkUnit(WorkUnit):
    def get_client(self, service_type: str):
        """
        create ZGW client with requested parameters
        """
        task_variables = self.task.get_variables()
        topic_name = self.task.topic_name
示例#5
0
from django.utils.translation import gettext_lazy as _

from zgw_consumers.constants import APITypes

from bptl.tasks.models import BaseTask
from bptl.tasks.registry import register

from ..clients import JSONClient, get_client as _get_client
from ..services import get_alias_service

logger = logging.getLogger(__name__)

ALIAS = "brp"

require_brp_service = register.require_service(
    APITypes.orc,
    description=_("The BRP API to use."),
    alias=ALIAS,
)


def get_client(task: BaseTask) -> "BRPClient":
    # get the service and credentials
    service = get_alias_service(task, ALIAS)
    return _get_client(task, service, cls=BRPClient)


class BRPClient(JSONClient):
    pass
示例#6
0
from zgw_consumers.client import ZGWClient
from zgw_consumers.constants import APITypes
from zgw_consumers.models import Service

from bptl.credentials.api import get_credentials
from bptl.tasks.models import BaseTask, DefaultService
from bptl.tasks.registry import register

from ..clients import APP_ID_PROCESS_VAR_NAME
from ..services import get_alias_service

ALIAS = "ValidSignAPI"

require_validsign_service = register.require_service(
    APITypes.orc,
    description=_("The ValidSign API to use."),
    alias=ALIAS,
)


def get_client(task: BaseTask) -> ZGWClient:
    service = get_alias_service(task, ALIAS)

    client = service.build_client()
    client._log.task = task

    # set the auth if we have the bptlAppId set
    app_id = task.get_variables().get(APP_ID_PROCESS_VAR_NAME)
    if app_id:
        auth_headers = get_credentials(app_id, service)[service]
        if auth_headers:
示例#7
0
from bptl.tasks.base import BaseTask, check_variable
from bptl.tasks.registry import register
from bptl.work_units.zgw.tasks.base import NoService

from ..clients import get_client as _get_client
from ..services import get_alias_service
from .client import BRTClient

# support old situation until 1.1
API_ROOT = "https://brt.basisregistraties.overheid.nl/api/v2"

ALIAS = "BRT"

require_brt_service = register.require_service(
    APITypes.orc, description=_("The BRT instance to use."), alias=ALIAS
)


def get_brt_service(task: BaseTask) -> Service:
    """
    Extract the BRT Service object to use for the client.
    """
    try:
        return get_alias_service(task, ALIAS, service__api_type=APITypes.orc)
    except NoService:
        warnings.warn(
            "Falling back to static configuration, this support will be removed "
            "in BPTL 1.1",
            DeprecationWarning,
        )