diff --git a/java/123.bat b/java/123.bat
new file mode 100644
index 000000000..60da3f3fa
--- /dev/null
+++ b/java/123.bat
@@ -0,0 +1,4 @@
+set MAVEN_HOME=D:\apache-maven-3.9.1\
+set PATH=%PATH%;D:\apache-maven-3.9.1\bin\
+set CLASSPATH=%CLASSPATH%;D:\apache-maven-3.9.1\lib\
+mvn clean install -DskipTests
\ No newline at end of file
diff --git a/java/claim/Dockerfile b/java/claim/Dockerfile
index 4f1f5af6e..a0e02df45 100644
--- a/java/claim/Dockerfile
+++ b/java/claim/Dockerfile
@@ -1,4 +1,4 @@
-FROM openjdk:8-jdk-alpine
+FROM openjdk:17-oracle
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
\ No newline at end of file
diff --git a/java/claim/pom.xml b/java/claim/pom.xml
index 056ac0da1..8f153ffe0 100644
--- a/java/claim/pom.xml
+++ b/java/claim/pom.xml
@@ -13,19 +13,78 @@
- 1.8
+ 11
+ 4.1.1
+ 2022.0.1
org.springframework.boot
spring-boot-starter
+
+ net.sourceforge.barbecue
+ barbecue
+ 1.5-beta1
+
+
+ net.sf.barcode4j
+ barcode4j
+ 2.1
+
+
+ com.google.zxing
+ core
+ 3.3.0
+
+
+ com.google.zxing
+ javase
+ 3.3.0
+
+
+ com.opencsv
+ opencsv
+ 5.5.2
+
org.springframework.boot
spring-boot-starter-data-jpa
-
+
+ org.springframework.boot
+ spring-boot-starter-data-jdbc
+
+
+ org.springframework.cloud
+ spring-cloud-gcp-starter-vision
+ 1.2.8.RELEASE
+
+
+ org.springframework.cloud
+ spring-cloud-gcp-starter-storage
+ 1.2.8.RELEASE
+
+
+ com.google.cloud
+ spring-cloud-gcp-starter-storage
+ 4.3.1
+
+
+ org.springframework.cloud
+ spring-cloud-dependencies
+ 2022.0.1
+ pom
+ import
+
+
+ com.google.cloud
+ spring-cloud-gcp-dependencies
+ 4.1.1
+ pom
+ import
+
org.postgresql
@@ -84,7 +143,29 @@
2.0.3
compile
-
+
+ org.springframework.boot
+ spring-boot-starter-mail
+
+
+
+ org.jsoup
+ jsoup
+ 1.15.3
+
+
+ org.json
+ json
+ 20210307
+
+
+ org.freemarker
+ freemarker
+
+
+ org.springframework.boot
+ spring-boot-starter-quartz
+
@@ -96,4 +177,4 @@
-
+
\ No newline at end of file
diff --git a/java/claim/src/main/java/dev/sunbirdrc/claim/ClaimsApplication.java b/java/claim/src/main/java/dev/sunbirdrc/claim/ClaimsApplication.java
index 3591f43a0..c17770630 100644
--- a/java/claim/src/main/java/dev/sunbirdrc/claim/ClaimsApplication.java
+++ b/java/claim/src/main/java/dev/sunbirdrc/claim/ClaimsApplication.java
@@ -4,6 +4,7 @@
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
+import org.springframework.scheduling.annotation.EnableAsync;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
@@ -11,6 +12,7 @@
@SpringBootApplication
@ComponentScan(basePackages = { "dev.sunbirdrc.registry.middleware", "dev.sunbirdrc.claim"})
+@EnableAsync
public class ClaimsApplication {
public static void main(String[] args) {
SpringApplication.run(ClaimsApplication.class, args);
diff --git a/java/claim/src/main/java/dev/sunbirdrc/claim/config/EmailConfig.java b/java/claim/src/main/java/dev/sunbirdrc/claim/config/EmailConfig.java
new file mode 100644
index 000000000..d3d5634d5
--- /dev/null
+++ b/java/claim/src/main/java/dev/sunbirdrc/claim/config/EmailConfig.java
@@ -0,0 +1,20 @@
+package dev.sunbirdrc.claim.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.mail.SimpleMailMessage;
+
+@Configuration
+public class EmailConfig
+{
+ @Bean
+ public SimpleMailMessage emailTemplate()
+ {
+ SimpleMailMessage message = new SimpleMailMessage();
+ message.setTo("kumarpawans@gmail.com");
+ message.setFrom("shishir.suman@tarento.com");
+ message.setSubject("Identity Card link for UPSMF");
+ message.setText("FATAL - Application crash. Save your job !!");
+ return message;
+ }
+}
\ No newline at end of file
diff --git a/java/claim/src/main/java/dev/sunbirdrc/claim/config/PropertyMapper.java b/java/claim/src/main/java/dev/sunbirdrc/claim/config/PropertyMapper.java
new file mode 100644
index 000000000..28f5cfaf5
--- /dev/null
+++ b/java/claim/src/main/java/dev/sunbirdrc/claim/config/PropertyMapper.java
@@ -0,0 +1,54 @@
+package dev.sunbirdrc.claim.config;
+
+import lombok.Data;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+@Component
+@Data
+public class PropertyMapper {
+ @Value("${simple.mail.message.from}")
+ private String simpleMailMessageFrom;
+
+ @Value("${foreign.pending.item.subject}")
+ private String foreignPendingItemSubject;
+
+ @Value("${outside.up.pending.item.subject}")
+ private String outsideUpPendingItemSubject;
+
+ @Value("${from.up.pending.item.subject}")
+ private String fromUpPendingItemSubject;
+
+ @Value("${good.standing.pending.item.subject}")
+ private String goodStandingPendingItemSubject;
+
+ @Value("${up.council.name}")
+ private String upCouncilName;
+
+ @Value("${regulator.table.name}")
+ private String regulatorTableName;
+
+ @Value("${student.foreign.verification.table.name}")
+ private String studentForeignVerificationTableName;
+
+ @Value("${student.outside.verification.table.name}")
+ private String studentOutsideVerificationTableName;
+
+ @Value("${claim.url}")
+ private String claimUrl;
+
+ @Value("${registry.shard.id}")
+ private String registryShardId;
+
+ @Value("${student.foreign.entity.name}")
+ private String studentForeignEntityName;
+
+ @Value("${student.from.up.entity.name}")
+ private String studentFromUpEntityName;
+
+ @Value("${student.from.outside.entity.name}")
+ private String studentFromOutsideEntityName;
+
+ @Value("${student.good.standing.entity.name}")
+ private String studentGoodStandingEntityName;
+}
diff --git a/java/claim/src/main/java/dev/sunbirdrc/claim/contants/AttributeNames.java b/java/claim/src/main/java/dev/sunbirdrc/claim/contants/AttributeNames.java
index 5c318d889..95442cce4 100644
--- a/java/claim/src/main/java/dev/sunbirdrc/claim/contants/AttributeNames.java
+++ b/java/claim/src/main/java/dev/sunbirdrc/claim/contants/AttributeNames.java
@@ -9,7 +9,15 @@ public class AttributeNames {
public static final String ENTITY = "ENTITY";
public static final String LOWERCASE_ENTITY = "entity";;
public static final String ATTESTOR_INFO = "attestorInfo";
+
+ public static final String REQUESTOR_INFO = "reguestorInfo";
public static final String CONTENT = "content";
public static final String TOTAL_PAGES = "totalPages";
public static final String TOTAL_ELEMENTS = "totalElements";
+
+ public static final String JPG = "JPG";
+ public static final String JPEG = "JPEG";
+ public static final String PNG = "PNG";
+ public static final String GIF = "GIF";
+ public static final String PDF = "PDF";
}
diff --git a/java/claim/src/main/java/dev/sunbirdrc/claim/controller/CertificateNumberController.java b/java/claim/src/main/java/dev/sunbirdrc/claim/controller/CertificateNumberController.java
new file mode 100644
index 000000000..5a780afa5
--- /dev/null
+++ b/java/claim/src/main/java/dev/sunbirdrc/claim/controller/CertificateNumberController.java
@@ -0,0 +1,23 @@
+package dev.sunbirdrc.claim.controller;
+
+import dev.sunbirdrc.claim.service.CertificateNumberService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class CertificateNumberController {
+
+ private CertificateNumberService certificateNumberService;
+
+ @Autowired
+ public CertificateNumberController(CertificateNumberService certificateNumberService) {
+ this.certificateNumberService = certificateNumberService;
+ }
+
+ @GetMapping("/api/v1/generate-certNumber")
+ public Long generateNumber() {
+ return certificateNumberService.generateAndSaveNumber();
+ }
+}
+
diff --git a/java/claim/src/main/java/dev/sunbirdrc/claim/controller/ClaimsController.java b/java/claim/src/main/java/dev/sunbirdrc/claim/controller/ClaimsController.java
index cf2453488..cc15a8f21 100644
--- a/java/claim/src/main/java/dev/sunbirdrc/claim/controller/ClaimsController.java
+++ b/java/claim/src/main/java/dev/sunbirdrc/claim/controller/ClaimsController.java
@@ -6,6 +6,7 @@
import dev.sunbirdrc.claim.service.ClaimService;
import dev.sunbirdrc.claim.service.ClaimsAuthorizer;
import dev.sunbirdrc.pojos.dto.ClaimDTO;
+import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -17,11 +18,11 @@
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
+import java.util.List;
import java.util.Map;
import java.util.Optional;
-import static dev.sunbirdrc.claim.contants.AttributeNames.ATTESTOR_INFO;
-import static dev.sunbirdrc.claim.contants.AttributeNames.LOWERCASE_ENTITY;
+import static dev.sunbirdrc.claim.contants.AttributeNames.*;
@Controller
public class ClaimsController {
@@ -45,6 +46,15 @@ public ResponseEntity
+
+ "We are pleased to inform you that a ${credType} has been issued to you. You can view and download the credential by using the following link.
+
+ ${idLink}
+
+ Thank you,
+ < Registration Credential Issuing Authority >
+
+
diff --git a/java/claim/src/main/resources/templates/ec-pending-item-mail.ftl b/java/claim/src/main/resources/templates/ec-pending-item-mail.ftl
new file mode 100644
index 000000000..9118ac40f
--- /dev/null
+++ b/java/claim/src/main/resources/templates/ec-pending-item-mail.ftl
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+ Hi Council Admin
+
+ Pending action item for student foreign verification. Following candidate has applied for certificate.
+
+
+
+ Candidate Details
+
+
+ Name |
+ ${candidate.name} |
+
+
+ Gender |
+ ${candidate.gender} |
+
+
+ Email |
+ ${candidate.email} |
+
+
+ Council |
+ ${candidate.council} |
+
+
+ Exam Body |
+ ${candidate.examBody} |
+
+
+ Diploma Number |
+ ${candidate.diplomaNumber} |
+
+
+ Nursing Collage |
+ ${candidate.nursingCollage} |
+
+
+ Doc Proof |
+ ${candidate.docProof} |
+
+
+ Course State |
+ ${candidate.courseState} |
+
+
+ Course Council |
+ ${candidate.courseCouncil} |
+
+
+ Country |
+ ${candidate.country} |
+
+
+ State |
+ ${candidate.state} |
+
+
+
+
+ Please follow up to respected entity
+
+ Thank you,
+ < Registration Credential Issuing Authority >
+
+
diff --git a/java/claim/src/main/resources/templates/foreign-student-candidate-details.ftl b/java/claim/src/main/resources/templates/foreign-student-candidate-details.ftl
new file mode 100644
index 000000000..4c6197243
--- /dev/null
+++ b/java/claim/src/main/resources/templates/foreign-student-candidate-details.ftl
@@ -0,0 +1,257 @@
+
+
+
+
+
+
+
+ Candidate Details
+
+ Title |
+
+ <#if candidate.title?has_content>
+ ${candidate.title} |
+ <#else>
+ |
+ #if>
+
+
+ Student Name |
+
+ <#if candidate.name?has_content>
+ ${candidate.name} |
+ <#else>
+ |
+ #if>
+
+
+ Registration Type |
+
+ <#if candidate.registrationType?has_content>
+ ${candidate.registrationType} |
+ <#else>
+ |
+ #if>
+
+
+ Registration Number |
+
+ <#if candidate.registrationNumber?has_content>
+ ${candidate.registrationNumber} |
+ <#else>
+ |
+ #if>
+
+
+ Reference No |
+
+ <#if candidate.refNo?has_content>
+ ${candidate.refNo} |
+ <#else>
+ |
+ #if>
+
+
+ Phone Number |
+
+ <#if candidate.phoneNumber?has_content>
+ ${candidate.phoneNumber} |
+ <#else>
+ |
+ #if>
+
+
+ Passing Year |
+
+ <#if candidate.passingYear?has_content>
+ ${candidate.passingYear} |
+ <#else>
+ |
+ #if>
+
+
+ Passing Month |
+
+ <#if candidate.passingMonth?has_content>
+ ${candidate.passingMonth} |
+ <#else>
+ |
+ #if>
+
+
+ Nursing Collage |
+
+ <#if candidate.nursingCollage?has_content>
+ ${candidate.nursingCollage} |
+ <#else>
+ |
+ #if>
+
+
+ Mothers Name |
+
+ <#if candidate.mothersName?has_content>
+ ${candidate.mothersName} |
+ <#else>
+ |
+ #if>
+
+
+ Joining Year |
+
+ <#if candidate.joiningYear?has_content>
+ ${candidate.joiningYear} |
+ <#else>
+ |
+ #if>
+
+
+ Joining Month |
+
+ <#if candidate.joiningMonth?has_content>
+ ${candidate.joiningMonth} |
+ <#else>
+ |
+ #if>
+
+
+ Gender |
+
+ <#if candidate.gender?has_content>
+ ${candidate.gender} |
+ <#else>
+ |
+ #if>
+
+
+ Final Year Roll No |
+
+ <#if candidate.finalYearRollNo?has_content>
+ ${candidate.finalYearRollNo} |
+ <#else>
+ |
+ #if>
+
+
+ Fathers Name |
+
+ <#if candidate.fathersName?has_content>
+ ${candidate.fathersName} |
+ <#else>
+ |
+ #if>
+
+
+ Exam Body |
+
+ <#if candidate.examBody?has_content>
+ ${candidate.examBody} |
+ <#else>
+ |
+ #if>
+
+
+ Email |
+
+ <#if candidate.email?has_content>
+ ${candidate.email} |
+ <#else>
+ |
+ #if>
+
+
+ Date Of Birth |
+
+ <#if candidate.dateOfBirth?has_content>
+ ${candidate.dateOfBirth} |
+ <#else>
+ |
+ #if>
+
+
+ Date |
+
+ <#if candidate.date?has_content>
+ ${candidate.date} |
+ <#else>
+ |
+ #if>
+
+
+ Course Name |
+
+ <#if candidate.courseName?has_content>
+ ${candidate.courseName} |
+ <#else>
+ |
+ #if>
+
+
+ Council |
+
+ <#if candidate.council?has_content>
+ ${candidate.council} |
+ <#else>
+ |
+ #if>
+
+
+ CandidatePic |
+
+ <#if candidate.candidatePic?has_content>
+ ${candidate.candidatePic} |
+ <#else>
+ |
+ #if>
+
+
+ Bar Code |
+
+ <#if candidate.barCode?has_content>
+ ${candidate.barCode} |
+ <#else>
+ |
+ #if>
+
+
+ Aadhaar No |
+
+ <#if candidate.aadhaarNo?has_content>
+ ${candidate.aadhaarNo} |
+ <#else>
+ |
+ #if>
+
+
+
+
+
diff --git a/java/claim/src/main/resources/templates/manual-pending-item-mail.ftl b/java/claim/src/main/resources/templates/manual-pending-item-mail.ftl
new file mode 100644
index 000000000..1c7f50ae6
--- /dev/null
+++ b/java/claim/src/main/resources/templates/manual-pending-item-mail.ftl
@@ -0,0 +1,46 @@
+
+
+
+
+
+ Hi ${regulatorName}
+
+ Following candidate has applied for registration certificate from your institution as claimed by candidate.
+
+
Candidate list:
+
+
+
+ Name |
+ Cred Type |
+ Reference Number |
+ Registration Number |
+ Email |
+ Verify Link |
+
+
+ ${candidate.name} |
+ ${candidate.credType} |
+ ${candidate.refNo} |
+ ${candidate.registrationNumber} |
+ ${candidate.emailAddress} |
+ Verify Candidate |
+
+
+
+
+ your response awaited
+
+ Thank you,
+ < Registration Credential Issuing Authority >
+
+
\ No newline at end of file
diff --git a/java/claim/src/main/resources/templates/outside-up-student-candidate-details.ftl b/java/claim/src/main/resources/templates/outside-up-student-candidate-details.ftl
new file mode 100644
index 000000000..e0ac3ef87
--- /dev/null
+++ b/java/claim/src/main/resources/templates/outside-up-student-candidate-details.ftl
@@ -0,0 +1,267 @@
+
+
+
+
+
+
+
+ Candidate Details
+
+ Title |
+
+ <#if candidate.title?has_content>
+ ${candidate.title} |
+ <#else>
+ |
+ #if>
+
+
+
+ Name |
+
+ <#if candidate.name?has_content>
+ ${candidate.name} |
+ <#else>
+ |
+ #if>
+
+
+ Aadhaar No |
+
+ <#if candidate.aadhaarNo?has_content>
+ ${candidate.aadhaarNo} |
+ <#else>
+ |
+ #if>
+
+
+ Bar Code |
+
+ <#if candidate.barCode?has_content>
+ ${candidate.barCode} |
+ <#else>
+ |
+ #if>
+
+
+ Council |
+
+ <#if candidate.council?has_content>
+ ${candidate.council} |
+ <#else>
+ |
+ #if>
+
+
+ Course Name |
+
+ <#if candidate.courseName?has_content>
+ ${candidate.courseName} |
+ <#else>
+ |
+ #if>
+
+
+ Course State |
+
+ <#if candidate.courseState?has_content>
+ ${candidate.courseState} |
+ <#else>
+ |
+ #if>
+
+
+ Date |
+
+ <#if candidate.date?has_content>
+ ${candidate.date} |
+ <#else>
+ |
+ #if>
+
+
+ Date of birth |
+
+ <#if candidate.dateOfBirth?has_content>
+ ${candidate.dateOfBirth} |
+ <#else>
+ |
+ #if>
+
+
+ Email |
+
+ <#if candidate.email?has_content>
+ ${candidate.email} |
+ <#else>
+ |
+ #if>
+
+
+ Exam Body |
+
+ <#if candidate.examBody?has_content>
+ ${candidate.examBody} |
+ <#else>
+ |
+ #if>
+
+
+ Fathers Name |
+
+ <#if candidate.fathersName?has_content>
+ ${candidate.fathersName} |
+ <#else>
+ |
+ #if>
+
+
+ Ree Receipt No |
+
+ <#if candidate.feeReciptNo?has_content>
+ ${candidate.feeReciptNo} |
+ <#else>
+ |
+ #if>
+
+
+ Final Year RollNo |
+
+ <#if candidate.finalYearRollNo?has_content>
+ ${candidate.finalYearRollNo} |
+ <#else>
+ |
+ #if>
+
+
+ gender |
+
+ <#if candidate.gender?has_content>
+ ${candidate.gender} |
+ <#else>
+ |
+ #if>
+
+
+ Joining Month |
+
+ <#if candidate.joiningMonth?has_content>
+ ${candidate.joiningMonth} |
+ <#else>
+ |
+ #if>
+
+
+ Joining Year |
+
+ <#if candidate.joiningYear?has_content>
+ ${candidate.joiningYear} |
+ <#else>
+ |
+ #if>
+
+
+ Mothers Name |
+
+ <#if candidate.mothersName?has_content>
+ ${candidate.mothersName} |
+ <#else>
+ |
+ #if>
+
+
+ Nurse Registration No |
+
+ <#if candidate.nurseRegNo?has_content>
+ ${candidate.nurseRegNo} |
+ <#else>
+ |
+ #if>
+
+
+ Nursing Collage |
+
+ <#if candidate.nursingCollage?has_content>
+ ${candidate.nursingCollage} |
+ <#else>
+ |
+ #if>
+
+
+ Passing Month |
+
+ <#if candidate.passingMonth?has_content>
+ ${candidate.passingMonth} |
+ <#else>
+ |
+ #if>
+
+
+ Passing Year |
+
+ <#if candidate.passingYear?has_content>
+ ${candidate.passingYear} |
+ <#else>
+ |
+ #if>
+
+
+ Phone Number |
+
+ <#if candidate.phoneNumber?has_content>
+ ${candidate.phoneNumber} |
+ <#else>
+ |
+ #if>
+
+
+ Registration No |
+
+ <#if candidate.registrationNo?has_content>
+ ${candidate.registrationNo} |
+ <#else>
+ |
+ #if>
+
+
+ Registration Type |
+
+ <#if candidate.registrationType?has_content>
+ ${candidate.registrationType} |
+ <#else>
+ |
+ #if>
+
+
+
+
+
diff --git a/java/claim/src/main/resources/templates/pending-item-mail.ftl b/java/claim/src/main/resources/templates/pending-item-mail.ftl
new file mode 100644
index 000000000..4c6ffc996
--- /dev/null
+++ b/java/claim/src/main/resources/templates/pending-item-mail.ftl
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ Hi ${regulatorName}
+
+ Following candidate has applied for registration certificate from your institution as claimed by candidate.
+
+
Candidate list:
+
+
+
+ Name |
+ Cred Type |
+ Reference Number |
+ Registration Number |
+ Email |
+ Verify Link |
+
+ <#list candidates as candidate >
+
+ ${candidate.name} |
+ ${candidate.credType} |
+ ${candidate.refNo} |
+ ${candidate.registrationNumber} |
+ ${candidate.emailAddress} |
+ Verify Candidate |
+
+ #list>
+
+
+
+ your response awaited
+
+ Thank you,
+ < Registration Credential Issuing Authority >
+
+
diff --git a/java/claim/src/main/resources/templates/student-foreign-pending-item-mail.ftl b/java/claim/src/main/resources/templates/student-foreign-pending-item-mail.ftl
new file mode 100644
index 000000000..2ad519b22
--- /dev/null
+++ b/java/claim/src/main/resources/templates/student-foreign-pending-item-mail.ftl
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ Hi ${regulatorName}
+
+ Pending action item for student foreign verification. Following candidate has applied for certificate.
+
+
Candidate list:
+
+
+
+ Name |
+ Cred Type |
+ Reference Number |
+ Registration Number |
+ Email |
+ Verify Link |
+
+ <#list candidates as candidate >
+
+ ${candidate.name} |
+ ${candidate.credType} |
+ ${candidate.refNo} |
+ ${candidate.registrationNumber} |
+ ${candidate.emailAddress} |
+ Verify Candidate |
+
+ #list>
+
+
+
+ Please follow up to respected entity
+
+ Thank you,
+ < Registration Credential Issuing Authority >
+
+
diff --git a/java/claim/src/main/resources/templates/student-from-outside-pending-item-mail.ftl b/java/claim/src/main/resources/templates/student-from-outside-pending-item-mail.ftl
new file mode 100644
index 000000000..a55e6874e
--- /dev/null
+++ b/java/claim/src/main/resources/templates/student-from-outside-pending-item-mail.ftl
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ Hi ${regulatorName}
+
+ Pending action item for student from outside UP. Following candidate has applied for registration certificate.
+
+
Candidate list:
+
+
+
+ Name |
+ Cred Type |
+ Registration Type |
+ Nurse Registration Number |
+ Email |
+ Verify Link |
+
+ <#list candidates as candidate >
+
+ ${candidate.name} |
+ ${candidate.credType} |
+ ${candidate.registrationType} |
+ ${candidate.nurseRegNo} |
+ ${candidate.emailAddress} |
+ Verify Candidate |
+
+ #list>
+
+
+
+ Please follow up to respected entity
+
+ Thank you,
+ < Registration Credential Issuing Authority >
+
+
diff --git a/java/claim/src/main/resources/templates/student-from-up-pending-item-mail.ftl b/java/claim/src/main/resources/templates/student-from-up-pending-item-mail.ftl
new file mode 100644
index 000000000..be5e03929
--- /dev/null
+++ b/java/claim/src/main/resources/templates/student-from-up-pending-item-mail.ftl
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+ Hi ${regulatorName}
+
+ Following candidate has applied for certificate.
+
+
Candidate list:
+
+
+
+ Name |
+ Cred Type |
+ Course Name |
+ Email |
+ Exam Body |
+
+ <#list candidates as candidate >
+
+ ${candidate.name} |
+ ${candidate.credType} |
+ ${candidate.courseName} |
+ ${candidate.courseName} |
+ ${candidate.examBody} |
+
+ #list>
+
+
+
+ your response awaited
+
+ Thank you,
+ < Registration Credential Issuing Authority >
+
+
diff --git a/java/claim/src/main/resources/templates/student-good-standing-pending-item-mail.ftl b/java/claim/src/main/resources/templates/student-good-standing-pending-item-mail.ftl
new file mode 100644
index 000000000..4c6ffc996
--- /dev/null
+++ b/java/claim/src/main/resources/templates/student-good-standing-pending-item-mail.ftl
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ Hi ${regulatorName}
+
+ Following candidate has applied for registration certificate from your institution as claimed by candidate.
+
+
Candidate list:
+
+
+
+ Name |
+ Cred Type |
+ Reference Number |
+ Registration Number |
+ Email |
+ Verify Link |
+
+ <#list candidates as candidate >
+
+ ${candidate.name} |
+ ${candidate.credType} |
+ ${candidate.refNo} |
+ ${candidate.registrationNumber} |
+ ${candidate.emailAddress} |
+ Verify Candidate |
+
+ #list>
+
+
+
+ your response awaited
+
+ Thank you,
+ < Registration Credential Issuing Authority >
+
+
diff --git a/java/claim/src/test/java/dev/sunbirdrc/claim/service/ClaimServiceTest.java b/java/claim/src/test/java/dev/sunbirdrc/claim/service/ClaimServiceTest.java
index 76012d617..764627354 100644
--- a/java/claim/src/test/java/dev/sunbirdrc/claim/service/ClaimServiceTest.java
+++ b/java/claim/src/test/java/dev/sunbirdrc/claim/service/ClaimServiceTest.java
@@ -24,8 +24,7 @@
import java.util.*;
import static dev.sunbirdrc.claim.contants.AttributeNames.*;
-import static dev.sunbirdrc.claim.model.ClaimStatus.CLOSED;
-import static dev.sunbirdrc.claim.model.ClaimStatus.OPEN;
+import static dev.sunbirdrc.claim.model.ClaimStatus.*;
import static org.junit.Assert.assertEquals;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.*;
@@ -122,7 +121,7 @@ public void attestClaimShouldThrowExceptionIfTheClaimIsNotFound() {
public void attestClaimShouldThrowExceptionIfTheClaimIsAlreadyProcessed() {
String id = "1";
Claim claim = getClaim(id);
- claim.setStatus(CLOSED.name());
+ claim.setStatus(APPROVED.name());
when(claimRepository.findById(id)).thenReturn(Optional.of(claim));
JsonNode dummyNode = new ObjectMapper().nullNode();
claimService.attestClaim(id, dummyNode);
diff --git a/java/pojos/src/main/java/dev/sunbirdrc/pojos/PluginRequestMessage.java b/java/pojos/src/main/java/dev/sunbirdrc/pojos/PluginRequestMessage.java
index f229d3167..a99bf18ba 100644
--- a/java/pojos/src/main/java/dev/sunbirdrc/pojos/PluginRequestMessage.java
+++ b/java/pojos/src/main/java/dev/sunbirdrc/pojos/PluginRequestMessage.java
@@ -35,6 +35,7 @@ public class PluginRequestMessage {
private String userId;
private Map> propertiesOSID;
private String emailId;
+ private String credType;
public Optional getActorName() {
// sample names did:plugin:aadhar, did:plugin:claim,
diff --git a/java/pojos/src/main/java/dev/sunbirdrc/pojos/PluginRequestMessageCreator.java b/java/pojos/src/main/java/dev/sunbirdrc/pojos/PluginRequestMessageCreator.java
index 827308c00..e7603e53c 100644
--- a/java/pojos/src/main/java/dev/sunbirdrc/pojos/PluginRequestMessageCreator.java
+++ b/java/pojos/src/main/java/dev/sunbirdrc/pojos/PluginRequestMessageCreator.java
@@ -13,7 +13,7 @@ public static PluginRequestMessage create(String propertyData,
String userId,
String entityId, JsonNode additionalInput, String status,
String name, String attestorPlugin, String attestorEntity,
- String attestorSignin, Map> propertiesOSID, String emailId) {
+ String attestorSignin, Map> propertiesOSID, String emailId, String credType) {
PluginRequestMessage pluginRequestMessage = new PluginRequestMessage();
pluginRequestMessage.setPolicyName(name);
@@ -30,6 +30,7 @@ public static PluginRequestMessage create(String propertyData,
pluginRequestMessage.setUserId(userId);
pluginRequestMessage.setPropertiesOSID(propertiesOSID);
pluginRequestMessage.setEmailId(emailId);
+ pluginRequestMessage.setCredType(credType);
return pluginRequestMessage;
}
diff --git a/java/pojos/src/main/java/dev/sunbirdrc/pojos/PluginResponseMessage.java b/java/pojos/src/main/java/dev/sunbirdrc/pojos/PluginResponseMessage.java
index 6be9f52da..45313bd46 100644
--- a/java/pojos/src/main/java/dev/sunbirdrc/pojos/PluginResponseMessage.java
+++ b/java/pojos/src/main/java/dev/sunbirdrc/pojos/PluginResponseMessage.java
@@ -36,6 +36,8 @@ public class PluginResponseMessage {
private String userId;
private Map> propertiesOSID;
private String emailId;
+
+ private String credType;
@Builder.Default
private List files = new ArrayList<>();
}
diff --git a/java/pojos/src/main/java/dev/sunbirdrc/pojos/dto/ClaimDTO.java b/java/pojos/src/main/java/dev/sunbirdrc/pojos/dto/ClaimDTO.java
index e93df9310..ddd9805ae 100644
--- a/java/pojos/src/main/java/dev/sunbirdrc/pojos/dto/ClaimDTO.java
+++ b/java/pojos/src/main/java/dev/sunbirdrc/pojos/dto/ClaimDTO.java
@@ -14,6 +14,16 @@ public class ClaimDTO {
private String attestationId;
private String attestationName;
+ public String getCredtype() {
+ return credtype;
+ }
+
+ public void setCredtype(String credtype) {
+ this.credtype = credtype;
+ }
+
+ private String credtype;
+
public String getRequestorName() {
return requestorName;
}
diff --git a/java/pom.xml b/java/pom.xml
index 73c2c8b5b..10e18168f 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -41,6 +41,7 @@
claim
apitest
plugins
+ user-management
diff --git a/java/registry/src/main/java/dev/sunbirdrc/registry/app/SunbirdRCApplication.java b/java/registry/src/main/java/dev/sunbirdrc/registry/app/SunbirdRCApplication.java
index bf28e1cb2..1f9c30f0f 100644
--- a/java/registry/src/main/java/dev/sunbirdrc/registry/app/SunbirdRCApplication.java
+++ b/java/registry/src/main/java/dev/sunbirdrc/registry/app/SunbirdRCApplication.java
@@ -18,7 +18,8 @@
import org.springframework.web.filter.CorsFilter;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
-
+import java.util.ArrayList;
+import java.util.List;
import java.time.Duration;
@SpringBootApplication(exclude={SecurityAutoConfiguration.class})
@@ -55,18 +56,22 @@ public static ApplicationContext getAppContext() {
@Bean
public FilterRegistrationBean corsFilter() {
+ List list = new ArrayList();
+ list.add("*");
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration();
- config.setAllowCredentials(true);
- config.addAllowedOrigin(corsAllowedOrigin);
- config.addAllowedHeader("*");
- config.addAllowedMethod("POST");
- config.addAllowedMethod("DELETE");
- config.addAllowedMethod("GET");
- config.addAllowedMethod("OPTIONS");
- config.addAllowedMethod("PUT");
- source.registerCorsConfiguration("/**", config);
- FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
+ //config.setAllowCredentials(true);
+ config.addAllowedOrigin(corsAllowedOrigin);
+ config.addAllowedOrigin("*");
+ config.setAllowedOrigins(list);
+ config.addAllowedHeader("*");
+ config.addAllowedMethod("POST");
+ config.addAllowedMethod("DELETE");
+ config.addAllowedMethod("GET");
+ config.addAllowedMethod("OPTIONS");
+ config.addAllowedMethod("PUT");
+ source.registerCorsConfiguration("/**", config);
+ FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
bean.setOrder(0);
return bean;
}
diff --git a/java/registry/src/main/java/dev/sunbirdrc/registry/config/SecurityConfig.java b/java/registry/src/main/java/dev/sunbirdrc/registry/config/SecurityConfig.java
index a93880853..719432def 100644
--- a/java/registry/src/main/java/dev/sunbirdrc/registry/config/SecurityConfig.java
+++ b/java/registry/src/main/java/dev/sunbirdrc/registry/config/SecurityConfig.java
@@ -59,13 +59,13 @@ protected void configure(HttpSecurity http) throws Exception {
HttpSecurity httpConfig = http.csrf().disable();
if (authenticationEnabled) {
httpConfig.authorizeRequests()
- .antMatchers("/**/invite", "/health", "/error",
+ .antMatchers("/**/invite","/**/v2/{entityName}/claims", "/health", "/error",
"/_schemas/**", "/**/templates/**", "/**/*.json", "/**/verify",
"/swagger-ui", "/**/search", "/**/attestation/**",
- "/api/docs/swagger.json","/api/docs/*.json", "/plugin/**", "/swagger-ui.html")
+ "/api/docs/swagger.json","/api/docs/*.json", "/plugin/**", "/swagger-ui.html","/api/v1/pullUriRequest/*","/api/v1/pullDocUriRequest/*")
.permitAll()
.and()
- .addFilterBefore(schemaFilter, WebAsyncManagerIntegrationFilter.class)
+ //.addFilterBefore(schemaFilter, WebAsyncManagerIntegrationFilter.class)
.authorizeRequests()
.anyRequest()
.authenticated();
diff --git a/java/registry/src/main/java/dev/sunbirdrc/registry/controller/RegistryClaimsController.java b/java/registry/src/main/java/dev/sunbirdrc/registry/controller/RegistryClaimsController.java
index edad915bf..e268a25a0 100644
--- a/java/registry/src/main/java/dev/sunbirdrc/registry/controller/RegistryClaimsController.java
+++ b/java/registry/src/main/java/dev/sunbirdrc/registry/controller/RegistryClaimsController.java
@@ -12,6 +12,7 @@
import dev.sunbirdrc.registry.middleware.util.JSONUtil;
import dev.sunbirdrc.registry.model.dto.AttestationRequest;
import dev.sunbirdrc.registry.util.ClaimRequestClient;
+import dev.sunbirdrc.registry.util.CommonUtils;
import dev.sunbirdrc.registry.util.IDefinitionsManager;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
@@ -24,7 +25,9 @@
import org.springframework.web.client.HttpServerErrorException;
import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
import java.util.Collections;
+import java.util.List;
import static dev.sunbirdrc.registry.middleware.util.Constants.USER_ID;
@@ -57,6 +60,40 @@ public ResponseEntity