ldc-arcadia-kiota-openapi-c.../client/IncoSheets/IncoSheetsRequestBuilder.php

117 lines
5.3 KiB
PHP

<?php
declare(strict_types=1);
namespace Uwil\ArcadiaKiotaOpenApiClient\IncoSheets;
use Exception;
use Http\Promise\Promise;
use Microsoft\Kiota\Abstractions\BaseRequestBuilder;
use Microsoft\Kiota\Abstractions\HttpMethod;
use Microsoft\Kiota\Abstractions\RequestAdapter;
use Microsoft\Kiota\Abstractions\RequestInformation;
use Uwil\ArcadiaKiotaOpenApiClient\IncoSheets\Item\WithIncoItemRequestBuilder;
use Uwil\ArcadiaKiotaOpenApiClient\IncoSheets\Search\SearchRequestBuilder;
use Uwil\ArcadiaKiotaOpenApiClient\Models\IncoListResponse;
use Uwil\ArcadiaKiotaOpenApiClient\Models\ProblemDetails;
use Uwil\ArcadiaKiotaOpenApiClient\Models\ValidationErrorProblemDetails;
/**
* Builds and executes requests for operations under /inco-sheets
*/
class IncoSheetsRequestBuilder extends BaseRequestBuilder
{
/**
* The search property
*/
public function search(): SearchRequestBuilder
{
return new SearchRequestBuilder($this->pathParameters, $this->requestAdapter);
}
/**
* Gets an item from the Uwil/ArcadiaKiotaOpenApiClient.incoSheets.item collection
*
* @param string $incoId Identifiant numérique unique de la fiche INCO.
*/
public function byIncoId(string $incoId): WithIncoItemRequestBuilder
{
$urlTplParams = $this->pathParameters;
$urlTplParams['incoId'] = $incoId;
return new WithIncoItemRequestBuilder($urlTplParams, $this->requestAdapter);
}
/**
* Instantiates a new IncoSheetsRequestBuilder and sets the default values.
*
* @param array<string, mixed>|string $pathParametersOrRawUrl Path parameters for the request or a String representing the raw URL.
* @param RequestAdapter $requestAdapter The request adapter to use to execute the requests.
*/
public function __construct($pathParametersOrRawUrl, RequestAdapter $requestAdapter)
{
parent::__construct($requestAdapter, [], '{+baseurl}/inco-sheets{?brands*,limit*,offset*,page*,pageSize*,short*,since*,sortBy*,sortDirection*}');
if (is_array($pathParametersOrRawUrl)) {
$this->pathParameters = $pathParametersOrRawUrl;
} else {
$this->pathParameters = ['request-raw-url' => $pathParametersOrRawUrl];
}
}
/**
* Retourne la liste paginée des fiches produits INCO.Prend en charge le filtrage par marques (`brands`), la date de modification (`since`), la projection au format court (`short=true`), ainsi que le tri et la pagination.
*
* @param IncoSheetsRequestBuilderGetRequestConfiguration|null $requestConfiguration Configuration for the request such as headers, query parameters, and middleware options.
* @return Promise<IncoListResponse|null>
*
* @throws Exception
*/
public function get(?IncoSheetsRequestBuilderGetRequestConfiguration $requestConfiguration = null): Promise
{
$requestInfo = $this->toGetRequestInformation($requestConfiguration);
$errorMappings = [
'400' => [ProblemDetails::class, 'createFromDiscriminatorValue'],
'401' => [ProblemDetails::class, 'createFromDiscriminatorValue'],
'403' => [ProblemDetails::class, 'createFromDiscriminatorValue'],
'422' => [ValidationErrorProblemDetails::class, 'createFromDiscriminatorValue'],
'429' => [ProblemDetails::class, 'createFromDiscriminatorValue'],
'500' => [ProblemDetails::class, 'createFromDiscriminatorValue'],
'503' => [ProblemDetails::class, 'createFromDiscriminatorValue'],
];
return $this->requestAdapter->sendAsync($requestInfo, [IncoListResponse::class, 'createFromDiscriminatorValue'], $errorMappings);
}
/**
* Retourne la liste paginée des fiches produits INCO.Prend en charge le filtrage par marques (`brands`), la date de modification (`since`), la projection au format court (`short=true`), ainsi que le tri et la pagination.
*
* @param IncoSheetsRequestBuilderGetRequestConfiguration|null $requestConfiguration Configuration for the request such as headers, query parameters, and middleware options.
*/
public function toGetRequestInformation(?IncoSheetsRequestBuilderGetRequestConfiguration $requestConfiguration = null): RequestInformation
{
$requestInfo = new RequestInformation();
$requestInfo->urlTemplate = $this->urlTemplate;
$requestInfo->pathParameters = $this->pathParameters;
$requestInfo->httpMethod = HttpMethod::GET;
if ($requestConfiguration !== null) {
$requestInfo->addHeaders($requestConfiguration->headers);
if ($requestConfiguration->queryParameters !== null) {
$requestInfo->setQueryParameters($requestConfiguration->queryParameters);
}
$requestInfo->addRequestOptions(...$requestConfiguration->options);
}
$requestInfo->tryAddHeader('Accept', 'application/json');
return $requestInfo;
}
/**
* Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
*
* @param string $rawUrl The raw URL to use for the request builder.
*/
public function withUrl(string $rawUrl): IncoSheetsRequestBuilder
{
return new IncoSheetsRequestBuilder($rawUrl, $this->requestAdapter);
}
}