Merge pull request #478 from ShruthiRajaram/FINERACT-628-client-image

FINERACT-628 self service APIs for client image management
This commit is contained in:
ShruthiRajaram
2018-11-05 17:16:24 +05:30
committed by GitHub
3 changed files with 163 additions and 0 deletions
+116
View File
@@ -3601,6 +3601,30 @@
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>self/clients/{clientId}/images</td>
<td><a href="#self_client_images_upload">Upload client image (Data URI)</a></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>self/clients/{clientId}/images</td>
<td><a href="#self_client_images_upload_multi_part">Upload client image (Multi-part Form data)</a></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>self/clients/{clientId}/images</td>
<td></td>
<td></td>
<td></td>
<td><a href="#self_client_image_delete">Delete client image</a></td>
</tr>
<tr>
<td><a href="#selfloantemplate">Loans</a></td>
<td>self/loans/template?templateType=individual</td>
@@ -49110,6 +49134,98 @@ GET https://DomainName/api/v1/self/clients/{clientId}/obligeedetails
</code>
</div>
</div>
<a id="self_client_images_upload" name="self_client_images_upload" class="old-syle-anchor">&nbsp;</a>
<div class="method-section">
<div class="method-description">
<h4>Upload client image (Data URI)</h4>
</div>
<div class="method-example">
<code class="method-declaration">
POST https://DomainName/api/v1/self/clients/{clientId}/images
</code>
<code class="method-request">
POST self/clients/14/images
Content-Type: text/plain
Request Body:
data:image/png;base64,iVBORw0KGgoAA
AANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD///+l2Z/dAAAAM0l
EQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4Ug9C9zwz3gVLMDA/A6
P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC
</code>
<code class="method-response">
{
"resourceId": 14,
"changes": {},
"resourceIdentifier": "14"
}
</code>
</div>
</div>
<a id="self_client_images_upload_multi_part" name="self_client_images_upload_multi_part" class="old-syle-anchor">&nbsp;</a>
<div class="method-section">
<div class="method-description">
<h4>Upload client image (Multi-part Form data)</h4>
<table class=matrixHeading>
<tr class="matrixHeadingBG">
<td><div class="fineractHeading2">Mandatory Fields</div></td>
</tr>
<tr class=alt>
<td>file
</td>
</tr>
</table>
<p>
The form should contain a required named body part with the
name "file". <br/> <br/>
If you are using a HTML form, a snippet like
<small> &lt;input type="file" name="file"&gt;&lt;/input&gt; </small>
can be used for uploading the image file
</p>
</div>
<div class="method-example">
<code class="method-declaration">
POST https://DomainName/api/v1/self/clients/{clientId}/images
</code>
<code class="method-request">
POST self/clients/14/images
Content-Type: multipart/form-data
Request Body: <i>Not shown</i>
</code>
<code class="method-response">
{
"resourceId": 14,
"changes": {},
"resourceIdentifier": "14"
}
</code>
</div>
</div>
<a id="self_client_image_delete" name="self_client_image_delete" class="old-syle-anchor">&nbsp;</a>
<div class="method-section">
<div class="method-description">
<h4>Delete an client's Image</h4>
</div>
<div class="method-example">
<code class="method-declaration">
DELETE https://DomainName/api/v1/self/clients/{clientId}/images
</code>
<code class="method-request">
DELETE self/clients/14/images
Content-Type: application/json
No Request Body:
</code>
<code class="method-response">
{
"resourceId": 14,
"changes": {},
"resourceIdentifier": "14"
}
</code>
</div>
</div>
<!-- end of Customer Self Service APIs-->
</div>
<!-- main-content-wrapper -->
@@ -188,6 +188,7 @@ public class ClientApiConstants {
public static final String datatables = "datatables";
public static final String obligeeData = "ObligeeDetails";
public static final String clientEntityName = "clients";
/**
* These parameters will match the class level parameters of
@@ -18,9 +18,14 @@
*/
package org.apache.fineract.portfolio.self.client.api;
import java.io.InputStream;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.DefaultValue;
import javax.ws.rs.GET;
import javax.ws.rs.HeaderParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
@@ -44,6 +49,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import com.sun.jersey.core.header.FormDataContentDisposition;
import com.sun.jersey.multipart.FormDataBodyPart;
import com.sun.jersey.multipart.FormDataParam;
@Path("/self/clients")
@Component
@Scope("singleton")
@@ -217,6 +226,43 @@ public class SelfClientsApiResource {
throw new ClientNotFoundException(clientId);
}
}
@POST
@Path("{clientId}/images")
@Consumes({ MediaType.MULTIPART_FORM_DATA })
@Produces({ MediaType.APPLICATION_JSON })
public String addNewClientImage(@PathParam("clientId") final Long clientId,
@HeaderParam("Content-Length") final Long fileSize, @FormDataParam("file") final InputStream inputStream,
@FormDataParam("file") final FormDataContentDisposition fileDetails,
@FormDataParam("file") final FormDataBodyPart bodyPart) {
validateAppuserClientsMapping(clientId);
return this.imagesApiResource.addNewClientImage(ClientApiConstants.clientEntityName, clientId, fileSize,
inputStream, fileDetails, bodyPart);
}
@POST
@Path("{clientId}/images")
@Consumes({ MediaType.TEXT_PLAIN, MediaType.TEXT_HTML, MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON })
public String addNewClientImage(@PathParam("entity") final String entityName,
@PathParam("clientId") final Long clientId, final String jsonRequestBody) {
validateAppuserClientsMapping(clientId);
return this.imagesApiResource.addNewClientImage(ClientApiConstants.clientEntityName, clientId, jsonRequestBody);
}
@DELETE
@Path("{clientId}/images")
@Consumes({ MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON })
public String deleteClientImage(@PathParam("clientId") final Long clientId) {
validateAppuserClientsMapping(clientId);
return this.imagesApiResource.deleteClientImage(ClientApiConstants.clientEntityName, clientId);
}
@GET
@Path("{clientId}/obligeedetails")