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 IS_CHECK_LIST_ITEM="isChecklistItem";
|
||||
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;
|
||||
|
||||
import com.amazonaws.services.dynamodbv2.xspec.S;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import net.gepafin.tendermanagement.config.Translator;
|
||||
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.Status;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
@@ -62,14 +64,36 @@ public class DashboardDao {
|
||||
@Autowired
|
||||
private Validator validator;
|
||||
|
||||
@Autowired
|
||||
private PecDao pecDao;
|
||||
|
||||
@Value("${default.hub.uuid}")
|
||||
private String defaultHubUuid;
|
||||
|
||||
public SuperAdminWidgetResponseBean getDashboardWidget(UserEntity requestedUserEntity) {
|
||||
SuperAdminWidgetResponseBean widgetResponseBean = new SuperAdminWidgetResponseBean();
|
||||
widgetResponseBean.setWidget1(createWidget1(requestedUserEntity));
|
||||
Map<String, Object> widgetBars = getStatistics(requestedUserEntity);
|
||||
widgetResponseBean.setWidgetBars(widgetBars);
|
||||
if(requestedUserEntity.getHub().getUniqueUuid().equals(defaultHubUuid)) {
|
||||
getEmailUsageForGepafin(requestedUserEntity, 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) {
|
||||
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;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import lombok.Data;
|
||||
import net.gepafin.tendermanagement.entities.UserActionEntity;
|
||||
import org.springframework.data.domain.Page;
|
||||
@@ -12,6 +13,12 @@ public class SuperAdminWidgetResponseBean {
|
||||
|
||||
private Widget1 widget1;
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
private String pecUsage;
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
private String pecLimit;
|
||||
|
||||
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.Unirest;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||
import net.gepafin.tendermanagement.dao.EmailLogDao;
|
||||
import net.gepafin.tendermanagement.entities.EmailLogEntity;
|
||||
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.Validator;
|
||||
|
||||
import org.opensaml.xmlsec.signature.G;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -49,7 +51,7 @@ public class PecEmailService implements EmailService {
|
||||
emailRequest.setUsername(emailConfig.getUsername());
|
||||
emailRequest.setPassword(emailConfig.getPassword());
|
||||
emailRequest.setRecipient(recipientEmails);
|
||||
String url=emailConfig.getUrl();
|
||||
String url=emailConfig.getUrl()+ GepafinConstant.PEC_SERVICE_SEND_MAIL;
|
||||
String authToken = emailConfig.getAuthToken();
|
||||
HttpResponse<String> response2=null;
|
||||
if (Boolean.FALSE.equals(validator.isTestProfileActivated())) {
|
||||
|
||||
@@ -35,7 +35,7 @@ public interface DashboardApi {
|
||||
@ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) })) })
|
||||
@GetMapping(value = "",
|
||||
produces = { "application/json" })
|
||||
@PreAuthorize("hasRole('ROLE_SUPER_ADMIN')")
|
||||
@PreAuthorize("hasRole('ROLE_SUPER_ADMIN') || hasRole('ROLE_INSTRUCTOR_MANAGER')")
|
||||
ResponseEntity<Response<SuperAdminWidgetResponseBean>> getDashboardWidgetForSuperAdmin(HttpServletRequest request);
|
||||
|
||||
@Operation(summary = "Api to get dashboard widget for beneficiary",
|
||||
|
||||
@@ -2435,4 +2435,9 @@
|
||||
newColumnName="appointment_template_id"/>
|
||||
</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>
|
||||
|
||||
@@ -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