Server IP : 184.154.167.98 / Your IP : 3.148.109.197 Web Server : Apache System : Linux pink.dnsnetservice.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 User : puertode ( 1767) PHP Version : 8.2.26 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/puertode/www/nextcloud/lib/private/Remote/Api/ |
Upload File : |
<?php /** * @copyright Copyright (c) 2017 Robin Appelman <robin@icewind.nl> * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ namespace OC\Remote\Api; use OCP\Http\Client\IClientService; use OCP\Remote\ICredentials; use OCP\Remote\IInstance; class ApiBase { /** @var IInstance */ private $instance; /** @var ICredentials */ private $credentials; /** @var IClientService */ private $clientService; public function __construct(IInstance $instance, ICredentials $credentials, IClientService $clientService) { $this->instance = $instance; $this->credentials = $credentials; $this->clientService = $clientService; } protected function getHttpClient() { return $this->clientService->newClient(); } protected function addDefaultHeaders(array $headers) { return array_merge([ 'OCS-APIREQUEST' => 'true', 'Accept' => 'application/json' ], $headers); } /** * @param string $method * @param string $url * @param array $body * @param array $query * @param array $headers * @return resource|string * @throws \InvalidArgumentException */ protected function request($method, $url, array $body = [], array $query = [], array $headers = []) { $fullUrl = trim($this->instance->getFullUrl(), '/') . '/' . $url; $options = [ 'query' => $query, 'headers' => $this->addDefaultHeaders($headers), 'auth' => [$this->credentials->getUsername(), $this->credentials->getPassword()] ]; if ($body) { $options['body'] = $body; } $client = $this->getHttpClient(); switch ($method) { case 'get': $response = $client->get($fullUrl, $options); break; case 'post': $response = $client->post($fullUrl, $options); break; case 'put': $response = $client->put($fullUrl, $options); break; case 'delete': $response = $client->delete($fullUrl, $options); break; case 'options': $response = $client->options($fullUrl, $options); break; default: throw new \InvalidArgumentException('Invalid method ' . $method); } return $response->getBody(); } }