Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
114 changes: 114 additions & 0 deletions src/main/java/com/iemr/common/dto/sms/SMSTemplateDTO.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
package com.iemr.common.dto.sms;

public class SMSTemplateDTO {
private Integer smsTemplateID;
private String smsTemplateName;
private String smsTemplate;
private String dltTemplateId;
private String smsSenderID;
private Integer smsTypeID;
private Integer providerServiceMapID;
private Boolean deleted;
private String createdBy;
private String modifiedBy;
private String createdDate;
private String lastModDate;

// Getters and Setters for all fields

public Integer getSmsTemplateID() {
return smsTemplateID;
}

public void setSmsTemplateID(Integer smsTemplateID) {
this.smsTemplateID = smsTemplateID;
}

public String getSmsTemplateName() {
return smsTemplateName;
}

public void setSmsTemplateName(String smsTemplateName) {
this.smsTemplateName = smsTemplateName;
}

public String getSmsTemplate() {
return smsTemplate;
}

public void setSmsTemplate(String smsTemplate) {
this.smsTemplate = smsTemplate;
}

public String getDltTemplateId() {
return dltTemplateId;
}

public void setDltTemplateId(String dltTemplateId) {
this.dltTemplateId = dltTemplateId;
}

public String getSmsSenderID() {
return smsSenderID;
}

public void setSmsSenderID(String smsSenderID) {
this.smsSenderID = smsSenderID;
}

public Integer getSmsTypeID() {
return smsTypeID;
}

public void setSmsTypeID(Integer smsTypeID) {
this.smsTypeID = smsTypeID;
}

public Integer getProviderServiceMapID() {
return providerServiceMapID;
}

public void setProviderServiceMapID(Integer providerServiceMapID) {
this.providerServiceMapID = providerServiceMapID;
}

public Boolean getDeleted() {
return deleted;
}

public void setDeleted(Boolean deleted) {
this.deleted = deleted;
}

public String getCreatedBy() {
return createdBy;
}

public void setCreatedBy(String createdBy) {
this.createdBy = createdBy;
}

public String getModifiedBy() {
return modifiedBy;
}

public void setModifiedBy(String modifiedBy) {
this.modifiedBy = modifiedBy;
}

public String getCreatedDate() {
return createdDate;
}

public void setCreatedDate(String createdDate) {
this.createdDate = createdDate;
}

public String getLastModDate() {
return lastModDate;
}

public void setLastModDate(String lastModDate) {
this.lastModDate = lastModDate;
}
}
24 changes: 24 additions & 0 deletions src/main/java/com/iemr/common/mapper/sms/SMSMapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,9 @@
*/
package com.iemr.common.mapper.sms;

import java.text.SimpleDateFormat;
import java.util.List;
import java.sql.Timestamp;

import org.mapstruct.IterableMapping;
import org.mapstruct.Mapper;
Expand All @@ -33,6 +35,7 @@
import com.iemr.common.data.sms.SMSParametersMap;
import com.iemr.common.data.sms.SMSTemplate;
import com.iemr.common.data.sms.SMSType;
import com.iemr.common.dto.sms.SMSTemplateDTO;
import com.iemr.common.model.sms.CreateSMSRequest;
import com.iemr.common.model.sms.FullSMSTemplateResponse;
import com.iemr.common.model.sms.SMSParameterMapModel;
Expand Down Expand Up @@ -110,4 +113,25 @@ public interface SMSMapper
@IterableMapping(elementTargetType = FullSMSTemplateResponse.class)
List<FullSMSTemplateResponse> smsTemplateToFullResponse(List<SMSTemplate> smsTemplate);

@Mapping(source = "smsTemplateID", target = "smsTemplateID")
@Mapping(source = "smsTemplateName", target = "smsTemplateName")
@Mapping(source = "smsTemplate", target = "smsTemplate")
@Mapping(source = "dltTemplateId", target = "dltTemplateId")
@Mapping(source = "smsSenderID", target = "smsSenderID")
@Mapping(source = "smsTypeID", target = "smsTypeID")
@Mapping(source = "providerServiceMapID", target = "providerServiceMapID")
@Mapping(source = "deleted", target = "deleted")
@Mapping(source = "createdBy", target = "createdBy")
@Mapping(source = "modifiedBy", target = "modifiedBy")
@Mapping(target = "createdDate", expression = "java(formatDate(template.getCreatedDate()))")
@Mapping(target = "lastModDate", expression = "java(formatDate(template.getLastModDate()))")
SMSTemplateDTO smsTemplateToDTO(SMSTemplate template);

default String formatDate(Timestamp timestamp) {
if (timestamp == null) {
return null;
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
return sdf.format(timestamp);
}
}
24 changes: 18 additions & 6 deletions src/main/java/com/iemr/common/service/sms/SMSServiceImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@
import com.iemr.common.data.telemedicine.PrescribedDrugDetail;
import com.iemr.common.data.users.User;
import com.iemr.common.data.videocall.VideoCallParameters;
import com.iemr.common.dto.sms.SMSTemplateDTO;
import com.iemr.common.mapper.sms.SMSMapper;
import com.iemr.common.model.beneficiary.BeneficiaryModel;
import com.iemr.common.model.sms.CreateSMSRequest;
Expand Down Expand Up @@ -207,19 +208,30 @@ public String updateSMSTemplate(UpdateSMSRequest smsRequest) throws Exception {

@Override
public String saveSMSTemplate(CreateSMSRequest smsRequest) throws Exception {
SMSTemplate smsTemplate;
SMSTemplate request = smsMapper.createRequestToSMSTemplate(smsRequest);
smsTemplate = smsTemplateRepository.save(request);
saveSMSParameterMaps(smsRequest, smsTemplate.getSmsTemplateID());
smsTemplate = smsTemplateRepository.findBySmsTemplateID(smsTemplate.getSmsTemplateID());
return OutputMapper.gsonWithoutExposeRestriction().toJson(smsMapper.smsTemplateToResponse(smsTemplate));
SMSTemplate savedTemplate = smsTemplateRepository.save(request);

saveSMSParameterMaps(smsRequest, savedTemplate.getSmsTemplateID());


SMSTemplate fetchedTemplate = smsTemplateRepository.findBySmsTemplateID(savedTemplate.getSmsTemplateID());

SMSTemplateDTO responseDTO = smsMapper.smsTemplateToDTO(fetchedTemplate);

return OutputMapper.gsonWithoutExposeRestriction().toJson(responseDTO);
}

private void saveSMSParameterMaps(CreateSMSRequest smsRequest, Integer smsTemplateID) {
List<SMSParameterMapModel> smsParameterMapModels = smsRequest.getSmsParameterMaps();
for (SMSParameterMapModel smsParameterMapModel : smsParameterMapModels) {
smsParameterMapModel.setSmsTemplateID(smsTemplateID);
smsParameterMapRepository.save(smsMapper.smsParameterMapModelToSMSParametersMap(smsParameterMapModel));
SMSParametersMap entity = smsMapper.smsParameterMapModelToSMSParametersMap(smsParameterMapModel);

if (entity.getCreatedBy() == null) {
entity.setCreatedBy(smsRequest.getCreatedBy());
}

SMSParametersMap savedEntity = smsParameterMapRepository.save(entity);
}
}

Expand Down