plugins.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  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->post('/plugins/manage/{plugin}', function ($request, $response, $args) {
  18. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  19. if ($Organizr->qualifyRequest(1, true)) {
  20. $Organizr->installPlugin($args['plugin']);
  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->delete('/plugins/manage/{plugin}', function ($request, $response, $args) {
  28. $Organizr = ($request->getAttribute('Organizr')) ?? new Organizr();
  29. if ($Organizr->qualifyRequest(1, true)) {
  30. $Organizr->removePlugin($args['plugin']);
  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. });