package App::Netdisco::DB::Result; use strict; use warnings; use base 'DBIx::Class::Core'; BEGIN { no warnings 'redefine'; __PACKAGE__->load_components(qw{Helper::Row::ToJSON}); # this replacement will avoid the issue of relation names which override # field names, causing TO_JSON to return object instances, breaking to_json *DBIx::Class::Helper::Row::ToJSON::TO_JSON = sub { my $self = shift; my $columns_info = $self->columns_info($self->serializable_columns); my $columns_data = { $self->get_columns }; return { map +($_ => $columns_data->{$_}), keys %$columns_info }; }; } # for DBIx::Class::Helper::Row::ToJSON # to allow text columns to be included in results sub unserializable_data_types { return { blob => 1, ntext => 1, }; } 1;