| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025 |
- <?php
- /**
- * PasswordResetsApi
- * PHP version 8.1
- *
- * @category Class
- * @package WikipaliApi
- * @author OpenAPI Generator team
- * @link https://openapi-generator.tech
- */
- /**
- * MINT API
- *
- * International Academy Of Pali Tipitaka(国际巴利三藏学院) 由 `php openapi/scripts/generate.php` 依据 api-v13 的路由与控制器源码生成。 响应统一封装为 `{ok, message, data}`;`ok=false` 时 `message` 为错误信息。
- *
- * The version of the OpenAPI document: 2026.10.15
- * Generated by: https://openapi-generator.tech
- * Generator version: 7.25.0
- */
- /**
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
- * https://openapi-generator.tech
- * Do not edit the class manually.
- */
- namespace WikipaliApi\Api;
- use GuzzleHttp\Client;
- use GuzzleHttp\ClientInterface;
- use GuzzleHttp\Exception\ConnectException;
- use GuzzleHttp\Exception\RequestException;
- use GuzzleHttp\Psr7\MultipartStream;
- use GuzzleHttp\Psr7\Request;
- use GuzzleHttp\RequestOptions;
- use Psr\Http\Message\RequestInterface;
- use Psr\Http\Message\ResponseInterface;
- use WikipaliApi\ApiException;
- use WikipaliApi\Configuration;
- use WikipaliApi\FormDataProcessor;
- use WikipaliApi\HeaderSelector;
- use WikipaliApi\ObjectSerializer;
- /**
- * PasswordResetsApi Class Doc Comment
- *
- * @category Class
- * @package WikipaliApi
- * @author OpenAPI Generator team
- * @link https://openapi-generator.tech
- */
- class PasswordResetsApi
- {
- /**
- * @var ClientInterface
- */
- protected $client;
- /**
- * @var Configuration
- */
- protected $config;
- /**
- * @var HeaderSelector
- */
- protected $headerSelector;
- /**
- * @var int Host index
- */
- protected $hostIndex;
- /** @var string[] $contentTypes **/
- public const contentTypes = [
- 'getApiV3PasswordResetsToken' => [
- 'application/json',
- ],
- 'patchApiV3PasswordResetsToken' => [
- 'application/json',
- ],
- 'postApiV3PasswordResets' => [
- 'application/json',
- ],
- ];
- /**
- * @param ClientInterface $client
- * @param Configuration $config
- * @param HeaderSelector $selector
- * @param int $hostIndex (Optional) host index to select the list of hosts if defined in the OpenAPI spec
- */
- public function __construct(
- ?ClientInterface $client = null,
- ?Configuration $config = null,
- ?HeaderSelector $selector = null,
- int $hostIndex = 0
- ) {
- $this->client = $client ?: new Client();
- $this->config = $config ?: Configuration::getDefaultConfiguration();
- $this->headerSelector = $selector ?: new HeaderSelector();
- $this->hostIndex = $hostIndex;
- }
- /**
- * Set the host index
- *
- * @param int $hostIndex Host index (required)
- */
- public function setHostIndex($hostIndex): void
- {
- $this->hostIndex = $hostIndex;
- }
- /**
- * Get the host index
- *
- * @return int Host index
- */
- public function getHostIndex()
- {
- return $this->hostIndex;
- }
- /**
- * @return Configuration
- */
- public function getConfig()
- {
- return $this->config;
- }
- /**
- * Operation getApiV3PasswordResetsToken
- *
- * 查看一次待完成的重置
- *
- * @param string $token 邮件链接里的 token (required)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['getApiV3PasswordResetsToken'] to see the possible values for this operation
- *
- * @throws \WikipaliApi\ApiException on non-2xx response or if the response body is not in the expected format
- * @throws \InvalidArgumentException
- * @return \WikipaliApi\Model\GetApiV3PasswordResetsToken200Response|\WikipaliApi\Model\ProblemDetails|\WikipaliApi\Model\ProblemDetails
- */
- public function getApiV3PasswordResetsToken($token, string $contentType = self::contentTypes['getApiV3PasswordResetsToken'][0])
- {
- list($response) = $this->getApiV3PasswordResetsTokenWithHttpInfo($token, $contentType);
- return $response;
- }
- /**
- * Operation getApiV3PasswordResetsTokenWithHttpInfo
- *
- * 查看一次待完成的重置
- *
- * @param string $token 邮件链接里的 token (required)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['getApiV3PasswordResetsToken'] to see the possible values for this operation
- *
- * @throws \WikipaliApi\ApiException on non-2xx response or if the response body is not in the expected format
- * @throws \InvalidArgumentException
- * @return array of \WikipaliApi\Model\GetApiV3PasswordResetsToken200Response|\WikipaliApi\Model\ProblemDetails|\WikipaliApi\Model\ProblemDetails, HTTP status code, HTTP response headers (array of strings)
- */
- public function getApiV3PasswordResetsTokenWithHttpInfo($token, string $contentType = self::contentTypes['getApiV3PasswordResetsToken'][0])
- {
- $request = $this->getApiV3PasswordResetsTokenRequest($token, $contentType);
- try {
- $options = $this->createHttpClientOption();
- try {
- $response = $this->client->send($request, $options);
- } catch (RequestException $e) {
- throw new ApiException(
- "[{$e->getCode()}] {$e->getMessage()}",
- (int) $e->getCode(),
- $e->getResponse() ? $e->getResponse()->getHeaders() : null,
- $e->getResponse() ? (string) $e->getResponse()->getBody() : null
- );
- } catch (ConnectException $e) {
- throw new ApiException(
- "[{$e->getCode()}] {$e->getMessage()}",
- (int) $e->getCode(),
- null,
- null
- );
- }
- $statusCode = $response->getStatusCode();
- switch($statusCode) {
- case 200:
- return $this->handleResponseWithDataType(
- '\WikipaliApi\Model\GetApiV3PasswordResetsToken200Response',
- $request,
- $response,
- );
- case 404:
- return $this->handleResponseWithDataType(
- '\WikipaliApi\Model\ProblemDetails',
- $request,
- $response,
- );
- case 422:
- return $this->handleResponseWithDataType(
- '\WikipaliApi\Model\ProblemDetails',
- $request,
- $response,
- );
- }
-
- if ($statusCode < 200 || $statusCode > 299) {
- throw new ApiException(
- sprintf(
- '[%d] Error connecting to the API (%s)',
- $statusCode,
- (string) $request->getUri()
- ),
- $statusCode,
- $response->getHeaders(),
- (string) $response->getBody()
- );
- }
- return $this->handleResponseWithDataType(
- '\WikipaliApi\Model\GetApiV3PasswordResetsToken200Response',
- $request,
- $response,
- );
- } catch (ApiException $e) {
- switch ($e->getCode()) {
- case 200:
- $data = ObjectSerializer::deserialize(
- $e->getResponseBody(),
- '\WikipaliApi\Model\GetApiV3PasswordResetsToken200Response',
- $e->getResponseHeaders()
- );
- $e->setResponseObject($data);
- throw $e;
- case 404:
- $data = ObjectSerializer::deserialize(
- $e->getResponseBody(),
- '\WikipaliApi\Model\ProblemDetails',
- $e->getResponseHeaders()
- );
- $e->setResponseObject($data);
- throw $e;
- case 422:
- $data = ObjectSerializer::deserialize(
- $e->getResponseBody(),
- '\WikipaliApi\Model\ProblemDetails',
- $e->getResponseHeaders()
- );
- $e->setResponseObject($data);
- throw $e;
- }
-
- throw $e;
- }
- }
- /**
- * Operation getApiV3PasswordResetsTokenAsync
- *
- * 查看一次待完成的重置
- *
- * @param string $token 邮件链接里的 token (required)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['getApiV3PasswordResetsToken'] to see the possible values for this operation
- *
- * @throws \InvalidArgumentException
- * @return \GuzzleHttp\Promise\PromiseInterface
- */
- public function getApiV3PasswordResetsTokenAsync($token, string $contentType = self::contentTypes['getApiV3PasswordResetsToken'][0])
- {
- return $this->getApiV3PasswordResetsTokenAsyncWithHttpInfo($token, $contentType)
- ->then(
- function ($response) {
- return $response[0];
- }
- );
- }
- /**
- * Operation getApiV3PasswordResetsTokenAsyncWithHttpInfo
- *
- * 查看一次待完成的重置
- *
- * @param string $token 邮件链接里的 token (required)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['getApiV3PasswordResetsToken'] to see the possible values for this operation
- *
- * @throws \InvalidArgumentException
- * @return \GuzzleHttp\Promise\PromiseInterface
- */
- public function getApiV3PasswordResetsTokenAsyncWithHttpInfo($token, string $contentType = self::contentTypes['getApiV3PasswordResetsToken'][0])
- {
- $returnType = '\WikipaliApi\Model\GetApiV3PasswordResetsToken200Response';
- $request = $this->getApiV3PasswordResetsTokenRequest($token, $contentType);
- return $this->client
- ->sendAsync($request, $this->createHttpClientOption())
- ->then(
- function ($response) use ($returnType) {
- if ($returnType === '\SplFileObject') {
- $content = $response->getBody(); //stream goes to serializer
- } else {
- $content = (string) $response->getBody();
- if ($returnType !== 'string') {
- $content = json_decode($content);
- }
- }
- return [
- ObjectSerializer::deserialize($content, $returnType, []),
- $response->getStatusCode(),
- $response->getHeaders()
- ];
- },
- function ($exception) {
- $response = $exception->getResponse();
- $statusCode = $response->getStatusCode();
- throw new ApiException(
- sprintf(
- '[%d] Error connecting to the API (%s)',
- $statusCode,
- $exception->getRequest()->getUri()
- ),
- $statusCode,
- $response->getHeaders(),
- (string) $response->getBody()
- );
- }
- );
- }
- /**
- * Create request for operation 'getApiV3PasswordResetsToken'
- *
- * @param string $token 邮件链接里的 token (required)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['getApiV3PasswordResetsToken'] to see the possible values for this operation
- *
- * @throws \InvalidArgumentException
- * @return \GuzzleHttp\Psr7\Request
- */
- public function getApiV3PasswordResetsTokenRequest($token, string $contentType = self::contentTypes['getApiV3PasswordResetsToken'][0])
- {
- // verify the required parameter 'token' is set
- if ($token === null || (is_array($token) && count($token) === 0)) {
- throw new \InvalidArgumentException(
- 'Missing the required parameter $token when calling getApiV3PasswordResetsToken'
- );
- }
- $resourcePath = '/v3/password-resets/{token}';
- $formParams = [];
- $queryParams = [];
- $headerParams = [];
- $httpBody = '';
- $multipart = false;
- // path params
- if ($token !== null) {
- $resourcePath = str_replace(
- '{token}',
- ObjectSerializer::toPathValue($token),
- $resourcePath
- );
- }
- $headers = $this->headerSelector->selectHeaders(
- ['application/json', 'application/problem+json', ],
- $contentType,
- $multipart
- );
- // for model (json/xml)
- if (count($formParams) > 0) {
- if ($multipart) {
- $multipartContents = [];
- foreach ($formParams as $formParamName => $formParamValue) {
- $formParamValueItems = is_array($formParamValue) ? $formParamValue : [$formParamValue];
- foreach ($formParamValueItems as $formParamValueItem) {
- $multipartContents[] = [
- 'name' => $formParamName,
- 'contents' => $formParamValueItem
- ];
- }
- }
- // for HTTP post (form)
- $httpBody = new MultipartStream($multipartContents);
- } elseif (stripos($headers['Content-Type'], 'application/json') !== false) {
- # if Content-Type contains "application/json", json_encode the form parameters
- try {
- $httpBody = json_encode($formParams, JSON_THROW_ON_ERROR);
- } catch (\JsonException $e) {
- throw new \InvalidArgumentException('json_encode error: ' . $e->getMessage(), 0, $e);
- }
- } else {
- // for HTTP post (form)
- $httpBody = ObjectSerializer::buildQuery($formParams);
- }
- }
- // this endpoint requires Bearer authentication (access token)
- if (!empty($this->config->getAccessToken())) {
- $headers['Authorization'] = 'Bearer ' . $this->config->getAccessToken();
- }
- $defaultHeaders = [];
- if ($this->config->getUserAgent()) {
- $defaultHeaders['User-Agent'] = $this->config->getUserAgent();
- }
- $headers = array_merge(
- $defaultHeaders,
- $headerParams,
- $headers
- );
- $operationHost = $this->config->getHost();
- $query = ObjectSerializer::buildQuery($queryParams);
- return new Request(
- 'GET',
- $operationHost . $resourcePath . ($query ? "?{$query}" : ''),
- $headers,
- $httpBody
- );
- }
- /**
- * Operation patchApiV3PasswordResetsToken
- *
- * 设置新密码
- *
- * @param string $token 邮件链接里的 token (required)
- * @param \WikipaliApi\Model\PatchApiV3PasswordResetsTokenRequest $patch_api_v3_password_resets_token_request patch_api_v3_password_resets_token_request (required)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['patchApiV3PasswordResetsToken'] to see the possible values for this operation
- *
- * @throws \WikipaliApi\ApiException on non-2xx response or if the response body is not in the expected format
- * @throws \InvalidArgumentException
- * @return void
- */
- public function patchApiV3PasswordResetsToken($token, $patch_api_v3_password_resets_token_request, string $contentType = self::contentTypes['patchApiV3PasswordResetsToken'][0])
- {
- $this->patchApiV3PasswordResetsTokenWithHttpInfo($token, $patch_api_v3_password_resets_token_request, $contentType);
- }
- /**
- * Operation patchApiV3PasswordResetsTokenWithHttpInfo
- *
- * 设置新密码
- *
- * @param string $token 邮件链接里的 token (required)
- * @param \WikipaliApi\Model\PatchApiV3PasswordResetsTokenRequest $patch_api_v3_password_resets_token_request (required)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['patchApiV3PasswordResetsToken'] to see the possible values for this operation
- *
- * @throws \WikipaliApi\ApiException on non-2xx response or if the response body is not in the expected format
- * @throws \InvalidArgumentException
- * @return array of null, HTTP status code, HTTP response headers (array of strings)
- */
- public function patchApiV3PasswordResetsTokenWithHttpInfo($token, $patch_api_v3_password_resets_token_request, string $contentType = self::contentTypes['patchApiV3PasswordResetsToken'][0])
- {
- $request = $this->patchApiV3PasswordResetsTokenRequest($token, $patch_api_v3_password_resets_token_request, $contentType);
- try {
- $options = $this->createHttpClientOption();
- try {
- $response = $this->client->send($request, $options);
- } catch (RequestException $e) {
- throw new ApiException(
- "[{$e->getCode()}] {$e->getMessage()}",
- (int) $e->getCode(),
- $e->getResponse() ? $e->getResponse()->getHeaders() : null,
- $e->getResponse() ? (string) $e->getResponse()->getBody() : null
- );
- } catch (ConnectException $e) {
- throw new ApiException(
- "[{$e->getCode()}] {$e->getMessage()}",
- (int) $e->getCode(),
- null,
- null
- );
- }
- $statusCode = $response->getStatusCode();
- return [null, $statusCode, $response->getHeaders()];
- } catch (ApiException $e) {
- switch ($e->getCode()) {
- case 404:
- $data = ObjectSerializer::deserialize(
- $e->getResponseBody(),
- '\WikipaliApi\Model\ProblemDetails',
- $e->getResponseHeaders()
- );
- $e->setResponseObject($data);
- throw $e;
- case 422:
- $data = ObjectSerializer::deserialize(
- $e->getResponseBody(),
- '\WikipaliApi\Model\ProblemDetails',
- $e->getResponseHeaders()
- );
- $e->setResponseObject($data);
- throw $e;
- }
-
- throw $e;
- }
- }
- /**
- * Operation patchApiV3PasswordResetsTokenAsync
- *
- * 设置新密码
- *
- * @param string $token 邮件链接里的 token (required)
- * @param \WikipaliApi\Model\PatchApiV3PasswordResetsTokenRequest $patch_api_v3_password_resets_token_request (required)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['patchApiV3PasswordResetsToken'] to see the possible values for this operation
- *
- * @throws \InvalidArgumentException
- * @return \GuzzleHttp\Promise\PromiseInterface
- */
- public function patchApiV3PasswordResetsTokenAsync($token, $patch_api_v3_password_resets_token_request, string $contentType = self::contentTypes['patchApiV3PasswordResetsToken'][0])
- {
- return $this->patchApiV3PasswordResetsTokenAsyncWithHttpInfo($token, $patch_api_v3_password_resets_token_request, $contentType)
- ->then(
- function ($response) {
- return $response[0];
- }
- );
- }
- /**
- * Operation patchApiV3PasswordResetsTokenAsyncWithHttpInfo
- *
- * 设置新密码
- *
- * @param string $token 邮件链接里的 token (required)
- * @param \WikipaliApi\Model\PatchApiV3PasswordResetsTokenRequest $patch_api_v3_password_resets_token_request (required)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['patchApiV3PasswordResetsToken'] to see the possible values for this operation
- *
- * @throws \InvalidArgumentException
- * @return \GuzzleHttp\Promise\PromiseInterface
- */
- public function patchApiV3PasswordResetsTokenAsyncWithHttpInfo($token, $patch_api_v3_password_resets_token_request, string $contentType = self::contentTypes['patchApiV3PasswordResetsToken'][0])
- {
- $returnType = '';
- $request = $this->patchApiV3PasswordResetsTokenRequest($token, $patch_api_v3_password_resets_token_request, $contentType);
- return $this->client
- ->sendAsync($request, $this->createHttpClientOption())
- ->then(
- function ($response) use ($returnType) {
- return [null, $response->getStatusCode(), $response->getHeaders()];
- },
- function ($exception) {
- $response = $exception->getResponse();
- $statusCode = $response->getStatusCode();
- throw new ApiException(
- sprintf(
- '[%d] Error connecting to the API (%s)',
- $statusCode,
- $exception->getRequest()->getUri()
- ),
- $statusCode,
- $response->getHeaders(),
- (string) $response->getBody()
- );
- }
- );
- }
- /**
- * Create request for operation 'patchApiV3PasswordResetsToken'
- *
- * @param string $token 邮件链接里的 token (required)
- * @param \WikipaliApi\Model\PatchApiV3PasswordResetsTokenRequest $patch_api_v3_password_resets_token_request (required)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['patchApiV3PasswordResetsToken'] to see the possible values for this operation
- *
- * @throws \InvalidArgumentException
- * @return \GuzzleHttp\Psr7\Request
- */
- public function patchApiV3PasswordResetsTokenRequest($token, $patch_api_v3_password_resets_token_request, string $contentType = self::contentTypes['patchApiV3PasswordResetsToken'][0])
- {
- // verify the required parameter 'token' is set
- if ($token === null || (is_array($token) && count($token) === 0)) {
- throw new \InvalidArgumentException(
- 'Missing the required parameter $token when calling patchApiV3PasswordResetsToken'
- );
- }
- // verify the required parameter 'patch_api_v3_password_resets_token_request' is set
- if ($patch_api_v3_password_resets_token_request === null || (is_array($patch_api_v3_password_resets_token_request) && count($patch_api_v3_password_resets_token_request) === 0)) {
- throw new \InvalidArgumentException(
- 'Missing the required parameter $patch_api_v3_password_resets_token_request when calling patchApiV3PasswordResetsToken'
- );
- }
- $resourcePath = '/v3/password-resets/{token}';
- $formParams = [];
- $queryParams = [];
- $headerParams = [];
- $httpBody = '';
- $multipart = false;
- // path params
- if ($token !== null) {
- $resourcePath = str_replace(
- '{token}',
- ObjectSerializer::toPathValue($token),
- $resourcePath
- );
- }
- $headers = $this->headerSelector->selectHeaders(
- ['application/problem+json', ],
- $contentType,
- $multipart
- );
- // for model (json/xml)
- if (isset($patch_api_v3_password_resets_token_request)) {
- if (stripos($headers['Content-Type'], 'application/json') !== false) {
- # if Content-Type contains "application/json", json_encode the body
- try {
- $httpBody = json_encode(ObjectSerializer::sanitizeForSerialization($patch_api_v3_password_resets_token_request), JSON_THROW_ON_ERROR);
- } catch (\JsonException $e) {
- throw new \InvalidArgumentException('json_encode error: ' . $e->getMessage(), 0, $e);
- }
- } else {
- $httpBody = $patch_api_v3_password_resets_token_request;
- }
- } elseif (count($formParams) > 0) {
- if ($multipart) {
- $multipartContents = [];
- foreach ($formParams as $formParamName => $formParamValue) {
- $formParamValueItems = is_array($formParamValue) ? $formParamValue : [$formParamValue];
- foreach ($formParamValueItems as $formParamValueItem) {
- $multipartContents[] = [
- 'name' => $formParamName,
- 'contents' => $formParamValueItem
- ];
- }
- }
- // for HTTP post (form)
- $httpBody = new MultipartStream($multipartContents);
- } elseif (stripos($headers['Content-Type'], 'application/json') !== false) {
- # if Content-Type contains "application/json", json_encode the form parameters
- try {
- $httpBody = json_encode($formParams, JSON_THROW_ON_ERROR);
- } catch (\JsonException $e) {
- throw new \InvalidArgumentException('json_encode error: ' . $e->getMessage(), 0, $e);
- }
- } else {
- // for HTTP post (form)
- $httpBody = ObjectSerializer::buildQuery($formParams);
- }
- }
- // this endpoint requires Bearer authentication (access token)
- if (!empty($this->config->getAccessToken())) {
- $headers['Authorization'] = 'Bearer ' . $this->config->getAccessToken();
- }
- $defaultHeaders = [];
- if ($this->config->getUserAgent()) {
- $defaultHeaders['User-Agent'] = $this->config->getUserAgent();
- }
- $headers = array_merge(
- $defaultHeaders,
- $headerParams,
- $headers
- );
- $operationHost = $this->config->getHost();
- $query = ObjectSerializer::buildQuery($queryParams);
- return new Request(
- 'PATCH',
- $operationHost . $resourcePath . ($query ? "?{$query}" : ''),
- $headers,
- $httpBody
- );
- }
- /**
- * Operation postApiV3PasswordResets
- *
- * 申请重置密码(发邮件)
- *
- * @param \WikipaliApi\Model\PostApiV3PasswordResetsRequest $post_api_v3_password_resets_request post_api_v3_password_resets_request (required)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['postApiV3PasswordResets'] to see the possible values for this operation
- *
- * @throws \WikipaliApi\ApiException on non-2xx response or if the response body is not in the expected format
- * @throws \InvalidArgumentException
- * @return void
- */
- public function postApiV3PasswordResets($post_api_v3_password_resets_request, string $contentType = self::contentTypes['postApiV3PasswordResets'][0])
- {
- $this->postApiV3PasswordResetsWithHttpInfo($post_api_v3_password_resets_request, $contentType);
- }
- /**
- * Operation postApiV3PasswordResetsWithHttpInfo
- *
- * 申请重置密码(发邮件)
- *
- * @param \WikipaliApi\Model\PostApiV3PasswordResetsRequest $post_api_v3_password_resets_request (required)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['postApiV3PasswordResets'] to see the possible values for this operation
- *
- * @throws \WikipaliApi\ApiException on non-2xx response or if the response body is not in the expected format
- * @throws \InvalidArgumentException
- * @return array of null, HTTP status code, HTTP response headers (array of strings)
- */
- public function postApiV3PasswordResetsWithHttpInfo($post_api_v3_password_resets_request, string $contentType = self::contentTypes['postApiV3PasswordResets'][0])
- {
- $request = $this->postApiV3PasswordResetsRequest($post_api_v3_password_resets_request, $contentType);
- try {
- $options = $this->createHttpClientOption();
- try {
- $response = $this->client->send($request, $options);
- } catch (RequestException $e) {
- throw new ApiException(
- "[{$e->getCode()}] {$e->getMessage()}",
- (int) $e->getCode(),
- $e->getResponse() ? $e->getResponse()->getHeaders() : null,
- $e->getResponse() ? (string) $e->getResponse()->getBody() : null
- );
- } catch (ConnectException $e) {
- throw new ApiException(
- "[{$e->getCode()}] {$e->getMessage()}",
- (int) $e->getCode(),
- null,
- null
- );
- }
- $statusCode = $response->getStatusCode();
- return [null, $statusCode, $response->getHeaders()];
- } catch (ApiException $e) {
- switch ($e->getCode()) {
- case 422:
- $data = ObjectSerializer::deserialize(
- $e->getResponseBody(),
- '\WikipaliApi\Model\ProblemDetails',
- $e->getResponseHeaders()
- );
- $e->setResponseObject($data);
- throw $e;
- case 429:
- $data = ObjectSerializer::deserialize(
- $e->getResponseBody(),
- '\WikipaliApi\Model\ProblemDetails',
- $e->getResponseHeaders()
- );
- $e->setResponseObject($data);
- throw $e;
- case 503:
- $data = ObjectSerializer::deserialize(
- $e->getResponseBody(),
- '\WikipaliApi\Model\ProblemDetails',
- $e->getResponseHeaders()
- );
- $e->setResponseObject($data);
- throw $e;
- }
-
- throw $e;
- }
- }
- /**
- * Operation postApiV3PasswordResetsAsync
- *
- * 申请重置密码(发邮件)
- *
- * @param \WikipaliApi\Model\PostApiV3PasswordResetsRequest $post_api_v3_password_resets_request (required)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['postApiV3PasswordResets'] to see the possible values for this operation
- *
- * @throws \InvalidArgumentException
- * @return \GuzzleHttp\Promise\PromiseInterface
- */
- public function postApiV3PasswordResetsAsync($post_api_v3_password_resets_request, string $contentType = self::contentTypes['postApiV3PasswordResets'][0])
- {
- return $this->postApiV3PasswordResetsAsyncWithHttpInfo($post_api_v3_password_resets_request, $contentType)
- ->then(
- function ($response) {
- return $response[0];
- }
- );
- }
- /**
- * Operation postApiV3PasswordResetsAsyncWithHttpInfo
- *
- * 申请重置密码(发邮件)
- *
- * @param \WikipaliApi\Model\PostApiV3PasswordResetsRequest $post_api_v3_password_resets_request (required)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['postApiV3PasswordResets'] to see the possible values for this operation
- *
- * @throws \InvalidArgumentException
- * @return \GuzzleHttp\Promise\PromiseInterface
- */
- public function postApiV3PasswordResetsAsyncWithHttpInfo($post_api_v3_password_resets_request, string $contentType = self::contentTypes['postApiV3PasswordResets'][0])
- {
- $returnType = '';
- $request = $this->postApiV3PasswordResetsRequest($post_api_v3_password_resets_request, $contentType);
- return $this->client
- ->sendAsync($request, $this->createHttpClientOption())
- ->then(
- function ($response) use ($returnType) {
- return [null, $response->getStatusCode(), $response->getHeaders()];
- },
- function ($exception) {
- $response = $exception->getResponse();
- $statusCode = $response->getStatusCode();
- throw new ApiException(
- sprintf(
- '[%d] Error connecting to the API (%s)',
- $statusCode,
- $exception->getRequest()->getUri()
- ),
- $statusCode,
- $response->getHeaders(),
- (string) $response->getBody()
- );
- }
- );
- }
- /**
- * Create request for operation 'postApiV3PasswordResets'
- *
- * @param \WikipaliApi\Model\PostApiV3PasswordResetsRequest $post_api_v3_password_resets_request (required)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['postApiV3PasswordResets'] to see the possible values for this operation
- *
- * @throws \InvalidArgumentException
- * @return \GuzzleHttp\Psr7\Request
- */
- public function postApiV3PasswordResetsRequest($post_api_v3_password_resets_request, string $contentType = self::contentTypes['postApiV3PasswordResets'][0])
- {
- // verify the required parameter 'post_api_v3_password_resets_request' is set
- if ($post_api_v3_password_resets_request === null || (is_array($post_api_v3_password_resets_request) && count($post_api_v3_password_resets_request) === 0)) {
- throw new \InvalidArgumentException(
- 'Missing the required parameter $post_api_v3_password_resets_request when calling postApiV3PasswordResets'
- );
- }
- $resourcePath = '/v3/password-resets';
- $formParams = [];
- $queryParams = [];
- $headerParams = [];
- $httpBody = '';
- $multipart = false;
- $headers = $this->headerSelector->selectHeaders(
- ['application/problem+json', ],
- $contentType,
- $multipart
- );
- // for model (json/xml)
- if (isset($post_api_v3_password_resets_request)) {
- if (stripos($headers['Content-Type'], 'application/json') !== false) {
- # if Content-Type contains "application/json", json_encode the body
- try {
- $httpBody = json_encode(ObjectSerializer::sanitizeForSerialization($post_api_v3_password_resets_request), JSON_THROW_ON_ERROR);
- } catch (\JsonException $e) {
- throw new \InvalidArgumentException('json_encode error: ' . $e->getMessage(), 0, $e);
- }
- } else {
- $httpBody = $post_api_v3_password_resets_request;
- }
- } elseif (count($formParams) > 0) {
- if ($multipart) {
- $multipartContents = [];
- foreach ($formParams as $formParamName => $formParamValue) {
- $formParamValueItems = is_array($formParamValue) ? $formParamValue : [$formParamValue];
- foreach ($formParamValueItems as $formParamValueItem) {
- $multipartContents[] = [
- 'name' => $formParamName,
- 'contents' => $formParamValueItem
- ];
- }
- }
- // for HTTP post (form)
- $httpBody = new MultipartStream($multipartContents);
- } elseif (stripos($headers['Content-Type'], 'application/json') !== false) {
- # if Content-Type contains "application/json", json_encode the form parameters
- try {
- $httpBody = json_encode($formParams, JSON_THROW_ON_ERROR);
- } catch (\JsonException $e) {
- throw new \InvalidArgumentException('json_encode error: ' . $e->getMessage(), 0, $e);
- }
- } else {
- // for HTTP post (form)
- $httpBody = ObjectSerializer::buildQuery($formParams);
- }
- }
- // this endpoint requires Bearer authentication (access token)
- if (!empty($this->config->getAccessToken())) {
- $headers['Authorization'] = 'Bearer ' . $this->config->getAccessToken();
- }
- $defaultHeaders = [];
- if ($this->config->getUserAgent()) {
- $defaultHeaders['User-Agent'] = $this->config->getUserAgent();
- }
- $headers = array_merge(
- $defaultHeaders,
- $headerParams,
- $headers
- );
- $operationHost = $this->config->getHost();
- $query = ObjectSerializer::buildQuery($queryParams);
- return new Request(
- 'POST',
- $operationHost . $resourcePath . ($query ? "?{$query}" : ''),
- $headers,
- $httpBody
- );
- }
- /**
- * Create http client option
- *
- * @throws \RuntimeException on file opening failure
- * @return array of http client options
- */
- protected function createHttpClientOption()
- {
- $options = [];
- if ($this->config->getDebug()) {
- $options[RequestOptions::DEBUG] = fopen($this->config->getDebugFile(), 'a');
- if (!$options[RequestOptions::DEBUG]) {
- throw new \RuntimeException('Failed to open the debug file: ' . $this->config->getDebugFile());
- }
- }
- if ($this->config->getCertFile()) {
- $options[RequestOptions::CERT] = $this->config->getCertFile();
- }
- if ($this->config->getKeyFile()) {
- $options[RequestOptions::SSL_KEY] = $this->config->getKeyFile();
- }
- return $options;
- }
- private function handleResponseWithDataType(
- string $dataType,
- RequestInterface $request,
- ResponseInterface $response
- ): array {
- if ($dataType === '\SplFileObject') {
- $content = $response->getBody(); //stream goes to serializer
- } else {
- $content = (string) $response->getBody();
- if ($dataType !== 'string') {
- try {
- $content = json_decode($content, false, 512, JSON_THROW_ON_ERROR);
- } catch (\JsonException $exception) {
- throw new ApiException(
- sprintf(
- 'Error JSON decoding server response (%s)',
- $request->getUri()
- ),
- $response->getStatusCode(),
- $response->getHeaders(),
- $content
- );
- }
- }
- }
- return [
- ObjectSerializer::deserialize($content, $dataType, []),
- $response->getStatusCode(),
- $response->getHeaders()
- ];
- }
- private function responseWithinRangeCode(
- string $rangeCode,
- int $statusCode
- ): bool {
- $left = (int) ($rangeCode[0].'00');
- $right = (int) ($rangeCode[0].'99');
- return $statusCode >= $left && $statusCode <= $right;
- }
- }
|