You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

95 lines
2.2 KiB

3 years ago
  1. <?php
  2. declare(strict_types=1);
  3. /**
  4. * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>
  5. *
  6. * @author Julius Härtl <jus@bitgrid.net>
  7. *
  8. * @license GNU AGPL version 3 or any later version
  9. *
  10. * This program is free software: you can redistribute it and/or modify
  11. * it under the terms of the GNU Affero General Public License as
  12. * published by the Free Software Foundation, either version 3 of the
  13. * License, or (at your option) any later version.
  14. *
  15. * This program is distributed in the hope that it will be useful,
  16. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  18. * GNU Affero General Public License for more details.
  19. *
  20. * You should have received a copy of the GNU Affero General Public License
  21. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  22. *
  23. */
  24. namespace OCP\DirectEditing;
  25. use OCP\AppFramework\Http\Response;
  26. use OCP\Files\NotPermittedException;
  27. use RuntimeException;
  28. /**
  29. * Interface IManager
  30. *
  31. * @since 18.0.0
  32. */
  33. interface IManager {
  34. /**
  35. * Register a new editor
  36. *
  37. * @since 18.0.0
  38. * @param IEditor $directEditor
  39. */
  40. public function registerDirectEditor(IEditor $directEditor): void;
  41. /**
  42. * Open the editing page for a provided token
  43. *
  44. * @since 18.0.0
  45. * @param string $token
  46. * @return Response
  47. */
  48. public function edit(string $token): Response;
  49. /**
  50. * Create a new token based on the file path and editor details
  51. *
  52. * @since 18.0.0
  53. * @param string $path
  54. * @param string $editorId
  55. * @param string $creatorId
  56. * @param null $templateId
  57. * @return string
  58. * @throws NotPermittedException
  59. * @throws RuntimeException
  60. */
  61. public function create(string $path, string $editorId, string $creatorId, $templateId = null): string;
  62. /**
  63. * Get the token details for a given token
  64. *
  65. * @since 18.0.0
  66. * @param string $token
  67. * @return IToken
  68. */
  69. public function getToken(string $token): IToken;
  70. /**
  71. * Cleanup expired tokens
  72. *
  73. * @since 18.0.0
  74. * @return int number of deleted tokens
  75. */
  76. public function cleanup(): int;
  77. /**
  78. * Check if direct editing is enabled
  79. *
  80. * @since 20.0.0
  81. * @return bool
  82. */
  83. public function isEnabled(): bool;
  84. }