plugins.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. /**
  3. * @OA\Tag(
  4. * name="plugins"
  5. * )
  6. */
  7. $app->get('/plugins', function ($request, $response, $args) {
  8. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  9. if ($Organizr->checkRoute($request)) {
  10. $GLOBALS['api']['response']['data'] = $Organizr->getPlugins();
  11. }
  12. $response->getBody()->write(jsonE($GLOBALS['api']));
  13. return $response
  14. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  15. ->withStatus($GLOBALS['responseCode']);
  16. });
  17. $app->get('/plugins/disabled', function ($request, $response, $args) {
  18. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  19. if ($Organizr->checkRoute($request)) {
  20. $GLOBALS['api']['response']['data'] = $Organizr->getPlugins('disabled');
  21. }
  22. $response->getBody()->write(jsonE($GLOBALS['api']));
  23. return $response
  24. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  25. ->withStatus($GLOBALS['responseCode']);
  26. });
  27. $app->get('/plugins/enabled', function ($request, $response, $args) {
  28. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  29. if ($Organizr->checkRoute($request)) {
  30. $GLOBALS['api']['response']['data'] = $Organizr->getPlugins('enabled');
  31. }
  32. $response->getBody()->write(jsonE($GLOBALS['api']));
  33. return $response
  34. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  35. ->withStatus($GLOBALS['responseCode']);
  36. });
  37. $app->post('/plugins/manage/{plugin}', function ($request, $response, $args) {
  38. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  39. if ($Organizr->qualifyRequest(1, true)) {
  40. $Organizr->installPlugin($args['plugin']);
  41. }
  42. $response->getBody()->write(jsonE($GLOBALS['api']));
  43. return $response
  44. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  45. ->withStatus($GLOBALS['responseCode']);
  46. });
  47. $app->delete('/plugins/manage/{plugin}', function ($request, $response, $args) {
  48. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  49. if ($Organizr->qualifyRequest(1, true)) {
  50. $Organizr->removePlugin($args['plugin']);
  51. }
  52. $response->getBody()->write(jsonE($GLOBALS['api']));
  53. return $response
  54. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  55. ->withStatus($GLOBALS['responseCode']);
  56. });
  57. $app->get('/plugins/marketplace', function ($request, $response, $args) {
  58. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  59. if ($Organizr->checkRoute($request)) {
  60. if ($Organizr->qualifyRequest(1, true)) {
  61. $GLOBALS['api']['response']['data'] = $Organizr->getPluginsMarketplace();
  62. }
  63. }
  64. $response->getBody()->write(jsonE($GLOBALS['api']));
  65. return $response
  66. ->withHeader('Content-Type', 'application/json;charset=UTF-8')
  67. ->withStatus($GLOBALS['responseCode']);
  68. });