TYPE-0 PERFECT SEIHA
Server Info:
FreeBSD scimitar.blueboard.cz 13.5-STABLE FreeBSD 13.5-STABLE stable/13-4f2925105 GENERIC amd64
Software:
Apache
User:
www
Crot
Crot File
Crot Dir
Crot Command
[LockSelf]
[HOME]
data
www
19068
fszoo_net
www
api
1
root
local_vendor
teze
teze
src
rest
src
Client
Show Hidden Files
Edit File: /data/www/19068/fszoo_net/www/api/1/root/local_vendor/teze/teze/src/rest/src/Client/Rest.php
<?php /** * * Copyright (c) Jan Pospisil (http://www.jan-pospisil.cz) */ namespace Teze\Rest\Client; use Nette\NotImplementedException; use Nette\Utils\ArrayHash; use Nette\Utils\Json; use Nette\Utils\Random; use Nette\Utils\Strings; use Tracy\Debugger; /** * RestControl * @author Jan Pospisil */ class Rest extends \Nette\Object { const GET = 'GET'; const POST = 'POST'; const OPTIONS = 'OPTIONS'; const POST_WWW_FORM = 'www_form'; const POST_JSON = 'json'; public static $OPTIONS = array( CURLOPT_CONNECTTIMEOUT => 10, CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 60, CURLOPT_USERAGENT => 'teze-rest-php-1.3', //CURLOPT_IPRESOLVE => CURL_IPRESOLVE_V4, //CURLOPT_SSL_VERIFYPEER => false, //CURLOPT_SSL_VERIFYHOST => 2, //CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1' ); private $ssid; private $url; private $prefix; public $onQuery; private $barPanel; private $defaultPostContentType; public function __construct($ssid, $url, $postContentType = null){ $this->ssid = $ssid; $this->url = rtrim($url, '/'); $this->defaultPostContentType = $postContentType ? $postContentType : self::POST_WWW_FORM; } public function setPrefix($prefix){ $this->prefix = $prefix; } public function setBarPanel(BarPanel $barPanel){ $this->barPanel = $barPanel; $barPanel->setUrl($this->url); } /** * Create REST request to faceaim API * @param string $query * @param string $method (get|post) * @param array $data * @return array $result * @throws RestException */ public function api($query, $method = self::GET, array $data = array()){ $this->onQuery($query, $method, $data); if($this->barPanel){ $barRequest = $this->barPanel->addQuery($query, $method, $data); Debugger::timer(); } if($query[0] != '/') throw new RestException('Rest query must start with /'); // run request $curl = curl_init(); $options = self::$OPTIONS; $params = $data; $params['method'] = $method; $options[CURLOPT_URL] = $this->url.$query; if($method == self::GET) $options[CURLOPT_URL] = $this->url.$query.'?'.http_build_query($params, null, '&'); $options[CURLOPT_HTTPHEADER] = array('Expect:', 'Authorization: '.base64_encode($this->ssid)); if($method == self::POST){ if($this->defaultPostContentType == self::POST_JSON) { $options[CURLOPT_HTTPHEADER]['Content-Type'] = 'application/json'; $options[CURLOPT_POSTFIELDS] = Json::encode(array('data' => $data)); } elseif($this->defaultPostContentType == self::POST_WWW_FORM){ $options[CURLOPT_POSTFIELDS] = http_build_query($params, null, '&'); $options[CURLOPT_HTTPHEADER]['Content-Type'] = 'application/x-www-form-urlencoded'; } } if($_SERVER['HTTP_HOST'] == 'localhost') $options[CURLOPT_SSL_VERIFYPEER] = FALSE; curl_setopt_array($curl, $options); $result = curl_exec($curl); // if(!$result){ // $e = new RestException('CURL ERROR: '.curl_error($curl)); // curl_close($curl); // throw $e; // } $data = json_decode($result, TRUE); if($data === NULL && $result){ //die($result); throw new RestException('Invalid response on url '.$options[CURLOPT_URL].': '.$result); } if($this->barPanel) $barRequest->time = Debugger::timer(); return ArrayHash::from($data); } public function getUrl(){ return $this->url; } public function request($query, $method = self::GET, array $data = array(), array $headers = array()){ $this->onQuery($query, $method, $data); if($this->barPanel){ $barRequest = $this->barPanel->addQuery($query, $method, $data); Debugger::timer(); } if($query[0] != '/') throw new RestException('Rest query must start with /'); // run request $curl = curl_init(); $options = self::$OPTIONS; $params = $data; $params['method'] = $method; $options[CURLOPT_HEADER] = true; $options[CURLOPT_VERBOSE] = 1; if($method == self::POST){ if($this->defaultPostContentType == self::POST_JSON) { $options[CURLOPT_HTTPHEADER][] = 'Content-Type: application/json'; $options[CURLOPT_POSTFIELDS] = Json::encode(array('data' => $data)); } elseif($this->defaultPostContentType == self::POST_WWW_FORM){ $options[CURLOPT_POSTFIELDS] = http_build_query($params, null, '&'); $options[CURLOPT_HTTPHEADER]['Content-Type'] = 'application/x-www-form-urlencoded'; } else { throw new NotImplementedException(); } } if($method == self::OPTIONS){ $options[CURLOPT_CUSTOMREQUEST] = self::OPTIONS; } if($headers){ foreach($headers as $name => $value) $options[CURLOPT_HTTPHEADER][] = $name.': '.$value; } $options[CURLOPT_URL] = $this->url.$query; if($method == self::GET) $options[CURLOPT_URL] = $this->url.$query.'?'.http_build_query($params, null, '&'); //$options[CURLOPT_HTTPHEADER] = array('Expect:', 'Authorization: '.base64_encode($this->ssid)); if(@$_SERVER['HTTP_HOST'] == 'localhost') $options[CURLOPT_SSL_VERIFYPEER] = FALSE; curl_setopt_array($curl, $options); $result = curl_exec($curl); //Debugger::$maxLen = 1000; //dump($result); $headersSize = curl_getinfo($curl, CURLINFO_HEADER_SIZE); $headers = substr($result, 0, $headersSize); $body = substr($result, $headersSize); $headersParts = explode("\n", $headers); $headersValues = array(); foreach($headersParts as $part){ $p = explode(':', $part); if(count($p) > 1) $headersValues[trim($p[0])] = trim(substr($part, strlen($p[0]) + 1)); } $httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); $body = trim($body); $data = $body ? json_decode($body, TRUE) : null; if($data === NULL && $body){ throw new RestException('Invalid response on url '.$options[CURLOPT_URL].': '.$result); } if($this->barPanel) $barRequest->time = Debugger::timer(); return ArrayHash::from(array( 'code' => $httpCode, 'data' => $data ? $data : null, 'headers' => $headersValues )); } } class RestException extends \Exception { }
Crotin
Name
Size
Permissions
Modified
User/Group
Presenter.php
336
0644
2018-07-10 17:52:17
Unknown/Unknown
BarPanel.php
3869
0644
2018-07-10 17:52:17
Unknown/Unknown
Rest.php
6002
0644
2018-07-10 17:52:17
Unknown/Unknown
AuthorizationException.php
232
0644
2018-07-10 17:52:17
Unknown/Unknown
RestRenderer.php
1925
0644
2018-07-10 17:52:17
Unknown/Unknown
BarPanel.latte
1655
0644
2018-07-10 17:52:17
Unknown/Unknown
Query.php
249
0644
2018-07-10 17:52:17
Unknown/Unknown
NGANU
Rename
Hapus
Chmod
Chown
Touch
Zip
Unzip
Download
Crotin