[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