v1.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. /**
  3. * ownCloud
  4. *
  5. * @author Frank Karlitschek
  6. * @copyright 2012 Frank Karlitschek frank@owncloud.org
  7. *
  8. * This library is free software; you can redistribute it and/or
  9. * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
  10. * License as published by the Free Software Foundation; either
  11. * version 3 of the License, or any later version.
  12. *
  13. * This library is distributed in the hope that it will be useful,
  14. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  16. * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
  17. *
  18. * You should have received a copy of the GNU Affero General Public
  19. * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  20. *
  21. */
  22. require_once '../lib/base.php';
  23. if (\OCP\Util::needUpgrade()) {
  24. // since the behavior of apps or remotes are unpredictable during
  25. // an upgrade, return a 503 directly
  26. OC_Response::setStatus(OC_Response::STATUS_SERVICE_UNAVAILABLE);
  27. $response = new OC_OCS_Result(null, OC_Response::STATUS_SERVICE_UNAVAILABLE, 'Service unavailable');
  28. OC_API::respond($response, OC_API::requestedFormat());
  29. exit;
  30. }
  31. use Symfony\Component\Routing\Exception\ResourceNotFoundException;
  32. use Symfony\Component\Routing\Exception\MethodNotAllowedException;
  33. try {
  34. // load all apps to get all api routes properly setup
  35. OC_App::loadApps();
  36. // api calls always will return English
  37. \OC_L10N::forceLanguage('en');
  38. OC::$server->getRouter()->match('/ocs'.OC_Request::getRawPathInfo());
  39. } catch (ResourceNotFoundException $e) {
  40. OC_API::setContentType();
  41. OC_OCS::notFound();
  42. } catch (MethodNotAllowedException $e) {
  43. OC_API::setContentType();
  44. OC_Response::setStatus(405);
  45. }