Ejemplo n.º 1
0
* This library 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 library.  If not, see <http://www.gnu.org/licenses/>.
*
*/
require_once '../lib/base.php';
if (\OCP\Util::needUpgrade() || \OCP\Config::getSystemValue('maintenance', false) || \OCP\Config::getSystemValue('singleuser', false)) {
    // since the behavior of apps or remotes are unpredictable during
    // an upgrade, return a 503 directly
    OC_Response::setStatus(OC_Response::STATUS_SERVICE_UNAVAILABLE);
    $response = new OC_OCS_Result(null, OC_Response::STATUS_SERVICE_UNAVAILABLE, 'Service unavailable');
    OC_API::respond($response, OC_API::requestedFormat());
    exit;
}
use Symfony\Component\Routing\Exception\ResourceNotFoundException;
use Symfony\Component\Routing\Exception\MethodNotAllowedException;
try {
    // load all apps to get all api routes properly setup
    OC_App::loadApps();
    // api calls always will return English
    \OC_L10N::forceLanguage('en');
    OC::$server->getRouter()->match('/ocs' . OC_Request::getRawPathInfo());
} catch (ResourceNotFoundException $e) {
    OC_API::setContentType();
    OC_OCS::notFound();
} catch (MethodNotAllowedException $e) {
    OC_API::setContentType();
Ejemplo n.º 2
0
Archivo: v1.php Proyecto: evanjt/core
 *
 * You should have received a copy of the GNU Affero General Public License, version 3,
 * along with this program.  If not, see <http://www.gnu.org/licenses/>
 *
 */
require_once '../lib/base.php';
if (\OCP\Util::needUpgrade() || \OC::$server->getSystemConfig()->getValue('maintenance', false) || \OC::$server->getSystemConfig()->getValue('singleuser', false)) {
    // since the behavior of apps or remotes are unpredictable during
    // an upgrade, return a 503 directly
    OC_Response::setStatus(OC_Response::STATUS_SERVICE_UNAVAILABLE);
    $response = new OC_OCS_Result(null, OC_Response::STATUS_SERVICE_UNAVAILABLE, 'Service unavailable');
    OC_API::respond($response, OC_API::requestedFormat());
    exit;
}
use Symfony\Component\Routing\Exception\ResourceNotFoundException;
use Symfony\Component\Routing\Exception\MethodNotAllowedException;
try {
    // load all apps to get all api routes properly setup
    OC_App::loadApps();
    // force language as given in the http request
    \OC_L10N::setLanguageFromRequest();
    OC::$server->getRouter()->match('/ocs' . \OC::$server->getRequest()->getRawPathInfo());
} catch (ResourceNotFoundException $e) {
    OC_API::setContentType();
    OC_OCS::notFound();
} catch (MethodNotAllowedException $e) {
    OC_API::setContentType();
    OC_Response::setStatus(405);
} catch (\OC\OCS\Exception $ex) {
    OC_API::respond($ex->getResult(), OC_API::requestedFormat());
}
Ejemplo n.º 3
0
 /**
  * Based on the requested format the response content type is set
  */
 public static function setContentType()
 {
     $format = \OC_API::requestedFormat();
     if ($format === 'xml') {
         header('Content-type: text/xml; charset=UTF-8');
         return;
     }
     if ($format === 'json') {
         header('Content-Type: application/json; charset=utf-8');
         return;
     }
     header('Content-Type: application/octet-stream; charset=utf-8');
 }
Ejemplo n.º 4
0
 public static function notFound()
 {
     $format = OC_API::requestedFormat();
     $txt = 'Invalid query, please check the syntax. API specifications are here:' . ' http://www.freedesktop.org/wiki/Specifications/open-collaboration-services. DEBUG OUTPUT:' . "\n";
     $txt .= OC_OCS::getDebugOutput();
     OC_API::respond(new OC_OCS_Result(null, API::RESPOND_UNKNOWN_ERROR, $txt), $format);
 }