Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. use \Psr\Http\Message\ServerRequestInterface as Request;
  3. use \Psr\Http\Message\ResponseInterface as Response;
  4. //TODO: log errors
  5. $validateGet = function ($request, $response, $next) {
  6. if ($request->isGet()) {
  7. $response = $next($request, $response);
  8. } else {
  9. $response = $response->withJson(['status'=>'err', 'msg'=>'Not valid method']);
  10. }
  11. return $response;
  12. };
  13. $validateApi = function ($request, $response, $next) {
  14. global $config;
  15. $apiKey = $config['settings']['api-key'];
  16. if ($request->isPost()) {
  17. $headerApiKey = $request->getHeader('Api-Key');
  18. if ($headerApiKey[0] != $apiKey) {
  19. $response = $response->withJson(['status'=>'err', 'msg'=>'Not valid API request']);
  20. } else {
  21. $response = $next($request, $response);
  22. }
  23. } else {
  24. $response = $response->withJson(['status'=>'err', 'msg'=>'Not valid API request method']);
  25. }
  26. return $response;
  27. };
  28. if ($config['settings']['debug']) {
  29. $app->get('/testcall', function (Request $request, Response $response, array $args) {
  30. global $layout;
  31. $response->getBody()->write($layout->getPage('urlit'));
  32. return $response;
  33. })->add($validateGet);
  34. }
  35. $app->get('/global-js', function (Request $request, Response $response, array $args) {
  36. global $layout;
  37. $response->getBody()->write(Dispatch::route('public', 'getGloablJs'));
  38. return $response;
  39. })->add($validateGet);
  40. $app->get('/email-preview[/{id}]', function (Request $request, Response $response, array $args) {
  41. global $layout;
  42. $response->getBody()->write(Dispatch::route('public', 'emailPreview', $args));
  43. return $response;
  44. })->add($validateGet);
  45. $app->get('/dashboard-redirect', function (Request $request, Response $response, array $args) {
  46. header('Location: /#/dashboard');
  47. exit();
  48. })->add($validateGet);
  49. $app->get('/', function (Request $request, Response $response, array $args) {
  50. global $layout;
  51. $response->getBody()->write($layout->getPage('main'));
  52. return $response;
  53. })->add($validateGet);
  54. $app->group('/api', function() {
  55. $this->any('/{controller}/{action}[/{params:.*}]', function ($request, $response, $args) {
  56. $controller = !empty($args['controller']) ? $args['controller'] : 'login';
  57. $action = !empty($args['action']) ? $args['action'] : 'index';
  58. return Dispatch::route($controller, $action, $args);
  59. });
  60. })->add($validateApi);