FINERACT-2169: Refactor client family member api;
This commit is contained in:
committed by
Adam Saghy
parent
c0c7b45700
commit
241906e042
+56
@@ -0,0 +1,56 @@
|
||||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
package org.apache.fineract.portfolio.client.data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.FieldNameConstants;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@FieldNameConstants
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class ClientFamilyMemberRequest implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String lastName;
|
||||
private String firstName;
|
||||
private String middleName;
|
||||
private Long clientId;
|
||||
private String dateFormat;
|
||||
private String mobileNumber;
|
||||
private Long genderId;
|
||||
private Boolean isDependent;
|
||||
private String dateOfBirth;
|
||||
private Long relationshipId;
|
||||
private String locale;
|
||||
private String familyMembers;
|
||||
private String qualification;
|
||||
private Long maritalStatusId;
|
||||
private Long id;
|
||||
private Long age;
|
||||
private Long professionId;
|
||||
}
|
||||
+21
-53
@@ -29,22 +29,16 @@ import jakarta.ws.rs.PUT;
|
||||
import jakarta.ws.rs.Path;
|
||||
import jakarta.ws.rs.PathParam;
|
||||
import jakarta.ws.rs.Produces;
|
||||
import jakarta.ws.rs.core.Context;
|
||||
import jakarta.ws.rs.core.MediaType;
|
||||
import jakarta.ws.rs.core.UriInfo;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.List;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.fineract.commands.domain.CommandWrapper;
|
||||
import org.apache.fineract.commands.service.CommandWrapperBuilder;
|
||||
import org.apache.fineract.commands.service.PortfolioCommandSourceWritePlatformService;
|
||||
import org.apache.fineract.infrastructure.core.api.ApiRequestParameterHelper;
|
||||
import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
|
||||
import org.apache.fineract.infrastructure.core.serialization.ApiRequestJsonSerializationSettings;
|
||||
import org.apache.fineract.infrastructure.core.serialization.ToApiJsonSerializer;
|
||||
import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
|
||||
import org.apache.fineract.portfolio.client.data.ClientFamilyMemberRequest;
|
||||
import org.apache.fineract.portfolio.client.data.ClientFamilyMembersData;
|
||||
import org.apache.fineract.portfolio.client.service.ClientFamilyMembersReadPlatformService;
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -55,100 +49,74 @@ import org.springframework.stereotype.Component;
|
||||
@RequiredArgsConstructor
|
||||
public class ClientFamilyMembersApiResource {
|
||||
|
||||
private static final Set<String> RESPONSE_DATA_PARAMETERS = new HashSet<>(Arrays.asList("id", "clientId", "firstName", "middleName",
|
||||
"lastName", "qualification", "relationship", "maritalStatus", "gender", "dateOfBirth", "profession", "clientFamilyMemberId"));
|
||||
private static final String RESOURCE_NAME_FOR_PERMISSIONS = "FamilyMembers";
|
||||
private final PlatformSecurityContext context;
|
||||
private final ClientFamilyMembersReadPlatformService readPlatformService;
|
||||
private final ToApiJsonSerializer<ClientFamilyMembersData> toApiJsonSerializer;
|
||||
private final ApiRequestParameterHelper apiRequestParameterHelper;
|
||||
private final PortfolioCommandSourceWritePlatformService commandsSourceWritePlatformService;
|
||||
|
||||
@GET
|
||||
@Path("/{familyMemberId}")
|
||||
@Consumes({ MediaType.APPLICATION_JSON })
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public String getFamilyMember(@Context final UriInfo uriInfo, @PathParam("familyMemberId") final Long familyMemberId,
|
||||
public ClientFamilyMembersData getFamilyMember(@PathParam("familyMemberId") final Long familyMemberId,
|
||||
@PathParam("clientId") @Parameter(description = "clientId") final Long clientId) {
|
||||
|
||||
this.context.authenticatedUser().validateHasReadPermission(RESOURCE_NAME_FOR_PERMISSIONS);
|
||||
|
||||
final ClientFamilyMembersData familyMembers = this.readPlatformService.getClientFamilyMember(familyMemberId);
|
||||
|
||||
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
||||
return this.toApiJsonSerializer.serialize(settings, familyMembers, RESPONSE_DATA_PARAMETERS);
|
||||
|
||||
return this.readPlatformService.getClientFamilyMember(familyMemberId);
|
||||
}
|
||||
|
||||
@GET
|
||||
@Consumes({ MediaType.APPLICATION_JSON })
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public String getFamilyMembers(@Context final UriInfo uriInfo, @PathParam("clientId") final long clientId) {
|
||||
|
||||
public List<ClientFamilyMembersData> getFamilyMembers(@PathParam("clientId") final long clientId) {
|
||||
this.context.authenticatedUser().validateHasReadPermission(RESOURCE_NAME_FOR_PERMISSIONS);
|
||||
|
||||
final Collection<ClientFamilyMembersData> familyMembers = this.readPlatformService.getClientFamilyMembers(clientId);
|
||||
|
||||
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
||||
return this.toApiJsonSerializer.serialize(settings, familyMembers, RESPONSE_DATA_PARAMETERS);
|
||||
|
||||
return this.readPlatformService.getClientFamilyMembers(clientId);
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/template")
|
||||
@Consumes({ MediaType.APPLICATION_JSON })
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public String getTemplate(@Context final UriInfo uriInfo, @PathParam("clientId") final long clientId) {
|
||||
|
||||
public ClientFamilyMembersData getTemplate(@PathParam("clientId") final long clientId) {
|
||||
this.context.authenticatedUser().validateHasReadPermission(RESOURCE_NAME_FOR_PERMISSIONS);
|
||||
|
||||
final ClientFamilyMembersData options = this.readPlatformService.retrieveTemplate();
|
||||
|
||||
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
||||
return this.toApiJsonSerializer.serialize(settings, options, RESPONSE_DATA_PARAMETERS);
|
||||
|
||||
return this.readPlatformService.retrieveTemplate();
|
||||
}
|
||||
|
||||
@PUT
|
||||
@Path("/{familyMemberId}")
|
||||
@Consumes({ MediaType.APPLICATION_JSON })
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public String updateClientFamilyMembers(@PathParam("familyMemberId") final long familyMemberId, final String apiRequestBodyAsJson,
|
||||
public CommandProcessingResult updateClientFamilyMembers(@PathParam("familyMemberId") final long familyMemberId,
|
||||
ClientFamilyMemberRequest clientFamilyMemberRequest,
|
||||
@PathParam("clientId") @Parameter(description = "clientId") final Long clientId) {
|
||||
final CommandWrapper commandRequest = new CommandWrapperBuilder().updateFamilyMembers(familyMemberId)
|
||||
.withJson(toApiJsonSerializer.serialize(clientFamilyMemberRequest)).build();
|
||||
|
||||
final CommandWrapper commandRequest = new CommandWrapperBuilder().updateFamilyMembers(familyMemberId).withJson(apiRequestBodyAsJson)
|
||||
.build();
|
||||
|
||||
final CommandProcessingResult result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
|
||||
|
||||
return this.toApiJsonSerializer.serialize(result);
|
||||
return this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Consumes({ MediaType.APPLICATION_JSON })
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public String addClientFamilyMembers(@PathParam("clientId") final long clientid, final String apiRequestBodyAsJson) {
|
||||
public CommandProcessingResult addClientFamilyMembers(@PathParam("clientId") final long clientid,
|
||||
ClientFamilyMemberRequest clientFamilyMemberRequest) {
|
||||
final CommandWrapper commandRequest = new CommandWrapperBuilder().addFamilyMembers(clientid)
|
||||
.withJson(toApiJsonSerializer.serialize(clientFamilyMemberRequest)).build();
|
||||
|
||||
final CommandWrapper commandRequest = new CommandWrapperBuilder().addFamilyMembers(clientid).withJson(apiRequestBodyAsJson).build();
|
||||
|
||||
final CommandProcessingResult result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
|
||||
|
||||
return this.toApiJsonSerializer.serialize(result);
|
||||
return this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
|
||||
}
|
||||
|
||||
@DELETE
|
||||
@Path("/{familyMemberId}")
|
||||
@Consumes({ MediaType.APPLICATION_JSON })
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public String deleteClientFamilyMembers(@PathParam("familyMemberId") final long familyMemberId, final String apiRequestBodyAsJson,
|
||||
public CommandProcessingResult deleteClientFamilyMembers(@PathParam("familyMemberId") final long familyMemberId,
|
||||
@PathParam("clientId") @Parameter(description = "clientId") final Long clientId) {
|
||||
final CommandWrapper commandRequest = new CommandWrapperBuilder().deleteFamilyMembers(familyMemberId).build();
|
||||
|
||||
final CommandWrapper commandRequest = new CommandWrapperBuilder().deleteFamilyMembers(familyMemberId).withJson(apiRequestBodyAsJson)
|
||||
.build();
|
||||
|
||||
final CommandProcessingResult result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
|
||||
|
||||
return this.toApiJsonSerializer.serialize(result);
|
||||
return this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+2
-2
@@ -19,12 +19,12 @@
|
||||
|
||||
package org.apache.fineract.portfolio.client.service;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import org.apache.fineract.portfolio.client.data.ClientFamilyMembersData;
|
||||
|
||||
public interface ClientFamilyMembersReadPlatformService {
|
||||
|
||||
Collection<ClientFamilyMembersData> getClientFamilyMembers(long clientId);
|
||||
List<ClientFamilyMembersData> getClientFamilyMembers(long clientId);
|
||||
|
||||
ClientFamilyMembersData getClientFamilyMember(long id);
|
||||
|
||||
|
||||
+1
-2
@@ -22,7 +22,6 @@ import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import org.apache.fineract.infrastructure.codes.data.CodeValueData;
|
||||
import org.apache.fineract.infrastructure.codes.service.CodeValueReadPlatformService;
|
||||
@@ -91,7 +90,7 @@ public class ClientFamilyMembersReadPlatformServiceImpl implements ClientFamilyM
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<ClientFamilyMembersData> getClientFamilyMembers(long clientId) {
|
||||
public List<ClientFamilyMembersData> getClientFamilyMembers(long clientId) {
|
||||
|
||||
this.context.authenticatedUser();
|
||||
|
||||
|
||||
+3
-15
@@ -354,26 +354,14 @@ public class ClientFamilyMembersWritePlatformServiceImpl implements ClientFamily
|
||||
|
||||
@Override
|
||||
public CommandProcessingResult deleteFamilyMember(Long clientFamilyMemberId, JsonCommand command) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
this.context.authenticatedUser();
|
||||
|
||||
apiJsonDeserializer.validateForDelete(clientFamilyMemberId);
|
||||
|
||||
ClientFamilyMembers clientFamilyMember = null;
|
||||
ClientFamilyMembers clientFamilyMember = clientFamilyRepository.getReferenceById(clientFamilyMemberId);
|
||||
clientFamilyRepository.delete(clientFamilyMember);
|
||||
|
||||
if (clientFamilyMemberId != null) {
|
||||
clientFamilyMember = clientFamilyRepository.getReferenceById(clientFamilyMemberId);
|
||||
clientFamilyRepository.delete(clientFamilyMember);
|
||||
|
||||
}
|
||||
|
||||
if (clientFamilyMember != null) {
|
||||
return new CommandProcessingResultBuilder().withCommandId(command.commandId()).withEntityId(clientFamilyMember.getId()).build();
|
||||
} else {
|
||||
return new CommandProcessingResultBuilder().withCommandId(command.commandId()).withEntityId(Long.valueOf(clientFamilyMemberId))
|
||||
.build();
|
||||
}
|
||||
return new CommandProcessingResultBuilder().withCommandId(command.commandId()).withEntityId(clientFamilyMember.getId()).build();
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user