Ejemplo n.º 1
0
 /**
  * {@inheritdoc}
  */
 public function command(Singo $application)
 {
     /**
      * register login command and handler
      */
     $application->registerCommands([LoginCommand::class], function () use($application) {
         return new UserHandler($application["security.jwt.encoder"], $application["dispatcher"]);
     });
 }
Ejemplo n.º 2
0
 public function testCors()
 {
     $this->app->post("/", function () {
         return new Response("hello from controller");
     });
     $req = Request::create("/", "POST");
     $req->headers->set("Origin", "notlocalhost");
     $req->headers->set("Access-Control-Request-Method", "post");
     $app = $this->app->builder->resolve($this->app);
     $response = $app->handle($req);
     $this->assertEquals(403, $response->getStatusCode());
 }
Ejemplo n.º 3
0
 /**
  * @param Application $container
  */
 public function init(Application $container)
 {
     /**
      * container aware event dispatcher
      */
     $container->register(new ContainerAwareEventDispatcher());
     /**
      * cache
      */
     $container->register(new CacheServiceProvider());
     /**
      * configuration
      */
     $container->register(new Config());
     /**
      * logger
      */
     $container->register(new Logger());
     /**
      * doctrine orm
      */
     $container->register(new Orm());
     /**
      * validator
      */
     $container->register(new Validator());
     /**
      * mailer
      */
     $container->register(new Mailer());
     /**
      * command bus
      */
     $container->register(new CommandBus());
     /**
      * security
      */
     $container->register(new Firewall());
     /**
      * controller as a service
      */
     $container->register(new ServiceControllerServiceProvider(), ["tactician.inflector" => "class_name", "tactician.middlewares" => [$container["command.bus.logger.middleware"], $container["command.bus.validation.middleware"]]]);
     /**
      * Save container in static variable
      */
     self::$container = $container;
     if ($this instanceof Application) {
         /**
          * content negotiation middleware
          */
         $container->registerStackMiddleware(Negotiation::class, null, null, null, ["language_priorities" => $container["config"]->get("api/content_negotiator/language") ?: ["en"], "format_priorities" => $container["config"]->get("api/content_negotiator/format") ?: ["*/*"]]);
         /**
          * cors
          */
         $cors_config = $container["config"]->get("api/cors") ?: ["allowedHeaders" => ["*"], "allowedMethod" => ["*"], "allowedOrigins" => ["*"], "exposedHeaders" => false, "maxAge" => false, "supportsCredentials" => false];
         $container->registerStackMiddleware(Cors::class, $cors_config);
     }
     /**
      * boot module if module feature enabled in configuration
      */
     if ($container->offsetExists("use.module") && $container["use.module"] === true) {
         $this->bootModule();
     }
 }
Ejemplo n.º 4
0
 public function testLogin()
 {
     $req = Request::create("/user/login", "POST", ["username" => "admin", "password" => "singo"]);
     $response = $this->app->handle($req);
     $this->assertContains("data", $response->getContent());
 }
Ejemplo n.º 5
0
 public function testModule()
 {
     $req = Request::create("/home");
     $response = $this->app->handle($req);
     $this->assertEquals("hello world", $response->getContent());
 }