package Example::Controller::Login;

use Moose;
use MooseX::MethodAttributes;
use Data::Dumper;

extends 'Catalyst::Controller';

sub login :POST Chained(/) Args(0) Does(RequestModel) RequestModel(LoginRequest)  {
  my ($self, $c, $request) = @_;
  $c->res->body(Dumper $request->nested_params);
}

sub info :Chained(/) Args(0) Does(RequestModel) RequestModel(InfoQuery)  {
  my ($self, $c, $request) = @_;
  $c->res->body(Dumper $request->nested_params);
}

sub postinfo :Chained(/) Args(0) Does(RequestModel) RequestModel(LoginRequest) RequestModel(InfoQuery)  {
  my ($self, $c, $post, $get) = @_;
  $c->res->body(Dumper {
    get => $get->nested_params,
    post => $post->nested_params,
  });
}

__PACKAGE__->meta->make_immutable;