File indexing completed on 2024-04-28 05:55:04

0001 <?php
0002 
0003 /**
0004  * ocs-fileserver
0005  *
0006  * Copyright 2016 by pling GmbH.
0007  *
0008  * This file is part of ocs-fileserver.
0009  *
0010  * ocs-fileserver is free software: you can redistribute it and/or modify
0011  * it under the terms of the GNU Affero General Public License as published by
0012  * the Free Software Foundation, either version 3 of the License, or
0013  * (at your option) any later version.
0014  *
0015  * ocs-fileserver is distributed in the hope that it will be useful,
0016  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0017  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0018  * GNU Affero General Public License for more details.
0019  *
0020  * You should have received a copy of the GNU Affero General Public License
0021  * along with Foobar.  If not, see <http://www.gnu.org/licenses/>.
0022  **/
0023 
0024 class External extends BaseController
0025 {
0026 
0027     public function getIndex()
0028     {
0029         $this->response->setStatus(403);
0030         throw new Flooer_Exception('Forbidden', LOG_NOTICE);
0031     }
0032 
0033     public function postResource()
0034     {
0035         $resource = null;
0036         if (!empty($this->request->uri)) {
0037             $curl = curl_init();
0038             curl_setopt_array($curl, array(
0039                 CURLOPT_URL => $this->request->uri,
0040                 CURLOPT_HEADER => false,
0041                 CURLOPT_RETURNTRANSFER => true,
0042                 CURLOPT_TIMEOUT => 60
0043             ));
0044             $resource = curl_exec($curl);
0045             curl_close($curl);
0046         }
0047 
0048         if (!$resource) {
0049             $this->response->setStatus(404);
0050             throw new Flooer_Exception('Not found', LOG_NOTICE);
0051         }
0052 
0053         $decodedResource = null;
0054         if (!empty($this->request->type)
0055             && $this->request->type == 'json'
0056         ) {
0057             $decodedResource = json_decode($resource);
0058         }
0059         else {
0060             libxml_use_internal_errors(true);
0061             $decodedResource = simplexml_load_string($resource);
0062         }
0063 
0064         $this->_setResponseContent(
0065             'success',
0066             array('resource' => $decodedResource)
0067         );
0068     }
0069 
0070 }