Example #1
0
File: file.php Project: gvde/core
 /**
  * Convert the given exception to a SabreException instance
  *
  * @param \Exception $e
  *
  * @throws \Sabre\DAV\Exception
  */
 private function convertToSabreException(\Exception $e)
 {
     if ($e instanceof \Sabre\DAV\Exception) {
         throw $e;
     }
     if ($e instanceof NotPermittedException) {
         // a more general case - due to whatever reason the content could not be written
         throw new Forbidden($e->getMessage(), 0, $e);
     }
     if ($e instanceof ForbiddenException) {
         // the path for the file was forbidden
         throw new DAVForbiddenException($e->getMessage(), $e->getRetry(), $e);
     }
     if ($e instanceof EntityTooLargeException) {
         // the file is too big to be stored
         throw new EntityTooLarge($e->getMessage(), 0, $e);
     }
     if ($e instanceof InvalidContentException) {
         // the file content is not permitted
         throw new UnsupportedMediaType($e->getMessage(), 0, $e);
     }
     if ($e instanceof InvalidPathException) {
         // the path for the file was not valid
         // TODO: find proper http status code for this case
         throw new Forbidden($e->getMessage(), 0, $e);
     }
     if ($e instanceof LockedException || $e instanceof LockNotAcquiredException) {
         // the file is currently being written to by another process
         throw new FileLocked($e->getMessage(), $e->getCode(), $e);
     }
     if ($e instanceof GenericEncryptionException) {
         // returning 503 will allow retry of the operation at a later point in time
         throw new ServiceUnavailable('Encryption not ready: ' . $e->getMessage(), 0, $e);
     }
     if ($e instanceof StorageNotAvailableException) {
         throw new ServiceUnavailable('Failed to write file contents: ' . $e->getMessage(), 0, $e);
     }
     throw new \Sabre\DAV\Exception($e->getMessage(), 0, $e);
 }