RSS Git Download  Clone
Raw Blame History
package Reporter::Routes::AJAX;

# not in use - psgi can't find get_diagnoses route - route moved to main Routes.pm

=begin
configuration for use with app.pl using ->dance (deprecated):
    * use Reporter::Routes::AJAX in Reporter::Routes
    * use 'appname' => 'Reporter::Routes' in arg to 'use Dancer2'
    * set prefix '/ajax'

configuration for use with app.psgi using ->to_app:
    * do not use Reporter::Routes::AJAX in Reporter::Routes
    * do not use 'appname' in arg to 'use Dancer2'
    * do not set prefix '/ajax'
=cut

use Dancer2; # appname => 'Reporter::Routes'; # only required for ->dance
use Data::Printer;

set serializer => 'JSON';

# ensure "$Reporter::Routes::AJAX::app = $app" is set in Reporter::Routes
our $app; # defined in Reporter::Routes

# only needed if using appname => 'Reporter::Routes' in arg to 'use Dancer2'
# prefix '/ajax';

hook before => sub { $app->check_db_connection }; # to ensure dbh still connected

get '/get_diagnoses' => sub { # warn '=' x 30;
	my $diagnoses = $app->model->get_diagnoses( param('diagnosis') )
	|| return; # p $diagnoses; # doesn't do query unless str >= 3 chars

    my @results = map {
        {
            id    => $_->{id},
            value => $_->{diagnosis},
            info  => $_->{icdo3} || '[non-ICDO3]',
        }
    } @$diagnoses; # ddp \@results;

    my $json = { results => \@results }; # p $json;
    return $json;
};

1;