| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751 |
- <?php
- /**
- * ReactionsApi
- * 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;
- /**
- * ReactionsApi Class Doc Comment
- *
- * @category Class
- * @package WikipaliApi
- * @author OpenAPI Generator team
- * @link https://openapi-generator.tech
- */
- class ReactionsApi
- {
- /**
- * @var ClientInterface
- */
- protected $client;
- /**
- * @var Configuration
- */
- protected $config;
- /**
- * @var HeaderSelector
- */
- protected $headerSelector;
- /**
- * @var int Host index
- */
- protected $hostIndex;
- /** @var string[] $contentTypes **/
- public const contentTypes = [
- 'deleteApiV3MeReactionsReaction' => [
- 'application/json',
- ],
- 'getApiV3MeReactions' => [
- 'application/json',
- ],
- 'getApiV3Reactions' => [
- 'application/json',
- ],
- 'getApiV3ReactionsTally' => [
- 'application/json',
- ],
- 'postApiV3MeReactions' => [
- '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 deleteApiV3MeReactionsReaction
- *
- * 删除我自己的 reaction
- *
- * @param string $reaction reaction 的 uuid (required)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['deleteApiV3MeReactionsReaction'] 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 deleteApiV3MeReactionsReaction($reaction, string $contentType = self::contentTypes['deleteApiV3MeReactionsReaction'][0])
- {
- $this->deleteApiV3MeReactionsReactionWithHttpInfo($reaction, $contentType);
- }
- /**
- * Operation deleteApiV3MeReactionsReactionWithHttpInfo
- *
- * 删除我自己的 reaction
- *
- * @param string $reaction reaction 的 uuid (required)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['deleteApiV3MeReactionsReaction'] 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 deleteApiV3MeReactionsReactionWithHttpInfo($reaction, string $contentType = self::contentTypes['deleteApiV3MeReactionsReaction'][0])
- {
- $request = $this->deleteApiV3MeReactionsReactionRequest($reaction, $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 401:
- $data = ObjectSerializer::deserialize(
- $e->getResponseBody(),
- '\WikipaliApi\Model\ProblemDetails',
- $e->getResponseHeaders()
- );
- $e->setResponseObject($data);
- throw $e;
- case 403:
- $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 deleteApiV3MeReactionsReactionAsync
- *
- * 删除我自己的 reaction
- *
- * @param string $reaction reaction 的 uuid (required)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['deleteApiV3MeReactionsReaction'] to see the possible values for this operation
- *
- * @throws \InvalidArgumentException
- * @return \GuzzleHttp\Promise\PromiseInterface
- */
- public function deleteApiV3MeReactionsReactionAsync($reaction, string $contentType = self::contentTypes['deleteApiV3MeReactionsReaction'][0])
- {
- return $this->deleteApiV3MeReactionsReactionAsyncWithHttpInfo($reaction, $contentType)
- ->then(
- function ($response) {
- return $response[0];
- }
- );
- }
- /**
- * Operation deleteApiV3MeReactionsReactionAsyncWithHttpInfo
- *
- * 删除我自己的 reaction
- *
- * @param string $reaction reaction 的 uuid (required)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['deleteApiV3MeReactionsReaction'] to see the possible values for this operation
- *
- * @throws \InvalidArgumentException
- * @return \GuzzleHttp\Promise\PromiseInterface
- */
- public function deleteApiV3MeReactionsReactionAsyncWithHttpInfo($reaction, string $contentType = self::contentTypes['deleteApiV3MeReactionsReaction'][0])
- {
- $returnType = '';
- $request = $this->deleteApiV3MeReactionsReactionRequest($reaction, $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 'deleteApiV3MeReactionsReaction'
- *
- * @param string $reaction reaction 的 uuid (required)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['deleteApiV3MeReactionsReaction'] to see the possible values for this operation
- *
- * @throws \InvalidArgumentException
- * @return \GuzzleHttp\Psr7\Request
- */
- public function deleteApiV3MeReactionsReactionRequest($reaction, string $contentType = self::contentTypes['deleteApiV3MeReactionsReaction'][0])
- {
- // verify the required parameter 'reaction' is set
- if ($reaction === null || (is_array($reaction) && count($reaction) === 0)) {
- throw new \InvalidArgumentException(
- 'Missing the required parameter $reaction when calling deleteApiV3MeReactionsReaction'
- );
- }
- $resourcePath = '/v3/me/reactions/{reaction}';
- $formParams = [];
- $queryParams = [];
- $headerParams = [];
- $httpBody = '';
- $multipart = false;
- // path params
- if ($reaction !== null) {
- $resourcePath = str_replace(
- '{reaction}',
- ObjectSerializer::toPathValue($reaction),
- $resourcePath
- );
- }
- $headers = $this->headerSelector->selectHeaders(
- ['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(
- 'DELETE',
- $operationHost . $resourcePath . ($query ? "?{$query}" : ''),
- $headers,
- $httpBody
- );
- }
- /**
- * Operation getApiV3MeReactions
- *
- * 列出我自己的 reactions
- *
- * @param int|null $per_page 每页数量,最大 200 (optional, default to 15)
- * @param string|null $type 操作类型 (optional)
- * @param string|null $target_type target 的类型(task 任务、collection 文集、progress_chapter 书·章节、article 文章、terms 术语) (optional)
- * @param int|null $page 页码 (optional, default to 1)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['getApiV3MeReactions'] 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\GetApiV3MeReactions200Response|\WikipaliApi\Model\ProblemDetails|\WikipaliApi\Model\ProblemDetails
- */
- public function getApiV3MeReactions($per_page = 15, $type = null, $target_type = null, $page = 1, string $contentType = self::contentTypes['getApiV3MeReactions'][0])
- {
- list($response) = $this->getApiV3MeReactionsWithHttpInfo($per_page, $type, $target_type, $page, $contentType);
- return $response;
- }
- /**
- * Operation getApiV3MeReactionsWithHttpInfo
- *
- * 列出我自己的 reactions
- *
- * @param int|null $per_page 每页数量,最大 200 (optional, default to 15)
- * @param string|null $type 操作类型 (optional)
- * @param string|null $target_type target 的类型(task 任务、collection 文集、progress_chapter 书·章节、article 文章、terms 术语) (optional)
- * @param int|null $page 页码 (optional, default to 1)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['getApiV3MeReactions'] 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\GetApiV3MeReactions200Response|\WikipaliApi\Model\ProblemDetails|\WikipaliApi\Model\ProblemDetails, HTTP status code, HTTP response headers (array of strings)
- */
- public function getApiV3MeReactionsWithHttpInfo($per_page = 15, $type = null, $target_type = null, $page = 1, string $contentType = self::contentTypes['getApiV3MeReactions'][0])
- {
- $request = $this->getApiV3MeReactionsRequest($per_page, $type, $target_type, $page, $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\GetApiV3MeReactions200Response',
- $request,
- $response,
- );
- case 401:
- 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\GetApiV3MeReactions200Response',
- $request,
- $response,
- );
- } catch (ApiException $e) {
- switch ($e->getCode()) {
- case 200:
- $data = ObjectSerializer::deserialize(
- $e->getResponseBody(),
- '\WikipaliApi\Model\GetApiV3MeReactions200Response',
- $e->getResponseHeaders()
- );
- $e->setResponseObject($data);
- throw $e;
- case 401:
- $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 getApiV3MeReactionsAsync
- *
- * 列出我自己的 reactions
- *
- * @param int|null $per_page 每页数量,最大 200 (optional, default to 15)
- * @param string|null $type 操作类型 (optional)
- * @param string|null $target_type target 的类型(task 任务、collection 文集、progress_chapter 书·章节、article 文章、terms 术语) (optional)
- * @param int|null $page 页码 (optional, default to 1)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['getApiV3MeReactions'] to see the possible values for this operation
- *
- * @throws \InvalidArgumentException
- * @return \GuzzleHttp\Promise\PromiseInterface
- */
- public function getApiV3MeReactionsAsync($per_page = 15, $type = null, $target_type = null, $page = 1, string $contentType = self::contentTypes['getApiV3MeReactions'][0])
- {
- return $this->getApiV3MeReactionsAsyncWithHttpInfo($per_page, $type, $target_type, $page, $contentType)
- ->then(
- function ($response) {
- return $response[0];
- }
- );
- }
- /**
- * Operation getApiV3MeReactionsAsyncWithHttpInfo
- *
- * 列出我自己的 reactions
- *
- * @param int|null $per_page 每页数量,最大 200 (optional, default to 15)
- * @param string|null $type 操作类型 (optional)
- * @param string|null $target_type target 的类型(task 任务、collection 文集、progress_chapter 书·章节、article 文章、terms 术语) (optional)
- * @param int|null $page 页码 (optional, default to 1)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['getApiV3MeReactions'] to see the possible values for this operation
- *
- * @throws \InvalidArgumentException
- * @return \GuzzleHttp\Promise\PromiseInterface
- */
- public function getApiV3MeReactionsAsyncWithHttpInfo($per_page = 15, $type = null, $target_type = null, $page = 1, string $contentType = self::contentTypes['getApiV3MeReactions'][0])
- {
- $returnType = '\WikipaliApi\Model\GetApiV3MeReactions200Response';
- $request = $this->getApiV3MeReactionsRequest($per_page, $type, $target_type, $page, $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 'getApiV3MeReactions'
- *
- * @param int|null $per_page 每页数量,最大 200 (optional, default to 15)
- * @param string|null $type 操作类型 (optional)
- * @param string|null $target_type target 的类型(task 任务、collection 文集、progress_chapter 书·章节、article 文章、terms 术语) (optional)
- * @param int|null $page 页码 (optional, default to 1)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['getApiV3MeReactions'] to see the possible values for this operation
- *
- * @throws \InvalidArgumentException
- * @return \GuzzleHttp\Psr7\Request
- */
- public function getApiV3MeReactionsRequest($per_page = 15, $type = null, $target_type = null, $page = 1, string $contentType = self::contentTypes['getApiV3MeReactions'][0])
- {
- $resourcePath = '/v3/me/reactions';
- $formParams = [];
- $queryParams = [];
- $headerParams = [];
- $httpBody = '';
- $multipart = false;
- // query params
- $queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue(
- $per_page,
- 'per_page', // param base name
- 'integer', // openApiType
- 'form', // style
- true, // explode
- false // required
- ) ?? []);
- // query params
- $queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue(
- $type,
- 'type', // param base name
- 'string', // openApiType
- 'form', // style
- true, // explode
- false // required
- ) ?? []);
- // query params
- $queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue(
- $target_type,
- 'target_type', // param base name
- 'string', // openApiType
- 'form', // style
- true, // explode
- false // required
- ) ?? []);
- // query params
- $queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue(
- $page,
- 'page', // param base name
- 'integer', // openApiType
- 'form', // style
- true, // explode
- false // required
- ) ?? []);
- $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 getApiV3Reactions
- *
- * 列出某个 target 下的 reactions
- *
- * @param string $target_id target 的 uuid (required)
- * @param int|null $per_page 每页数量,最大 200 (optional, default to 15)
- * @param string|null $type 操作类型 (optional)
- * @param int|null $page 页码 (optional, default to 1)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['getApiV3Reactions'] 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\GetApiV3MeReactions200Response|\WikipaliApi\Model\ProblemDetails
- */
- public function getApiV3Reactions($target_id, $per_page = 15, $type = null, $page = 1, string $contentType = self::contentTypes['getApiV3Reactions'][0])
- {
- list($response) = $this->getApiV3ReactionsWithHttpInfo($target_id, $per_page, $type, $page, $contentType);
- return $response;
- }
- /**
- * Operation getApiV3ReactionsWithHttpInfo
- *
- * 列出某个 target 下的 reactions
- *
- * @param string $target_id target 的 uuid (required)
- * @param int|null $per_page 每页数量,最大 200 (optional, default to 15)
- * @param string|null $type 操作类型 (optional)
- * @param int|null $page 页码 (optional, default to 1)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['getApiV3Reactions'] 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\GetApiV3MeReactions200Response|\WikipaliApi\Model\ProblemDetails, HTTP status code, HTTP response headers (array of strings)
- */
- public function getApiV3ReactionsWithHttpInfo($target_id, $per_page = 15, $type = null, $page = 1, string $contentType = self::contentTypes['getApiV3Reactions'][0])
- {
- $request = $this->getApiV3ReactionsRequest($target_id, $per_page, $type, $page, $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\GetApiV3MeReactions200Response',
- $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\GetApiV3MeReactions200Response',
- $request,
- $response,
- );
- } catch (ApiException $e) {
- switch ($e->getCode()) {
- case 200:
- $data = ObjectSerializer::deserialize(
- $e->getResponseBody(),
- '\WikipaliApi\Model\GetApiV3MeReactions200Response',
- $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 getApiV3ReactionsAsync
- *
- * 列出某个 target 下的 reactions
- *
- * @param string $target_id target 的 uuid (required)
- * @param int|null $per_page 每页数量,最大 200 (optional, default to 15)
- * @param string|null $type 操作类型 (optional)
- * @param int|null $page 页码 (optional, default to 1)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['getApiV3Reactions'] to see the possible values for this operation
- *
- * @throws \InvalidArgumentException
- * @return \GuzzleHttp\Promise\PromiseInterface
- */
- public function getApiV3ReactionsAsync($target_id, $per_page = 15, $type = null, $page = 1, string $contentType = self::contentTypes['getApiV3Reactions'][0])
- {
- return $this->getApiV3ReactionsAsyncWithHttpInfo($target_id, $per_page, $type, $page, $contentType)
- ->then(
- function ($response) {
- return $response[0];
- }
- );
- }
- /**
- * Operation getApiV3ReactionsAsyncWithHttpInfo
- *
- * 列出某个 target 下的 reactions
- *
- * @param string $target_id target 的 uuid (required)
- * @param int|null $per_page 每页数量,最大 200 (optional, default to 15)
- * @param string|null $type 操作类型 (optional)
- * @param int|null $page 页码 (optional, default to 1)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['getApiV3Reactions'] to see the possible values for this operation
- *
- * @throws \InvalidArgumentException
- * @return \GuzzleHttp\Promise\PromiseInterface
- */
- public function getApiV3ReactionsAsyncWithHttpInfo($target_id, $per_page = 15, $type = null, $page = 1, string $contentType = self::contentTypes['getApiV3Reactions'][0])
- {
- $returnType = '\WikipaliApi\Model\GetApiV3MeReactions200Response';
- $request = $this->getApiV3ReactionsRequest($target_id, $per_page, $type, $page, $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 'getApiV3Reactions'
- *
- * @param string $target_id target 的 uuid (required)
- * @param int|null $per_page 每页数量,最大 200 (optional, default to 15)
- * @param string|null $type 操作类型 (optional)
- * @param int|null $page 页码 (optional, default to 1)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['getApiV3Reactions'] to see the possible values for this operation
- *
- * @throws \InvalidArgumentException
- * @return \GuzzleHttp\Psr7\Request
- */
- public function getApiV3ReactionsRequest($target_id, $per_page = 15, $type = null, $page = 1, string $contentType = self::contentTypes['getApiV3Reactions'][0])
- {
- // verify the required parameter 'target_id' is set
- if ($target_id === null || (is_array($target_id) && count($target_id) === 0)) {
- throw new \InvalidArgumentException(
- 'Missing the required parameter $target_id when calling getApiV3Reactions'
- );
- }
- $resourcePath = '/v3/reactions';
- $formParams = [];
- $queryParams = [];
- $headerParams = [];
- $httpBody = '';
- $multipart = false;
- // query params
- $queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue(
- $per_page,
- 'per_page', // param base name
- 'integer', // openApiType
- 'form', // style
- true, // explode
- false // required
- ) ?? []);
- // query params
- $queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue(
- $target_id,
- 'target_id', // param base name
- 'string', // openApiType
- 'form', // style
- true, // explode
- true // required
- ) ?? []);
- // query params
- $queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue(
- $type,
- 'type', // param base name
- 'string', // openApiType
- 'form', // style
- true, // explode
- false // required
- ) ?? []);
- // query params
- $queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue(
- $page,
- 'page', // param base name
- 'integer', // openApiType
- 'form', // style
- true, // explode
- false // required
- ) ?? []);
- $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 getApiV3ReactionsTally
- *
- * 统计某个 target 下各 type 的计数
- *
- * @param string $target_id target 的 uuid (required)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['getApiV3ReactionsTally'] 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\GetApiV3ReactionsTally200Response|\WikipaliApi\Model\ProblemDetails
- */
- public function getApiV3ReactionsTally($target_id, string $contentType = self::contentTypes['getApiV3ReactionsTally'][0])
- {
- list($response) = $this->getApiV3ReactionsTallyWithHttpInfo($target_id, $contentType);
- return $response;
- }
- /**
- * Operation getApiV3ReactionsTallyWithHttpInfo
- *
- * 统计某个 target 下各 type 的计数
- *
- * @param string $target_id target 的 uuid (required)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['getApiV3ReactionsTally'] 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\GetApiV3ReactionsTally200Response|\WikipaliApi\Model\ProblemDetails, HTTP status code, HTTP response headers (array of strings)
- */
- public function getApiV3ReactionsTallyWithHttpInfo($target_id, string $contentType = self::contentTypes['getApiV3ReactionsTally'][0])
- {
- $request = $this->getApiV3ReactionsTallyRequest($target_id, $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\GetApiV3ReactionsTally200Response',
- $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\GetApiV3ReactionsTally200Response',
- $request,
- $response,
- );
- } catch (ApiException $e) {
- switch ($e->getCode()) {
- case 200:
- $data = ObjectSerializer::deserialize(
- $e->getResponseBody(),
- '\WikipaliApi\Model\GetApiV3ReactionsTally200Response',
- $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 getApiV3ReactionsTallyAsync
- *
- * 统计某个 target 下各 type 的计数
- *
- * @param string $target_id target 的 uuid (required)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['getApiV3ReactionsTally'] to see the possible values for this operation
- *
- * @throws \InvalidArgumentException
- * @return \GuzzleHttp\Promise\PromiseInterface
- */
- public function getApiV3ReactionsTallyAsync($target_id, string $contentType = self::contentTypes['getApiV3ReactionsTally'][0])
- {
- return $this->getApiV3ReactionsTallyAsyncWithHttpInfo($target_id, $contentType)
- ->then(
- function ($response) {
- return $response[0];
- }
- );
- }
- /**
- * Operation getApiV3ReactionsTallyAsyncWithHttpInfo
- *
- * 统计某个 target 下各 type 的计数
- *
- * @param string $target_id target 的 uuid (required)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['getApiV3ReactionsTally'] to see the possible values for this operation
- *
- * @throws \InvalidArgumentException
- * @return \GuzzleHttp\Promise\PromiseInterface
- */
- public function getApiV3ReactionsTallyAsyncWithHttpInfo($target_id, string $contentType = self::contentTypes['getApiV3ReactionsTally'][0])
- {
- $returnType = '\WikipaliApi\Model\GetApiV3ReactionsTally200Response';
- $request = $this->getApiV3ReactionsTallyRequest($target_id, $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 'getApiV3ReactionsTally'
- *
- * @param string $target_id target 的 uuid (required)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['getApiV3ReactionsTally'] to see the possible values for this operation
- *
- * @throws \InvalidArgumentException
- * @return \GuzzleHttp\Psr7\Request
- */
- public function getApiV3ReactionsTallyRequest($target_id, string $contentType = self::contentTypes['getApiV3ReactionsTally'][0])
- {
- // verify the required parameter 'target_id' is set
- if ($target_id === null || (is_array($target_id) && count($target_id) === 0)) {
- throw new \InvalidArgumentException(
- 'Missing the required parameter $target_id when calling getApiV3ReactionsTally'
- );
- }
- $resourcePath = '/v3/reactions/tally';
- $formParams = [];
- $queryParams = [];
- $headerParams = [];
- $httpBody = '';
- $multipart = false;
- // query params
- $queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue(
- $target_id,
- 'target_id', // param base name
- 'string', // openApiType
- 'form', // style
- true, // explode
- true // required
- ) ?? []);
- $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 postApiV3MeReactions
- *
- * 添加一条我自己的 reaction(幂等)
- *
- * @param \WikipaliApi\Model\PostApiV3MeReactionsRequest $post_api_v3_me_reactions_request post_api_v3_me_reactions_request (required)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['postApiV3MeReactions'] 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\PostApiV3MeReactions200Response|\WikipaliApi\Model\PostApiV3MeReactions200Response|\WikipaliApi\Model\ProblemDetails|\WikipaliApi\Model\ProblemDetails
- */
- public function postApiV3MeReactions($post_api_v3_me_reactions_request, string $contentType = self::contentTypes['postApiV3MeReactions'][0])
- {
- list($response) = $this->postApiV3MeReactionsWithHttpInfo($post_api_v3_me_reactions_request, $contentType);
- return $response;
- }
- /**
- * Operation postApiV3MeReactionsWithHttpInfo
- *
- * 添加一条我自己的 reaction(幂等)
- *
- * @param \WikipaliApi\Model\PostApiV3MeReactionsRequest $post_api_v3_me_reactions_request (required)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['postApiV3MeReactions'] 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\PostApiV3MeReactions200Response|\WikipaliApi\Model\PostApiV3MeReactions200Response|\WikipaliApi\Model\ProblemDetails|\WikipaliApi\Model\ProblemDetails, HTTP status code, HTTP response headers (array of strings)
- */
- public function postApiV3MeReactionsWithHttpInfo($post_api_v3_me_reactions_request, string $contentType = self::contentTypes['postApiV3MeReactions'][0])
- {
- $request = $this->postApiV3MeReactionsRequest($post_api_v3_me_reactions_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();
- switch($statusCode) {
- case 200:
- return $this->handleResponseWithDataType(
- '\WikipaliApi\Model\PostApiV3MeReactions200Response',
- $request,
- $response,
- );
- case 201:
- return $this->handleResponseWithDataType(
- '\WikipaliApi\Model\PostApiV3MeReactions200Response',
- $request,
- $response,
- );
- case 401:
- 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\PostApiV3MeReactions200Response',
- $request,
- $response,
- );
- } catch (ApiException $e) {
- switch ($e->getCode()) {
- case 200:
- $data = ObjectSerializer::deserialize(
- $e->getResponseBody(),
- '\WikipaliApi\Model\PostApiV3MeReactions200Response',
- $e->getResponseHeaders()
- );
- $e->setResponseObject($data);
- throw $e;
- case 201:
- $data = ObjectSerializer::deserialize(
- $e->getResponseBody(),
- '\WikipaliApi\Model\PostApiV3MeReactions200Response',
- $e->getResponseHeaders()
- );
- $e->setResponseObject($data);
- throw $e;
- case 401:
- $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 postApiV3MeReactionsAsync
- *
- * 添加一条我自己的 reaction(幂等)
- *
- * @param \WikipaliApi\Model\PostApiV3MeReactionsRequest $post_api_v3_me_reactions_request (required)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['postApiV3MeReactions'] to see the possible values for this operation
- *
- * @throws \InvalidArgumentException
- * @return \GuzzleHttp\Promise\PromiseInterface
- */
- public function postApiV3MeReactionsAsync($post_api_v3_me_reactions_request, string $contentType = self::contentTypes['postApiV3MeReactions'][0])
- {
- return $this->postApiV3MeReactionsAsyncWithHttpInfo($post_api_v3_me_reactions_request, $contentType)
- ->then(
- function ($response) {
- return $response[0];
- }
- );
- }
- /**
- * Operation postApiV3MeReactionsAsyncWithHttpInfo
- *
- * 添加一条我自己的 reaction(幂等)
- *
- * @param \WikipaliApi\Model\PostApiV3MeReactionsRequest $post_api_v3_me_reactions_request (required)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['postApiV3MeReactions'] to see the possible values for this operation
- *
- * @throws \InvalidArgumentException
- * @return \GuzzleHttp\Promise\PromiseInterface
- */
- public function postApiV3MeReactionsAsyncWithHttpInfo($post_api_v3_me_reactions_request, string $contentType = self::contentTypes['postApiV3MeReactions'][0])
- {
- $returnType = '\WikipaliApi\Model\PostApiV3MeReactions200Response';
- $request = $this->postApiV3MeReactionsRequest($post_api_v3_me_reactions_request, $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 'postApiV3MeReactions'
- *
- * @param \WikipaliApi\Model\PostApiV3MeReactionsRequest $post_api_v3_me_reactions_request (required)
- * @param string $contentType The value for the Content-Type header. Check self::contentTypes['postApiV3MeReactions'] to see the possible values for this operation
- *
- * @throws \InvalidArgumentException
- * @return \GuzzleHttp\Psr7\Request
- */
- public function postApiV3MeReactionsRequest($post_api_v3_me_reactions_request, string $contentType = self::contentTypes['postApiV3MeReactions'][0])
- {
- // verify the required parameter 'post_api_v3_me_reactions_request' is set
- if ($post_api_v3_me_reactions_request === null || (is_array($post_api_v3_me_reactions_request) && count($post_api_v3_me_reactions_request) === 0)) {
- throw new \InvalidArgumentException(
- 'Missing the required parameter $post_api_v3_me_reactions_request when calling postApiV3MeReactions'
- );
- }
- $resourcePath = '/v3/me/reactions';
- $formParams = [];
- $queryParams = [];
- $headerParams = [];
- $httpBody = '';
- $multipart = false;
- $headers = $this->headerSelector->selectHeaders(
- ['application/json', 'application/problem+json', ],
- $contentType,
- $multipart
- );
- // for model (json/xml)
- if (isset($post_api_v3_me_reactions_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_me_reactions_request), JSON_THROW_ON_ERROR);
- } catch (\JsonException $e) {
- throw new \InvalidArgumentException('json_encode error: ' . $e->getMessage(), 0, $e);
- }
- } else {
- $httpBody = $post_api_v3_me_reactions_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;
- }
- }
|