WIP fields parameter

This commit is contained in:
John Woodlock
2012-05-25 13:06:47 +10:00
parent 041225c8f5
commit 10b762f24d
10 changed files with 248 additions and 293 deletions
+114 -124
View File
@@ -10,8 +10,9 @@
<body>
<div id="page-wrapper">
<div id="flybar">
<div id=nav-logo>API MENU</div>
<div class="flybar-nav">
<h2 class="flybar-button">API Overview</h2>
<h2 class="flybar-button">Overview</h2>
<div class="flybar-menu-overview">
<div class="toc-column1">
<div class="toc-section">
@@ -30,21 +31,21 @@
<div class="flybar-menu">
<div class="tocMatrix">
<table class=matrixHeading>
<tr class="matrixHeadingBG"><td colspan=2 valign="top"><div class="matrixHeadingVerbs"><table><tr><td>Resources</td></tr></table></div></td><td><table><tr><td><div class="matrixHeadingVerbs">POST</div></td></tr><tr><td>create/update</td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">GET</div></td></tr><tr><td>read</td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">PUT</div></td></tr><tr><td>simple update</td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">DELETE</div></td></tr><tr><td>delete</td></tr></table></td></tr>
<tr class="alt"><td><a href="#clients">CLIENT</a></td><td>/v1/clients</td><td><a href="api.htm#clients_create">Create a Client</a></td><td><a href="#clients_list">List Clients</a></td><td align="center">-</td><td align="center">-</td></tr>
<tr><td></td><td>/v1/clients/{clientId}</td><td align="center">-</td><td><a href="#clients_retrieve">Retrieve a Client</a></td><td><a href="#clients_update">Update a Client</a></td><td align="center">-</td></tr>
<tr class="alt"><td></td><td>/v1/clients/{clientId}/loans</td><td align="center">-</td><td><a href="#clients_loansummary">Retrieve a Client's Loan Account Summary</a></td><td align="center">-</td><td align="center">-</td></tr>
<tr><td></td><td>/v1/clients/{clientId}/notes</td><td><a href="#clients_addnote">Add a Client Note</a></td><td><a href="#clients_notes">Retrieve a Client's Notes</a></td><td align="center">-</td><td align="center">-</td></tr>
<tr class="alt"><td></td><td>/v1/clients/{clientId}/notes/{noteId}</td><td align="center">-</td><td><a href="#clients_retrievenote">Retrieve a Client Note</a></td><td><a href="#clients_updatenote">Update a Client Note</a></td><td align="center">-</td></tr>
<tr><td><a href="#loans">LOAN</a></td><td>/v1/loans</td><td><a href="#loans_create">Create a New Loan/Submit a Loan Application</a></td><td align="center">-</td><td align="center">-</td><td align="center">-</td></tr>
<tr class="alt"><td></td><td>/v1/loans/{loanId}</td><td><a href="#loans_approve_etc">Approve, Disburse, Reject a Loan or Withdraw a Loan Application</a></td><td><a href="#loans_retrieve">Retrieve a Loan</a></td><td align="center">-</td><td><a href="#loans_delete">Delete a Loan</a></td></tr>
<tr><td></td><td>/v1/loans/{loanId}/undo</td><td><a href="#loans_undoapproval_etc">Undo Loan Approval or Disbursal</a></td><td align="center">-</td><td align="center">-</td><td align="center">-</td></tr>
<tr class="alt"><td></td><td>/v1/loans/{loanId}/transactions</td><td><a href="#loans_repayment_etc">Make a Repayment / Loan Waiver</a></td><td align="center">-</td><td align="center">-</td><td align="center">-</td></tr>
<tr><td></td><td>/v1/loans/{loanId}/transactions/{transactionId}</td><td align="center">-</td><td><a href="#loans_repaymentretrieve_etc">Retrieve a Repayment or Waiver Details</a></td><td><a href="#loans_repaymentadjust_etc">Adjust a Repayment or Waiver</a></td><td align="center">-</td></tr>
<tr class="alt"><td><a href="#offices">OFFICE</a></td><td>/v1/offices</td><td><a href="#offices_create">Create an Office</a></td><td><a href="#offices_list">List Offices</a></td><td align="center">-</td><td align="center">-</td></tr>
<tr><td></td><td>/v1/offices/{officeId}</td><td align="center">-</td><td><a href="#offices_retrieve">Retrieve an Office</a></td><td><a href="#offices_update">Update an Office</a></td><td align="center">-</td></tr>
<tr class="alt"><td><a href="#loanproducts">LOAN PRODUCT</a></td><td>/v1/loanproducts</td><td><a href="#loanproducts_create">Create a Loan Product</a></td><td><a href="#loanproducts_list">List Loan Products</a></td><td align="center">-</td><td align="center">-</td></tr>
<tr><td></td><td>/v1/loanproducts/{productId}</td><td align="center">-</td><td><a href="#loanproducts_retrieve">Retrieve a Loan Product</a></td><td><a href="#loanproducts_update">Update a Loan Product</a></td><td align="center">-</td></tr>
<tr class="matrixHeadingBG"><td colspan=2 valign="top"><div class="matrixHeadingVerbs"><table><tr><td>RESOURCES</td></tr></table></div></td><td><table><tr><td><div class="matrixHeadingVerbs">POST</div></td></tr><tr><td><div class=matrixHeadingCommands>create/update</div></td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">GET</div></td></tr><tr><td><div class=matrixHeadingCommands>read</div></td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">PUT</div></td></tr><tr><td><div class=matrixHeadingCommands>simple update</div></td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">DELETE</div></td></tr><tr><td><div class=matrixHeadingCommands>delete</div></td></tr></table></td></tr>
<tr class="alt"><td><a href="#clients">CLIENT</a></td><td>/v1/clients</td><td><a href="api.htm#clients_create">Create a Client</a></td><td><a href="#clients_list">List Clients</a></td><td></td><td></td></tr>
<tr><td></td><td>/v1/clients/{clientId}</td><td></td><td><a href="#clients_retrieve">Retrieve a Client</a></td><td><a href="#clients_update">Update a Client</a></td><td></td></tr>
<tr class="alt"><td></td><td>/v1/clients/{clientId}/loans</td><td></td><td><a href="#clients_loansummary">Retrieve a Client's Loan Account Summary</a></td><td></td><td></td></tr>
<tr><td></td><td>/v1/clients/{clientId}/notes</td><td><a href="#clients_addnote">Add a Client Note</a></td><td><a href="#clients_notes">Retrieve a Client's Notes</a></td><td></td><td></td></tr>
<tr class="alt"><td></td><td>/v1/clients/{clientId}/notes/{noteId}</td><td></td><td><a href="#clients_retrievenote">Retrieve a Client Note</a></td><td><a href="#clients_updatenote">Update a Client Note</a></td><td></td></tr>
<tr><td><a href="#loans">LOAN</a></td><td>/v1/loans</td><td><a href="#loans_create">Create a New Loan/Submit a Loan Application</a></td><td></td><td></td><td></td></tr>
<tr class="alt"><td></td><td>/v1/loans/{loanId}</td><td><a href="#loans_approve_etc">Approve, Disburse, Reject a Loan or Withdraw a Loan Application</a></td><td><a href="#loans_retrieve">Retrieve a Loan</a></td><td></td><td><a href="#loans_delete">Delete a Loan</a></td></tr>
<tr><td></td><td>/v1/loans/{loanId}/undo</td><td><a href="#loans_undoapproval_etc">Undo Loan Approval or Disbursal</a></td><td></td><td></td><td></td></tr>
<tr class="alt"><td></td><td>/v1/loans/{loanId}/transactions</td><td><a href="#loans_repayment_etc">Make a Repayment / Loan Waiver</a></td><td></td><td></td><td></td></tr>
<tr><td></td><td>/v1/loans/{loanId}/transactions/{transactionId}</td><td></td><td><a href="#loans_repaymentretrieve_etc">Retrieve a Repayment or Waiver Details</a></td><td><a href="#loans_repaymentadjust_etc">Adjust a Repayment or Waiver</a></td><td></td></tr>
<tr class="alt"><td><a href="#offices">OFFICE</a></td><td>/v1/offices</td><td><a href="#offices_create">Create an Office</a></td><td><a href="#offices_list">List Offices</a></td><td></td><td></td></tr>
<tr><td></td><td>/v1/offices/{officeId}</td><td></td><td><a href="#offices_retrieve">Retrieve an Office</a></td><td><a href="#offices_update">Update an Office</a></td><td></td></tr>
<tr class="alt"><td><a href="#loanproducts">LOAN PRODUCT</a></td><td>/v1/loanproducts</td><td><a href="#loanproducts_create">Create a Loan Product</a></td><td><a href="#loanproducts_list">List Loan Products</a></td><td></td><td></td></tr>
<tr><td></td><td>/v1/loanproducts/{productId}</td><td></td><td><a href="#loanproducts_retrieve">Retrieve a Loan Product</a></td><td><a href="#loanproducts_update">Update a Loan Product</a></td><td></td></tr>
</table>
</div>
</div>
@@ -52,10 +53,10 @@
<div class="flybar-nav">
<h2 class="flybar-button">Configuration</h2>
<div id="toc-menu1" class="flybar-menu">
<div class="tocMatrixNone">
<div class="tocMatrix">
<table class=matrixHeading>
<tr class="matrixHeadingBG"><td colspan=2 valign="top"><div class="matrixHeadingVerbs"><table><tr><td>Resources</td></tr></table></div></td><td><table><tr><td><div class="matrixHeadingVerbs">POST</div></td></tr><tr><td>create/update</td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">GET</div></td></tr><tr><td>read</td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">PUT</div></td></tr><tr><td>simple update</td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">DELETE</div></td></tr><tr><td>delete</td></tr></table></td></tr>
<tr class="alt"><td><a href="#configs">CONFIGURATION</a></td><td>/v1/configurations/currency</td><td align="center">-</td><td><a href="#configs_currencyretrieve">Retrieve Currency Configuration</a></td><td><a href="#configs_currencyupdate">Update Currency Configuration</a></td><td align="center">-</td></tr>
<tr class="matrixHeadingBG"><td colspan=2 valign="top"><div class="matrixHeadingVerbs"><table><tr><td>RESOURCES</td></tr></table></div></td><td><table><tr><td><div class="matrixHeadingVerbs">POST</div></td></tr><tr><td><div class=matrixHeadingCommands>create/update</div></td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">GET</div></td></tr><tr><td><div class=matrixHeadingCommands>read</div></td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">PUT</div></td></tr><tr><td><div class=matrixHeadingCommands>simple update</div></td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">DELETE</div></td></tr><tr><td><div class=matrixHeadingCommands>delete</div></td></tr></table></td></tr>
<tr class="alt"><td><a href="#configs">CONFIGURATION</a></td><td>/v1/configurations/currency</td><td></td><td><a href="#configs_currencyretrieve">Retrieve Currency Configuration</a></td><td><a href="#configs_currencyupdate">Update Currency Configuration</a></td><td></td></tr>
</table>
</div>
</div>
@@ -63,11 +64,11 @@
<div class="flybar-nav">
<h2 class="flybar-button">Additional Fields</h2>
<div id="toc-menu2" class="flybar-menu">
<div class="tocMatrixNone">
<div class="tocMatrix">
<table class=matrixHeading>
<tr class="matrixHeadingBG"><td colspan=2 valign="top"><div class="matrixHeadingVerbs"><table><tr><td>Resources</td></tr></table></div></td><td><table><tr><td><div class="matrixHeadingVerbs">POST</div></td></tr><tr><td>create/update</td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">GET</div></td></tr><tr><td>read</td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">PUT</div></td></tr><tr><td>simple update</td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">DELETE</div></td></tr><tr><td>delete</td></tr></table></td></tr>
<tr><td><a href="#additionalfields">ADDITIONAL FIELDS</a></td><td>/v1/additionalfields</td><td align="center">-</td><td><a href="#additionalfields_list">List Additional Fields Sets</a></td><td align="center">-</td><td align="center">-</td></tr>
<tr class="alt"><td></td><td>/v1/additionalfields/{Type}/{Set}/{id}</td><td><a href="#additionalfields_update">Update Additional Fields</a></td><td><a href="#additionalfields_retrieve">Retrieve Additional Fields</a></td><td align="center">-</td><td align="center">-</td></tr>
<tr class="matrixHeadingBG"><td colspan=2 valign="top"><div class="matrixHeadingVerbs"><table><tr><td>RESOURCES</td></tr></table></div></td><td><table><tr><td><div class="matrixHeadingVerbs">POST</div></td></tr><tr><td><div class=matrixHeadingCommands>create/update</div></td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">GET</div></td></tr><tr><td><div class=matrixHeadingCommands>read</div></td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">PUT</div></td></tr><tr><td><div class=matrixHeadingCommands>simple update</div></td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">DELETE</div></td></tr><tr><td><div class=matrixHeadingCommands>delete</div></td></tr></table></td></tr>
<tr><td><a href="#additionalfields">ADDITIONAL FIELDS</a></td><td>/v1/additionalfields</td><td></td><td><a href="#additionalfields_list">List Additional Fields Sets</a></td><td></td><td></td></tr>
<tr class="alt"><td></td><td>/v1/additionalfields/{Type}/{Set}/{id}</td><td><a href="#additionalfields_update">Update Additional Fields</a></td><td><a href="#additionalfields_retrieve">Retrieve Additional Fields</a></td><td></td><td></td></tr>
</table>
</div>
</div>
@@ -75,11 +76,11 @@
<div class="flybar-nav">
<h2 class="flybar-button">Report</h2>
<div id="toc-menu3" class="flybar-menu">
<div class="tocMatrixNone">
<div class="tocMatrix">
<table class=matrixHeading>
<tr class="matrixHeadingBG"><td colspan=2 valign="top"><div class="matrixHeadingVerbs"><table><tr><td>Resources</td></tr></table></div></td><td><table><tr><td><div class="matrixHeadingVerbs">POST</div></td></tr><tr><td>create/update</td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">GET</div></td></tr><tr><td>read</td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">PUT</div></td></tr><tr><td>simple update</td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">DELETE</div></td></tr><tr><td>delete</td></tr></table></td></tr>
<tr><td><a href="#reports">REPORT</a></td><td>/v1/reports</td><td align="center">-</td><td><a href="#reports_list">List Reports</a></td><td align="center">-</td><td align="center">-</td></tr>
<tr class="alt"><td></td><td>/v1/reports/{reportName}</td><td align="center">-</td><td><a href="#report_run">Run a Report</a></td><td align="center">-</td><td align="center">-</td></tr>
<tr class="matrixHeadingBG"><td colspan=2 valign="top"><div class="matrixHeadingVerbs"><table><tr><td>RESOURCES</td></tr></table></div></td><td><table><tr><td><div class="matrixHeadingVerbs">POST</div></td></tr><tr><td><div class=matrixHeadingCommands>create/update</div></td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">GET</div></td></tr><tr><td><div class=matrixHeadingCommands>read</div></td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">PUT</div></td></tr><tr><td><div class=matrixHeadingCommands>simple update</div></td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">DELETE</div></td></tr><tr><td><div class=matrixHeadingCommands>delete</div></td></tr></table></td></tr>
<tr><td><a href="#reports">REPORT</a></td><td>/v1/reports</td><td></td><td><a href="#reports_list">List Reports</a></td><td></td><td></td></tr>
<tr class="alt"><td></td><td>/v1/reports/{reportName}</td><td></td><td><a href="#report_run">Run a Report</a></td><td></td><td></td></tr>
</table>
</div>
</div>
@@ -87,17 +88,17 @@
<div class="flybar-nav">
<h2 class="flybar-button">User Related</h2>
<div id="toc-menu4" class="flybar-menu">
<div class="tocMatrixNone">
<div class="tocMatrix">
<table class=matrixHeading>
<tr class="matrixHeadingBG"><td colspan=2 valign="top"><div class="matrixHeadingVerbs"><table><tr><td>Resources</td></tr></table></div></td><td><table><tr><td><div class="matrixHeadingVerbs">POST</div></td></tr><tr><td>create/update</td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">GET</div></td></tr><tr><td>read</td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">PUT</div></td></tr><tr><td>simple update</td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">DELETE</div></td></tr><tr><td>delete</td></tr></table></td></tr>
<tr><td><a href="#authentication">AUTHENTICATION</a></td><td>/v1/authentication</td><td><a href="#authentication_permissions">Verify Authentication</a></td><td align="center">-</td><td align="center">-</td><td align="center">-</td></tr>
<tr class="alt"><td><a href="#useraccounts">USER ACCOUNT</a></td><td>/v1/useraccounts/current</td><td align="center">-</td><td><a href="#useraccount_details_retrieve">Retrieve Current Users' Account Details</a></td><td><a href="#useraccount_details_update">Update Current Users' Account Details</a></td><td align="center">-</td></tr>
<tr><td></td><td>/v1/useraccounts/current/password</td><td align="center">-</td><td align="center">-</td><td><a href="#useraccount_password_update">Update Current Users' Password</a></td><td align="center">-</td></tr>
<tr class="alt"><td><a href="#users">USER</a></td><td>/v1/users</td><td><a href="#users_create">Create a User</a></td><td><a href="#users_list">List Users</a></td><td align="center">-</td><td align="center">-</td></tr>
<tr><td></td><td>/v1/users/{userId}</td><td align="center">-</td><td><a href="#users_retrieve">Retrieve a User</a></td><td><a href="#users_update">Update a User</a></td><td><a href="#users_delete">Delete a User</a></td></tr>
<tr class="alt"><td><a href="#roles">ROLE</a></td><td>/v1/roles</td><td><a href="#roles_create">Create a New Role</a></td><td><a href="#roles_list">List Roles</a></td><td align="center">-</td><td align="center">-</td></tr>
<tr><td></td><td>/v1/roles/{roleId}</td><td align="center">-</td><td><a href="#roles_retrieve">Retrieve a Role</a></td><td><a href="#roles_update">Update a Role</a></td><td align="center">-</td></tr>
<tr class="alt"><td><a href="#permissions">PERMISSION</a></td><td>/v1/permissions</td><td align="center">-</td><td><a href="#permissions_list">List Application Permissions</a></td><td align="center">-</td><td align="center">-</td></tr>
<tr class="matrixHeadingBG"><td colspan=2 valign="top"><div class="matrixHeadingVerbs"><table><tr><td>RESOURCES</td></tr></table></div></td><td><table><tr><td><div class="matrixHeadingVerbs">POST</div></td></tr><tr><td><div class=matrixHeadingCommands>create/update</div></td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">GET</div></td></tr><tr><td><div class=matrixHeadingCommands>read</div></td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">PUT</div></td></tr><tr><td><div class=matrixHeadingCommands>simple update</div></td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">DELETE</div></td></tr><tr><td><div class=matrixHeadingCommands>delete</div></td></tr></table></td></tr>
<tr><td><a href="#authentication">AUTHENTICATION</a></td><td>/v1/authentication</td><td><a href="#authentication_permissions">Verify Authentication</a></td><td></td><td></td><td></td></tr>
<tr class="alt"><td><a href="#useraccounts">USER ACCOUNT</a></td><td>/v1/useraccounts/current</td><td></td><td><a href="#useraccount_details_retrieve">Retrieve Current Users' Account Details</a></td><td><a href="#useraccount_details_update">Update Current Users' Account Details</a></td><td></td></tr>
<tr><td></td><td>/v1/useraccounts/current/password</td><td></td><td></td><td><a href="#useraccount_password_update">Update Current Users' Password</a></td><td></td></tr>
<tr class="alt"><td><a href="#users">USER</a></td><td>/v1/users</td><td><a href="#users_create">Create a User</a></td><td><a href="#users_list">List Users</a></td><td></td><td></td></tr>
<tr><td></td><td>/v1/users/{userId}</td><td></td><td><a href="#users_retrieve">Retrieve a User</a></td><td><a href="#users_update">Update a User</a></td><td><a href="#users_delete">Delete a User</a></td></tr>
<tr class="alt"><td><a href="#roles">ROLE</a></td><td>/v1/roles</td><td><a href="#roles_create">Create a New Role</a></td><td><a href="#roles_list">List Roles</a></td><td></td><td></td></tr>
<tr><td></td><td>/v1/roles/{roleId}</td><td></td><td><a href="#roles_retrieve">Retrieve a Role</a></td><td><a href="#roles_update">Update a Role</a></td><td></td></tr>
<tr class="alt"><td><a href="#permissions">PERMISSION</a></td><td>/v1/permissions</td><td></td><td><a href="#permissions_list">List Application Permissions</a></td><td></td><td></td></tr>
</table>
</div>
</div>
@@ -105,9 +106,9 @@
<div class="flybar-nav">
<h2 class="flybar-button">Convenience</h2>
<div id="toc-menu5" class="flybar-menu-convenience">
<div class="tocMatrixNone">
<div class="tocMatrix">
<table class=matrixHeading>
<tr class="matrixHeadingBG"><td valign="top"><div class="matrixHeadingVerbs"><table><tr><td>Convenience Resources</td></tr></table></div></td><td><table><tr><td><div class="matrixHeadingVerbs">GET</div></td></tr><tr><td>read</td></tr></table></td></tr>
<tr class="matrixHeadingBG"><td valign="top"><div class="matrixHeadingVerbs"><table><tr><td>RESOURCES</td></tr></table></div></td><td><table><tr><td><div class="matrixHeadingVerbs">GET</div></td></tr><tr><td><div class=matrixHeadingCommands>read</div></td></tr></table></td></tr>
<tr class="alt"><td>/v1/clients/template</td><td><a href="#clients_template">Retrieve Client Details Template</a></td></tr>
<tr><td>/v1/loans/template</td><td><a href="#loans_template">Retrieve Loan Details Template</a></td></tr>
<tr class="alt"><td>/v1/loans/{loanId}/transactions/template</td><td><a href="#loans_repaymenttemplate_etc">Retrieve Loan Repayment/Loan Waiver Template</a></td></tr>
@@ -1821,47 +1822,37 @@ Request Body:
<div class="method-section">
<div class="method-description">
<h4>List Offices</h4>
<p>Example Request:
<a style="word-wrap: break-word;" href="https://localhost:8443/mifosng-provider/api/v1/offices">https://localhost:8443/mifosng-provider/api/v1/offices</a>
</p>
<p>Example Requests: </p>
<a style="word-wrap: break-word;" href="https://localhost:8443/mifosng-provider/api/v1/offices?pretty=true">https://localhost:8443/mifosng-provider/api/v1/offices?pretty=true</a>
<a style="word-wrap: break-word;" href="https://localhost:8443/mifosng-provider/api/v1/offices?fields=id,name,openingDate&pretty=true">https://localhost:8443/mifosng-provider/api/v1/offices?fields=id,name,openingDate&pretty=true</a>
</div>
<div class="method-example">
<code class="method-declaration">GET https://thedomainname/api/v1/offices</code>
<code class="method-response">
{
"offices": [
{
"id": 1,
"name": "Demo MFI Head Office",
"externalId": "1",
"openingDate": "2009-01-01",
"hierarchy": ".",
"parentName": null,
"parentId": 0,
"allowedParents": []
},
{
"id": 2,
"name": "sub branch 1",
"externalId": "2",
"openingDate": "2012-01-02",
"hierarchy": ".2.",
"parentName": "Demo MFI Head Office",
"parentId": 1,
"allowedParents": []
},
{
"id": 3,
"name": "sub branch 2",
"externalId": "3",
"openingDate": "2012-03-01",
"hierarchy": ".3.",
"parentName": "Demo MFI Head Office",
"parentId": 1,
"allowedParents": []
}
]
}
<code class="method-response">[ {
"id" : 1,
"name" : "Demo MFI Head Office",
"externalId" : "1",
"openingDate" : [ 2009, 1, 1 ],
"hierarchy" : ".",
"parentName" : null,
"parentId" : null
}, {
"id" : 2,
"name" : "B1",
"externalId" : null,
"openingDate" : [ 2012, 4, 1 ],
"hierarchy" : ".2.",
"parentName" : "Demo MFI Head Office",
"parentId" : 1
}, {
"id" : 3,
"name" : "B2",
"externalId" : null,
"openingDate" : [ 2012, 4, 4 ],
"hierarchy" : ".3.",
"parentName" : "Demo MFI Head Office",
"parentId" : 1
} ]
</code>
</div>
</div>
@@ -3969,53 +3960,52 @@ Request body:
<a id="fullapi_matrix" name="fullapi_matrix" class="old-syle-anchor">&nbsp;</a>
<br>
<br><br>
<table width="80%"><tr><td><h2>Full API Matrix</h2></td><td><h5>Mifos X API Endpoint:</h5></td><td><h5>https://thedomainname/api</h5></td></tr></table>
<table class=matrixHeading>
<tr class="matrixHeadingBG"><td colspan=2 valign="top"><div class="matrixHeadingVerbs"><table><tr><td>Resources</td></tr></table></div></td><td><table><tr><td><div class="matrixHeadingVerbs">POST</div></td></tr><tr><td>create/update</td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">GET</div></td></tr><tr><td>read</td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">PUT</div></td></tr><tr><td>simple update</td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">DELETE</div></td></tr><tr><td>delete</td></tr></table></td></tr>
<tr class="alt"><td><a href="#clients">CLIENT</a></td><td>/v1/clients</td><td><a href="api.htm#clients_create">Create a Client</a></td><td><a href="#clients_list">List Clients</a></td><td align="center">-</td><td align="center">-</td></tr>
<tr><td></td><td>/v1/clients/{clientId}</td><td align="center">-</td><td><a href="#clients_retrieve">Retrieve a Client</a></td><td><a href="#clients_update">Update a Client</a></td><td align="center">-</td></tr>
<tr class="alt"><td></td><td>/v1/clients/{clientId}/loans</td><td align="center">-</td><td><a href="#clients_loansummary">Retrieve a Client's Loan Account Summary</a></td><td align="center">-</td><td align="center">-</td></tr>
<tr><td></td><td>/v1/clients/{clientId}/notes</td><td><a href="#clients_addnote">Add a Client Note</a></td><td><a href="#clients_notes">Retrieve a Client's Notes</a></td><td align="center">-</td><td align="center">-</td></tr>
<tr class="alt"><td></td><td>/v1/clients/{clientId}/notes/{noteId}</td><td align="center">-</td><td><a href="#clients_retrievenote">Retrieve a Client Note</a></td><td><a href="#clients_updatenote">Update a Client Note</a></td><td align="center">-</td></tr>
<tr><td><a href="#loans">LOAN</a></td><td>/v1/loans</td><td><a href="#loans_create">Create a New Loan/Submit a Loan Application</a></td><td align="center">-</td><td align="center">-</td><td align="center">-</td></tr>
<tr class="alt"><td></td><td>/v1/loans/{loanId}</td><td><a href="#loans_approve_etc">Approve, Disburse, Reject a Loan or Withdraw a Loan Application</a></td><td><a href="#loans_retrieve">Retrieve a Loan</a></td><td align="center">-</td><td><a href="#loans_delete">Delete a Loan</a></td></tr>
<tr><td></td><td>/v1/loans/{loanId}/undo</td><td><a href="#loans_undoapproval_etc">Undo Loan Approval or Disbursal</a></td><td align="center">-</td><td align="center">-</td><td align="center">-</td></tr>
<tr class="alt"><td></td><td>/v1/loans/{loanId}/transactions</td><td><a href="#loans_repayment_etc">Make a Repayment / Loan Waiver</a></td><td align="center">-</td><td align="center">-</td><td align="center">-</td></tr>
<tr><td></td><td>/v1/loans/{loanId}/transactions/{transactionId}</td><td align="center">-</td><td><a href="#loans_repaymentretrieve_etc">Retrieve a Repayment or Waiver Details</a></td><td><a href="#loans_repaymentadjust_etc">Adjust a Repayment or Waiver</a></td><td align="center">-</td></tr>
<tr class="alt"><td><a href="#offices">OFFICE</a></td><td>/v1/offices</td><td><a href="#offices_create">Create an Office</a></td><td><a href="#offices_list">List Offices</a></td><td align="center">-</td><td align="center">-</td></tr>
<tr><td></td><td>/v1/offices/{officeId}</td><td align="center">-</td><td><a href="#offices_retrieve">Retrieve an Office</a></td><td><a href="#offices_update">Update an Office</a></td><td align="center">-</td></tr>
<tr class="alt"><td><a href="#loanproducts">LOAN PRODUCT</a></td><td>/v1/loanproducts</td><td><a href="#loanproducts_create">Create a Loan Product</a></td><td><a href="#loanproducts_list">List Loan Products</a></td><td align="center">-</td><td align="center">-</td></tr>
<tr><td></td><td>/v1/loanproducts/{productId}</td><td align="center">-</td><td><a href="#loanproducts_retrieve">Retrieve a Loan Product</a></td><td><a href="#loanproducts_update">Update a Loan Product</a></td><td align="center">-</td></tr>
<tr class="alt"><td><a href="#configs">CONFIGURATION</a></td><td>/v1/configurations/currency</td><td align="center">-</td><td><a href="#configs_currencyretrieve">Retrieve Currency Configuration</a></td><td><a href="#configs_currencyupdate">Update Currency Configuration</a></td><td align="center">-</td></tr>
<tr><td><a href="#additionalfields">ADDITIONAL FIELDS</a></td><td>/v1/additionalfields</td><td align="center">-</td><td><a href="#additionalfields_list">List Additional Fields Sets</a></td><td align="center">-</td><td align="center">-</td></tr>
<tr class="alt"><td></td><td>/v1/additionalfields/{Type}/{Set}/{id}</td><td><a href="#additionalfields_update">Update Additional Fields</a></td><td><a href="#additionalfields_retrieve">Retrieve Additional Fields</a></td><td align="center">-</td><td align="center">-</td></tr>
<tr><td><a href="#reports">REPORT</a></td><td>/v1/reports</td><td align="center">-</td><td><a href="#reports_list">List Reports</a></td><td align="center">-</td><td align="center">-</td></tr>
<tr class="alt"><td></td><td>/v1/reports/{reportName}</td><td align="center">-</td><td><a href="#report_run">Run a Report</a></td><td align="center">-</td><td align="center">-</td></tr>
<tr><td><a href="#authentication">AUTHENTICATION</a></td><td>/v1/authentication</td><td><a href="#authentication_permissions">Verify Authentication</a></td><td align="center">-</td><td align="center">-</td><td align="center">-</td></tr>
<tr class="alt"><td><a href="#useraccounts">USER ACCOUNT</a></td><td>/v1/useraccounts/current</td><td align="center">-</td><td><a href="#useraccount_details_retrieve">Retrieve Current Users' Account Details</a></td><td><a href="#useraccount_details_update">Update Current Users' Account Details</a></td><td align="center">-</td></tr>
<tr><td></td><td>/v1/useraccounts/current/password</td><td align="center">-</td><td align="center">-</td><td><a href="#useraccount_password_update">Update Current Users' Password</a></td><td align="center">-</td></tr>
<tr class="alt"><td><a href="#users">USER</a></td><td>/v1/users</td><td><a href="#users_create">Create a User</a></td><td><a href="#users_list">List Users</a></td><td align="center">-</td><td align="center">-</td></tr>
<tr><td></td><td>/v1/users/{userId}</td><td align="center">-</td><td><a href="#users_retrieve">Retrieve a User</a></td><td><a href="#users_update">Update a User</a></td><td><a href="#users_delete">Delete a User</a></td></tr>
<tr class="alt"><td><a href="#roles">ROLE</a></td><td>/v1/roles</td><td><a href="#roles_create">Create a New Role</a></td><td><a href="#roles_list">List Roles</a></td><td align="center">-</td><td align="center">-</td></tr>
<tr><td></td><td>/v1/roles/{roleId}</td><td align="center">-</td><td><a href="#roles_retrieve">Retrieve a Role</a></td><td><a href="#roles_update">Update a Role</a></td><td align="center">-</td></tr>
<tr class="alt"><td><a href="#permissions">PERMISSION</a></td><td>/v1/permissions</td><td align="center">-</td><td><a href="#permissions_list">List Application Permissions</a></td><td align="center">-</td><td align="center">-</td></tr>
</table>
<br>
<table class=matrixHeading>
<tr class="matrixHeadingBG"><td valign="top"><div class="matrixHeadingVerbs"><table><tr><td>Convenience Resources</td></tr></table></div></td><td><table><tr><td><div class="matrixHeadingVerbs">GET</div></td></tr><tr><td>read</td></tr></table></td></tr>
<tr class="alt"><td>/v1/clients/template</td><td><a href="#clients_template">Retrieve Client Details Template</a></td></tr>
<tr><td>/v1/loans/template</td><td><a href="#loans_template">Retrieve Loan Details Template</a></td></tr>
<tr class="alt"><td>/v1/loans/{loanId}/transactions/template</td><td><a href="#loans_repaymenttemplate_etc">Retrieve Loan Repayment/Loan Waiver Template</a></td></tr>
<tr><td>/v1/offices/template</td><td><a href="#offices_template">Retrieve Office Details Template</a></td></tr>
<tr class="alt"><td>/v1/loanproducts/template</td><td><a href="#loanproducts_template">Retrieve Loan Product Details Template</a></td></tr>
<tr><td>/v1/useraccounts/current/password/template</td><td><a href="#useraccount_password_retrieve">Retrieve change password template</a></td></tr>
<tr class="alt"><td>/v1/users/template</td><td><a href="#users_template">Retrieve new user template</a></td></tr>
<tr><td>/v1/roles/template</td><td><a href="#roles_template">Retrieve new role template</a></td></tr>
</table>
<br><br><br>
<div class=fullMatrixOuter>
<table width="80%"><tr><td><h3>Full API Matrix</h4></td><td><h4>API Endpoint:</h5></td><td><h5>https://thedomainname/api</h5></td></tr></table>
<table class=matrixHeading>
<tr class="matrixHeadingBG"><td colspan=2 valign="top"><div class="matrixHeadingVerbs"><table><tr><td>RESOURCES</td></tr></table></div></td><td><table><tr><td><div class="matrixHeadingVerbs">POST</div></td></tr><tr><td><div class=matrixHeadingCommands>create/update</div></td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">GET</div></td></tr><tr><td><div class=matrixHeadingCommands>read</div></td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">PUT</div></td></tr><tr><td><div class=matrixHeadingCommands>simple update</div></td></tr></table></td><td><table><tr><td><div class="matrixHeadingVerbs">DELETE</div></td></tr><tr><td><div class=matrixHeadingCommands>delete</div></td></tr></table></td></tr>
<tr class="alt"><td><a href="#clients">CLIENT</a></td><td>/v1/clients</td><td><a href="api.htm#clients_create">Create a Client</a></td><td><a href="#clients_list">List Clients</a></td><td></td><td></td></tr>
<tr><td></td><td>/v1/clients/{clientId}</td><td></td><td><a href="#clients_retrieve">Retrieve a Client</a></td><td><a href="#clients_update">Update a Client</a></td><td></td></tr>
<tr class="alt"><td></td><td>/v1/clients/{clientId}/loans</td><td></td><td><a href="#clients_loansummary">Retrieve a Client's Loan Account Summary</a></td><td></td><td></td></tr>
<tr><td></td><td>/v1/clients/{clientId}/notes</td><td><a href="#clients_addnote">Add a Client Note</a></td><td><a href="#clients_notes">Retrieve a Client's Notes</a></td><td></td><td></td></tr>
<tr class="alt"><td></td><td>/v1/clients/{clientId}/notes/{noteId}</td><td></td><td><a href="#clients_retrievenote">Retrieve a Client Note</a></td><td><a href="#clients_updatenote">Update a Client Note</a></td><td></td></tr>
<tr><td><a href="#loans">LOAN</a></td><td>/v1/loans</td><td><a href="#loans_create">Create a New Loan/Submit a Loan Application</a></td><td></td><td></td><td></td></tr>
<tr class="alt"><td></td><td>/v1/loans/{loanId}</td><td><a href="#loans_approve_etc">Approve, Disburse, Reject a Loan or Withdraw a Loan Application</a></td><td><a href="#loans_retrieve">Retrieve a Loan</a></td><td></td><td><a href="#loans_delete">Delete a Loan</a></td></tr>
<tr><td></td><td>/v1/loans/{loanId}/undo</td><td><a href="#loans_undoapproval_etc">Undo Loan Approval or Disbursal</a></td><td></td><td></td><td></td></tr>
<tr class="alt"><td></td><td>/v1/loans/{loanId}/transactions</td><td><a href="#loans_repayment_etc">Make a Repayment / Loan Waiver</a></td><td></td><td></td><td></td></tr>
<tr><td></td><td>/v1/loans/{loanId}/transactions/{transactionId}</td><td></td><td><a href="#loans_repaymentretrieve_etc">Retrieve a Repayment or Waiver Details</a></td><td><a href="#loans_repaymentadjust_etc">Adjust a Repayment or Waiver</a></td><td></td></tr>
<tr class="alt"><td><a href="#offices">OFFICE</a></td><td>/v1/offices</td><td><a href="#offices_create">Create an Office</a></td><td><a href="#offices_list">List Offices</a></td><td></td><td></td></tr>
<tr><td></td><td>/v1/offices/{officeId}</td><td></td><td><a href="#offices_retrieve">Retrieve an Office</a></td><td><a href="#offices_update">Update an Office</a></td><td></td></tr>
<tr class="alt"><td><a href="#loanproducts">LOAN PRODUCT</a></td><td>/v1/loanproducts</td><td><a href="#loanproducts_create">Create a Loan Product</a></td><td><a href="#loanproducts_list">List Loan Products</a></td><td></td><td></td></tr>
<tr><td></td><td>/v1/loanproducts/{productId}</td><td></td><td><a href="#loanproducts_retrieve">Retrieve a Loan Product</a></td><td><a href="#loanproducts_update">Update a Loan Product</a></td><td></td></tr>
<tr class="alt"><td><a href="#configs">CONFIGURATION</a></td><td>/v1/configurations/currency</td><td></td><td><a href="#configs_currencyretrieve">Retrieve Currency Configuration</a></td><td><a href="#configs_currencyupdate">Update Currency Configuration</a></td><td></td></tr>
<tr><td><a href="#additionalfields">ADDITIONAL FIELDS</a></td><td>/v1/additionalfields</td><td></td><td><a href="#additionalfields_list">List Additional Fields Sets</a></td><td></td><td></td></tr>
<tr class="alt"><td></td><td>/v1/additionalfields/{Type}/{Set}/{id}</td><td><a href="#additionalfields_update">Update Additional Fields</a></td><td><a href="#additionalfields_retrieve">Retrieve Additional Fields</a></td><td></td><td></td></tr>
<tr><td><a href="#reports">REPORT</a></td><td>/v1/reports</td><td></td><td><a href="#reports_list">List Reports</a></td><td></td><td></td></tr>
<tr class="alt"><td></td><td>/v1/reports/{reportName}</td><td></td><td><a href="#report_run">Run a Report</a></td><td></td><td></td></tr>
<tr><td><a href="#authentication">AUTHENTICATION</a></td><td>/v1/authentication</td><td><a href="#authentication_permissions">Verify Authentication</a></td><td></td><td></td><td></td></tr>
<tr class="alt"><td><a href="#useraccounts">USER ACCOUNT</a></td><td>/v1/useraccounts/current</td><td></td><td><a href="#useraccount_details_retrieve">Retrieve Current Users' Account Details</a></td><td><a href="#useraccount_details_update">Update Current Users' Account Details</a></td><td></td></tr>
<tr><td></td><td>/v1/useraccounts/current/password</td><td></td><td></td><td><a href="#useraccount_password_update">Update Current Users' Password</a></td><td></td></tr>
<tr class="alt"><td><a href="#users">USER</a></td><td>/v1/users</td><td><a href="#users_create">Create a User</a></td><td><a href="#users_list">List Users</a></td><td></td><td></td></tr>
<tr><td></td><td>/v1/users/{userId}</td><td></td><td><a href="#users_retrieve">Retrieve a User</a></td><td><a href="#users_update">Update a User</a></td><td><a href="#users_delete">Delete a User</a></td></tr>
<tr class="alt"><td><a href="#roles">ROLE</a></td><td>/v1/roles</td><td><a href="#roles_create">Create a New Role</a></td><td><a href="#roles_list">List Roles</a></td><td></td><td></td></tr>
<tr><td></td><td>/v1/roles/{roleId}</td><td></td><td><a href="#roles_retrieve">Retrieve a Role</a></td><td><a href="#roles_update">Update a Role</a></td><td></td></tr>
<tr class="alt"><td><a href="#permissions">PERMISSION</a></td><td>/v1/permissions</td><td></td><td><a href="#permissions_list">List Application Permissions</a></td><td></td><td></td></tr>
</table>
<br>
<table class=matrixHeading>
<tr class="matrixHeadingBG"><td valign="top"><div class="matrixHeadingVerbs"><table><tr><td>CONVENIENCE RESOURCES</td></tr></table></div></td><td><table><tr><td><div class="matrixHeadingVerbs">GET</div></td></tr><tr><td><div class=matrixHeadingCommands>read</div></td></tr></table></td></tr>
<tr class="alt"><td>/v1/clients/template</td><td><a href="#clients_template">Retrieve Client Details Template</a></td></tr>
<tr><td>/v1/loans/template</td><td><a href="#loans_template">Retrieve Loan Details Template</a></td></tr>
<tr class="alt"><td>/v1/loans/{loanId}/transactions/template</td><td><a href="#loans_repaymenttemplate_etc">Retrieve Loan Repayment/Loan Waiver Template</a></td></tr>
<tr><td>/v1/offices/template</td><td><a href="#offices_template">Retrieve Office Details Template</a></td></tr>
<tr class="alt"><td>/v1/loanproducts/template</td><td><a href="#loanproducts_template">Retrieve Loan Product Details Template</a></td></tr>
<tr><td>/v1/useraccounts/current/password/template</td><td><a href="#useraccount_password_retrieve">Retrieve change password template</a></td></tr>
<tr class="alt"><td>/v1/users/template</td><td><a href="#users_template">Retrieve new user template</a></td></tr>
<tr><td>/v1/roles/template</td><td><a href="#roles_template">Retrieve new role template</a></td></tr>
</table>
</div>
</div>
</body>
+30 -14
View File
@@ -1,29 +1,36 @@
.tocMatrix {
font-size: 85%;
}
.fullMatrixOuter {
margin-right: 20px;
margin-left: 20px;
margin-bottom: 20px;
}
.matrixHeading {
font-family: Helvetica, Arial, sans-serif;
border-collapse:collapse;
margin-right:10px;
margin-left:10px;
border:3px solid blue;
border:3px solid #6eb4db;
width:100%;
}
.matrixHeading td,
.matrixHeading td
{
border:1px solid #98bf21;
padding:3px 7px 2px 7px;
//padding:3px 7px 2px 7px;
padding-right:5px;
vertical-align:text-top;
}
.matrixHeading tr.alt td
.matrixHeading tr.alt
{
color:#000;
background-color:#EAF2D3;
background-color: rgb(240, 240, 255);
}
.matrixHeadingBG {
background-color: blue;
background-color: #6eb4db;
}
.matrixHeadingVerbs {
@@ -32,6 +39,10 @@
font-size: 125%
}
.matrixHeadingCommands {
color: rgb(240, 240, 255);
}
html{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,tdjpw{margin:0;padding:0;}tablejpw{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup{vertical-align:text-top;}sub{vertical-align:text-bottom;}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;}input,textarea,select{*font-size:100%;}legend{color:#000;}
@@ -86,7 +97,7 @@ body {
background: #eee;
background: -webkit-gradient(linear, left top, left bottom, from(#f8f8f8), to(#dadada));
background: -moz-linear-gradient(top, #f8f8f8, #dadada);
border-top: 15px solid black;
border-top: 3px solid black;
border-bottom: 1px solid #888;
-webkit-box-shadow: 0 3px 5px rgba(0,0,0,0.1);
-moz-box-shadow: 0 3px 5px rgba(0,0,0,0.1);
@@ -97,8 +108,13 @@ body {
display: block;
height: 30px;
position: absolute;
top: 7px;
left: 10px;
top: 10px;
left: 20px;
font-weight: bold;
color: black;
font-size: 16px;
text-decoration: none;
}
.flybar-button {
@@ -141,7 +157,7 @@ body {
position: absolute;
top: 41px;
width: 800px;
width: 850px;
background-color: rgba(249, 249, 249, 0.99);
border: 1px solid rgb(187, 187, 187);
border-top: 0;
@@ -175,7 +191,7 @@ body {
position: absolute;
top: 41px;
width: 600px;
width: 575px;
background-color: rgba(249, 249, 249, 0.99);
border: 1px solid rgb(187, 187, 187);
border-top: 0;
@@ -1,6 +1,8 @@
package org.mifosng.data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlRootElement;
@@ -18,7 +20,7 @@ public class OfficeData implements Serializable {
private String hierarchy;
private String parentName;
private Long parentId;
private OfficeTemplateData officeTemplateData;
private List<OfficeLookup> allowedParents = new ArrayList<OfficeLookup>();
public OfficeData() {
//
@@ -92,11 +94,12 @@ public class OfficeData implements Serializable {
this.hierarchy = hierarchy;
}
public OfficeTemplateData getOfficeTemplateData() {
return officeTemplateData;
public List<OfficeLookup> getAllowedParents() {
return allowedParents;
}
public void setOfficeTemplateData(OfficeTemplateData officeTemplateData) {
this.officeTemplateData = officeTemplateData;
public void setAllowedParents(List<OfficeLookup> allowedParents) {
this.allowedParents = allowedParents;
}
}
@@ -1,28 +0,0 @@
package org.mifosng.data;
import java.util.ArrayList;
import java.util.Collection;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class OfficeList {
private Collection<OfficeData> offices = new ArrayList<OfficeData>();
protected OfficeList() {
//
}
public OfficeList(final Collection<OfficeData> offices) {
this.offices = offices;
}
public Collection<OfficeData> getOffices() {
return this.offices;
}
public void setOffices(final Collection<OfficeData> offices) {
this.offices = offices;
}
}
@@ -1,43 +0,0 @@
package org.mifosng.data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlRootElement;
import org.joda.time.LocalDate;
@XmlRootElement(name = "office template")
public class OfficeTemplateData implements Serializable {
private LocalDate defaultOpeningDate;
private List<OfficeLookup> allowedParents = new ArrayList<OfficeLookup>();
public OfficeTemplateData() {
//
}
public OfficeTemplateData(final LocalDate defaultOpeningDate,
final List<OfficeLookup> allowedParents) {
this.defaultOpeningDate = defaultOpeningDate;
this.allowedParents = allowedParents;
}
public LocalDate getDefaultOpeningDate() {
return defaultOpeningDate;
}
public void setDefaultOpeningDate(LocalDate defaultOpeningDate) {
this.defaultOpeningDate = defaultOpeningDate;
}
public List<OfficeLookup> getAllowedParents() {
return allowedParents;
}
public void setAllowedParents(List<OfficeLookup> allowedParents) {
this.allowedParents = allowedParents;
}
}
@@ -18,14 +18,11 @@ import javax.ws.rs.core.Response;
import org.joda.time.LocalDate;
import org.mifosng.data.EntityIdentifier;
import org.mifosng.data.OfficeData;
import org.mifosng.data.OfficeTemplateData;
import org.mifosng.data.command.OfficeCommand;
import org.mifosng.platform.api.infrastructure.ApiDataConversionService;
import org.mifosng.platform.api.infrastructure.ApiJSONFormattingService;
import org.mifosng.platform.organisation.service.OfficeReadPlatformService;
import org.mifosng.platform.organisation.service.OfficeWritePlatformService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
@@ -35,8 +32,6 @@ import org.springframework.stereotype.Component;
@Scope("singleton")
public class OfficeApiResource {
private final static Logger logger = LoggerFactory.getLogger(OfficeApiResource.class);
@Autowired
private OfficeReadPlatformService readPlatformService;
@@ -45,45 +40,42 @@ public class OfficeApiResource {
@Autowired
private ApiDataConversionService apiDataConversionService;
@Autowired
private ApiJSONFormattingService jsonFormattingService;
@GET
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@Produces({ MediaType.APPLICATION_JSON })
public String retrieveOffices(@QueryParam("fields") String fields) {
public String retrieveOffices(@QueryParam("fields") String fields,
@QueryParam("pretty") String pretty) {
Collection<OfficeData> offices = this.readPlatformService
.retrieveAllOffices();
Set<String> excludeFields = new HashSet<String>();
excludeFields.add("officeTemplateData");
// can use parameters for turning this on/off etc.
boolean prettyOutput = true;
return this.jsonFormattingService.convertDataObjectJSON(offices, fields, excludeFields, prettyOutput);
excludeFields.add("allowedParents");
return this.jsonFormattingService.convertDataObjectJSON(offices,
fields, excludeFields,
this.jsonFormattingService.isTrue(pretty));
}
@GET
@Path("template")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@Produces({ MediaType.APPLICATION_JSON })
public String retrieveOfficeTemplate() {
public String retrieveOfficeTemplate(@QueryParam("pretty") String pretty) {
OfficeData officeData = new OfficeData();
OfficeTemplateData officeTemplateData = this.readPlatformService
OfficeData officeData = this.readPlatformService
.retrieveNewOfficeTemplate();
officeData.setOfficeTemplateData(officeTemplateData);
Set<String> excludeFields = new HashSet<String>();
String includeFields = "officeTemplateData";
// can use parameters for turning this on/off etc.
boolean prettyOutput = true;
return this.jsonFormattingService.convertDataObjectJSON(officeData, includeFields, excludeFields, prettyOutput);
String includeFields = "openingDate,allowedParents";
return this.jsonFormattingService.convertDataObjectJSON(officeData,
includeFields, excludeFields,
this.jsonFormattingService.isTrue(pretty));
}
@POST
@@ -107,42 +99,30 @@ public class OfficeApiResource {
@Produces({ MediaType.APPLICATION_JSON })
public String retreiveOffice(@PathParam("officeId") final Long officeId,
@QueryParam("fields") String fields,
@QueryParam("returnTemplateData") String returnTemplateData) {
Boolean isReturnTemplate = false;
if (returnTemplateData != null
&& returnTemplateData.equalsIgnoreCase("true")) {
isReturnTemplate = true;
}
Boolean isIncludeFields = false;
if (!(fields == null || fields.equals(""))) {
isIncludeFields = true;
}
OfficeData office = this.readPlatformService.retrieveOffice(officeId);
if (isReturnTemplate) {
OfficeTemplateData officeTemplateData = this.readPlatformService
.retrieveExistingOfficeTemplate(officeId);
office.setOfficeTemplateData(officeTemplateData);
}
@QueryParam("template") String template,
@QueryParam("pretty") String pretty) {
String includeFields = fields;
Set<String> excludeFields = new HashSet<String>();
if (isIncludeFields) {
if (isReturnTemplate) {
includeFields += ",officeTemplateData";
OfficeData office = this.readPlatformService.retrieveOffice(officeId);
if (this.jsonFormattingService.isTrue(template)) {
office.setAllowedParents(this.readPlatformService
.retrieveAllowedParents(officeId));
if (this.jsonFormattingService.isPassed(includeFields)) {
includeFields += ",allowedParents";
}
} else {
if (!(isReturnTemplate)) {
excludeFields.add("officeTemplateData");
if (!(this.jsonFormattingService.isPassed(includeFields))) {
excludeFields.add("allowedParents");
}
}
boolean prettyOutput = true;
return this.jsonFormattingService.convertDataObjectJSON(office, includeFields, excludeFields, prettyOutput);
return this.jsonFormattingService.convertDataObjectJSON(office,
includeFields, excludeFields,
this.jsonFormattingService.isTrue(pretty));
}
@PUT
@@ -7,4 +7,8 @@ public interface ApiJSONFormattingService {
String convertDataObjectJSON(Object dataObject, String fields,
Set<String> excludeFields, boolean prettyOutput);
Boolean isTrue(String param);
Boolean isPassed(String param);
}
@@ -20,10 +20,12 @@ import org.springframework.stereotype.Service;
@Service
public class ApiJSONFormattingServiceImpl implements ApiJSONFormattingService {
private final static Logger logger = LoggerFactory.getLogger(ApiJSONFormattingServiceImpl.class);
private final static Logger logger = LoggerFactory
.getLogger(ApiJSONFormattingServiceImpl.class);
@Override
public String convertDataObjectJSON(Object dataObject, String fields, Set<String> excludeFields, boolean prettyOutput) {
public String convertDataObjectJSON(Object dataObject, String fields,
Set<String> excludeFields, boolean prettyOutput) {
try {
String json = "";
@@ -33,7 +35,8 @@ public class ApiJSONFormattingServiceImpl implements ApiJSONFormattingService {
if (fields == null || fields.equals("")) {
filters = new SimpleFilterProvider().addFilter(myFilter,
SimpleBeanPropertyFilter.serializeAllExcept(excludeFields));
SimpleBeanPropertyFilter
.serializeAllExcept(excludeFields));
} else {
@@ -43,18 +46,53 @@ public class ApiJSONFormattingServiceImpl implements ApiJSONFormattingService {
}
filters = new SimpleFilterProvider().addFilter(myFilter,
SimpleBeanPropertyFilter.filterOutAllExcept(includeFields));
SimpleBeanPropertyFilter
.filterOutAllExcept(includeFields));
}
ObjectWriter jsonWriter = new ObjectMapper().writerWithDefaultPrettyPrinter();
json = jsonWriter.withFilters(filters).writeValueAsString(dataObject);
ObjectWriter jsonWriter = null;
if (prettyOutput) {
jsonWriter = new ObjectMapper()
.writerWithDefaultPrettyPrinter();
} else {
jsonWriter = new ObjectMapper().writer();
}
json = jsonWriter.withFilters(filters).writeValueAsString(
dataObject);
return json;
} catch (JsonGenerationException e) {
throw new PlatformInternalServerException("error.msg.platform.json.generation", "An error occured whilst generating response from the platform server.", e.getMessage(), e.getStackTrace());
throw new PlatformInternalServerException(
"error.msg.platform.json.generation",
"An error occured whilst generating response from the platform server.",
e.getMessage(), e.getStackTrace());
} catch (JsonMappingException e) {
throw new PlatformInternalServerException("error.msg.platform.json.generation", "An error occured whilst generating response from the platform server.", e.getMessage(), e.getStackTrace());
throw new PlatformInternalServerException(
"error.msg.platform.json.generation",
"An error occured whilst generating response from the platform server.",
e.getMessage(), e.getStackTrace());
} catch (IOException e) {
throw new PlatformInternalServerException("error.msg.platform.json.generation", "An error occured whilst generating response from the platform server.", e.getMessage(), e.getStackTrace());
throw new PlatformInternalServerException(
"error.msg.platform.json.generation",
"An error occured whilst generating response from the platform server.",
e.getMessage(), e.getStackTrace());
}
}
@Override
public Boolean isTrue(String param) {
if (param != null && param.equalsIgnoreCase("true"))
return true;
else
return false;
}
@Override
public Boolean isPassed(String param) {
if (param == null || param.equals(""))
return false;
else
return true;
}
}
@@ -1,10 +1,10 @@
package org.mifosng.platform.organisation.service;
import java.util.Collection;
import java.util.List;
import org.mifosng.data.OfficeData;
import org.mifosng.data.OfficeLookup;
import org.mifosng.data.OfficeTemplateData;
public interface OfficeReadPlatformService {
@@ -14,7 +14,7 @@ public interface OfficeReadPlatformService {
OfficeData retrieveOffice(Long officeId);
OfficeTemplateData retrieveNewOfficeTemplate();
OfficeTemplateData retrieveExistingOfficeTemplate(Long officeId);
OfficeData retrieveNewOfficeTemplate();
List<OfficeLookup> retrieveAllowedParents(Long officeId);
}
@@ -11,7 +11,6 @@ import javax.sql.DataSource;
import org.joda.time.LocalDate;
import org.mifosng.data.OfficeData;
import org.mifosng.data.OfficeLookup;
import org.mifosng.data.OfficeTemplateData;
import org.mifosng.platform.exceptions.PlatformResourceNotFoundException;
import org.mifosng.platform.security.PlatformSecurityContext;
import org.mifosng.platform.user.domain.AppUser;
@@ -132,22 +131,22 @@ public class OfficeReadPlatformServiceImpl implements OfficeReadPlatformService
}
@Override
public OfficeTemplateData retrieveNewOfficeTemplate() {
public OfficeData retrieveNewOfficeTemplate() {
context.authenticatedUser();
List<OfficeLookup> parentLookups = new ArrayList<OfficeLookup>(
retrieveAllOfficesForLookup());
OfficeTemplateData officeTemplateData = new OfficeTemplateData();
officeTemplateData.setAllowedParents(parentLookups);
officeTemplateData.setDefaultOpeningDate(new LocalDate());
OfficeData officeData = new OfficeData();
officeData.setAllowedParents(parentLookups);
officeData.setOpeningDate(new LocalDate());
return officeTemplateData;
return officeData;
}
@Override
public OfficeTemplateData retrieveExistingOfficeTemplate(Long officeId) {
public List<OfficeLookup> retrieveAllowedParents(Long officeId) {
context.authenticatedUser();
@@ -162,11 +161,7 @@ public class OfficeReadPlatformServiceImpl implements OfficeReadPlatformService
}
}
OfficeTemplateData officeTemplateData = new OfficeTemplateData();
officeTemplateData.setAllowedParents(filterParentLookups);
officeTemplateData.setDefaultOpeningDate(new LocalDate());
return officeTemplateData;
return filterParentLookups;
}