package RequestForm::Test; # imports lib paths, Modern::Perl, etc into t/ scripts use Modern::Perl; use Import::Into; use YAML::Tiny; use Exporter (); use FindBin; # warn $FindBin::Bin; use lib ( '/home/raj/perl-lib', # MooX::Types $FindBin::Bin . '/../../HILIS4/lib', # LLU ); use LIMS::Local::Utils; use Local::DB; my $SCHEMA_SET = 0; # warn $SCHEMA_SET; init_db() || die 'initialise db failed'; open my $fh, '>' . $FindBin::Bin . '/mech.htm' or die $!; sub print_output { my $response = shift; print $fh $response->{content}; } sub form_tokens { my $key = LIMS::Local::Utils::today->ymd; my $enc = sub { LIMS::Local::Utils::encrypt(shift, $key) }; return sprintf 'c=%s;u=%s', &$enc('test'), &$enc('test'); # sqlite db } sub patient_data { my $patient = YAML::Tiny->read( 'src/patients.conf' ) or die $!; # ddp $patient; # don't call PDS, and attempt is fatal anyway somewhere in patient_demographic_service() $_->{_skip_pds} ||= 1 for @$patient; # dpp $patient; return $patient; } sub get_dbix { Local::DB->dbix({ dsn => 'dbi:SQLite:dbname=:memory:' }) } sub init_db { return 1 if $SCHEMA_SET; my $dbix = get_dbix(); my @schema = _schema(); do { $dbix->dbh->do($_) || die $dbix->error } foreach @schema; # $dbix->error doesn't work here $SCHEMA_SET = 1; } # sub test_schema { _schema() } # probably don't need our @EXPORT = qw(print_output form_tokens patient_data get_dbix); sub import { RequestForm::DB->import::into(1); Modern::Perl->import::into(1); Local::DB->import::into(1); Data::Dumper->import::into(1); Data::Printer->import::into(1); DateTime->import::into(1); goto &Exporter::import; } 1; sub _schema { return ( q{ CREATE TABLE users( id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT ) }, q{ INSERT INTO users(username) VALUES('test') }, q{ CREATE TABLE patients ( id INTEGER PRIMARY KEY AUTOINCREMENT, last_name TEXT, first_name TEXT, dob TEXT, gender TEXT, nhs_number INT ) }, q{ CREATE TABLE referral_sources ( id INTEGER PRIMARY KEY AUTOINCREMENT, display_name TEXT, organisation_code TEXT, referral_type_id INT, is_active TEXT ) }, q{ INSERT INTO referral_sources (display_name, organisation_code, referral_type_id, is_active) VALUES('Newtown General Infirmary', 'ABC01', 1, 'yes') }, q{ CREATE TABLE referral_types ( id INTEGER PRIMARY KEY AUTOINCREMENT, description TEXT ) }, q{ INSERT INTO referral_types(description) VALUES('hospital') }, q{ CREATE TABLE request_form( id TEXT, last_name TEXT, first_name TEXT, dob TEXT, gender TEXT, nhs_number INTEGER, patient_number TEXT, location_name TEXT, location_id INTEGER, referrer TEXT, pds_code TEXT, user_id INTEGER, created TEXT, imported TEXT ) }, ); }