[Catalyst] usage / example for Catalyst::Controller::DBIC::API::REST

Rajesh Kumar Mallah mallah at redgrape.tech
Wed Mar 1 03:09:23 GMT 2017



Now Looking into the test scripts that came with the distribution.
Hope to find the solution.


>
> Firstly thanks for the quick reply,
>
>
> http://10.100.102.38:3000/api/rest/general/members/368
> does respond with single record.
>
> {
>   "data": {
>     "group_id": null,
>     "pan1": null,
>     "mobile2": null,
>     "pan2": null,
>     "pa_city": null,
>     "email": null,
>     "membership_no": null,
>     "holder1": "Sheela",
>     "pa_state": null,
>     "society_id": 30,
>     "dob1": null,
>     "nominee": null,
>     "password": null,
>     "phones": null,
>     "if_freehold": 0,
>     "if_member": 0,
>     "present_address": null,
>     "flat_no": "A104",
>     "mobile1": "9999912348",
>     "pa_country": null,
>     "holder2": "Jignesh",
>     "pan": null,
>     "dob2": null,
>     "member_id": 368,
>     "pa_zip": null
>   },
>   "Result": "OK",
>   "Record": {
>     "present_address": null,
>     "if_member": 0,
>     "phones": null,
>     "if_freehold": 0,
>     "pa_zip": null,
>     "member_id": 368,
>     "pan": null,
>     "dob2": null,
>     "pa_country": null,
>     "holder2": "Jignesh",
>     "mobile1": "9999912348",
>     "flat_no": "A104",
>     "pan2": null,
>     "mobile2": null,
>     "pan1": null,
>     "group_id": null,
>     "nominee": null,
>     "society_id": 30,
>     "password": null,
>     "dob1": null,
>     "pa_state": null,
>     "holder1": "Sheela",
>     "membership_no": null,
>     "email": null,
>     "pa_city": null
>   }
> }
>
>
> But
>
>
 http://10.100.102.38:3000/api/rest/general/members?list_count=3&list_returns=holder1&list_returns=member_id&list_search.member_id=368
>
> does not seems to be restricting and responding with:
>
> {
>   "Result": "OK",
>   "Records": [
>     {
>       "member_id": 366,
>       "holder1": "Jinesh"
>     },
>     {
>       "member_id": 367,
>       "holder1": "Gita"
>     },
>     {
>       "member_id": 368,
>       "holder1": "Sheela"
>     }
>   ]
> }
>
>
> pasted below is the exact package config:
>
> I do have a ControllerBase interface.
>
> ========================================
> package SmartCGHS::Controller::API::REST::Member;
>
> use strict;
> use warnings;
> use JSON::XS;
>
> use parent qw/SmartCGHS::ControllerBase::REST/;
>
> __PACKAGE__->config(
>     # Define parent chain action and partpath
>     action                  =>  { setup => { PathPart =>
> 'general/members', Chained => '/api/rest/rest_base' } },
>     # DBIC result class
>     class                   =>  'DB::Member',
>
>     # Columns required to create
>     create_requires         =>  [qw/flat_no society_id/],
>     # Additional non-required columns that create allows
>     create_allows           =>  [qw/dob1 dob2 email group_id holder1
> holder2 if_freehold if_member membership_no mobile1 mobile2 nominee
> pa_city pa_country pa_state pa_zip pan pan1 pan2 password phones
> present_address/],
>     # Columns that update allows
>     update_allows           =>  [qw/flat_no society_id dob1 dob2 email
> group_id holder1 holder2 if_freehold if_member membership_no mobile1
> mobile2 nominee pa_city pa_country pa_state pa_zip pan pan1 pan2
> password phones present_address/],
>     # Columns that list returns
>     select                  =>  [qw/flat_no membership_no email pan
> present_address pa_city pa_state pa_country pa_zip holder1 holder2
> nominee dob1 dob2 pan1 pan2 mobile1 mobile2 phones if_member
> if_freehold password society_id member_id group_id/],
>
>
>     # Every possible prefetch param allowed
>     prefetch_allows    =>  [
>         [qw/member_ledgers/], {  'member_ledgers' => [qw//] },
>     [qw/member_meter_readings/], {  'member_meter_readings' => [qw//] },
>     [qw/payment_collections/], {  'payment_collections' =>
> [qw/member_ledgers/] },
>     [qw/saved_bills/], {  'saved_bills' => [qw//] },
>
>     ],
>
>     # Order of generated list
>     ordered_by         => [qw/member_id/],
>     # columns that can be searched on via list
>     search_exposes     => [
>         qw/flat_no membership_no email pan present_address pa_city
> pa_state pa_country pa_zip holder1 holder2 nominee dob1 dob2 pan1
> pan2 mobile1 mobile2 phones if_member if_freehold password
> society_id member_id group_id/,
>         { 'member_ledgers' => [qw/transaction_id head transaction_type
> amount payment_id comments generated due_on society_id member_id/]
> },
>     { 'member_meter_readings' => [qw/uniq_id flat_no dated reading
> reading_avg society_id member_id/] },
>     { 'payment_collections' => [qw/payment_id payment_mode instrument_no
> payment_status instrument_bank instrument_date payment_amount
> payment_time book_no receipt_no society_id member_id/] },
>     { 'saved_bills' => [qw/uniq_id month year bill_html society_id
> member_id/] },
>
>     ],);
>
>
>
>







More information about the Catalyst mailing list