[Catalyst] transforming empty values in request to perl's undef

Dimitar Petrov mitakaa at gmail.com
Fri Mar 3 12:36:17 GMT 2017


It's just a package and I have in make_schema_at.pl to apply the components
that I want to use:

  make_schema_at(
    "My::Schema::${class_name}",
    {
      exclude           => qr/_\d+$/,
      dump_directory    => "$Bin/../lib",
      components        => [ '+My::TraitFor::Result::ForceNULL',
'+My::TraitFor::Result::AuditLog' ],
      schema_components => [ 'Schema::RestrictWithObject' ],
      qualify_objects => 1, # prepend dpl/public in the
__PACKAGE__->table(...) call
      db_schema    => $schema,
    }
  );

Cheers

On Fri, Mar 3, 2017 at 1:34 PM, Rajesh Kumar Mallah <mallah at redgrape.tech>
wrote:

>
>
> Thanks for that , it looks elegant .
>
> Could you please send some pointer to docs for Traits
> approach.
>
> regds
> mallah.
>
>
>
> > Not sure if that's the best way to do it or if it's a good approach, but
> I
> > have a trait which is applied to all result classes.
> >
> > TraitFor::Result::ForceNULL;
> > use strict;
> > use warnings;
> >
> > my $null = undef;
> >
> > sub insert
> > {
> >   my $self = shift;
> >
> >   for my $col ($self->columns) {
> >     next unless defined $self->$col;
> >     next unless $self->$col eq "";
> >
> >     my $info = $self->result_source->column_info($col);
> >     $self->$col($null) if $info->{is_nullable};
> >   }
> >   return $self->next::method(@_);
> > }
> >
> > sub update
> > {
> >   my $self      = shift;
> >   my %to_update = $self->get_dirty_columns;
> >
> >   return $self->next::method(@_) unless keys %to_update;
> >
> >   for my $col (keys %to_update) {
> >     next unless $to_update{$col} eq "";
> >     my $info = $self->result_source->column_info($col);
> >     $self->{_column_data}{$col} = $null if $info->{is_nullable};
> >   }
> >   return $self->next::method(@_);
> > }
> >
> > 1;
> >
> > Best regards
> >
> > On Thu, Mar 2, 2017 at 5:14 PM, Rajesh Kumar Mallah <mallah at redgrape.tech
> >
> > wrote:
> >
> >>
> >> By empty i mean string with length 0 ie ''
> >>
> >> __CODE__
> >>
> >>
> >> I am posting to rest endpoint Automagically generated via
> >> Catalyst::Controller::DBIC::API  there is no explicit code hand
> >> written by me.And that is why looking for a global filter.
> >>
> >> There are three great virtues of a programmer; Laziness, Impatience and
> >> Hubris -- Larry Wall.
> >>
> >>
> >>
> >> > Just curious: when you say "prefilled with nothing", you mean the
> >> field
> >> is
> >> > empty, or the field is filled with one or more white spaces (like "
> >> "),
> >> or
> >> > the field is a <select> with the first <option> having the attribute
> >> > "value" equals to ""? Or something else?
> >> >
> >> > gil
> >> >
> >> > On Thu, Mar 02, 2017 at 10:25:27AM -0500, Rajesh Kumar Mallah wrote:
> >> >>
> >> >> Hi ,
> >> >>
> >> >> I want to transform request parameters in GET & POST requests
> >> >> so that any thing which is empty (string) gets converted/replaced
> >> >> my perl's undef (and DBIC's NULL).
> >> >>
> >> >> Why i need that:
> >> >> ====================
> >> >> I have edit form in my web app and some fields in the edit form
> >> >> are prefilled with nothing. On submission the DB raises an exception
> >> >> that an empty string is being inserted to a integer field.
> >> >>
> >> >> Hence I feel like having a global filter that turns all blanks to
> >> >> undef.
> >> >>
> >> >> The question is where to put this global filter.
> >> >>
> >> >> Regds
> >> >> mallah.
> >> >>
> >> >>
> >> >>
> >> >>
> >> >> _______________________________________________
> >> >> List: Catalyst at lists.scsys.co.uk
> >> >> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> >> >> Searchable archive:
> >> >> http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
> >> >> Dev site: http://dev.catalyst.perl.org/
> >> >
> >> > _______________________________________________
> >> > List: Catalyst at lists.scsys.co.uk
> >> > Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> >> > Searchable archive:
> >> > http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
> >> > Dev site: http://dev.catalyst.perl.org/
> >> >
> >>
> >>
> >>
> >>
> >>
> >> _______________________________________________
> >> List: Catalyst at lists.scsys.co.uk
> >> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> >> Searchable archive: http://www.mail-archive.com/
> >> catalyst at lists.scsys.co.uk/
> >> Dev site: http://dev.catalyst.perl.org/
> >>
> > _______________________________________________
> > List: Catalyst at lists.scsys.co.uk
> > Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> > Searchable archive:
> > http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
> > Dev site: http://dev.catalyst.perl.org/
> >
>
>
>
>
>
> _______________________________________________
> List: Catalyst at lists.scsys.co.uk
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive: http://www.mail-archive.com/
> catalyst at lists.scsys.co.uk/
> Dev site: http://dev.catalyst.perl.org/
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.scsys.co.uk/pipermail/catalyst/attachments/20170303/9195a85d/attachment.htm>


More information about the Catalyst mailing list