FINERACT-628 self service APIs for client image management

This commit is contained in:
ShruthiRajaram
2018-11-05 16:59:01 +05:30
parent 99aa2b5bb2
commit 6ded9eb750
3 changed files with 163 additions and 0 deletions
@@ -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")