Wallace, Eu não consegui entender este Data::Manger. Não entendi como utilizar este cara verificar os inputs, ao invés de ficar fazer 'if'. O cara parece ser interessante, mas eu fiquei boiando.
Solli Honorio 2012/6/8 Wallace Reis <[email protected]> > On Jun 08, 2012, at 10:29 AM, Eden Cardim wrote: > > [corte] > > E o seu lean controller ficaria mais ou menos assim: > > > > sub my_action :Local { > > my($self, $c) = @_; > > $c->model('MyBizClass') > > ->handle($c->req->upload('file')->fh, $c->model('DB')->dbh, > $c->user->email); > > } > > > Para validação de dados, tenho usado o Data::Verifier[1] atráves do > Data::Manager[2] e este através do CatalystX::Controller::Verifier[3]. O > Data::Verifier permite realizar isto com apoio do sistema de tipos do > Moose[4] e com algumas extensões para validações mais complexas como no seu > caso em que você precisa verificar que é um arquivo de imagem. > > Assim, o controller ficaria algo como (YMMV): > > __PACKAGE__->config( > verifiers => { > my_action => { > profile => { > image_file => { > required => 1, > type => 'FileHandle', > post_check => sub { > isa_image_file(shift->get_value('image_file')) } > }, > }, > }, > }, > ); > > sub my_action :Local { > my($self, $c) = @_; > my $results = $self->verify($c); > $c->model('MyBizClass') > ->handle($results->get_value('image_file'), $c->model('DB')->dbh, > $c->user->email); > } > > [1] https://metacpan.org/module/Data::Verifier > [2] https://metacpan.org/module/Data::Manager > [3] https://metacpan.org/module/CatalystX::Controller::Verifier > [4] https://metacpan.org/module/Moose::Util::TypeConstraints > > -- > Wallace Reis | wreis > [email protected] > http://www.about.me/wallacereis > > =begin disclaimer > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ > SaoPaulo-pm mailing list: [email protected] > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > =end disclaimer > > -- "o animal satisfeito dorme". - Guimarães Rosa
=begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: [email protected] L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer
