| /* |
| * 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.cn.customer.internal.mapper; |
| |
| import org.apache.fineract.cn.customer.api.v1.domain.Customer; |
| import org.apache.fineract.cn.customer.internal.repository.CustomerEntity; |
| import java.sql.Date; |
| import java.time.Clock; |
| import java.time.LocalDateTime; |
| import org.apache.fineract.cn.api.util.UserContextHolder; |
| import org.apache.fineract.cn.lang.DateConverter; |
| import org.apache.fineract.cn.lang.DateOfBirth; |
| |
| public final class CustomerMapper { |
| |
| private CustomerMapper() { |
| super(); |
| } |
| |
| public static CustomerEntity map(final Customer customer) { |
| final CustomerEntity customerEntity = new CustomerEntity(); |
| customerEntity.setIdentifier(customer.getIdentifier()); |
| customerEntity.setType(customer.getType()); |
| customerEntity.setGivenName(customer.getGivenName()); |
| customerEntity.setMiddleName(customer.getMiddleName()); |
| customerEntity.setSurname(customer.getSurname()); |
| if(customer.getDateOfBirth() !=null) { |
| customerEntity.setDateOfBirth(Date.valueOf(customer.getDateOfBirth().toLocalDate())); |
| } |
| customerEntity.setMember(customer.getMember()); |
| customerEntity.setAccountBeneficiary(customer.getAccountBeneficiary()); |
| customerEntity.setReferenceCustomer(customer.getReferenceCustomer()); |
| customerEntity.setAssignedOffice(customer.getAssignedOffice()); |
| customerEntity.setAssignedEmployee(customer.getAssignedEmployee()); |
| customerEntity.setCurrentState(customer.getCurrentState()); |
| if (customer.getApplicationDate() != null) { |
| final String editedApplicationDate; |
| if (!customer.getApplicationDate().endsWith("Z")) { |
| editedApplicationDate = customer.getApplicationDate() + "Z"; |
| } else { |
| editedApplicationDate = customer.getApplicationDate(); |
| } |
| customerEntity.setApplicationDate(DateConverter.dateFromIsoString(editedApplicationDate)); |
| } |
| customerEntity.setCreatedBy(UserContextHolder.checkedGetUser()); |
| customerEntity.setCreatedOn(LocalDateTime.now(Clock.systemUTC())); |
| return customerEntity; |
| } |
| |
| public static Customer map(final CustomerEntity customerEntity) { |
| final Customer customer = new Customer(); |
| customer.setIdentifier(customerEntity.getIdentifier()); |
| customer.setType(customerEntity.getType()); |
| customer.setGivenName(customerEntity.getGivenName()); |
| customer.setMiddleName(customerEntity.getMiddleName()); |
| customer.setSurname(customerEntity.getSurname()); |
| if(customerEntity.getDateOfBirth() != null) |
| customer.setDateOfBirth(DateOfBirth.fromLocalDate(customerEntity.getDateOfBirth().toLocalDate())); |
| customer.setMember(customerEntity.getMember()); |
| customer.setAccountBeneficiary(customerEntity.getAccountBeneficiary()); |
| customer.setReferenceCustomer(customerEntity.getReferenceCustomer()); |
| customer.setAssignedOffice(customerEntity.getAssignedOffice()); |
| customer.setAssignedEmployee(customerEntity.getAssignedEmployee()); |
| customer.setCurrentState(customerEntity.getCurrentState()); |
| if (customerEntity.getApplicationDate() != null) { |
| final String editedApplicationDate = |
| DateConverter.toIsoString(customerEntity.getApplicationDate()).substring(0, 10); |
| customer.setApplicationDate(editedApplicationDate); |
| } |
| customer.setCreatedBy(customerEntity.getCreatedBy()); |
| customer.setCreatedOn(DateConverter.toIsoString(customerEntity.getCreatedOn())); |
| |
| if (customerEntity.getLastModifiedBy() != null) { |
| customer.setLastModifiedBy(customerEntity.getLastModifiedBy()); |
| customer.setLastModifiedOn(DateConverter.toIsoString(customerEntity.getLastModifiedOn())); |
| } |
| |
| return customer; |
| } |
| } |