BEGIN {
}
has
'user_form'
=> (
isa
=>
'BookDB::Form::User'
,
is
=>
'rw'
,
lazy
=> 1,
default
=>
sub
{ BookDB::Form::User->new } );
sub
user_base : Chained PathPart(
'user'
) CaptureArgs(0)
{
my
(
$self
,
$c
) =
@_
;
}
sub
default
: Chained(
'user_base'
) PathPart(
''
) Args
{
my
(
$self
,
$c
) =
@_
;
return
$self
->do_list(
$c
);
}
sub
list : Chained(
'user_base'
) PathPart(
'list'
) Args(0)
{
my
(
$self
,
$c
) =
@_
;
return
$self
->do_list(
$c
);
}
sub
do_list
{
my
(
$self
,
$c
) =
@_
;
my
$users
=
$c
->model(
'DB::User'
);
$c
->stash(
users
=>
$users
,
template
=>
'user/list.tt'
);
}
sub
create : Chained(
'user_base'
) PathPart(
'create'
) Args(0)
{
my
(
$self
,
$c
) =
@_
;
$c
->stash(
user
=>
$c
->model(
'DB::User'
)->new_result({}) );
return
$self
->form(
$c
);
}
sub
item : Chained(
'user_base'
) PathPart(
''
) CaptureArgs(1)
{
my
(
$self
,
$c
,
$user_id
) =
@_
;
$c
->stash(
user
=>
$c
->model(
'DB::User'
)->find(
$user_id
) );
}
sub
edit : Chained(
'item'
) PathPart(
'edit'
) Args(0)
{
my
(
$self
,
$c
) =
@_
;
return
$self
->form(
$c
);
}
sub
form
{
my
(
$self
,
$c
) =
@_
;
my
$user
=
$c
->stash->{user};
$c
->stash(
form
=>
$self
->user_form,
template
=>
'user/form.tt'
,
action
=>
$c
->chained_uri_for->as_string );
my
$user_hashref
= {
user_name
=>
$user
->user_name,
fav_cat
=>
$user
->fav_cat,
fav_book
=>
$user
->fav_book,
occupation
=>
$user
->occupation };
$self
->user_form->validate(
init_object
=>
$user_hashref
,
params
=>
$c
->req->parameters );
return
unless
$self
->user_form->validated;
my
$result
=
$self
->user_form->
values
;
$user
->set_columns(
$result
);
$user
->update_or_insert;
$c
->res->redirect(
$c
->uri_for(
'list'
) );
}
sub
delete
: Chained(
'item'
) PathPart(
'delete'
) Args(0)
{
my
(
$self
,
$c
) =
@_
;
$c
->stash->{user}->
delete
;
$c
->res->redirect(
$c
->uri_for(
'list'
) );
}
sub
view : Chained(
'item'
) PathPart(
''
) Args(0) { }
1;