Done ticket GEPAFINBE-174
This commit is contained in:
@@ -453,6 +453,12 @@ public class GepafinConstant {
|
|||||||
public static final String SWITCH="switch";
|
public static final String SWITCH="switch";
|
||||||
public static final String IS_CHECK_LIST_ITEM="isChecklistItem";
|
public static final String IS_CHECK_LIST_ITEM="isChecklistItem";
|
||||||
public static final String VALIDATION_FAILED_FOR_CHECKLIST="validation.failed.checklist";
|
public static final String VALIDATION_FAILED_FOR_CHECKLIST="validation.failed.checklist";
|
||||||
|
public static final String PEC_SERVICE_URL="https://ws.pecmassiva.com";
|
||||||
|
public static final String PEC_SERVICE_SEND_MAIL="/send";
|
||||||
|
public static final String PEC_SERVICE_INBOX_MAIL="/quota/inbox";
|
||||||
|
public static final String USAGE="usage";
|
||||||
|
public static final String LIMIT="limit";
|
||||||
|
public static final String DATA="data";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package net.gepafin.tendermanagement.dao;
|
package net.gepafin.tendermanagement.dao;
|
||||||
|
|
||||||
|
import com.amazonaws.services.dynamodbv2.xspec.S;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
@@ -16,6 +17,7 @@ import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationExceptio
|
|||||||
import net.gepafin.tendermanagement.web.rest.api.errors.ForbiddenAccessException;
|
import net.gepafin.tendermanagement.web.rest.api.errors.ForbiddenAccessException;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
@@ -62,14 +64,36 @@ public class DashboardDao {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private Validator validator;
|
private Validator validator;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private PecDao pecDao;
|
||||||
|
|
||||||
|
@Value("${default.hub.uuid}")
|
||||||
|
private String defaultHubUuid;
|
||||||
|
|
||||||
public SuperAdminWidgetResponseBean getDashboardWidget(UserEntity requestedUserEntity) {
|
public SuperAdminWidgetResponseBean getDashboardWidget(UserEntity requestedUserEntity) {
|
||||||
SuperAdminWidgetResponseBean widgetResponseBean = new SuperAdminWidgetResponseBean();
|
SuperAdminWidgetResponseBean widgetResponseBean = new SuperAdminWidgetResponseBean();
|
||||||
widgetResponseBean.setWidget1(createWidget1(requestedUserEntity));
|
widgetResponseBean.setWidget1(createWidget1(requestedUserEntity));
|
||||||
Map<String, Object> widgetBars = getStatistics(requestedUserEntity);
|
Map<String, Object> widgetBars = getStatistics(requestedUserEntity);
|
||||||
widgetResponseBean.setWidgetBars(widgetBars);
|
widgetResponseBean.setWidgetBars(widgetBars);
|
||||||
|
if(requestedUserEntity.getHub().getUniqueUuid().equals(defaultHubUuid)) {
|
||||||
|
getEmailUsageForGepafin(requestedUserEntity, widgetResponseBean);
|
||||||
|
}
|
||||||
return widgetResponseBean;
|
return widgetResponseBean;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void getEmailUsageForGepafin(UserEntity requestedUserEntity, SuperAdminWidgetResponseBean widgetResponseBean) {
|
||||||
|
Map<String,Object> emailData=pecDao.getUsageDetails(requestedUserEntity.getHub().getId());
|
||||||
|
Map<String,Object> data= (Map<String, Object>) emailData.get(GepafinConstant.DATA);
|
||||||
|
Object usage=data.get(GepafinConstant.USAGE);
|
||||||
|
Object limit=data.get(GepafinConstant.LIMIT);
|
||||||
|
if(usage!=null) {
|
||||||
|
widgetResponseBean.setPecUsage(String.valueOf(usage));
|
||||||
|
}
|
||||||
|
if (limit!=null) {
|
||||||
|
widgetResponseBean.setPecLimit(String.valueOf(limit));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private Widget1 createWidget1(UserEntity requestedUserEntity) {
|
private Widget1 createWidget1(UserEntity requestedUserEntity) {
|
||||||
Widget1 widget1 = initializeWidget1();
|
Widget1 widget1 = initializeWidget1();
|
||||||
|
|
||||||
|
|||||||
59
src/main/java/net/gepafin/tendermanagement/dao/PecDao.java
Normal file
59
src/main/java/net/gepafin/tendermanagement/dao/PecDao.java
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
package net.gepafin.tendermanagement.dao;
|
||||||
|
|
||||||
|
import feign.FeignException;
|
||||||
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
|
import net.gepafin.tendermanagement.model.request.EmailConfig;
|
||||||
|
import net.gepafin.tendermanagement.service.feignClient.PecFeignService;
|
||||||
|
import net.gepafin.tendermanagement.util.Utils;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.net.URI;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class PecDao {
|
||||||
|
|
||||||
|
public final Logger log = LoggerFactory.getLogger(PecDao.class);
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private PecFeignService pecFeignService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private EmailNotificationDao emailNotificationDao;
|
||||||
|
|
||||||
|
|
||||||
|
public Map<String, Object> getUsageDetails(Long hubId) {
|
||||||
|
EmailConfig emailConfig = emailNotificationDao.retrieveEmailConfig(hubId);
|
||||||
|
|
||||||
|
Map<String, Object> responseBody = new HashMap<>();
|
||||||
|
try {
|
||||||
|
HttpHeaders headers = new HttpHeaders();
|
||||||
|
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
|
||||||
|
headers.setContentType(MediaType.APPLICATION_JSON);
|
||||||
|
headers.set(GepafinConstant.AUTHORIZATION, "Bearer " + emailConfig.getAuthToken());
|
||||||
|
headers.set("x-username", emailConfig.getUsername());
|
||||||
|
headers.set("x-password", emailConfig.getPassword());
|
||||||
|
headers.add(org.apache.http.HttpHeaders.USER_AGENT, "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0");
|
||||||
|
|
||||||
|
URI baseUrl = URI.create(GepafinConstant.PEC_SERVICE_URL+GepafinConstant.PEC_SERVICE_INBOX_MAIL);
|
||||||
|
ResponseEntity<Object> response = pecFeignService.getUsageDetails(baseUrl,headers);
|
||||||
|
|
||||||
|
|
||||||
|
if (response.getStatusCode() == HttpStatus.OK && response.hasBody()) {
|
||||||
|
log.info("Successfully fetched usage and limit");
|
||||||
|
responseBody = (Map<String, Object>) response.getBody();
|
||||||
|
}
|
||||||
|
} catch (FeignException ex) {
|
||||||
|
}
|
||||||
|
return responseBody;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package net.gepafin.tendermanagement.model.response;
|
package net.gepafin.tendermanagement.model.response;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import net.gepafin.tendermanagement.entities.UserActionEntity;
|
import net.gepafin.tendermanagement.entities.UserActionEntity;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
@@ -12,6 +13,12 @@ public class SuperAdminWidgetResponseBean {
|
|||||||
|
|
||||||
private Widget1 widget1;
|
private Widget1 widget1;
|
||||||
|
|
||||||
|
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||||
|
private String pecUsage;
|
||||||
|
|
||||||
|
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||||
|
private String pecLimit;
|
||||||
|
|
||||||
private Map<String, Object> widgetBars;
|
private Map<String, Object> widgetBars;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package net.gepafin.tendermanagement.service.feignClient;
|
||||||
|
|
||||||
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestHeader;
|
||||||
|
|
||||||
|
import java.net.URI;
|
||||||
|
|
||||||
|
|
||||||
|
@FeignClient(value = "pec-service" ,url = GepafinConstant.PEC_SERVICE_URL)
|
||||||
|
public interface PecFeignService {
|
||||||
|
|
||||||
|
@GetMapping(GepafinConstant.PEC_SERVICE_INBOX_MAIL)
|
||||||
|
ResponseEntity<Object> getUsageDetails(URI uri,@RequestHeader HttpHeaders headers
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -3,6 +3,7 @@ package net.gepafin.tendermanagement.service.impl;
|
|||||||
import com.mashape.unirest.http.HttpResponse;
|
import com.mashape.unirest.http.HttpResponse;
|
||||||
import com.mashape.unirest.http.Unirest;
|
import com.mashape.unirest.http.Unirest;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
import net.gepafin.tendermanagement.dao.EmailLogDao;
|
import net.gepafin.tendermanagement.dao.EmailLogDao;
|
||||||
import net.gepafin.tendermanagement.entities.EmailLogEntity;
|
import net.gepafin.tendermanagement.entities.EmailLogEntity;
|
||||||
import net.gepafin.tendermanagement.enums.EmailServiceTypeEnum;
|
import net.gepafin.tendermanagement.enums.EmailServiceTypeEnum;
|
||||||
@@ -13,6 +14,7 @@ import net.gepafin.tendermanagement.model.request.PecEmailRequest;
|
|||||||
import net.gepafin.tendermanagement.util.Utils;
|
import net.gepafin.tendermanagement.util.Utils;
|
||||||
import net.gepafin.tendermanagement.util.Validator;
|
import net.gepafin.tendermanagement.util.Validator;
|
||||||
|
|
||||||
|
import org.opensaml.xmlsec.signature.G;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -49,7 +51,7 @@ public class PecEmailService implements EmailService {
|
|||||||
emailRequest.setUsername(emailConfig.getUsername());
|
emailRequest.setUsername(emailConfig.getUsername());
|
||||||
emailRequest.setPassword(emailConfig.getPassword());
|
emailRequest.setPassword(emailConfig.getPassword());
|
||||||
emailRequest.setRecipient(recipientEmails);
|
emailRequest.setRecipient(recipientEmails);
|
||||||
String url=emailConfig.getUrl();
|
String url=emailConfig.getUrl()+ GepafinConstant.PEC_SERVICE_SEND_MAIL;
|
||||||
String authToken = emailConfig.getAuthToken();
|
String authToken = emailConfig.getAuthToken();
|
||||||
HttpResponse<String> response2=null;
|
HttpResponse<String> response2=null;
|
||||||
if (Boolean.FALSE.equals(validator.isTestProfileActivated())) {
|
if (Boolean.FALSE.equals(validator.isTestProfileActivated())) {
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ public interface DashboardApi {
|
|||||||
@ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) })) })
|
@ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) })) })
|
||||||
@GetMapping(value = "",
|
@GetMapping(value = "",
|
||||||
produces = { "application/json" })
|
produces = { "application/json" })
|
||||||
@PreAuthorize("hasRole('ROLE_SUPER_ADMIN')")
|
@PreAuthorize("hasRole('ROLE_SUPER_ADMIN') || hasRole('ROLE_INSTRUCTOR_MANAGER')")
|
||||||
ResponseEntity<Response<SuperAdminWidgetResponseBean>> getDashboardWidgetForSuperAdmin(HttpServletRequest request);
|
ResponseEntity<Response<SuperAdminWidgetResponseBean>> getDashboardWidgetForSuperAdmin(HttpServletRequest request);
|
||||||
|
|
||||||
@Operation(summary = "Api to get dashboard widget for beneficiary",
|
@Operation(summary = "Api to get dashboard widget for beneficiary",
|
||||||
|
|||||||
@@ -2435,4 +2435,9 @@
|
|||||||
newColumnName="appointment_template_id"/>
|
newColumnName="appointment_template_id"/>
|
||||||
</changeSet>
|
</changeSet>
|
||||||
|
|
||||||
|
<changeSet id="26-02-2025_NK_180530" author="Nisha Kashyap">
|
||||||
|
<sqlFile dbms="postgresql"
|
||||||
|
path="db/dump/updated_hub_data_for_email_service_config_25-02-2025.sql"/>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
</databaseChangeLog>
|
</databaseChangeLog>
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
UPDATE hub
|
||||||
|
SET email_service_type = 'PEC_SERVICE',
|
||||||
|
email_service_config = 'JkFbBfuVvq7VWwp5LcWIi+hAa1RJ1ekI0jq3w7gLTXETZiTaN8zC4OBWD53x8FtbfFTh3L/5805CIYTH1BQGa3X9q16q9SDzMy7DKHdmJzOnLKhn74C5akoXKaeXUCGnzp0cSk2c01FV6lwefC29IshijFSumCHtVlgWNeZigBzmWK+M7NS+EXf4goIMzguL5bHpYXfoQunQozeY1SpOoxf4XZfd/MNPeVOA/ZNHDGU='
|
||||||
|
WHERE UNIQUE_UUID = 'p4lk3bcx1RStqTaIVVbXs';
|
||||||
Reference in New Issue
Block a user