package WeilMclain::Controller::ContractorLocator; use strict; use warnings; use base 'Catalyst::Controller'; =head1 NAME WeilMclain::Controller::ContractorLocator - Catalyst Controller =head1 DESCRIPTION Catalyst Controller. =head1 METHODS =cut =head2 index =cut sub index : Private { my ( $self, $c ) = @_; $c->stash->{template} = 'contractorlocator/index'; } sub search : Local { my ( $self, $c ) = @_; # Figure out hte zip code we are dealing with in case user gives city,state my $zip_code = 0; if ($c->request->param('city') && $c->request->param('state')) { $zip_code = $c->model('WeilMclainDB::Zips')->get_zip($c->request->param('city'),$c->request->param('state')); } elsif (!$c->request->param('zip')) { $c->response->redirect('/contractorlocator'); } else { $zip_code = $c->request->param('zip'); } my $zips = [$c->model('WeilMclainDB::Zips')->get_closest($zip_code,$c->request->param('miles'))]; # Get contractors in $zips if (scalar @{$zips} > 0) { $c->stash->{contractors} = [$c->model('WeilMclainDB::Contractor')->locate_by_zip($zips)]; } $c->stash->{template} = 'contractorlocator/search'; } =head1 AUTHOR Copyright 2006 Denny D. Daugherty =head1 LICENSE =cut 1;