--- /dev/null
+package App1::PickDomain;
+
+=head1 NAME
+
+App1::PickDomain - usually the first step - pick a domain
+
+=cut
+
+use strict;
+use warnings;
+use base qw(App1);
+
+sub hash_swap {
+ my $self = shift;
+ return {
+ remote_addr => $ENV{'REMOTE_ADDR'},
+ time => scalar(localtime),
+ };
+}
+
+sub hash_validation {
+ return {
+ 'group no_alert' => 1,
+ 'group no_confirm' => 1,
+ domain => {
+ required => 1,
+ to_lower_case => 1,
+ type => 'DOMAIN',
+ type_error => 'Please enter a valid domain',
+ },
+ };
+}
+
+sub finalize {
+ my $self = shift;
+ my $domain = $self->form->{'domain'};
+
+ # contrived "check" for availability
+ # in theory - these checks would also cache with something like memcache
+ if ($domain =~ /^(\w+)\.com$/) { # for this test - .com isn't available
+ $self->stash->{'domain_prefix'} = $1;
+ } else {
+ $self->stash->{'domain_available'} = 1;
+ }
+
+ return 1;
+}
+
+1;