<?php

/**
 * Class SoapClient
 *
 * @package Octolize\DhlPolska\API\WebApi
 */
namespace DhlPolskaVendor\Octolize\DhlPolska\API\WebApi;

use DhlPolskaVendor\Octolize\DhlPolska\API\Exception\DhlApiException;
use DhlPolskaVendor\Octolize\DhlPolska\API\LoggingSoapClient;
use DhlPolskaVendor\Octolize\DhlPolska\API\WebApi\Method\BookCourier;
use DhlPolskaVendor\Octolize\DhlPolska\API\WebApi\Method\CancelCourierBooking;
use DhlPolskaVendor\Octolize\DhlPolska\API\WebApi\Method\CreateShipment;
use DhlPolskaVendor\Octolize\DhlPolska\API\WebApi\Method\CreateShipmentReturn;
use DhlPolskaVendor\Octolize\DhlPolska\API\WebApi\Method\CreateShipments;
use DhlPolskaVendor\Octolize\DhlPolska\API\WebApi\Method\DeleteShipments;
use DhlPolskaVendor\Octolize\DhlPolska\API\WebApi\Method\GetLabels;
use DhlPolskaVendor\Octolize\DhlPolska\API\WebApi\Method\GetNearestServicepoints;
use DhlPolskaVendor\Octolize\DhlPolska\API\WebApi\Method\GetPnp;
use DhlPolskaVendor\Octolize\DhlPolska\API\WebApi\Method\GetPostalCodeServices;
use DhlPolskaVendor\Octolize\DhlPolska\API\WebApi\Method\GetReturnByWaybill;
/**
 * WebAPI SoapClient.
 */
class SoapClient extends LoggingSoapClient
{
    /**
     * @param GetPostalCodeServices $request .
     *
     * @return object
     * @throws \JsonException|DhlApiException
     */
    public function getPostalCodeServices(GetPostalCodeServices $request): object
    {
        return $this->__soapCall('getPostalCodeServices', [$request]);
    }
    /**
     * @param BookCourier $request .
     *
     * @return object
     * @throws \JsonException|DhlApiException
     */
    public function bookCourier(BookCourier $request): object
    {
        return $this->__soapCall('bookCourier', [$request]);
    }
    /**
     * @param CancelCourierBooking $request .
     *
     * @return object
     * @throws \JsonException|DhlApiException
     */
    public function cancelCourierBooking(CancelCourierBooking $request): object
    {
        return $this->__soapCall('cancelCourierBooking', [$request]);
    }
    /**
     * @param CreateShipment $request .
     *
     * @return object
     * @throws \JsonException|DhlApiException
     */
    public function createShipment(CreateShipment $request): object
    {
        return $this->__soapCall('createShipment', [$request]);
    }
    /**
     * @param CreateShipments $request .
     *
     * @return object
     * @throws \JsonException|DhlApiException
     */
    public function createShipments(CreateShipments $request): object
    {
        return $this->__soapCall('createShipments', [$request]);
    }
    /**
     * @param CreateShipmentReturn $request .
     *
     * @return object
     * @throws \JsonException|DhlApiException
     */
    public function createShipmentReturn(CreateShipmentReturn $request): object
    {
        return $this->__soapCall('createShipmentReturn', [$request]);
    }
    /**
     * @param DeleteShipments $request .
     *
     * @return object
     * @throws \JsonException|DhlApiException
     */
    public function deleteShipments(DeleteShipments $request): object
    {
        return $this->__soapCall('deleteShipments', [$request]);
    }
    /**
     * @param GetLabels $request .
     *
     * @return object
     * @throws \JsonException|DhlApiException
     */
    public function getLabels(GetLabels $request): object
    {
        return $this->__soapCall('getLabels', [$request]);
    }
    /**
     * @param GetPnp $request .
     *
     * @return object
     * @throws \JsonException|DhlApiException
     */
    public function getPnp(GetPnp $request): object
    {
        return $this->__soapCall('getPnp', [$request]);
    }
    /**
     * @param GetNearestServicepoints $request .
     *
     * @return object
     * @throws \JsonException|DhlApiException
     */
    public function getNearestServicepoints(GetNearestServicepoints $request): object
    {
        return $this->__soapCall('getNearestServicepoints', [$request]);
    }
    /**
     * @param GetReturnByWaybill $request .
     *
     * @return object
     * @throws \JsonException|DhlApiException
     */
    public function getReturnByWaybill(GetReturnByWaybill $request): object
    {
        return $this->__soapCall('getReturnByWaybill', [$request]);
    }
}
