NAME

Catalyst::Controller::DBIC::API::StaticArguments - Provides controller level configuration arguments

VERSION

version 2.009000

DESCRIPTION

StaticArguments is a role that is composed by the controller to provide configuration parameters such as where to find specific elements in the request data and if to use JSON boolean types.

PUBLIC_ATTRIBUTES

create_requires create_allows update_requires update_allows

These attributes control requirements and limits to columns when creating or updating objects.

Each provides a number of handles:

"get_${var}_column" => 'get'
"set_${var}_column" => 'set'
"delete_${var}_column" => 'delete'
"insert_${var}_column" => 'insert'
"count_${var}_column" => 'count'
"all_${var}_columns" => 'elements'

prefetch_allows

prefetch_allows limits what relations may be prefetched when executing searches with joins. This is necessary to avoid denial of service attacks in form of queries which would return a large number of data and unwanted disclosure of data.

Like the synopsis in DBIC::API shows, you can declare a "template" of what is allowed (by using an '*'). Each element passed in, will be converted into a Data::DPath and added to the validator.

prefetch_allows => [ 'cds', { cds => tracks }, { cds => producers } ] # to be explicit
prefetch_allows => [ 'cds', { cds => '*' } ] # wildcard means the same thing

count_arg

Controls how to reference 'count' in the the request_data, defaults to 'list_count'.

page_arg

Controls how to reference 'page' in the the request_data, defaults to 'list_page'.

offset_arg

Controls how to reference 'offset' in the the request_data, defaults to 'list_offset'.

select_arg

Controls how to reference 'select' in the the request_data, defaults to 'list_returns'.

as_arg

Controls how to reference 'as' in the the request_data, defaults to 'as'.

search_arg

Controls how to reference 'search' in the the request_data, defaults to 'search'.

grouped_by_arg

Controls how to reference 'grouped_by' in the the request_data, defaults to 'list_grouped_by'.

ordered_by_arg

Controls how to reference 'ordered_by' in the the request_data, defaults to 'list_ordered_by'.

prefetch_arg

Controls how to reference 'prefetch' in the the request_data, defaults to 'list_prefetch'.

stash_key

Controls where in the stash the request_data should be stored, defaults to 'response'.

data_root

Controls how to reference where the data is in the the request_data, defaults to 'list'.

item_root

Controls how to reference where the data for single object requests is in the the request_data, defaults to 'data'.

total_entries_arg

Controls how to reference 'total_entries' in the the request_data, defaults to 'totalcount'.

use_json_boolean

Controls whether JSON boolean types are used in the success parameter of the response or if raw strings are used, defaults to false.

return_object

Controls whether the results of create/update are serialized and returned in the response, defaults to false.

AUTHORS

  • Nicholas Perez <nperez@cpan.org>

  • Luke Saunders <luke.saunders@gmail.com>

  • Alexander Hartmaier <abraxxa@cpan.org>

  • Florian Ragwitz <rafl@debian.org>

  • Oleg Kostyuk <cub.uanic@gmail.com>

  • Samuel Kaufman <sam@socialflow.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2024 by Luke Saunders, Nicholas Perez, Alexander Hartmaier, et al.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.