Catalyst-Controller-DBIC-API
view release on metacpan or search on metacpan
lib/Catalyst/Controller/DBIC/API.pm view on Meta::CPAN
313314315316317318319320321322323324325326327328329330331332333
{
message
=>
'No objects on which to operate'
} );
$c
->detach();
}
else
{
$c
->stash->{
$self
->stash_key }->{
$self
->item_root } =
$self
->each_object_inflate(
$c
,
$c
->req->get_object(0)->[0] );
}
}
sub
update_or_create {
my
(
$self
,
$c
) =
@_
;
if
(
$c
->req->has_objects ) {
$self
->validate_objects(
$c
);
$self
->transact_objects(
$c
,
sub
{
$self
->save_objects(
$c
,
@_
) } );
}
else
{
$c
->
log
->error(
$_
);
$self
->push_error(
$c
,
{
message
=>
'No objects on which to operate'
} );
lib/Catalyst/Controller/DBIC/API.pm view on Meta::CPAN
508509510511512513514515516517518519520521522523524525526527528
if
(
$object
->in_storage ) {
$self
->update_object_from_params(
$c
,
$object
,
$params
);
}
else
{
$self
->insert_object_from_params(
$c
,
$object
,
$params
);
}
}
sub
update_object_from_params {
my
(
$self
,
$c
,
$object
,
$params
) =
@_
;
$params
= {
%$params
, %{
$object
->ident_condition}};
my
$updated_object
=
DBIx::Class::ResultSet::RecursiveUpdate::Functions::recursive_update(
resultset
=>
$c
->req->current_result_set,
# unknown_params_ok => 1,
updates
=>
$params
,
);
lib/Catalyst/Controller/DBIC/API/REST.pm view on Meta::CPAN
7891011121314151617181920212223242526272829303132333435363738394041424344454647__PACKAGE__->config(
'default'
=>
'application/json'
,
'stash_key'
=>
'response'
,
'map'
=> {
'application/x-www-form-urlencoded'
=>
'JSON'
,
'application/json'
=>
'JSON'
,
}
);
sub
update_or_create_objects : POST PUT Chained(
'objects_no_id'
) PathPart(
''
)
Args(0) {
my
(
$self
,
$c
) =
@_
;
$self
->update_or_create(
$c
);
}
sub
delete_many_objects : DELETE Chained(
'objects_no_id'
) PathPart(
''
)
Args(0) {
my
(
$self
,
$c
) =
@_
;
$self
->
delete
(
$c
);
}
sub
list_objects : GET Chained(
'objects_no_id'
) PathPart(
''
) Args(0) {
my
(
$self
,
$c
) =
@_
;
$self
->list(
$c
);
}
sub
update_or_create_one_object : POST PUT Chained(
'object_with_id'
)
PathPart(
''
) Args(0) {
my
(
$self
,
$c
) =
@_
;
$self
->update_or_create(
$c
);
}
sub
delete_one_object : DELETE Chained(
'object_with_id'
) PathPart(
''
) Args(0)
{
my
(
$self
,
$c
) =
@_
;
$self
->
delete
(
$c
);
lib/Catalyst/Controller/DBIC/API/RPC.pm view on Meta::CPAN
2829303132333435363738394041424344454647484950515253545556575859
$self
->
next
::method(
$c
);
}
sub
item : Chained(
'object_with_id'
) : PathPart(
''
) : Args(0) {
my
(
$self
,
$c
) =
@_
;
$self
->
next
::method(
$c
);
}
sub
update : Chained(
'object_with_id'
) : PathPart(
'update'
) : Args(0) {
my
(
$self
,
$c
) =
@_
;
$self
->update_or_create(
$c
);
}
sub
delete
: Chained(
'object_with_id'
) : PathPart(
'delete'
) : Args(0) {
my
(
$self
,
$c
) =
@_
;
$self
->
next
::method(
$c
);
}
sub
update_bulk : Chained(
'objects_no_id'
) : PathPart(
'update'
) : Args(0) {
my
(
$self
,
$c
) =
@_
;
$self
->update_or_create(
$c
);
}
sub
delete_bulk : Chained(
'objects_no_id'
) : PathPart(
'delete'
) : Args(0) {
my
(
$self
,
$c
) =
@_
;
$self
->
delete
(
$c
);
}
( run in 0.426 second using v1.01-cache-2.11-cpan-95122f20152 )