2017-06-12 23:22:34 +01:00
package Pear::LocalLoop::Command::dev_data ;
use Mojo::Base 'Mojolicious::Command' ;
use Mojo::Util 'getopt' ;
has description = > 'Input Dev Data' ;
has usage = > sub { shift - > extract_usage } ;
sub run {
my ( $ self , @ args ) = @ _ ;
getopt \ @ args ,
'f|force' = > \ my $ force ;
unless ( defined $ force ) {
say "Will not do anything without force option" ;
return ;
}
2017-06-12 23:30:40 +01:00
if ( ( defined ( $ ENV { MOJO_MODE } ) && $ ENV { MOJO_MODE } eq 'production' ) || $ self - > app - > mode eq 'production' ) {
2017-06-12 23:22:34 +01:00
say "Will not run dev data fixtures in production!" ;
return ;
}
my $ schema = $ self - > app - > schema ;
$ schema - > resultset ( 'User' ) - > create ( {
email = > 'test@example.com' ,
password = > 'abc123' ,
2017-11-23 16:52:52 +00:00
entity = > {
type = > 'customer' ,
customer = > {
full_name = > 'Test User' ,
display_name = > 'Test User' ,
year_of_birth = > 2006 ,
postcode = > 'LA1 1AA' ,
}
2017-06-12 23:22:34 +01:00
} ,
2017-11-23 16:52:52 +00:00
is_admin = > 1 ,
2017-06-12 23:22:34 +01:00
} ) ;
$ schema - > resultset ( 'User' ) - > create ( {
email = > 'test2@example.com' ,
password = > 'abc123' ,
2017-11-23 16:52:52 +00:00
entity = > {
type = > 'customer' ,
customer = > {
full_name = > 'Test User 2' ,
display_name = > 'Test User 2' ,
year_of_birth = > 2006 ,
postcode = > 'LA1 1AA' ,
} ,
2017-06-12 23:22:34 +01:00
} ,
} ) ;
$ schema - > resultset ( 'User' ) - > create ( {
email = > 'test3@example.com' ,
password = > 'abc123' ,
2017-11-23 16:52:52 +00:00
entity = > {
type = > 'customer' ,
customer = > {
full_name = > 'Test User 3' ,
display_name = > 'Test User 3' ,
year_of_birth = > 2006 ,
postcode = > 'LA1 1AA' ,
} ,
2017-06-12 23:22:34 +01:00
} ,
} ) ;
$ schema - > resultset ( 'User' ) - > create ( {
email = > 'testorg@example.com' ,
password = > 'abc123' ,
2017-11-23 16:52:52 +00:00
entity = > {
type = > 'organisation' ,
organisation = > {
name = > 'Test Org' ,
street_name = > 'Test Street' ,
town = > 'Lancaster' ,
postcode = > 'LA1 1AA' ,
} ,
2017-06-12 23:22:34 +01:00
} ,
} ) ;
}
= head1 SYNOPSIS
Usage: APPLICATION dev_data [ OPTIONS ]
Options:
- f , - - force Actually insert the data
= cut
1 ;