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 <mal...@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 <mal...@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@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@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@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@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@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@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/