diff --git a/.github/keys/mosipgpgkey_pub.gpg b/.github/keys/mosipgpgkey_pub.gpg index 86e5dfe34ca..4bdb1a947be 100644 Binary files a/.github/keys/mosipgpgkey_pub.gpg and b/.github/keys/mosipgpgkey_pub.gpg differ diff --git a/.github/keys/mosipgpgkey_sec.gpg b/.github/keys/mosipgpgkey_sec.gpg index b0180d5433d..97de55678f8 100644 Binary files a/.github/keys/mosipgpgkey_sec.gpg and b/.github/keys/mosipgpgkey_sec.gpg differ diff --git a/.github/workflows/db-test.yml b/.github/workflows/db-test.yml new file mode 100644 index 00000000000..ec82ae6418a --- /dev/null +++ b/.github/workflows/db-test.yml @@ -0,0 +1,37 @@ +name: PostgreSQL Test + +on: + release: + types: [published] + pull_request: + types: [opened, reopened, synchronize] + workflow_dispatch: + inputs: + message: + description: 'Message for manually triggering' + required: false + default: 'Triggered for Updates' + type: string + push: + branches: + - '!release-branch' + - release* + - master + - 1.* + - develop* + - MOSIP* + paths: + - 'db_scripts/**' + +jobs: + build-db-test: + strategy: + matrix: + include: + - DB_LOCATION: 'db_scripts/mosip_prereg' + DB_NAME: 'mosip_prereg' + fail-fast: false + name: ${{ matrix.DB_NAME }} + uses: mosip/kattu/.github/workflows/db-test.yml@master + with: + DB_LOCATION: ${{ matrix.DB_LOCATION}} diff --git a/.github/workflows/push-trigger.yml b/.github/workflows/push-trigger.yml new file mode 100644 index 00000000000..ba3b39f9345 --- /dev/null +++ b/.github/workflows/push-trigger.yml @@ -0,0 +1,205 @@ +name: Maven Package upon a push + +on: + release: + types: [published] + pull_request: + types: [opened, reopened, synchronize] + workflow_dispatch: + inputs: + message: + description: 'Message for manually triggering' + required: false + default: 'Triggered for Updates' + type: string + push: + branches: + - '!releas-branch' + - release* + - master + - 1.* + - develop* + - develop* + - MOSIP* + +jobs: + build-maven-pre-registration: + uses: mosip/kattu/.github/workflows/maven-build.yml@master-java21 + with: + SERVICE_LOCATION: ./pre-registration + BUILD_ARTIFACT: pre-registration + secrets: + OSSRH_USER: ${{ secrets.OSSRH_USER }} + OSSRH_SECRET: ${{ secrets.OSSRH_SECRET }} + OSSRH_TOKEN: ${{ secrets.OSSRH_TOKEN }} + GPG_SECRET: ${{ secrets.GPG_SECRET }} + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} + + publish_to_nexus: + if: "${{ !contains(github.ref, 'master') && github.event_name != 'pull_request' && github.event_name != 'release' && github.event_name != 'prerelease' && github.event_name != 'publish' }}" + needs: build-maven-pre-registration + uses: mosip/kattu/.github/workflows/maven-publish-to-nexus.yml@master-java21 + with: + SERVICE_LOCATION: ./pre-registration + secrets: + OSSRH_USER: ${{ secrets.OSSRH_USER }} + OSSRH_SECRET: ${{ secrets.OSSRH_SECRET }} + OSSRH_URL: ${{ secrets.RELEASE_URL }} + OSSRH_TOKEN: ${{ secrets.OSSRH_TOKEN }} + GPG_SECRET: ${{ secrets.GPG_SECRET }} + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} + + build-dockers: + needs: build-maven-pre-registration + strategy: + matrix: + include: + - SERVICE_LOCATION: 'pre-registration/pre-registration-application-service' + SERVICE_NAME: 'pre-registration-application-service' + BUILD_ARTIFACT: 'pre-registration' + - SERVICE_LOCATION: 'pre-registration/pre-registration-batchjob' + SERVICE_NAME: 'pre-registration-batchjob' + BUILD_ARTIFACT: 'pre-registration' + - SERVICE_LOCATION: 'pre-registration/pre-registration-datasync-service' + SERVICE_NAME: 'pre-registration-datasync-service' + BUILD_ARTIFACT: 'pre-registration' + - SERVICE_LOCATION: 'pre-registration/pre-registration-captcha-service' + SERVICE_NAME: 'pre-registration-captcha-service' + BUILD_ARTIFACT: 'pre-registration' + fail-fast: false + name: ${{ matrix.SERVICE_NAME }} + uses: mosip/kattu/.github/workflows/docker-build.yml@master-java21 + with: + SERVICE_LOCATION: ${{ matrix.SERVICE_LOCATION }} + SERVICE_NAME: ${{ matrix.SERVICE_NAME }} + BUILD_ARTIFACT: ${{ matrix.BUILD_ARTIFACT }} + secrets: + DEV_NAMESPACE_DOCKER_HUB: ${{ secrets.DEV_NAMESPACE_DOCKER_HUB }} + ACTOR_DOCKER_HUB: ${{ secrets.ACTOR_DOCKER_HUB }} + RELEASE_DOCKER_HUB: ${{ secrets.RELEASE_DOCKER_HUB }} + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} + + sonar_analysis: + needs: build-maven-pre-registration + if: "${{ github.event_name != 'pull_request' }}" + uses: mosip/kattu/.github/workflows/maven-sonar-analysis.yml@master-java21 + with: + SERVICE_LOCATION: ./pre-registration + secrets: + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + ORG_KEY: ${{ secrets.ORG_KEY }} + OSSRH_USER: ${{ secrets.OSSRH_USER }} + OSSRH_SECRET: ${{ secrets.OSSRH_SECRET }} + OSSRH_TOKEN: ${{ secrets.OSSRH_TOKEN }} + GPG_SECRET: ${{ secrets.GPG_SECRET }} + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} + + build-maven-apitest-prereg: + uses: mosip/kattu/.github/workflows/maven-build.yml@master-java21 + with: + SERVICE_LOCATION: ./apitest + BUILD_ARTIFACT: apitest-prereg + secrets: + OSSRH_USER: ${{ secrets.OSSRH_USER }} + OSSRH_SECRET: ${{ secrets.OSSRH_SECRET }} + OSSRH_TOKEN: ${{ secrets.OSSRH_TOKEN }} + GPG_SECRET: ${{ secrets.GPG_SECRET }} + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} + + publish_to_nexus_apitest_prereg: + if: "${{ !contains(github.ref, 'master') && github.event_name != 'pull_request' && github.event_name != 'release' && github.event_name != 'prerelease' && github.event_name != 'publish' }}" + needs: build-maven-apitest-prereg + uses: mosip/kattu/.github/workflows/maven-publish-to-nexus.yml@master-java21 + with: + SERVICE_LOCATION: ./apitest + secrets: + OSSRH_USER: ${{ secrets.OSSRH_USER }} + OSSRH_SECRET: ${{ secrets.OSSRH_SECRET }} + OSSRH_URL: ${{ secrets.OSSRH_SNAPSHOT_URL }} + OSSRH_TOKEN: ${{ secrets.OSSRH_TOKEN }} + GPG_SECRET: ${{ secrets.GPG_SECRET }} + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} + + build-apitest-prereg-local: + needs: build-maven-apitest-prereg + runs-on: ubuntu-latest + env: + NAMESPACE: ${{ secrets.dev_namespace_docker_hub }} + SERVICE_NAME: apitest-prereg + SERVICE_LOCATION: apitest + BUILD_ARTIFACT: apitest-prereg-local + steps: + - uses: actions/checkout@v3 + - name: Set up JDK 21 + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: 21 + server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml + settings-path: ${{ github.workspace }} # location for the settings.xml file + - name: Setup the settings file for ossrh server + run: echo " ossrh ${{secrets.ossrh_user}} ${{secrets.ossrh_secret}} ossrh true gpg2 ${{secrets.gpg_secret}} allow-snapshots true snapshots-repo https://oss.sonatype.org/content/repositories/snapshots false true releases-repo https://oss.sonatype.org/service/local/staging/deploy/maven2 true false sonar . https://sonarcloud.io false " > $GITHUB_WORKSPACE/settings.xml + - name: Build Automationtests with Maven + run: | + cd ${{ env.SERVICE_LOCATION}} + mvn clean package -s $GITHUB_WORKSPACE/settings.xml + - name: Copy configuration files to target directory. + run: | + cp -r ${{ env.SERVICE_LOCATION}}/target/classes/config ${{ env.SERVICE_LOCATION}}/target/config + cp -r ${{ env.SERVICE_LOCATION}}/testNgXmlFiles ${{ env.SERVICE_LOCATION}}/target/testNgXmlFiles + - name: Ready the springboot artifacts + if: ${{ !contains(github.ref, 'master') || !contains(github.ref, 'main') }} + run: | + ## FIND JARS & COPY ONLY EXECUTABLE JARs STORED UNDER TARGET DIRECTORY + find ${{ env.SERVICE_LOCATION }} -path '*/target/*' -exec zip ${{ env.BUILD_ARTIFACT }}.zip {} + + - name: Upload the springboot jars + if: ${{ !contains(github.ref, 'master') || !contains(github.ref, 'main') }} + uses: actions/upload-artifact@v3 + with: + name: ${{ env.BUILD_ARTIFACT }} + path: ${{ env.BUILD_ARTIFACT }}.zip + - uses: 8398a7/action-slack@v3 + with: + status: ${{ job.status }} + fields: repo,message,author,commit,workflow,job # selectable (default: repo,message) + env: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} # required + if: failure() # Pick up events even if the job fails or is canceled. + + build-dockers_apitest_prereg: + needs: build-apitest-prereg-local + strategy: + matrix: + include: + - SERVICE_LOCATION: 'apitest' + SERVICE_NAME: 'apitest-prereg' + BUILD_ARTIFACT: 'apitest-prereg-local' + ONLY_DOCKER: true + fail-fast: false + name: ${{ matrix.SERVICE_NAME }} + uses: mosip/kattu/.github/workflows/docker-build.yml@master-java21 + with: + SERVICE_LOCATION: ${{ matrix.SERVICE_LOCATION }} + SERVICE_NAME: ${{ matrix.SERVICE_NAME }} + BUILD_ARTIFACT: ${{ matrix.BUILD_ARTIFACT }} + ONLY_DOCKER: ${{ matrix.ONLY_DOCKER }} + secrets: + DEV_NAMESPACE_DOCKER_HUB: ${{ secrets.DEV_NAMESPACE_DOCKER_HUB }} + ACTOR_DOCKER_HUB: ${{ secrets.ACTOR_DOCKER_HUB }} + RELEASE_DOCKER_HUB: ${{ secrets.RELEASE_DOCKER_HUB }} + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} + + sonar_analysis_apitest_prereg: + needs: build-maven-apitest-prereg + if: "${{ github.event_name != 'pull_request' }}" + uses: mosip/kattu/.github/workflows/maven-sonar-analysis.yml@master-java21 + with: + SERVICE_LOCATION: ./apitest + secrets: + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + ORG_KEY: ${{ secrets.ORG_KEY }} + OSSRH_USER: ${{ secrets.OSSRH_USER }} + OSSRH_SECRET: ${{ secrets.OSSRH_SECRET }} + OSSRH_TOKEN: ${{ secrets.OSSRH_TOKEN }} + GPG_SECRET: ${{ secrets.GPG_SECRET }} + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} diff --git a/.github/workflows/push_trigger.yml b/.github/workflows/push_trigger.yml deleted file mode 100644 index 84ebdc719da..00000000000 --- a/.github/workflows/push_trigger.yml +++ /dev/null @@ -1,772 +0,0 @@ - -name: Maven Package upon a push - -on: - pull_request: - types: [closed] - push: - branches: - - master - - 1.* - - develop - - MOSIP-11719 - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - ref: ${{ github.ref }} - java-version: 11 - server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml - settings-path: ${{ github.workspace }} # location for the settings.xml file - - - name: Setup branch and env - run: | - # Strip git ref prefix from version - echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV - echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - - name: Setup branch and GPG public key - run: | - # Strip git ref prefix from version - - echo ${{ env.BRANCH_NAME }} - - echo ${{ env.GPG_TTY }} - sudo apt-get --yes install gnupg2 - gpg2 --import ./.github/keys/mosipgpgkey_pub.gpg - gpg2 --quiet --batch --passphrase=${{secrets.gpg_secret}} --allow-secret-key-import --import ./.github/keys/mosipgpgkey_sec.gpg - - - uses: actions/cache@v1 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven-${{ env.BRANCH_NAME }} - - - name: Setup the settings file for ossrh server - - run: echo " ossrh ${{secrets.ossrh_user}} ${{secrets.ossrh_secret}} ossrh true gpg2 ${{secrets.gpg_secret}} allow-snapshots true snapshots-repo https://oss.sonatype.org/content/repositories/snapshots false true releases-repo https://oss.sonatype.org/service/local/staging/deploy/maven2 true false sonar . https://sonarcloud.io false " > $GITHUB_WORKSPACE/settings.xml - - - - name: Build with Maven - run: | - cd pre-registration - mvn -B package -s $GITHUB_WORKSPACE/settings.xml --file pom.xml - - - - name: Ready the springboot artifacts - run: find -name '*.jar' -executable -type f -exec zip release.zip {} + - - - name: Upload the springboot jars - uses: actions/upload-artifact@v1 - with: - name: release - path: ./release.zip - - - uses: 8398a7/action-slack@v3 - with: - status: ${{ job.status }} - fields: repo,message,commit,author,action,eventName,ref,workflow,job,took # selectable (default: repo,message) - env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} # required - if: failure() # Pick up events even if the job fails or is canceled. - - - publish_to_nexus: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - ref: ${{ github.ref }} - java-version: 11 - server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml - settings-path: ${{ github.workspace }} # location for the settings.xml file - - - name: Setup branch and env - run: | - # Strip git ref prefix from version - echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV - echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - - name: Setup branch and GPG public key - run: | - # Strip git ref prefix from version - - echo ${{ env.BRANCH_NAME }} - - echo ${{ env.GPG_TTY }} - sudo apt-get --yes install gnupg2 - gpg2 --import ./.github/keys/mosipgpgkey_pub.gpg - gpg2 --quiet --batch --passphrase=${{secrets.gpg_secret}} --allow-secret-key-import --import ./.github/keys/mosipgpgkey_sec.gpg - - - uses: actions/cache@v1 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven-${{ env.BRANCH_NAME }} - - - name: Setup the settings file for ossrh server - - run: echo " ossrh ${{secrets.RELEASE_USER}} ${{secrets.RELEASE_TOKEN}} ossrh true gpg2 ${{secrets.gpg_secret}} allow-snapshots true snapshots-repo https://oss.sonatype.org/content/repositories/snapshots false true releases-repo https://oss.sonatype.org/service/local/staging/deploy/maven2 true false sonar . https://sonarcloud.io false " > $GITHUB_WORKSPACE/settings.xml - - - name: Install xmllint - run: | - sudo apt-get update - sudo apt-get install libxml2-utils - - - name: Build with Maven - run: | - cd pre-registration - mvn -B package --file pom.xml -s $GITHUB_WORKSPACE/settings.xml - - name: Publish the maven package - run: | - cd pre-registration && mvn deploy -DskipTests -DaltDeploymentRepository=ossrh::default::${{ secrets.RELEASE_URL }} -s $GITHUB_WORKSPACE/settings.xml -f pom.xml - env: - GITHUB_TOKEN: ${{ secrets.RELEASE_token }} - GPG_TTY: $(tty) - - uses: 8398a7/action-slack@v3 - with: - status: ${{ job.status }} - fields: repo,message,commit,author,action,eventName,ref,workflow,job,took # selectable (default: repo,message) - env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_DEVOPS_WEBHOOK }} # required - if: failure() # Pick up events even if the job fails or is canceled. - - - - # docker-pre-registration-booking-service: -# needs: build - -# runs-on: ubuntu-latest -# env: -# NAMESPACE: mosipdev -# SERVICE_NAME: pre-registration-booking-service -# SERVICE_LOCATION: pre-registration/pre-registration-booking-service - -# steps: -# - uses: actions/checkout@v2 -# - uses: actions/download-artifact@v1 -# with: -# name: release -# path: ./ - -# - name: Setup branch name -# run: | -# # Strip git ref prefix from version -# echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV -# echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - -# - name: Get version info from pom -# id: getPomVersion -# uses: mavrosxristoforos/get-xml-info@1.0 -# with: -# xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml -# xpath: /*[local-name()="project"]/*[local-name()="version"] - -# - name: Unzip and extract the pre-registration-booking-service -# run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - -# - name: Get current date -# id: date -# run: echo "::set-output name=date::$(date +'%Y-%m-%d')" - -# - name: Build image -# run: | -# cd "./${{env.SERVICE_LOCATION}}" -# docker build . --build-arg SOURCE=mosip --build-arg COMMIT_HASH=$(git rev-parse HEAD) --build-arg COMMIT_ID=$(git rev-parse --short HEAD) --build-arg BUILD_TIME=${{steps.date.outputs.date}} --file Dockerfile --tag ${{ env.SERVICE_NAME }} -# - name: Log into registry -# run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - -# - name: Push image -# run: | -# IMAGE_ID=$NAMESPACE/$SERVICE_NAME - -# # Change all uppercase to lowercase -# IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') -# echo "push version ${{steps.getPomVersion.outputs.info}}" -# VERSION=$BRANCH_NAME -# echo IMAGE_ID=$IMAGE_ID -# echo VERSION=$VERSION -# docker tag $SERVICE_NAME $IMAGE_ID:$VERSION -# docker push $IMAGE_ID:$VERSION - - docker-pre-registration-application-service: - needs: build - - runs-on: ubuntu-latest - env: - NAMESPACE: mosipdev - SERVICE_NAME: pre-registration-application-service - SERVICE_LOCATION: pre-registration/pre-registration-application-service - - steps: - - uses: actions/checkout@v2 - - uses: actions/download-artifact@v1 - with: - name: release - path: ./ - - - name: Setup branch name - run: | - # Strip git ref prefix from version - echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV - echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - - - name: Get version info from pom - id: getPomVersion - uses: mavrosxristoforos/get-xml-info@1.0 - with: - xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml - xpath: /*[local-name()="project"]/*[local-name()="version"] - - - name: Unzip and extract the pre-registration-application-service - run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - - - name: Get current date - id: date - run: echo "::set-output name=date::$(date +'%Y-%m-%d')" - - - name: Build image - run: | - cd "./${{env.SERVICE_LOCATION}}" - docker build . --build-arg SOURCE=mosip --build-arg COMMIT_HASH=$(git rev-parse HEAD) --build-arg COMMIT_ID=$(git rev-parse --short HEAD) --build-arg BUILD_TIME=${{steps.date.outputs.date}} --file Dockerfile --tag ${{ env.SERVICE_NAME }} - - name: Log into registry - run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - - - name: Push image - run: | - IMAGE_ID=$NAMESPACE/$SERVICE_NAME - - # Change all uppercase to lowercase - IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') - echo "push version ${{steps.getPomVersion.outputs.info}}" - VERSION=$BRANCH_NAME - echo IMAGE_ID=$IMAGE_ID - echo VERSION=$VERSION - docker tag $SERVICE_NAME $IMAGE_ID:$VERSION - docker push $IMAGE_ID:$VERSION - - uses: 8398a7/action-slack@v3 - with: - status: ${{ job.status }} - fields: repo,message,commit,author,action,eventName,ref,workflow,job,took # selectable (default: repo,message) - env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_DEVOPS_WEBHOOK }} # required - if: failure() # Pick up events even if the job fails or is canceled. - - # docker-pre-registration-login-service: -# needs: build - -# runs-on: ubuntu-latest -# env: -# NAMESPACE: mosipdev -# SERVICE_NAME: pre-registration-login-service -# SERVICE_LOCATION: pre-registration/pre-registration-login-service - -# steps: -# - uses: actions/checkout@v2 -# - uses: actions/download-artifact@v1 -# with: -# name: release -# path: ./ - -# - name: Setup branch name -# run: | -# # Strip git ref prefix from version -# echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV -# echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - -# - name: Get version info from pom -# id: getPomVersion -# uses: mavrosxristoforos/get-xml-info@1.0 -# with: -# xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml -# xpath: /*[local-name()="project"]/*[local-name()="version"] - -# - name: Unzip and extract the pre-registration-login-service -# run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - -# - name: Get current date -# id: date -# run: echo "::set-output name=date::$(date +'%Y-%m-%d')" -# - name: Build image -# run: | -# cd "./${{env.SERVICE_LOCATION}}" -# docker build . --build-arg SOURCE=mosip --build-arg COMMIT_HASH=$(git rev-parse HEAD) --build-arg COMMIT_ID=$(git rev-parse --short HEAD) --build-arg BUILD_TIME=${{steps.date.outputs.date}} --file Dockerfile --tag ${{ env.SERVICE_NAME }} -# - name: Log into registry -# run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - -# - name: Push image -# run: | -# IMAGE_ID=$NAMESPACE/$SERVICE_NAME - -# # Change all uppercase to lowercase -# IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') -# echo "push version ${{steps.getPomVersion.outputs.info}}" -# VERSION=$BRANCH_NAME -# echo IMAGE_ID=$IMAGE_ID -# echo VERSION=$VERSION -# docker tag $SERVICE_NAME $IMAGE_ID:$VERSION -# docker push $IMAGE_ID:$VERSION - docker-pre-registration-batchjob: - needs: build - - runs-on: ubuntu-latest - env: - NAMESPACE: mosipdev - SERVICE_NAME: pre-registration-batchjob - SERVICE_LOCATION: pre-registration/pre-registration-batchjob - - steps: - - uses: actions/checkout@v2 - - uses: actions/download-artifact@v1 - with: - name: release - path: ./ - - - name: Setup branch name - run: | - # Strip git ref prefix from version - echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV - echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - - - name: Get version info from pom - id: getPomVersion - uses: mavrosxristoforos/get-xml-info@1.0 - with: - xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml - xpath: /*[local-name()="project"]/*[local-name()="version"] - - - name: Unzip and extract the pre-registration-batchjob - run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - - - - name: Get current date - id: date - run: echo "::set-output name=date::$(date +'%Y-%m-%d')" - - - name: Build image - run: | - cd "./${{env.SERVICE_LOCATION}}" - docker build . --build-arg SOURCE=mosip --build-arg COMMIT_HASH=$(git rev-parse HEAD) --build-arg COMMIT_ID=$(git rev-parse --short HEAD) --build-arg BUILD_TIME=${{steps.date.outputs.date}} --file Dockerfile --tag ${{ env.SERVICE_NAME }} - - name: Log into registry - run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - - - name: Push image - run: | - IMAGE_ID=$NAMESPACE/$SERVICE_NAME - - # Change all uppercase to lowercase - IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') - echo "push version ${{steps.getPomVersion.outputs.info}}" - VERSION=$BRANCH_NAME - echo IMAGE_ID=$IMAGE_ID - echo VERSION=$VERSION - docker tag $SERVICE_NAME $IMAGE_ID:$VERSION - docker push $IMAGE_ID:$VERSION - - uses: 8398a7/action-slack@v3 - with: - status: ${{ job.status }} - fields: repo,message,commit,author,action,eventName,ref,workflow,job,took # selectable (default: repo,message) - env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_DEVOPS_WEBHOOK }} # required - if: failure() # Pick up events even if the job fails or is canceled. - - docker-pre-registration-datasync-service: - needs: build - - runs-on: ubuntu-latest - env: - NAMESPACE: mosipdev - SERVICE_NAME: pre-registration-datasync-service - SERVICE_LOCATION: pre-registration/pre-registration-datasync-service - - steps: - - uses: actions/checkout@v2 - - uses: actions/download-artifact@v1 - with: - name: release - path: ./ - - - name: Setup branch name - run: | - # Strip git ref prefix from version - echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV - echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - - - name: Get version info from pom - id: getPomVersion - uses: mavrosxristoforos/get-xml-info@1.0 - with: - xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml - xpath: /*[local-name()="project"]/*[local-name()="version"] - - - name: Unzip and extract the pre-registration-datasync-service - run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - - - name: Get current date - id: date - run: echo "::set-output name=date::$(date +'%Y-%m-%d')" - - - name: Build image - run: | - cd "./${{env.SERVICE_LOCATION}}" - docker build . --build-arg SOURCE=mosip --build-arg COMMIT_HASH=$(git rev-parse HEAD) --build-arg COMMIT_ID=$(git rev-parse --short HEAD) --build-arg BUILD_TIME=${{steps.date.outputs.date}} --file Dockerfile --tag ${{ env.SERVICE_NAME }} - - name: Log into registry - run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - - - name: Push image - run: | - IMAGE_ID=$NAMESPACE/$SERVICE_NAME - - # Change all uppercase to lowercase - IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') - echo "push version ${{steps.getPomVersion.outputs.info}}" - VERSION=$BRANCH_NAME - echo IMAGE_ID=$IMAGE_ID - echo VERSION=$VERSION - docker tag $SERVICE_NAME $IMAGE_ID:$VERSION - docker push $IMAGE_ID:$VERSION - - uses: 8398a7/action-slack@v3 - with: - status: ${{ job.status }} - fields: repo,message,commit,author,action,eventName,ref,workflow,job,took # selectable (default: repo,message) - env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_DEVOPS_WEBHOOK }} # required - if: failure() # Pick up events even if the job fails or is canceled. - - # docker-pre-registration-demographic-service: -# needs: build - -# runs-on: ubuntu-latest -# env: -# NAMESPACE: mosipdev -# SERVICE_NAME: pre-registration-demographic-service -# SERVICE_LOCATION: pre-registration/pre-registration-demographic-service - -# steps: -# - uses: actions/checkout@v2 -# - uses: actions/download-artifact@v1 -# with: -# name: release -# path: ./ - -# - name: Setup branch name -# run: | -# # Strip git ref prefix from version -# echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV -# echo "GPG_TTY=$(tty)" >> $GITHUB_ENV -# - name: Get version info from pom -# id: getPomVersion -# uses: mavrosxristoforos/get-xml-info@1.0 -# with: -# xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml -# xpath: /*[local-name()="project"]/*[local-name()="version"] - -# - name: Unzip and extract the pre-registration-demographic-service -# run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - -# - name: Get current date -# id: date -# run: echo "::set-output name=date::$(date +'%Y-%m-%d')" - -# - name: Build image -# run: | -# cd "./${{env.SERVICE_LOCATION}}" -# docker build . --build-arg SOURCE=mosip --build-arg COMMIT_HASH=$(git rev-parse HEAD) --build-arg COMMIT_ID=$(git rev-parse --short HEAD) --build-arg BUILD_TIME=${{steps.date.outputs.date}} --file Dockerfile --tag ${{ env.SERVICE_NAME }} -# - name: Log into registry -# run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - -# - name: Push image -# run: | -# IMAGE_ID=$NAMESPACE/$SERVICE_NAME - -# # Change all uppercase to lowercase -# IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') -# echo "push version ${{steps.getPomVersion.outputs.info}}" -# VERSION=$BRANCH_NAME -# echo IMAGE_ID=$IMAGE_ID -# echo VERSION=$VERSION -# docker tag $SERVICE_NAME $IMAGE_ID:$VERSION -# docker push $IMAGE_ID:$VERSION -# docker-pre-registration-document-service: -# needs: build - -# runs-on: ubuntu-latest -# env: -# NAMESPACE: mosipdev -# SERVICE_NAME: pre-registration-document-service -# SERVICE_LOCATION: pre-registration/pre-registration-document-service - -# steps: -# - uses: actions/checkout@v2 -# - uses: actions/download-artifact@v1 -# with: -# name: release -# path: ./ - -# - name: Setup branch name -# run: | -# # Strip git ref prefix from version -# echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV -# echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - -# - name: Get version info from pom -# id: getPomVersion -# uses: mavrosxristoforos/get-xml-info@1.0 -# with: -# xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml -# xpath: /*[local-name()="project"]/*[local-name()="version"] - -# - name: Unzip and extract the pre-registration-document-service -# run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - -# - name: Get current date -# id: date -# run: echo "::set-output name=date::$(date +'%Y-%m-%d')" - -# - name: Build image -# run: | -# cd "./${{env.SERVICE_LOCATION}}" -# docker build . --build-arg SOURCE=mosip --build-arg COMMIT_HASH=$(git rev-parse HEAD) --build-arg COMMIT_ID=$(git rev-parse --short HEAD) --build-arg BUILD_TIME=${{steps.date.outputs.date}} --file Dockerfile --tag ${{ env.SERVICE_NAME }} -# - name: Log into registry -# run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - -# - name: Push image -# run: | -# IMAGE_ID=$NAMESPACE/$SERVICE_NAME - -# # Change all uppercase to lowercase -# IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') -# echo "push version ${{steps.getPomVersion.outputs.info}}" -# VERSION=$BRANCH_NAME -# echo IMAGE_ID=$IMAGE_ID -# echo VERSION=$VERSION -# docker tag $SERVICE_NAME $IMAGE_ID:$VERSION -# docker push $IMAGE_ID:$VERSION -# docker-pre-registration-generateqrcode-service: -# needs: build - -# runs-on: ubuntu-latest -# env: -# NAMESPACE: mosipdev -# SERVICE_NAME: pre-registration-generateqrcode-service -# SERVICE_LOCATION: pre-registration/pre-registration-generateqrcode-service - -# steps: -# - uses: actions/checkout@v2 -# - uses: actions/download-artifact@v1 -# with: -# name: release -# path: ./ - -# - name: Setup branch name -# run: | -# # Strip git ref prefix from version -# echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV -# echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - -# - name: Get version info from pom -# id: getPomVersion -# uses: mavrosxristoforos/get-xml-info@1.0 -# with: -# xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml -# xpath: /*[local-name()="project"]/*[local-name()="version"] - -# - name: Unzip and extract the pre-registration-generateqrcode-service -# run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - -# - name: Get current date -# id: date -# run: echo "::set-output name=date::$(date +'%Y-%m-%d')" - -# - name: Build image -# run: | -# cd "./${{env.SERVICE_LOCATION}}" -# docker build . --build-arg SOURCE=mosip --build-arg COMMIT_HASH=$(git rev-parse HEAD) --build-arg COMMIT_ID=$(git rev-parse --short HEAD) --build-arg BUILD_TIME=${{steps.date.outputs.date}} --file Dockerfile --tag ${{ env.SERVICE_NAME }} -# - name: Log into registry -# run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - -# - name: Push image -# run: | -# IMAGE_ID=$NAMESPACE/$SERVICE_NAME - -# # Change all uppercase to lowercase -# IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') -# echo "push version ${{steps.getPomVersion.outputs.info}}" -# VERSION=$BRANCH_NAME -# echo IMAGE_ID=$IMAGE_ID -# echo VERSION=$VERSION -# docker tag $SERVICE_NAME $IMAGE_ID:$VERSION -# docker push $IMAGE_ID:$VERSION -# docker-pre-registration-notification-service: -# needs: build - -# runs-on: ubuntu-latest -# env: -# NAMESPACE: mosipdev -# SERVICE_NAME: pre-registration-notification-service -# SERVICE_LOCATION: pre-registration/pre-registration-notification-service - -# steps: -# - uses: actions/checkout@v2 -# - uses: actions/download-artifact@v1 -# with: -# name: release -# path: ./ - -# - name: Setup branch name -# run: | -# # Strip git ref prefix from version -# echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV -# echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - -# - name: Get version info from pom -# id: getPomVersion -# uses: mavrosxristoforos/get-xml-info@1.0 -# with: -# xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml -# xpath: /*[local-name()="project"]/*[local-name()="version"] - -# - name: Unzip and extract the pre-registration-notification-service -# run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" -# - name: Get current date -# id: date -# run: echo "::set-output name=date::$(date +'%Y-%m-%d')" -# - name: Build image -# run: | -# cd "./${{env.SERVICE_LOCATION}}" -# docker build . --build-arg SOURCE=mosip --build-arg COMMIT_HASH=$(git rev-parse HEAD) --build-arg COMMIT_ID=$(git rev-parse --short HEAD) --build-arg BUILD_TIME=${{steps.date.outputs.date}} --file Dockerfile --tag ${{ env.SERVICE_NAME }} -# - name: Log into registry -# run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - -# - name: Push image -# run: | -# IMAGE_ID=$NAMESPACE/$SERVICE_NAME - -# # Change all uppercase to lowercase -# IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') -# echo "push version ${{steps.getPomVersion.outputs.info}}" -# VERSION=$BRANCH_NAME -# echo IMAGE_ID=$IMAGE_ID -# echo VERSION=$VERSION -# docker tag $SERVICE_NAME $IMAGE_ID:$VERSION -# docker push $IMAGE_ID:$VERSION - - - docker-pre-registration-captcha-service: - needs: build - - runs-on: ubuntu-latest - env: - NAMESPACE: mosipdev - SERVICE_NAME: pre-registration-captcha-service - SERVICE_LOCATION: pre-registration/pre-registration-captcha-service - - steps: - - uses: actions/checkout@v2 - - uses: actions/download-artifact@v1 - with: - name: release - path: ./ - - - name: Setup branch name - run: | - # Strip git ref prefix from version - echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV - echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - - - name: Get version info from pom - id: getPomVersion - uses: mavrosxristoforos/get-xml-info@1.0 - with: - xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml - xpath: /*[local-name()="project"]/*[local-name()="version"] - - - name: Unzip and extract the pre-registration-transliteration-service - run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - - - name: Get current date - id: date - run: echo "::set-output name=date::$(date +'%Y-%m-%d')" - - - name: Build image - run: | - cd "./${{env.SERVICE_LOCATION}}" - docker build . --build-arg SOURCE=mosip --build-arg COMMIT_HASH=$(git rev-parse HEAD) --build-arg COMMIT_ID=$(git rev-parse --short HEAD) --build-arg BUILD_TIME=${{steps.date.outputs.date}} --file Dockerfile --tag ${{ env.SERVICE_NAME }} - - name: Log into registry - run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - - - name: Push image - run: | - IMAGE_ID=$NAMESPACE/$SERVICE_NAME - - # Change all uppercase to lowercase - IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') - echo "push version ${{steps.getPomVersion.outputs.info}}" - VERSION=$BRANCH_NAME - echo IMAGE_ID=$IMAGE_ID - echo VERSION=$VERSION - docker tag $SERVICE_NAME $IMAGE_ID:$VERSION - docker push $IMAGE_ID:$VERSION - - uses: 8398a7/action-slack@v3 - with: - status: ${{ job.status }} - fields: repo,message,commit,author,action,eventName,ref,workflow,job,took # selectable (default: repo,message) - env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_DEVOPS_WEBHOOK }} # required - if: failure() # Pick up events even if the job fails or is canceled. - - sonar_analysis: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - ref: ${{ github.ref }} - java-version: 11 - server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml - settings-path: ${{ github.workspace }} # location for the settings.xml file - - - name: Setup branch and env - run: | - # Strip git ref prefix from version - echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV - echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - - - uses: actions/cache@v1 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven-${{ env.BRANCH_NAME }} - - - name: Setup the settings file for ossrh server - run: echo " ossrh ${{secrets.ossrh_user}} ${{secrets.ossrh_secret}} ossrh true gpg2 ${{secrets.gpg_secret}} allow-snapshots true snapshots-repo https://oss.sonatype.org/content/repositories/snapshots false true releases-repo https://oss.sonatype.org/service/local/staging/deploy/maven2 true false sonar . https://sonarcloud.io false " > $GITHUB_WORKSPACE/settings.xml - - - name: Build with Maven - run: | - cd pre-registration - mvn -B package -s $GITHUB_WORKSPACE/settings.xml --file pom.xml - - - name: Analyze with SonarCloud - run: | - cd pre-registration - mvn -B -Dgpg.skip verify sonar:sonar -Dsonar.projectKey=mosip_${{ github.event.repository.name }} -Dsonar.organization=${{ secrets.ORG_KEY }} -Dsonar.host.url=https://sonarcloud.io -Dsonar.login=${{ secrets.SONAR_TOKEN }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - - - uses: 8398a7/action-slack@v3 - with: - status: ${{ job.status }} - fields: repo,message,commit,workflow,job # selectable (default: repo,message) - env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_DEVOPS_WEBHOOK }} # required - if: failure() # Pick up events even if the job fails or is canceled. diff --git a/.github/workflows/release_trigger.yml b/.github/workflows/release_trigger.yml deleted file mode 100644 index 3b850afb55c..00000000000 --- a/.github/workflows/release_trigger.yml +++ /dev/null @@ -1,626 +0,0 @@ -name: Release maven packages and docker upon a release - -on: - release: - types: [published] - -jobs: - build: - - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - ref: ${{ github.ref }} - java-version: 11 - server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml - settings-path: ${{ github.workspace }} # location for the settings.xml file - - - name: Setup branch and GPG public key - run: | - # Strip git ref prefix from version - echo "::set-env name=BRANCH_NAME::$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" - echo ${{ env.BRANCH_NAME }} - echo "::set-env name=GPG_TTY::$(tty)" - echo ${{ env.GPG_TTY }} - sudo apt-get --yes install gnupg2 - gpg2 --import ./.github/keys/mosipgpgkey_pub.gpg - gpg2 --quiet --batch --passphrase=${{secrets.gpg_secret}} --allow-secret-key-import --import ./.github/keys/mosipgpgkey_sec.gpg - - - uses: actions/cache@v1 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven-${{ env.BRANCH_NAME }} - - - name: Setup the settings file for ossrh server - run: echo " ossrh ${{secrets.ossrh_user}} ${{secrets.ossrh_secret}} ossrh true gpg2 ${{secrets.gpg_secret}} allow-snapshots true snapshots-repo https://oss.sonatype.org/content/repositories/snapshots false true releases-repo https://oss.sonatype.org/service/local/staging/deploy/maven2 true false sonar . https://sonarcloud.io false " > $GITHUB_WORKSPACE/settings.xml - - - name: Build with Maven - run: | - cd pre-registration - mvn -B package -s $GITHUB_WORKSPACE/settings.xml --file pom.xml - - - name: Ready the springboot artifacts - run: find -name '*.jar' -executable -type f -exec zip release.zip {} + - - - name: Upload the springboot jars - uses: actions/upload-artifact@v1 - with: - name: release - path: ./release.zip - - - publish_to_nexus: - needs: build - - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - ref: ${{ github.ref }} - java-version: 11 - server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml - settings-path: ${{ github.workspace }} # location for the settings.xml file - - - name: Setup branch and GPG public key - run: | - # Strip git ref prefix from version - echo "::set-env name=BRANCH_NAME::$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" - echo ${{ env.BRANCH_NAME }} - echo "::set-env name=GPG_TTY::$(tty)" - echo ${{ env.GPG_TTY }} - sudo apt-get --yes install gnupg2 - gpg2 --import ./.github/keys/mosipgpgkey_pub.gpg - gpg2 --quiet --batch --passphrase=${{secrets.gpg_secret}} --allow-secret-key-import --import ./.github/keys/mosipgpgkey_sec.gpg - - - uses: actions/cache@v1 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven-${{ env.BRANCH_NAME }} - - - name: Setup the settings file for ossrh server - run: echo " ossrh ${{secrets.ossrh_user}} ${{secrets.ossrh_secret}} ossrh true gpg2 ${{secrets.gpg_secret}} allow-snapshots true snapshots-repo https://oss.sonatype.org/content/repositories/snapshots false true releases-repo https://oss.sonatype.org/service/local/staging/deploy/maven2 true false sonar . https://sonarcloud.io false " > $GITHUB_WORKSPACE/settings.xml - - - name: Install xmllint - run: | - sudo apt-get update - sudo apt-get install libxml2-utils - - - name: Build with Maven - run: | - cd pre-registration - mvn -B package --file pom.xml -s $GITHUB_WORKSPACE/settings.xml - - name: Publish the maven package - run: | - chmod +x ./deploy.sh - ./deploy.sh pre-registration $GITHUB_WORKSPACE/settings.xml .* - env: - GITHUB_TOKEN: ${{ secrets.access_token }} - GPG_TTY: $(tty) - - name: Analyze with SonarCloud - run: | - cd pre-registration - mvn -B verify sonar:sonar -Dsonar.projectKey=${{ secrets.PROJECT_KEY }} -Dsonar.organization=${{ secrets.ORG_KEY }} -Dsonar.host.url=https://sonarcloud.io -Dsonar.login=${{ secrets.SONAR_TOKEN }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - -# docker-pre-registration-booking-service: -# needs: build - -# runs-on: ubuntu-latest -# env: -# NAMESPACE: mosipdev -# SERVICE_NAME: pre-registration-booking-service -# SERVICE_LOCATION: pre-registration/pre-registration-booking-service - -# steps: -# - uses: actions/checkout@v2 -# - uses: actions/download-artifact@v1 -# with: -# name: release -# path: ./ - -# - name: Setup branch name -# run: | -# # Strip git ref prefix from version -# echo "::set-env name=BRANCH_NAME::$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" -# echo ${{ env.BRANCH_NAME }} - -# - name: Get version info from pom -# id: getPomVersion -# uses: mavrosxristoforos/get-xml-info@1.0 -# with: -# xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml -# xpath: /*[local-name()="project"]/*[local-name()="version"] - -# - name: Unzip and extract the pre-registration-booking-service -# run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - -# - name: Build image -# run: | -# cd "./${{env.SERVICE_LOCATION}}" -# docker build . --file Dockerfile --tag ${{ env.SERVICE_NAME }} -# - name: Log into registry -# run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - -# - name: Push image -# run: | -# IMAGE_ID=$NAMESPACE/$SERVICE_NAME - -# # Change all uppercase to lowercase -# IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') -# echo "push version ${{steps.getPomVersion.outputs.info}}" -# VERSION=$BRANCH_NAME -# echo IMAGE_ID=$IMAGE_ID -# echo VERSION=$VERSION -# docker tag $SERVICE_NAME $IMAGE_ID:$VERSION -# docker push $IMAGE_ID:$VERSION -# docker-pre-registration-login-service: -# needs: build - -# runs-on: ubuntu-latest -# env: -# NAMESPACE: mosipdev -# SERVICE_NAME: pre-registration-login-service -# SERVICE_LOCATION: pre-registration/pre-registration-login-service - -# steps: -# - uses: actions/checkout@v2 -# - uses: actions/download-artifact@v1 -# with: -# name: release -# path: ./ - -# - name: Setup branch name -# run: | -# # Strip git ref prefix from version -# echo "::set-env name=BRANCH_NAME::$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" -# echo ${{ env.BRANCH_NAME }} - -# - name: Get version info from pom -# id: getPomVersion -# uses: mavrosxristoforos/get-xml-info@1.0 -# with: -# xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml -# xpath: /*[local-name()="project"]/*[local-name()="version"] - -# - name: Unzip and extract the pre-registration-login-service -# run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - -# - name: Build image -# run: | -# cd "./${{env.SERVICE_LOCATION}}" -# docker build . --file Dockerfile --tag ${{ env.SERVICE_NAME }} -# - name: Log into registry -# run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - -# - name: Push image -# run: | -# IMAGE_ID=$NAMESPACE/$SERVICE_NAME - -# # Change all uppercase to lowercase -# IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') -# echo "push version ${{steps.getPomVersion.outputs.info}}" -# VERSION=$BRANCH_NAME -# echo IMAGE_ID=$IMAGE_ID -# echo VERSION=$VERSION -# docker tag $SERVICE_NAME $IMAGE_ID:$VERSION -# docker push $IMAGE_ID:$VERSION - docker-pre-registration-batchjob: - needs: build - - runs-on: ubuntu-latest - env: - NAMESPACE: mosipdev - SERVICE_NAME: pre-registration-batchjob - SERVICE_LOCATION: pre-registration/pre-registration-batchjob - - steps: - - uses: actions/checkout@v2 - - uses: actions/download-artifact@v1 - with: - name: release - path: ./ - - - name: Setup branch name - run: | - # Strip git ref prefix from version - echo "::set-env name=BRANCH_NAME::$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" - echo ${{ env.BRANCH_NAME }} - - - name: Get version info from pom - id: getPomVersion - uses: mavrosxristoforos/get-xml-info@1.0 - with: - xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml - xpath: /*[local-name()="project"]/*[local-name()="version"] - - - name: Unzip and extract the pre-registration-batchjob - run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - - - name: Build image - run: | - cd "./${{env.SERVICE_LOCATION}}" - docker build . --file Dockerfile --tag ${{ env.SERVICE_NAME }} - - name: Log into registry - run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - - - name: Push image - run: | - IMAGE_ID=$NAMESPACE/$SERVICE_NAME - - # Change all uppercase to lowercase - IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') - echo "push version ${{steps.getPomVersion.outputs.info}}" - VERSION=$BRANCH_NAME - echo IMAGE_ID=$IMAGE_ID - echo VERSION=$VERSION - docker tag $SERVICE_NAME $IMAGE_ID:$VERSION - docker push $IMAGE_ID:$VERSION - docker-pre-registration-datasync-service: - needs: build - - runs-on: ubuntu-latest - env: - NAMESPACE: mosipdev - SERVICE_NAME: pre-registration-datasync-service - SERVICE_LOCATION: pre-registration/pre-registration-datasync-service - - steps: - - uses: actions/checkout@v2 - - uses: actions/download-artifact@v1 - with: - name: release - path: ./ - - - name: Setup branch name - run: | - # Strip git ref prefix from version - echo "::set-env name=BRANCH_NAME::$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" - echo ${{ env.BRANCH_NAME }} - - - name: Get version info from pom - id: getPomVersion - uses: mavrosxristoforos/get-xml-info@1.0 - with: - xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml - xpath: /*[local-name()="project"]/*[local-name()="version"] - - - name: Unzip and extract the pre-registration-datasync-service - run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - - - name: Build image - run: | - cd "./${{env.SERVICE_LOCATION}}" - docker build . --file Dockerfile --tag ${{ env.SERVICE_NAME }} - - name: Log into registry - run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - - - name: Push image - run: | - IMAGE_ID=$NAMESPACE/$SERVICE_NAME - - # Change all uppercase to lowercase - IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') - echo "push version ${{steps.getPomVersion.outputs.info}}" - VERSION=$BRANCH_NAME - echo IMAGE_ID=$IMAGE_ID - echo VERSION=$VERSION - docker tag $SERVICE_NAME $IMAGE_ID:$VERSION - docker push $IMAGE_ID:$VERSION -# docker-pre-registration-demographic-service: -# needs: build - -# runs-on: ubuntu-latest -# env: -# NAMESPACE: mosipdev -# SERVICE_NAME: pre-registration-demographic-service -# SERVICE_LOCATION: pre-registration/pre-registration-demographic-service - -# steps: -# - uses: actions/checkout@v2 -# - uses: actions/download-artifact@v1 -# with: -# name: release -# path: ./ - -# - name: Setup branch name -# run: | -# # Strip git ref prefix from version -# echo "::set-env name=BRANCH_NAME::$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" -# echo ${{ env.BRANCH_NAME }} - -# - name: Get version info from pom -# id: getPomVersion -# uses: mavrosxristoforos/get-xml-info@1.0 -# with: -# xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml -# xpath: /*[local-name()="project"]/*[local-name()="version"] - -# - name: Unzip and extract the pre-registration-demographic-service -# run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - -# - name: Build image -# run: | -# cd "./${{env.SERVICE_LOCATION}}" -# docker build . --file Dockerfile --tag ${{ env.SERVICE_NAME }} -# - name: Log into registry -# run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - -# - name: Push image -# run: | -# IMAGE_ID=$NAMESPACE/$SERVICE_NAME - -# # Change all uppercase to lowercase -# IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') -# echo "push version ${{steps.getPomVersion.outputs.info}}" -# VERSION=$BRANCH_NAME -# echo IMAGE_ID=$IMAGE_ID -# echo VERSION=$VERSION -# docker tag $SERVICE_NAME $IMAGE_ID:$VERSION -# docker push $IMAGE_ID:$VERSION -# docker-pre-registration-document-service: -# needs: build - -# runs-on: ubuntu-latest -# env: -# NAMESPACE: mosipdev -# SERVICE_NAME: pre-registration-document-service -# SERVICE_LOCATION: pre-registration/pre-registration-document-service - -# steps: -# - uses: actions/checkout@v2 -# - uses: actions/download-artifact@v1 -# with: -# name: release -# path: ./ - -# - name: Setup branch name -# run: | -# # Strip git ref prefix from version -# echo "::set-env name=BRANCH_NAME::$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" -# echo ${{ env.BRANCH_NAME }} - -# - name: Get version info from pom -# id: getPomVersion -# uses: mavrosxristoforos/get-xml-info@1.0 -# with: -# xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml -# xpath: /*[local-name()="project"]/*[local-name()="version"] - -# - name: Unzip and extract the pre-registration-document-service -# run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - -# - name: Build image -# run: | -# cd "./${{env.SERVICE_LOCATION}}" -# docker build . --file Dockerfile --tag ${{ env.SERVICE_NAME }} -# - name: Log into registry -# run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - -# - name: Push image -# run: | -# IMAGE_ID=$NAMESPACE/$SERVICE_NAME - -# # Change all uppercase to lowercase -# IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') -# echo "push version ${{steps.getPomVersion.outputs.info}}" -# VERSION=$BRANCH_NAME -# echo IMAGE_ID=$IMAGE_ID -# echo VERSION=$VERSION -# docker tag $SERVICE_NAME $IMAGE_ID:$VERSION -# docker push $IMAGE_ID:$VERSION -# docker-pre-registration-generateqrcode-service: -# needs: build - -# runs-on: ubuntu-latest -# env: -# NAMESPACE: mosipdev -# SERVICE_NAME: pre-registration-generateqrcode-service -# SERVICE_LOCATION: pre-registration/pre-registration-generateqrcode-service - -# steps: -# - uses: actions/checkout@v2 -# - uses: actions/download-artifact@v1 -# with: -# name: release -# path: ./ - -# - name: Setup branch name -# run: | -# # Strip git ref prefix from version -# echo "::set-env name=BRANCH_NAME::$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" -# echo ${{ env.BRANCH_NAME }} - -# - name: Get version info from pom -# id: getPomVersion -# uses: mavrosxristoforos/get-xml-info@1.0 -# with: -# xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml -# xpath: /*[local-name()="project"]/*[local-name()="version"] - -# - name: Unzip and extract the pre-registration-generateqrcode-service -# run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - -# - name: Build image -# run: | -# cd "./${{env.SERVICE_LOCATION}}" -# docker build . --file Dockerfile --tag ${{ env.SERVICE_NAME }} -# - name: Log into registry -# run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - -# - name: Push image -# run: | -# IMAGE_ID=$NAMESPACE/$SERVICE_NAME - -# # Change all uppercase to lowercase -# IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') -# echo "push version ${{steps.getPomVersion.outputs.info}}" -# VERSION=$BRANCH_NAME -# echo IMAGE_ID=$IMAGE_ID -# echo VERSION=$VERSION -# docker tag $SERVICE_NAME $IMAGE_ID:$VERSION -# docker push $IMAGE_ID:$VERSION -# docker-pre-registration-notification-service: -# needs: build - -# runs-on: ubuntu-latest -# env: -# NAMESPACE: mosipdev -# SERVICE_NAME: pre-registration-notification-service -# SERVICE_LOCATION: pre-registration/pre-registration-notification-service - -# steps: -# - uses: actions/checkout@v2 -# - uses: actions/download-artifact@v1 -# with: -# name: release -# path: ./ - -# - name: Setup branch name -# run: | -# # Strip git ref prefix from version -# echo "::set-env name=BRANCH_NAME::$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" -# echo ${{ env.BRANCH_NAME }} - -# - name: Get version info from pom -# id: getPomVersion -# uses: mavrosxristoforos/get-xml-info@1.0 -# with: -# xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml -# xpath: /*[local-name()="project"]/*[local-name()="version"] - -# - name: Unzip and extract the pre-registration-notification-service -# run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - -# - name: Build image -# run: | -# cd "./${{env.SERVICE_LOCATION}}" -# docker build . --file Dockerfile --tag ${{ env.SERVICE_NAME }} -# - name: Log into registry -# run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - -# - name: Push image -# run: | -# IMAGE_ID=$NAMESPACE/$SERVICE_NAME - -# # Change all uppercase to lowercase -# IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') -# echo "push version ${{steps.getPomVersion.outputs.info}}" -# VERSION=$BRANCH_NAME -# echo IMAGE_ID=$IMAGE_ID -# echo VERSION=$VERSION -# docker tag $SERVICE_NAME $IMAGE_ID:$VERSION -# docker push $IMAGE_ID:$VERSION -# docker-pre-registration-transliteration-service: -# needs: build - -# runs-on: ubuntu-latest -# env: -# NAMESPACE: mosipdev -# SERVICE_NAME: pre-registration-transliteration-service -# SERVICE_LOCATION: pre-registration/pre-registration-transliteration-service - -# steps: -# - uses: actions/checkout@v2 -# - uses: actions/download-artifact@v1 -# with: -# name: release -# path: ./ - -# - name: Setup branch name -# run: | -# # Strip git ref prefix from version -# echo "::set-env name=BRANCH_NAME::$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" -# echo ${{ env.BRANCH_NAME }} - -# - name: Get version info from pom -# id: getPomVersion -# uses: mavrosxristoforos/get-xml-info@1.0 -# with: -# xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml -# xpath: /*[local-name()="project"]/*[local-name()="version"] - -# - name: Unzip and extract the pre-registration-transliteration-service -# run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - -# - name: Build image -# run: | -# cd "./${{env.SERVICE_LOCATION}}" -# docker build . --file Dockerfile --tag ${{ env.SERVICE_NAME }} -# - name: Log into registry -# run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - -# - name: Push image -# run: | -# IMAGE_ID=$NAMESPACE/$SERVICE_NAME - -# # Change all uppercase to lowercase -# IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') -# echo "push version ${{steps.getPomVersion.outputs.info}}" -# VERSION=$BRANCH_NAME -# echo IMAGE_ID=$IMAGE_ID -# echo VERSION=$VERSION -# docker tag $SERVICE_NAME $IMAGE_ID:$VERSION -# docker push $IMAGE_ID:$VERSION - - docker-pre-registration-captcha-service: - needs: build - - runs-on: ubuntu-latest - env: - NAMESPACE: mosipdev - SERVICE_NAME: pre-registration-captcha-service - SERVICE_LOCATION: pre-registration/pre-registration-captcha-service - - steps: - - uses: actions/checkout@v2 - - uses: actions/download-artifact@v1 - with: - name: release - path: ./ - - - name: Setup branch name - run: | - # Strip git ref prefix from version - echo "::set-env name=BRANCH_NAME::$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" - echo ${{ env.BRANCH_NAME }} - - - name: Get version info from pom - id: getPomVersion - uses: mavrosxristoforos/get-xml-info@1.0 - with: - xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml - xpath: /*[local-name()="project"]/*[local-name()="version"] - - - name: Unzip and extract the pre-registration-transliteration-service - run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - - - name: Build image - run: | - cd "./${{env.SERVICE_LOCATION}}" - docker build . --file Dockerfile --tag ${{ env.SERVICE_NAME }} - - name: Log into registry - run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - - - name: Push image - run: | - IMAGE_ID=$NAMESPACE/$SERVICE_NAME - - # Change all uppercase to lowercase - IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') - echo "push version ${{steps.getPomVersion.outputs.info}}" - VERSION=$BRANCH_NAME - echo IMAGE_ID=$IMAGE_ID - echo VERSION=$VERSION - docker tag $SERVICE_NAME $IMAGE_ID:$VERSION - docker push $IMAGE_ID:$VERSION diff --git a/README.md b/README.md index 916a35e9f23..6f35de4b16d 100644 --- a/README.md +++ b/README.md @@ -1,58 +1,48 @@ -[![Build Status](https://travis-ci.org/mosip/pre-registration.svg?branch=master)](https://travis-ci.org/mosip/pre-registration) -[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=mosip_pre-registration&metric=alert_status)](https://sonarcloud.io/dashboard?id=mosip_pre-registration) -[![Join the chat at https://gitter.im/mosip-community/Pre-registration](https://badges.gitter.im/mosip-community/Pre-registration.svg)](https://gitter.im/mosip-community/Pre-registration?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +[![Maven Package upon a push](https://github.com/mosip/pre-registration/actions/workflows/push_trigger.yml/badge.svg?branch=release-1.2.0.1)](https://github.com/mosip/pre-registration/actions/workflows/push_trigger.yml) +[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?branch=release-1.2.0.1&project=mosip_pre-registration&metric=alert_status)](https://sonarcloud.io/dashboard?branch=release-1.2.0.1&id=mosip_pre-registration) -# Pre-Registration -This repository contains the source code and design documents for MOSIP Pre-Registration module. +# Pre-registration +This repository contains the source code and design documents for MOSIP Pre-registration server. For an overview refer [here](https://docs.mosip.io/1.2.0/modules/pre-registration). The modules exposes API endpoints. For a reference front-end UI implementation refer to [Pre-registration UI github repo](https://github.com/mosip/pre-registration-ui/) -# Build -The project requires JDK 1.8. -1. To build jars: - ``` - $ cd pre-registration - $ mvn clean install - ``` -1. To skip JUnit tests and Java Docs: +Pre-registration module consists of the following services: +1. Application +2. Booking +3. Batchjob +4. Captcha +5. Datasync + +## Database +See [DB guide](db_scripts/README.md) + +## Config-Server +To run Pre-registration services, run [Config Server](https://docs.mosip.io/1.2.0/modules/module-configuration#config-server) + +## Build & run (for developers) +Prerequisites: +1. [Config Server](https://docs.mosip.io/1.2.0/modules/module-configuration#config-server) +1. JDK 1.11 +1. Build and install: ``` - $ mvn install -DskipTests=true -Dmaven.javadoc.skip=true + $ cd kernel + $ mvn install -DskipTests=true -Dmaven.javadoc.skip=true -Dgpg.skip=true ``` -1. To build Docker for a service: +1. Build Docker for a service: ``` $ cd $ docker build -f Dockerfile ``` +## Deploy +To deploy Commons services on Kubernetes cluster using Dockers refer to [Sandbox Deployment](https://docs.mosip.io/1.2.0/deployment/sandbox-deployment). -# Deploy -1. To run all services as Dockers using MiniKube run [sandbox installer](https://githbu.com/mosip/mosip-infra/deployment/sandbox/) scripts. - -1. To run a Service jar individually: - ``` - `java -Dspring.profiles.active= -Dspring.cloud.config.uri= -Dspring.cloud.config.label= -jar .jar` - ``` - Example: - _profile_: `env` (extension used on configuration property files*) - _config_label_: `master` (git branch of config repo*) - _config-url_: `http://localhost:51000` (Url of the config server*) - - \* Refer to [kernel-config-server](https://github.com/mosip/commons/tree/master/kernel/kernel-config-server) for details - - -1. Note that you will have to run the dependent services like kernel-config-server to run any service successfully. -1. To run a Docker image individually: - ``` - $ docker run -it -p : -e active_profile_env={profile} -e spring_config_label_env= {branch} -e spring_config_url_env={config_server_url} ` - ``` - -# Test -Automated functaionl tests available in [Functional Tests repo](https://github.com/mosip/mosip-functional-tests) - -# APIs -API documentation available on Wiki: [Pre-Registration APIs](https://github.com/mosip/documentation/wiki/Pre-Registration-APIs) +## Configuration +Refer to the [configuration guide](docs/configuration.md). -# Documentation +## Test +Automated functional tests available in [Functional Tests repo](https://github.com/mosip/mosip-functional-tests). -MOSIP documentation is available on [Wiki](https://github.com/mosip/documentation/wiki) +## APIs +API documentation is available [here](https://mosip.github.io/documentation/). -# License -This project is licensed under the terms of [Mozilla Public License 2.0](https://github.com/mosip/mosip-platform/blob/master/LICENSE) +## License +This project is licensed under the terms of [Mozilla Public License 2.0](LICENSE). diff --git a/apitest/.gitignore b/apitest/.gitignore new file mode 100644 index 00000000000..defd0502073 --- /dev/null +++ b/apitest/.gitignore @@ -0,0 +1,40 @@ +*.class +.mtj.tmp/ +*.war +*.ear +hs_err_pid* +#ignored files + +.springBeans +.metadata +.factorypath +.classpath +.project +.settings/ +bin/ +tmp/ + +logs/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.loadpath +.DS_Store +test.txt +.idea/ +.settings/ +.sonarlint/ +.recommenders/ +/.recommenders/ + +**/*.iml +*.log +src/logs/mosip-api-test.log +/target/ +target/ +test-output/ +testng-report/ +/reg +./reg diff --git a/apitest/.temp-Functional Test-classpath-arg-1659588646071.txt b/apitest/.temp-Functional Test-classpath-arg-1659588646071.txt new file mode 100644 index 00000000000..bb81464f5e2 --- /dev/null +++ b/apitest/.temp-Functional Test-classpath-arg-1659588646071.txt @@ -0,0 +1 @@ +-classpath D:\Mosip_Automation_Test\Docker_Test\MOSIP-19726\mosip-functional-tests\automationtests\target\test-classes;D:\Mosip_Automation_Test\Docker_Test\MOSIP-19726\mosip-functional-tests\automationtests\target\classes;C:\Users\Sohan.Dey\.m2\repository\com\opencsv\opencsv\4.1\opencsv-4.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\commons\commons-lang3\3.6\commons-lang3-3.6.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\commons\commons-text\1.1\commons-text-1.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\ibm\icu\icu4j\63.1\icu4j-63.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\keycloak\keycloak-admin-client\17.0.1\keycloak-admin-client-17.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\keycloak\keycloak-core\17.0.1\keycloak-core-17.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\keycloak\keycloak-common\17.0.1\keycloak-common-17.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\resteasy\resteasy-client\3.13.2.Final\resteasy-client-3.13.2.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\spec\javax\ws\rs\jboss-jaxrs-api_2.1_spec\2.0.1.Final\jboss-jaxrs-api_2.1_spec-2.0.1.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\resteasy\resteasy-jaxrs\3.13.2.Final\resteasy-jaxrs-3.13.2.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\reactivestreams\reactive-streams\1.0.3\reactive-streams-1.0.3.jar;C:\Users\Sohan.Dey\.m2\repository\jakarta\validation\jakarta.validation-api\2.0.2\jakarta.validation-api-2.0.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\spec\javax\annotation\jboss-annotations-api_1.3_spec\2.0.1.Final\jboss-annotations-api_1.3_spec-2.0.1.Final.jar;C:\Users\Sohan.Dey\.m2\repository\com\sun\activation\jakarta.activation\1.2.1\jakarta.activation-1.2.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\stephenc\jcip\jcip-annotations\1.0-1\jcip-annotations-1.0-1.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\resteasy\resteasy-multipart-provider\3.13.2.Final\resteasy-multipart-provider-3.13.2.Final.jar;C:\Users\Sohan.Dey\.m2\repository\com\sun\mail\jakarta.mail\1.6.5\jakarta.mail-1.6.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\james\apache-mime4j\0.6\apache-mime4j-0.6.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\resteasy\resteasy-jackson2-provider\3.13.2.Final\resteasy-jackson2-provider-3.13.2.Final.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\jaxrs\jackson-jaxrs-json-provider\2.10.5\jackson-jaxrs-json-provider-2.10.5.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\jaxrs\jackson-jaxrs-base\2.10.5\jackson-jaxrs-base-2.10.5.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\fge\json-patch\1.9\json-patch-1.9.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\fge\jackson-coreutils\1.6\jackson-coreutils-1.6.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\fge\msg-simple\1.1\msg-simple-1.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\fge\btf\1.2\btf-1.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\resteasy\resteasy-jaxb-provider\3.13.2.Final\resteasy-jaxb-provider-3.13.2.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\spec\javax\xml\bind\jboss-jaxb-api_2.3_spec\2.0.0.Final\jboss-jaxb-api_2.3_spec-2.0.0.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\javassist\javassist\3.25.0-GA\javassist-3.25.0-GA.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\jknack\handlebars\3.0.0\handlebars-3.0.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\antlr\antlr4-runtime\4.5.1-1\antlr4-runtime-4.5.1-1.jar;C:\Users\Sohan.Dey\.m2\repository\org\mozilla\rhino\1.7R4\rhino-1.7R4.jar;C:\Users\Sohan.Dey\.m2\repository\org\slf4j\slf4j-api\1.6.4\slf4j-api-1.6.4.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\commons\commons-collections4\4.3\commons-collections4-4.3.jar;C:\Users\Sohan.Dey\.m2\repository\io\jsonwebtoken\jjwt\0.6.0\jjwt-0.6.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\flipkart\zjsonpatch\zjsonpatch\0.4.7\zjsonpatch-0.4.7.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk\1.11.368\aws-java-sdk-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-dlm\1.11.368\aws-java-sdk-dlm-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\jmespath-java\1.11.368\jmespath-java-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-macie\1.11.368\aws-java-sdk-macie-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-eks\1.11.368\aws-java-sdk-eks-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mediatailor\1.11.368\aws-java-sdk-mediatailor-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-neptune\1.11.368\aws-java-sdk-neptune-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-pi\1.11.368\aws-java-sdk-pi-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-iot1clickprojects\1.11.368\aws-java-sdk-iot1clickprojects-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-iot1clickdevices\1.11.368\aws-java-sdk-iot1clickdevices-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-iotanalytics\1.11.368\aws-java-sdk-iotanalytics-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-acmpca\1.11.368\aws-java-sdk-acmpca-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-secretsmanager\1.11.368\aws-java-sdk-secretsmanager-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-fms\1.11.368\aws-java-sdk-fms-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-connect\1.11.368\aws-java-sdk-connect-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-transcribe\1.11.368\aws-java-sdk-transcribe-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-autoscalingplans\1.11.368\aws-java-sdk-autoscalingplans-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-workmail\1.11.368\aws-java-sdk-workmail-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-servicediscovery\1.11.368\aws-java-sdk-servicediscovery-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloud9\1.11.368\aws-java-sdk-cloud9-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-serverlessapplicationrepository\1.11.368\aws-java-sdk-serverlessapplicationrepository-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-alexaforbusiness\1.11.368\aws-java-sdk-alexaforbusiness-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-resourcegroups\1.11.368\aws-java-sdk-resourcegroups-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-comprehend\1.11.368\aws-java-sdk-comprehend-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-translate\1.11.368\aws-java-sdk-translate-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-sagemaker\1.11.368\aws-java-sdk-sagemaker-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-iotjobsdataplane\1.11.368\aws-java-sdk-iotjobsdataplane-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-sagemakerruntime\1.11.368\aws-java-sdk-sagemakerruntime-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-kinesisvideo\1.11.368\aws-java-sdk-kinesisvideo-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-codec-http\4.1.17.Final\netty-codec-http-4.1.17.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-codec\4.1.17.Final\netty-codec-4.1.17.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-handler\4.1.17.Final\netty-handler-4.1.17.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-buffer\4.1.17.Final\netty-buffer-4.1.17.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-common\4.1.17.Final\netty-common-4.1.17.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-transport\4.1.17.Final\netty-transport-4.1.17.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-resolver\4.1.17.Final\netty-resolver-4.1.17.Final.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-appsync\1.11.368\aws-java-sdk-appsync-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-guardduty\1.11.368\aws-java-sdk-guardduty-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mq\1.11.368\aws-java-sdk-mq-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mediaconvert\1.11.368\aws-java-sdk-mediaconvert-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mediastore\1.11.368\aws-java-sdk-mediastore-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mediastoredata\1.11.368\aws-java-sdk-mediastoredata-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-medialive\1.11.368\aws-java-sdk-medialive-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mediapackage\1.11.368\aws-java-sdk-mediapackage-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-costexplorer\1.11.368\aws-java-sdk-costexplorer-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-pricing\1.11.368\aws-java-sdk-pricing-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mobile\1.11.368\aws-java-sdk-mobile-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudhsmv2\1.11.368\aws-java-sdk-cloudhsmv2-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-glue\1.11.368\aws-java-sdk-glue-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-migrationhub\1.11.368\aws-java-sdk-migrationhub-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-dax\1.11.368\aws-java-sdk-dax-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-greengrass\1.11.368\aws-java-sdk-greengrass-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-athena\1.11.368\aws-java-sdk-athena-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-marketplaceentitlement\1.11.368\aws-java-sdk-marketplaceentitlement-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-codestar\1.11.368\aws-java-sdk-codestar-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-lexmodelbuilding\1.11.368\aws-java-sdk-lexmodelbuilding-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-resourcegroupstaggingapi\1.11.368\aws-java-sdk-resourcegroupstaggingapi-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-pinpoint\1.11.368\aws-java-sdk-pinpoint-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-xray\1.11.368\aws-java-sdk-xray-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-opsworkscm\1.11.368\aws-java-sdk-opsworkscm-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-support\1.11.368\aws-java-sdk-support-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-simpledb\1.11.368\aws-java-sdk-simpledb-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-servicecatalog\1.11.368\aws-java-sdk-servicecatalog-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-servermigration\1.11.368\aws-java-sdk-servermigration-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-simpleworkflow\1.11.368\aws-java-sdk-simpleworkflow-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-storagegateway\1.11.368\aws-java-sdk-storagegateway-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-route53\1.11.368\aws-java-sdk-route53-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-s3\1.11.368\aws-java-sdk-s3-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-importexport\1.11.368\aws-java-sdk-importexport-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-sts\1.11.368\aws-java-sdk-sts-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-sqs\1.11.368\aws-java-sdk-sqs-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-rds\1.11.368\aws-java-sdk-rds-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-redshift\1.11.368\aws-java-sdk-redshift-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-elasticbeanstalk\1.11.368\aws-java-sdk-elasticbeanstalk-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-glacier\1.11.368\aws-java-sdk-glacier-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-iam\1.11.368\aws-java-sdk-iam-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-datapipeline\1.11.368\aws-java-sdk-datapipeline-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-elasticloadbalancing\1.11.368\aws-java-sdk-elasticloadbalancing-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-elasticloadbalancingv2\1.11.368\aws-java-sdk-elasticloadbalancingv2-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-emr\1.11.368\aws-java-sdk-emr-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-elasticache\1.11.368\aws-java-sdk-elasticache-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-elastictranscoder\1.11.368\aws-java-sdk-elastictranscoder-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-ec2\1.11.368\aws-java-sdk-ec2-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-dynamodb\1.11.368\aws-java-sdk-dynamodb-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-sns\1.11.368\aws-java-sdk-sns-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-budgets\1.11.368\aws-java-sdk-budgets-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudtrail\1.11.368\aws-java-sdk-cloudtrail-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudwatch\1.11.368\aws-java-sdk-cloudwatch-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-logs\1.11.368\aws-java-sdk-logs-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-events\1.11.368\aws-java-sdk-events-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cognitoidentity\1.11.368\aws-java-sdk-cognitoidentity-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cognitosync\1.11.368\aws-java-sdk-cognitosync-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-directconnect\1.11.368\aws-java-sdk-directconnect-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudformation\1.11.368\aws-java-sdk-cloudformation-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudfront\1.11.368\aws-java-sdk-cloudfront-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-clouddirectory\1.11.368\aws-java-sdk-clouddirectory-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-kinesis\1.11.368\aws-java-sdk-kinesis-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-opsworks\1.11.368\aws-java-sdk-opsworks-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-ses\1.11.368\aws-java-sdk-ses-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-autoscaling\1.11.368\aws-java-sdk-autoscaling-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudsearch\1.11.368\aws-java-sdk-cloudsearch-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudwatchmetrics\1.11.368\aws-java-sdk-cloudwatchmetrics-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-codedeploy\1.11.368\aws-java-sdk-codedeploy-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-codepipeline\1.11.368\aws-java-sdk-codepipeline-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-kms\1.11.368\aws-java-sdk-kms-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-config\1.11.368\aws-java-sdk-config-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-lambda\1.11.368\aws-java-sdk-lambda-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-ecs\1.11.368\aws-java-sdk-ecs-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-ecr\1.11.368\aws-java-sdk-ecr-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudhsm\1.11.368\aws-java-sdk-cloudhsm-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-ssm\1.11.368\aws-java-sdk-ssm-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-workspaces\1.11.368\aws-java-sdk-workspaces-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-machinelearning\1.11.368\aws-java-sdk-machinelearning-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-directory\1.11.368\aws-java-sdk-directory-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-efs\1.11.368\aws-java-sdk-efs-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-codecommit\1.11.368\aws-java-sdk-codecommit-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-devicefarm\1.11.368\aws-java-sdk-devicefarm-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-elasticsearch\1.11.368\aws-java-sdk-elasticsearch-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-waf\1.11.368\aws-java-sdk-waf-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-marketplacecommerceanalytics\1.11.368\aws-java-sdk-marketplacecommerceanalytics-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-inspector\1.11.368\aws-java-sdk-inspector-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-iot\1.11.368\aws-java-sdk-iot-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-api-gateway\1.11.368\aws-java-sdk-api-gateway-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-acm\1.11.368\aws-java-sdk-acm-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-gamelift\1.11.368\aws-java-sdk-gamelift-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-dms\1.11.368\aws-java-sdk-dms-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-marketplacemeteringservice\1.11.368\aws-java-sdk-marketplacemeteringservice-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cognitoidp\1.11.368\aws-java-sdk-cognitoidp-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-discovery\1.11.368\aws-java-sdk-discovery-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-applicationautoscaling\1.11.368\aws-java-sdk-applicationautoscaling-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-snowball\1.11.368\aws-java-sdk-snowball-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-rekognition\1.11.368\aws-java-sdk-rekognition-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-polly\1.11.368\aws-java-sdk-polly-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-lightsail\1.11.368\aws-java-sdk-lightsail-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-stepfunctions\1.11.368\aws-java-sdk-stepfunctions-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-health\1.11.368\aws-java-sdk-health-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-costandusagereport\1.11.368\aws-java-sdk-costandusagereport-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-codebuild\1.11.368\aws-java-sdk-codebuild-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-appstream\1.11.368\aws-java-sdk-appstream-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-shield\1.11.368\aws-java-sdk-shield-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-batch\1.11.368\aws-java-sdk-batch-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-lex\1.11.368\aws-java-sdk-lex-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mechanicalturkrequester\1.11.368\aws-java-sdk-mechanicalturkrequester-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-organizations\1.11.368\aws-java-sdk-organizations-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-workdocs\1.11.368\aws-java-sdk-workdocs-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-core\1.11.368\aws-java-sdk-core-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\software\amazon\ion\ion-java\1.0.2\ion-java-1.0.2.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\dataformat\jackson-dataformat-cbor\2.6.7\jackson-dataformat-cbor-2.6.7.jar;C:\Users\Sohan.Dey\.m2\repository\joda-time\joda-time\2.8.1\joda-time-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-models\1.11.368\aws-java-sdk-models-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-swf-libraries\1.11.22\aws-java-sdk-swf-libraries-1.11.22.jar;C:\Users\Sohan.Dey\.m2\repository\com\aventstack\extentreports\3.0.0\extentreports-3.0.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\freemarker\freemarker\2.3.23\freemarker-2.3.23.jar;C:\Users\Sohan.Dey\.m2\repository\org\mongodb\mongodb-driver\3.3.0\mongodb-driver-3.3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\mongodb\bson\3.3.0\bson-3.3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\mongodb\mongodb-driver-core\3.3.0\mongodb-driver-core-3.3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\httpcomponents\httpmime\4.5.2\httpmime-4.5.2.jar;C:\Users\Sohan.Dey\.m2\repository\com\relevantcodes\extentreports\2.41.2\extentreports-2.41.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\jsoup\jsoup\1.8.3\jsoup-1.8.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\xerial\sqlite-jdbc\3.8.11.1\sqlite-jdbc-3.8.11.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\jayway\jsonpath\json-path\2.4.0\json-path-2.4.0.jar;C:\Users\Sohan.Dey\.m2\repository\net\minidev\json-smart\2.3\json-smart-2.3.jar;C:\Users\Sohan.Dey\.m2\repository\net\minidev\accessors-smart\1.2\accessors-smart-1.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\ow2\asm\asm\5.0.4\asm-5.0.4.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-model\3.3.9\maven-model-3.3.9.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\plexus\plexus-utils\3.0.22\plexus-utils-3.0.22.jar;C:\Users\Sohan.Dey\.m2\repository\io\rest-assured\rest-assured\3.0.7\rest-assured-3.0.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\groovy\groovy\2.4.12\groovy-2.4.12.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\groovy\groovy-xml\2.4.12\groovy-xml-2.4.12.jar;C:\Users\Sohan.Dey\.m2\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\hamcrest\hamcrest-library\1.3\hamcrest-library-1.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\ccil\cowan\tagsoup\tagsoup\1.2.1\tagsoup-1.2.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\rest-assured\json-path\3.0.7\json-path-3.0.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\groovy\groovy-json\2.4.12\groovy-json-2.4.12.jar;C:\Users\Sohan.Dey\.m2\repository\io\rest-assured\rest-assured-common\3.0.7\rest-assured-common-3.0.7.jar;C:\Users\Sohan.Dey\.m2\repository\io\rest-assured\xml-path\3.0.7\xml-path-3.0.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\testng\testng\6.11\testng-6.11.jar;C:\Users\Sohan.Dey\.m2\repository\com\beust\jcommander\1.64\jcommander-1.64.jar;C:\Users\Sohan.Dey\.m2\repository\org\yaml\snakeyaml\1.17\snakeyaml-1.17.jar;C:\Users\Sohan.Dey\.m2\repository\org\zeroturnaround\zt-zip\1.13\zt-zip-1.13.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.10.1\jackson-core-2.10.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.9.5\jackson-annotations-2.9.5.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.10.5\jackson-databind-2.10.5.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\dataformat\jackson-dataformat-xml\2.9.5\jackson-dataformat-xml-2.9.5.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\module\jackson-module-jaxb-annotations\2.9.5\jackson-module-jaxb-annotations-2.9.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\woodstox\stax2-api\3.1.4\stax2-api-3.1.4.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\woodstox\woodstox-core\5.0.3\woodstox-core-5.0.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\json\json\20180130\json-20180130.jar;C:\Users\Sohan.Dey\.m2\repository\com\googlecode\json-simple\json-simple\1.1.1\json-simple-1.1.1.jar;C:\Users\Sohan.Dey\.m2\repository\junit\junit\4.10\junit-4.10.jar;C:\Users\Sohan.Dey\.m2\repository\com\google\code\gson\gson\2.8.4\gson-2.8.4.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\plugins\maven-assembly-plugin\3.1.0\maven-assembly-plugin-3.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-plugin-api\3.0\maven-plugin-api-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\sisu\sisu-inject-plexus\1.4.2\sisu-inject-plexus-1.4.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\sisu\sisu-inject-bean\1.4.2\sisu-inject-bean-1.4.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\sisu\sisu-guice\2.1.7\sisu-guice-2.1.7-noaop.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-core\3.0\maven-core-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-settings\3.0\maven-settings-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-settings-builder\3.0\maven-settings-builder-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-repository-metadata\3.0\maven-repository-metadata-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-model-builder\3.0\maven-model-builder-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-aether-provider\3.0\maven-aether-provider-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\aether\aether-impl\1.7\aether-impl-1.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\aether\aether-spi\1.7\aether-spi-1.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\aether\aether-api\1.7\aether-api-1.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\aether\aether-util\1.7\aether-util-1.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\plexus\plexus-classworlds\2.2.3\plexus-classworlds-2.2.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\plexus\plexus-component-annotations\1.5.5\plexus-component-annotations-1.5.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\plexus\plexus-sec-dispatcher\1.3\plexus-sec-dispatcher-1.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\plexus\plexus-cipher\1.4\plexus-cipher-1.4.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-artifact\3.0\maven-artifact-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\shared\maven-common-artifact-filters\3.0.1\maven-common-artifact-filters-3.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\shared\maven-shared-utils\3.1.0\maven-shared-utils-3.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\shared\maven-artifact-transfer\0.9.0\maven-artifact-transfer-0.9.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\plexus\plexus-interpolation\1.24\plexus-interpolation-1.24.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\plexus\plexus-archiver\3.5\plexus-archiver-3.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\commons\commons-compress\1.14\commons-compress-1.14.jar;C:\Users\Sohan.Dey\.m2\repository\org\iq80\snappy\snappy\0.4\snappy-0.4.jar;C:\Users\Sohan.Dey\.m2\repository\org\tukaani\xz\1.6\xz-1.6.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\shared\file-management\3.0.0\file-management-3.0.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\shared\maven-shared-io\3.0.0\maven-shared-io-3.0.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-compat\3.0\maven-compat-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\wagon\wagon-provider-api\2.10\wagon-provider-api-2.10.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\shared\maven-filtering\3.1.1\maven-filtering-3.1.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\plexus\plexus-build-api\0.0.7\plexus-build-api-0.0.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\plexus\plexus-io\3.0.0\plexus-io-3.0.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-archiver\3.2.0\maven-archiver-3.2.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\google\guava\guava\19.0\guava-19.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\hibernate\hibernate-core\5.4.2.Final\hibernate-core-5.4.2.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\logging\jboss-logging\3.3.2.Final\jboss-logging-3.3.2.Final.jar;C:\Users\Sohan.Dey\.m2\repository\javax\persistence\javax.persistence-api\2.2\javax.persistence-api-2.2.jar;C:\Users\Sohan.Dey\.m2\repository\net\bytebuddy\byte-buddy\1.9.10\byte-buddy-1.9.10.jar;C:\Users\Sohan.Dey\.m2\repository\antlr\antlr\2.7.7\antlr-2.7.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\spec\javax\transaction\jboss-transaction-api_1.2_spec\1.1.1.Final\jboss-transaction-api_1.2_spec-1.1.1.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\jandex\2.0.5.Final\jandex-2.0.5.Final.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\classmate\1.3.4\classmate-1.3.4.jar;C:\Users\Sohan.Dey\.m2\repository\javax\activation\javax.activation-api\1.2.0\javax.activation-api-1.2.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\dom4j\dom4j\2.1.1\dom4j-2.1.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\hibernate\common\hibernate-commons-annotations\5.1.0.Final\hibernate-commons-annotations-5.1.0.Final.jar;C:\Users\Sohan.Dey\.m2\repository\javax\xml\bind\jaxb-api\2.3.1\jaxb-api-2.3.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\glassfish\jaxb\jaxb-runtime\2.3.1\jaxb-runtime-2.3.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\glassfish\jaxb\txw2\2.3.1\txw2-2.3.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\sun\istack\istack-commons-runtime\3.0.7\istack-commons-runtime-3.0.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\jvnet\staxex\stax-ex\1.8\stax-ex-1.8.jar;C:\Users\Sohan.Dey\.m2\repository\com\sun\xml\fastinfoset\FastInfoset\1.2.15\FastInfoset-1.2.15.jar;C:\Users\Sohan.Dey\.m2\repository\commons-beanutils\commons-beanutils\1.9.2\commons-beanutils-1.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\commons-logging\commons-logging\1.1.1\commons-logging-1.1.1.jar;C:\Users\Sohan.Dey\.m2\repository\commons-collections\commons-collections\3.2.1\commons-collections-3.2.1.jar;C:\Users\Sohan.Dey\.m2\repository\javax\validation\validation-api\2.0.1.Final\validation-api-2.0.1.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\swagger\swagger-annotations\1.5.20\swagger-annotations-1.5.20.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.9.5\jackson-datatype-jsr310-2.9.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\postgresql\postgresql\42.2.2\postgresql-42.2.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\slf4j\slf4j-log4j12\1.6.2\slf4j-log4j12-1.6.2.jar;C:\Users\Sohan.Dey\.m2\repository\log4j\log4j\1.2.16\log4j-1.2.16.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\logging\log4j\log4j-api\2.11.1\log4j-api-2.11.1.jar;C:\Users\Sohan.Dey\.m2\repository\net\lingala\zip4j\zip4j\1.3.2\zip4j-1.3.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\httpcomponents\httpclient\4.5.3\httpclient-4.5.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\httpcomponents\httpcore\4.4.6\httpcore-4.4.6.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-client\2.8.1\hadoop-client-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-common\2.8.1\hadoop-common-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\commons-cli\commons-cli\1.2\commons-cli-1.2.jar;C:\Users\Sohan.Dey\.m2\repository\xmlenc\xmlenc\0.52\xmlenc-0.52.jar;C:\Users\Sohan.Dey\.m2\repository\commons-net\commons-net\3.1\commons-net-3.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\mortbay\jetty\jetty-sslengine\6.1.26\jetty-sslengine-6.1.26.jar;C:\Users\Sohan.Dey\.m2\repository\javax\servlet\jsp\jsp-api\2.1\jsp-api-2.1.jar;C:\Users\Sohan.Dey\.m2\repository\commons-configuration\commons-configuration\1.6\commons-configuration-1.6.jar;C:\Users\Sohan.Dey\.m2\repository\commons-digester\commons-digester\1.8\commons-digester-1.8.jar;C:\Users\Sohan.Dey\.m2\repository\commons-beanutils\commons-beanutils-core\1.8.0\commons-beanutils-core-1.8.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\jackson\jackson-core-asl\1.9.13\jackson-core-asl-1.9.13.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\jackson\jackson-mapper-asl\1.9.13\jackson-mapper-asl-1.9.13.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\avro\avro\1.7.4\avro-1.7.4.jar;C:\Users\Sohan.Dey\.m2\repository\com\thoughtworks\paranamer\paranamer\2.3\paranamer-2.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\xerial\snappy\snappy-java\1.0.4.1\snappy-java-1.0.4.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\google\protobuf\protobuf-java\2.5.0\protobuf-java-2.5.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-auth\2.8.1\hadoop-auth-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\directory\server\apacheds-kerberos-codec\2.0.0-M15\apacheds-kerberos-codec-2.0.0-M15.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\directory\server\apacheds-i18n\2.0.0-M15\apacheds-i18n-2.0.0-M15.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\directory\api\api-asn1-api\1.0.0-M20\api-asn1-api-1.0.0-M20.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\directory\api\api-util\1.0.0-M20\api-util-1.0.0-M20.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\curator\curator-framework\2.7.1\curator-framework-2.7.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\curator\curator-client\2.7.1\curator-client-2.7.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\curator\curator-recipes\2.7.1\curator-recipes-2.7.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\google\code\findbugs\jsr305\3.0.0\jsr305-3.0.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\htrace\htrace-core4\4.0.1-incubating\htrace-core4-4.0.1-incubating.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\zookeeper\zookeeper\3.4.6\zookeeper-3.4.6.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty\3.7.0.Final\netty-3.7.0.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-hdfs\2.8.1\hadoop-hdfs-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-hdfs-client\2.8.1\hadoop-hdfs-client-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\squareup\okhttp\okhttp\2.4.0\okhttp-2.4.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\squareup\okio\okio\1.4.0\okio-1.4.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-app\2.8.1\hadoop-mapreduce-client-app-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-common\2.8.1\hadoop-mapreduce-client-common-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-yarn-client\2.8.1\hadoop-yarn-client-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-yarn-server-common\2.8.1\hadoop-yarn-server-common-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-shuffle\2.8.1\hadoop-mapreduce-client-shuffle-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\fusesource\leveldbjni\leveldbjni-all\1.8\leveldbjni-all-1.8.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-yarn-api\2.8.1\hadoop-yarn-api-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-core\2.8.1\hadoop-mapreduce-client-core-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-yarn-common\2.8.1\hadoop-yarn-common-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\javax\servlet\servlet-api\2.5\servlet-api-2.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\mortbay\jetty\jetty-util\6.1.26\jetty-util-6.1.26.jar;C:\Users\Sohan.Dey\.m2\repository\com\sun\jersey\jersey-core\1.9\jersey-core-1.9.jar;C:\Users\Sohan.Dey\.m2\repository\com\sun\jersey\jersey-client\1.9\jersey-client-1.9.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\jackson\jackson-jaxrs\1.9.13\jackson-jaxrs-1.9.13.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\jackson\jackson-xc\1.9.13\jackson-xc-1.9.13.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-jobclient\2.8.1\hadoop-mapreduce-client-jobclient-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-annotations\2.8.1\hadoop-annotations-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\bouncycastle\bcprov-jdk16\1.45\bcprov-jdk16-1.45.jar;C:\Users\Sohan.Dey\.m2\repository\commons-codec\commons-codec\1.11\commons-codec-1.11.jar;C:\Users\Sohan.Dey\.m2\repository\commons-io\commons-io\2.6\commons-io-2.6.jar;C:\Users\Sohan.Dey\.m2\repository\com\google\zxing\core\3.3.3\core-3.3.3.jar;C:\Users\Sohan.Dey\.m2\repository\com\google\zxing\javase\2.0\javase-2.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\hamcrest\hamcrest-all\1.3\hamcrest-all-1.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\velocity\velocity\1.7\velocity-1.7.jar;C:\Users\Sohan.Dey\.m2\repository\commons-lang\commons-lang\2.4\commons-lang-2.4.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\html2pdf\2.0.0\html2pdf-2.0.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\forms\7.1.0\forms-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\kernel\7.1.0\kernel-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\io\7.1.0\io-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\layout\7.1.0\layout-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\itextpdf\5.5.13\itextpdf-5.5.13.jar;C:\Users\Sohan.Dey\.m2\repository\javax\mail\javax.mail-api\1.6.2\javax.mail-api-1.6.2.jar;D:\Mosip_Automation_Test\Docker_Test\MOSIP-19726\mosip-functional-tests\authentication-demo-service\target\classes;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-web\2.0.2.RELEASE\spring-boot-starter-web-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-json\2.0.2.RELEASE\spring-boot-starter-json-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.9.5\jackson-datatype-jdk8-2.9.5.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.9.5\jackson-module-parameter-names-2.9.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\2.0.2.RELEASE\spring-boot-starter-tomcat-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\tomcat\embed\tomcat-embed-el\8.5.31\tomcat-embed-el-8.5.31.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\8.5.31\tomcat-embed-websocket-8.5.31.jar;C:\Users\Sohan.Dey\.m2\repository\org\hibernate\validator\hibernate-validator\6.0.9.Final\hibernate-validator-6.0.9.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-web\5.0.6.RELEASE\spring-web-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-webmvc\5.0.6.RELEASE\spring-webmvc-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-expression\5.0.6.RELEASE\spring-expression-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-test\2.0.2.RELEASE\spring-boot-starter-test-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-test\2.0.2.RELEASE\spring-boot-test-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-test-autoconfigure\2.0.2.RELEASE\spring-boot-test-autoconfigure-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\assertj\assertj-core\3.9.1\assertj-core-3.9.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\skyscreamer\jsonassert\1.5.0\jsonassert-1.5.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\vaadin\external\google\android-json\0.0.20131108.vaadin1\android-json-0.0.20131108.vaadin1.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-core\5.0.6.RELEASE\spring-core-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-jcl\5.0.6.RELEASE\spring-jcl-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-test\5.0.6.RELEASE\spring-test-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\xmlunit\xmlunit-core\2.5.1\xmlunit-core-2.5.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\springfox\springfox-swagger-ui\2.9.2\springfox-swagger-ui-2.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\io\springfox\springfox-spring-web\2.9.2\springfox-spring-web-2.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\io\springfox\springfox-swagger2\2.9.2\springfox-swagger2-2.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\io\springfox\springfox-spi\2.9.2\springfox-spi-2.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\io\springfox\springfox-core\2.9.2\springfox-core-2.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\io\springfox\springfox-schema\2.9.2\springfox-schema-2.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\io\springfox\springfox-swagger-common\2.9.2\springfox-swagger-common-2.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\plugin\spring-plugin-core\1.2.0.RELEASE\spring-plugin-core-1.2.0.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\plugin\spring-plugin-metadata\1.2.0.RELEASE\spring-plugin-metadata-1.2.0.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\mapstruct\mapstruct\1.2.0.Final\mapstruct-1.2.0.Final.jar;C:\Users\Sohan.Dey\.m2\repository\javax\ws\rs\javax.ws.rs-api\2.0\javax.ws.rs-api-2.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\authentication\authentication-core\1.2.0.1-SNAPSHOT\authentication-core-1.2.0.1-SNAPSHOT.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-cache\2.0.2.RELEASE\spring-boot-starter-cache-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-context-support\5.0.6.RELEASE\spring-context-support-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\com\machinezoo\sourceafis\sourceafis\3.4.0\sourceafis-3.4.0.jar;C:\Users\Sohan.Dey\.m2\repository\net\sf\trove4j\trove4j\3.0.3\trove4j-3.0.3.jar;C:\Users\Sohan.Dey\.m2\repository\com\machinezoo\noexception\noexception\1.3.2\noexception-1.3.2.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\mhshams\jnbis\2.0.1\jnbis-2.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\sanselan\sanselan\0.97-incubator\sanselan-0.97-incubator.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\idrepository\id-repository-core\1.2.0\id-repository-core-1.2.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-biosdk-provider\1.2.0\kernel-biosdk-provider-1.2.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-biometrics-api\1.2.0\kernel-biometrics-api-1.2.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-demographics-api\1.2.0\kernel-demographics-api-1.2.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-webflux\2.0.2.RELEASE\spring-boot-starter-webflux-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-reactor-netty\2.0.2.RELEASE\spring-boot-starter-reactor-netty-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\io\projectreactor\ipc\reactor-netty\0.7.7.RELEASE\reactor-netty-0.7.7.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-handler-proxy\4.1.24.Final\netty-handler-proxy-4.1.24.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-codec-socks\4.1.24.Final\netty-codec-socks-4.1.24.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-transport-native-epoll\4.1.24.Final\netty-transport-native-epoll-4.1.24.Final-linux-x86_64.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-transport-native-unix-common\4.1.24.Final\netty-transport-native-unix-common-4.1.24.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-webflux\5.0.6.RELEASE\spring-webflux-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\io\projectreactor\reactor-core\3.1.7.RELEASE\reactor-core-3.1.7.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\synchronoss\cloud\nio-multipart-parser\1.1.0\nio-multipart-parser-1.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\synchronoss\cloud\nio-stream-storage\1.1.3\nio-stream-storage-1.1.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\springdoc\springdoc-openapi-ui\1.5.10\springdoc-openapi-ui-1.5.10.jar;C:\Users\Sohan.Dey\.m2\repository\org\springdoc\springdoc-openapi-webmvc-core\1.5.10\springdoc-openapi-webmvc-core-1.5.10.jar;C:\Users\Sohan.Dey\.m2\repository\org\springdoc\springdoc-openapi-common\1.5.10\springdoc-openapi-common-1.5.10.jar;C:\Users\Sohan.Dey\.m2\repository\io\swagger\core\v3\swagger-models\2.1.10\swagger-models-2.1.10.jar;C:\Users\Sohan.Dey\.m2\repository\io\swagger\core\v3\swagger-annotations\2.1.10\swagger-annotations-2.1.10.jar;C:\Users\Sohan.Dey\.m2\repository\io\swagger\core\v3\swagger-integration\2.1.10\swagger-integration-2.1.10.jar;C:\Users\Sohan.Dey\.m2\repository\io\swagger\core\v3\swagger-core\2.1.10\swagger-core-2.1.10.jar;C:\Users\Sohan.Dey\.m2\repository\jakarta\xml\bind\jakarta.xml.bind-api\2.3.2\jakarta.xml.bind-api-2.3.2.jar;C:\Users\Sohan.Dey\.m2\repository\jakarta\activation\jakarta.activation-api\1.2.1\jakarta.activation-api-1.2.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\dataformat\jackson-dataformat-yaml\2.12.1\jackson-dataformat-yaml-2.12.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\github\classgraph\classgraph\4.8.69\classgraph-4.8.69.jar;C:\Users\Sohan.Dey\.m2\repository\org\webjars\swagger-ui\3.51.1\swagger-ui-3.51.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\webjars\webjars-locator-core\0.45\webjars-locator-core-0.45.jar;C:\Users\Sohan.Dey\.m2\repository\commons-fileupload\commons-fileupload\1.4\commons-fileupload-1.4.jar;C:\Users\Sohan.Dey\.m2\repository\org\mockito\mockito-core\2.23.4\mockito-core-2.23.4.jar;C:\Users\Sohan.Dey\.m2\repository\net\bytebuddy\byte-buddy-agent\1.9.3\byte-buddy-agent-1.9.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\objenesis\objenesis\2.6\objenesis-2.6.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-websubclient-api\1.2.0.1-SNAPSHOT\kernel-websubclient-api-1.2.0.1-SNAPSHOT.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-aspects\5.0.6.RELEASE\spring-aspects-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\aspectj\aspectjweaver\1.8.13\aspectjweaver-1.8.13.jar;C:\Users\Sohan.Dey\.m2\repository\org\owasp\encoder\encoder\1.2.3\encoder-1.2.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\tensorflow\tensorflow\1.12.0\tensorflow-1.12.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\tensorflow\libtensorflow\1.12.0\libtensorflow-1.12.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\tensorflow\libtensorflow_jni\1.12.0\libtensorflow_jni-1.12.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-templatemanager-velocity\1.2.0.1-SNAPSHOT\kernel-templatemanager-velocity-1.2.0.1-SNAPSHOT.jar;C:\Users\Sohan.Dey\.m2\repository\javax\servlet\javax.servlet-api\4.0.1\javax.servlet-api-4.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\cloud\spring-cloud-starter-config\2.0.0.RELEASE\spring-cloud-starter-config-2.0.0.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\cloud\spring-cloud-starter\2.0.0.RELEASE\spring-cloud-starter-2.0.0.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\cloud\spring-cloud-context\2.0.0.RELEASE\spring-cloud-context-2.0.0.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\security\spring-security-crypto\5.0.6.RELEASE\spring-security-crypto-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\cloud\spring-cloud-commons\2.0.0.RELEASE\spring-cloud-commons-2.0.0.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\security\spring-security-rsa\1.0.5.RELEASE\spring-security-rsa-1.0.5.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\cloud\spring-cloud-config-client\2.0.0.RELEASE\spring-cloud-config-client-2.0.0.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\jai-imageio\jai-imageio-jpeg2000\1.3.0\jai-imageio-jpeg2000-1.3.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\jai-imageio\jai-imageio-core\1.3.0\jai-imageio-core-1.3.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-keymanager-service\1.2.0.1-SNAPSHOT\kernel-keymanager-service-1.2.0.1-SNAPSHOT-lib.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\security\spring-security-test\5.0.5.RELEASE\spring-security-test-5.0.5.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\security\spring-security-core\5.0.5.RELEASE\spring-security-core-5.0.5.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-pdfgenerator-itext\1.2.0.1-SNAPSHOT\kernel-pdfgenerator-itext-1.2.0.1-SNAPSHOT.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\barcodes\7.1.0\barcodes-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\font-asian\7.1.0\font-asian-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\hyph\7.1.0\hyph-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\pdfa\7.1.0\pdfa-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\sign\7.1.0\sign-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\tool\xmlworker\5.5.13\xmlworker-5.5.13.jar;C:\Users\Sohan.Dey\.m2\repository\org\bouncycastle\bcpkix-jdk15on\1.66\bcpkix-jdk15on-1.66.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-data-jpa\2.0.2.RELEASE\spring-boot-starter-data-jpa-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-jdbc\2.0.2.RELEASE\spring-boot-starter-jdbc-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\com\zaxxer\HikariCP\2.7.9\HikariCP-2.7.9.jar;C:\Users\Sohan.Dey\.m2\repository\com\h2database\h2\1.4.197\h2-1.4.197.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\microsoft\TSS.Java\0.3.0\TSS.Java-0.3.0.jar;C:\Users\Sohan.Dey\.m2\repository\net\java\dev\jna\jna\4.4.0\jna-4.4.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\cache2k\cache2k-api\2.4.1.Final\cache2k-api-2.4.1.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\cache2k\cache2k-core\2.4.1.Final\cache2k-core-2.4.1.Final.jar;C:\Users\Sohan.Dey\.m2\repository\com\nimbusds\nimbus-jose-jwt\9.14\nimbus-jose-jwt-9.14.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-core\1.2.0.1-SNAPSHOT\kernel-core-1.2.0.1-SNAPSHOT.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter\2.0.2.RELEASE\spring-boot-starter-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot\2.0.2.RELEASE\spring-boot-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\2.0.2.RELEASE\spring-boot-autoconfigure-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-logging\2.0.2.RELEASE\spring-boot-starter-logging-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.10.0\log4j-to-slf4j-2.10.0.jar;C:\Users\Sohan.Dey\.m2\repository\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\data\spring-data-jpa\2.0.7.RELEASE\spring-data-jpa-2.0.7.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\data\spring-data-commons\2.0.7.RELEASE\spring-data-commons-2.0.7.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-orm\5.0.6.RELEASE\spring-orm-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-jdbc\5.0.6.RELEASE\spring-jdbc-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-context\5.0.6.RELEASE\spring-context-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-aop\5.0.6.RELEASE\spring-aop-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-tx\5.0.6.RELEASE\spring-tx-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-beans\5.0.6.RELEASE\spring-beans-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\aspectj\aspectjrt\1.8.12\aspectjrt-1.8.12.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-security\2.0.2.RELEASE\spring-boot-starter-security-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\security\spring-security-config\5.0.5.RELEASE\spring-security-config-5.0.5.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\security\spring-security-web\5.0.5.RELEASE\spring-security-web-5.0.5.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\javax\transaction\javax.transaction-api\1.3\javax.transaction-api-1.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\bouncycastle\bcprov-jdk15on\1.66\bcprov-jdk15on-1.66.jar;C:\Users\Sohan.Dey\.m2\repository\javax\interceptor\javax.interceptor-api\1.2\javax.interceptor-api-1.2.jar;C:\Users\Sohan.Dey\.m2\repository\com\google\code\findbugs\annotations\3.0.1\annotations-3.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\net\jcip\jcip-annotations\1.0\jcip-annotations-1.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\swagger\swagger-models\1.5.21\swagger-models-1.5.21.jar;C:\Users\Sohan.Dey\.m2\repository\com\auth0\java-jwt\3.8.1\java-jwt-3.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\micrometer\micrometer-core\1.4.2\micrometer-core-1.4.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\hdrhistogram\HdrHistogram\2.1.12\HdrHistogram-2.1.12.jar;C:\Users\Sohan.Dey\.m2\repository\org\latencyutils\LatencyUtils\2.0.3\LatencyUtils-2.0.3.jar;C:\Users\Sohan.Dey\.m2\repository\io\micrometer\micrometer-registry-prometheus\1.4.2\micrometer-registry-prometheus-1.4.2.jar;C:\Users\Sohan.Dey\.m2\repository\io\prometheus\simpleclient_common\0.8.1\simpleclient_common-0.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\prometheus\simpleclient\0.8.1\simpleclient-0.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\slf4j\jul-to-slf4j\1.7.25\jul-to-slf4j-1.7.25.jar;C:\Users\Sohan.Dey\.m2\repository\org\slf4j\jcl-over-slf4j\1.7.25\jcl-over-slf4j-1.7.25.jar;C:\Users\Sohan.Dey\.m2\repository\javax\activation\activation\1.1\activation-1.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\cloud\spring-cloud-starter-sleuth\2.0.4.RELEASE\spring-cloud-starter-sleuth-2.0.4.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-aop\2.0.9.RELEASE\spring-boot-starter-aop-2.0.9.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\cloud\spring-cloud-sleuth-core\2.0.4.RELEASE\spring-cloud-sleuth-core-2.0.4.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave\5.6.1\brave-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\zipkin2\zipkin\2.12.0\zipkin-2.12.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\reporter2\zipkin-reporter\2.7.14\zipkin-reporter-2.7.14.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-context-log4j2\5.6.1\brave-context-log4j2-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-spring-web\5.6.1\brave-instrumentation-spring-web-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-http\5.6.1\brave-instrumentation-http-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-spring-rabbit\5.6.1\brave-instrumentation-spring-rabbit-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-kafka-clients\5.6.1\brave-instrumentation-kafka-clients-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-httpclient\5.6.1\brave-instrumentation-httpclient-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-httpasyncclient\5.6.1\brave-instrumentation-httpasyncclient-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-spring-webmvc\5.6.1\brave-instrumentation-spring-webmvc-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-servlet\5.6.1\brave-instrumentation-servlet-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-actuator\2.0.2.RELEASE\spring-boot-starter-actuator-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-actuator-autoconfigure\2.0.2.RELEASE\spring-boot-actuator-autoconfigure-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-actuator\2.0.2.RELEASE\spring-boot-actuator-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\8.5.55\tomcat-embed-core-8.5.55.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\tomcat\tomcat-annotations-api\8.5.55\tomcat-annotations-api-8.5.55.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\retry\spring-retry\1.2.1.RELEASE\spring-retry-1.2.1.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\module\jackson-module-afterburner\2.12.0\jackson-module-afterburner-2.12.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-registration-packet-manager\1.1.5.3\kernel-registration-packet-manager-1.1.5.3.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-keygenerator-bouncycastle\1.1.5.3\kernel-keygenerator-bouncycastle-1.1.5.3.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-cbeffutil-api\1.1.5.3\kernel-cbeffutil-api-1.1.5.3.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-logger-logback\1.1.5.3\kernel-logger-logback-1.1.5.3.jar;C:\Users\Sohan.Dey\.m2\repository\net\logstash\logback\logstash-logback-encoder\6.4\logstash-logback-encoder-6.4.jar;C:\Users\Sohan.Dey\.m2\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;C:\Users\Sohan.Dey\.m2\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;C:\Users\Sohan.Dey\.m2\repository\ch\qos\logback\logback-access\1.2.3\logback-access-1.2.3.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-crypto-jce\1.1.5.3\kernel-crypto-jce-1.1.5.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\bitbucket\b_c\jose4j\0.6.5\jose4j-0.6.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\wink\wink-json4j-provider\1.1.2-incubating\wink-json4j-provider-1.1.2-incubating.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\wink\wink-common\1.1.2-incubating\wink-common-1.1.2-incubating.jar;C:\Users\Sohan.Dey\.m2\repository\com\sun\xml\bind\jaxb-impl\2.2.1.1\jaxb-impl-2.2.1.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\geronimo\specs\geronimo-annotation_1.1_spec\1.0\geronimo-annotation_1.1_spec-1.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\wink\wink-json4j\1.1.2-incubating\wink-json4j-1.1.2-incubating.jar;C:\Users\Sohan.Dey\.m2\repository\javax\ws\rs\jsr311-api\1.1.1\jsr311-api-1.1.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\checkerframework\checker-qual\2.9.0\checker-qual-2.9.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\activemq\activemq-broker\5.15.9\activemq-broker-5.15.9.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\activemq\activemq-client\5.15.9\activemq-client-5.15.9.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\geronimo\specs\geronimo-jms_1.1_spec\1.1.1\geronimo-jms_1.1_spec-1.1.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\fusesource\hawtbuf\hawtbuf\1.11\hawtbuf-1.11.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\geronimo\specs\geronimo-j2ee-management_1.1_spec\1.0.1\geronimo-j2ee-management_1.1_spec-1.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\activemq\activemq-openwire-legacy\5.15.9\activemq-openwire-legacy-5.15.9.jar;C:\Users\Sohan.Dey\.m2\repository\org\projectlombok\lombok\1.18.8\lombok-1.18.8.jar \ No newline at end of file diff --git a/apitest/.temp-Functional Test-classpath-arg-1659589592502.txt b/apitest/.temp-Functional Test-classpath-arg-1659589592502.txt new file mode 100644 index 00000000000..bb81464f5e2 --- /dev/null +++ b/apitest/.temp-Functional Test-classpath-arg-1659589592502.txt @@ -0,0 +1 @@ +-classpath D:\Mosip_Automation_Test\Docker_Test\MOSIP-19726\mosip-functional-tests\automationtests\target\test-classes;D:\Mosip_Automation_Test\Docker_Test\MOSIP-19726\mosip-functional-tests\automationtests\target\classes;C:\Users\Sohan.Dey\.m2\repository\com\opencsv\opencsv\4.1\opencsv-4.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\commons\commons-lang3\3.6\commons-lang3-3.6.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\commons\commons-text\1.1\commons-text-1.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\ibm\icu\icu4j\63.1\icu4j-63.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\keycloak\keycloak-admin-client\17.0.1\keycloak-admin-client-17.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\keycloak\keycloak-core\17.0.1\keycloak-core-17.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\keycloak\keycloak-common\17.0.1\keycloak-common-17.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\resteasy\resteasy-client\3.13.2.Final\resteasy-client-3.13.2.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\spec\javax\ws\rs\jboss-jaxrs-api_2.1_spec\2.0.1.Final\jboss-jaxrs-api_2.1_spec-2.0.1.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\resteasy\resteasy-jaxrs\3.13.2.Final\resteasy-jaxrs-3.13.2.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\reactivestreams\reactive-streams\1.0.3\reactive-streams-1.0.3.jar;C:\Users\Sohan.Dey\.m2\repository\jakarta\validation\jakarta.validation-api\2.0.2\jakarta.validation-api-2.0.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\spec\javax\annotation\jboss-annotations-api_1.3_spec\2.0.1.Final\jboss-annotations-api_1.3_spec-2.0.1.Final.jar;C:\Users\Sohan.Dey\.m2\repository\com\sun\activation\jakarta.activation\1.2.1\jakarta.activation-1.2.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\stephenc\jcip\jcip-annotations\1.0-1\jcip-annotations-1.0-1.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\resteasy\resteasy-multipart-provider\3.13.2.Final\resteasy-multipart-provider-3.13.2.Final.jar;C:\Users\Sohan.Dey\.m2\repository\com\sun\mail\jakarta.mail\1.6.5\jakarta.mail-1.6.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\james\apache-mime4j\0.6\apache-mime4j-0.6.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\resteasy\resteasy-jackson2-provider\3.13.2.Final\resteasy-jackson2-provider-3.13.2.Final.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\jaxrs\jackson-jaxrs-json-provider\2.10.5\jackson-jaxrs-json-provider-2.10.5.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\jaxrs\jackson-jaxrs-base\2.10.5\jackson-jaxrs-base-2.10.5.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\fge\json-patch\1.9\json-patch-1.9.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\fge\jackson-coreutils\1.6\jackson-coreutils-1.6.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\fge\msg-simple\1.1\msg-simple-1.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\fge\btf\1.2\btf-1.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\resteasy\resteasy-jaxb-provider\3.13.2.Final\resteasy-jaxb-provider-3.13.2.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\spec\javax\xml\bind\jboss-jaxb-api_2.3_spec\2.0.0.Final\jboss-jaxb-api_2.3_spec-2.0.0.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\javassist\javassist\3.25.0-GA\javassist-3.25.0-GA.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\jknack\handlebars\3.0.0\handlebars-3.0.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\antlr\antlr4-runtime\4.5.1-1\antlr4-runtime-4.5.1-1.jar;C:\Users\Sohan.Dey\.m2\repository\org\mozilla\rhino\1.7R4\rhino-1.7R4.jar;C:\Users\Sohan.Dey\.m2\repository\org\slf4j\slf4j-api\1.6.4\slf4j-api-1.6.4.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\commons\commons-collections4\4.3\commons-collections4-4.3.jar;C:\Users\Sohan.Dey\.m2\repository\io\jsonwebtoken\jjwt\0.6.0\jjwt-0.6.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\flipkart\zjsonpatch\zjsonpatch\0.4.7\zjsonpatch-0.4.7.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk\1.11.368\aws-java-sdk-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-dlm\1.11.368\aws-java-sdk-dlm-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\jmespath-java\1.11.368\jmespath-java-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-macie\1.11.368\aws-java-sdk-macie-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-eks\1.11.368\aws-java-sdk-eks-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mediatailor\1.11.368\aws-java-sdk-mediatailor-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-neptune\1.11.368\aws-java-sdk-neptune-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-pi\1.11.368\aws-java-sdk-pi-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-iot1clickprojects\1.11.368\aws-java-sdk-iot1clickprojects-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-iot1clickdevices\1.11.368\aws-java-sdk-iot1clickdevices-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-iotanalytics\1.11.368\aws-java-sdk-iotanalytics-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-acmpca\1.11.368\aws-java-sdk-acmpca-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-secretsmanager\1.11.368\aws-java-sdk-secretsmanager-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-fms\1.11.368\aws-java-sdk-fms-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-connect\1.11.368\aws-java-sdk-connect-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-transcribe\1.11.368\aws-java-sdk-transcribe-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-autoscalingplans\1.11.368\aws-java-sdk-autoscalingplans-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-workmail\1.11.368\aws-java-sdk-workmail-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-servicediscovery\1.11.368\aws-java-sdk-servicediscovery-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloud9\1.11.368\aws-java-sdk-cloud9-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-serverlessapplicationrepository\1.11.368\aws-java-sdk-serverlessapplicationrepository-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-alexaforbusiness\1.11.368\aws-java-sdk-alexaforbusiness-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-resourcegroups\1.11.368\aws-java-sdk-resourcegroups-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-comprehend\1.11.368\aws-java-sdk-comprehend-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-translate\1.11.368\aws-java-sdk-translate-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-sagemaker\1.11.368\aws-java-sdk-sagemaker-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-iotjobsdataplane\1.11.368\aws-java-sdk-iotjobsdataplane-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-sagemakerruntime\1.11.368\aws-java-sdk-sagemakerruntime-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-kinesisvideo\1.11.368\aws-java-sdk-kinesisvideo-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-codec-http\4.1.17.Final\netty-codec-http-4.1.17.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-codec\4.1.17.Final\netty-codec-4.1.17.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-handler\4.1.17.Final\netty-handler-4.1.17.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-buffer\4.1.17.Final\netty-buffer-4.1.17.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-common\4.1.17.Final\netty-common-4.1.17.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-transport\4.1.17.Final\netty-transport-4.1.17.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-resolver\4.1.17.Final\netty-resolver-4.1.17.Final.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-appsync\1.11.368\aws-java-sdk-appsync-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-guardduty\1.11.368\aws-java-sdk-guardduty-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mq\1.11.368\aws-java-sdk-mq-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mediaconvert\1.11.368\aws-java-sdk-mediaconvert-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mediastore\1.11.368\aws-java-sdk-mediastore-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mediastoredata\1.11.368\aws-java-sdk-mediastoredata-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-medialive\1.11.368\aws-java-sdk-medialive-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mediapackage\1.11.368\aws-java-sdk-mediapackage-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-costexplorer\1.11.368\aws-java-sdk-costexplorer-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-pricing\1.11.368\aws-java-sdk-pricing-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mobile\1.11.368\aws-java-sdk-mobile-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudhsmv2\1.11.368\aws-java-sdk-cloudhsmv2-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-glue\1.11.368\aws-java-sdk-glue-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-migrationhub\1.11.368\aws-java-sdk-migrationhub-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-dax\1.11.368\aws-java-sdk-dax-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-greengrass\1.11.368\aws-java-sdk-greengrass-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-athena\1.11.368\aws-java-sdk-athena-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-marketplaceentitlement\1.11.368\aws-java-sdk-marketplaceentitlement-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-codestar\1.11.368\aws-java-sdk-codestar-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-lexmodelbuilding\1.11.368\aws-java-sdk-lexmodelbuilding-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-resourcegroupstaggingapi\1.11.368\aws-java-sdk-resourcegroupstaggingapi-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-pinpoint\1.11.368\aws-java-sdk-pinpoint-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-xray\1.11.368\aws-java-sdk-xray-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-opsworkscm\1.11.368\aws-java-sdk-opsworkscm-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-support\1.11.368\aws-java-sdk-support-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-simpledb\1.11.368\aws-java-sdk-simpledb-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-servicecatalog\1.11.368\aws-java-sdk-servicecatalog-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-servermigration\1.11.368\aws-java-sdk-servermigration-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-simpleworkflow\1.11.368\aws-java-sdk-simpleworkflow-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-storagegateway\1.11.368\aws-java-sdk-storagegateway-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-route53\1.11.368\aws-java-sdk-route53-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-s3\1.11.368\aws-java-sdk-s3-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-importexport\1.11.368\aws-java-sdk-importexport-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-sts\1.11.368\aws-java-sdk-sts-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-sqs\1.11.368\aws-java-sdk-sqs-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-rds\1.11.368\aws-java-sdk-rds-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-redshift\1.11.368\aws-java-sdk-redshift-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-elasticbeanstalk\1.11.368\aws-java-sdk-elasticbeanstalk-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-glacier\1.11.368\aws-java-sdk-glacier-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-iam\1.11.368\aws-java-sdk-iam-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-datapipeline\1.11.368\aws-java-sdk-datapipeline-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-elasticloadbalancing\1.11.368\aws-java-sdk-elasticloadbalancing-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-elasticloadbalancingv2\1.11.368\aws-java-sdk-elasticloadbalancingv2-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-emr\1.11.368\aws-java-sdk-emr-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-elasticache\1.11.368\aws-java-sdk-elasticache-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-elastictranscoder\1.11.368\aws-java-sdk-elastictranscoder-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-ec2\1.11.368\aws-java-sdk-ec2-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-dynamodb\1.11.368\aws-java-sdk-dynamodb-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-sns\1.11.368\aws-java-sdk-sns-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-budgets\1.11.368\aws-java-sdk-budgets-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudtrail\1.11.368\aws-java-sdk-cloudtrail-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudwatch\1.11.368\aws-java-sdk-cloudwatch-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-logs\1.11.368\aws-java-sdk-logs-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-events\1.11.368\aws-java-sdk-events-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cognitoidentity\1.11.368\aws-java-sdk-cognitoidentity-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cognitosync\1.11.368\aws-java-sdk-cognitosync-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-directconnect\1.11.368\aws-java-sdk-directconnect-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudformation\1.11.368\aws-java-sdk-cloudformation-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudfront\1.11.368\aws-java-sdk-cloudfront-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-clouddirectory\1.11.368\aws-java-sdk-clouddirectory-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-kinesis\1.11.368\aws-java-sdk-kinesis-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-opsworks\1.11.368\aws-java-sdk-opsworks-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-ses\1.11.368\aws-java-sdk-ses-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-autoscaling\1.11.368\aws-java-sdk-autoscaling-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudsearch\1.11.368\aws-java-sdk-cloudsearch-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudwatchmetrics\1.11.368\aws-java-sdk-cloudwatchmetrics-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-codedeploy\1.11.368\aws-java-sdk-codedeploy-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-codepipeline\1.11.368\aws-java-sdk-codepipeline-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-kms\1.11.368\aws-java-sdk-kms-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-config\1.11.368\aws-java-sdk-config-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-lambda\1.11.368\aws-java-sdk-lambda-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-ecs\1.11.368\aws-java-sdk-ecs-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-ecr\1.11.368\aws-java-sdk-ecr-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudhsm\1.11.368\aws-java-sdk-cloudhsm-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-ssm\1.11.368\aws-java-sdk-ssm-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-workspaces\1.11.368\aws-java-sdk-workspaces-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-machinelearning\1.11.368\aws-java-sdk-machinelearning-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-directory\1.11.368\aws-java-sdk-directory-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-efs\1.11.368\aws-java-sdk-efs-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-codecommit\1.11.368\aws-java-sdk-codecommit-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-devicefarm\1.11.368\aws-java-sdk-devicefarm-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-elasticsearch\1.11.368\aws-java-sdk-elasticsearch-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-waf\1.11.368\aws-java-sdk-waf-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-marketplacecommerceanalytics\1.11.368\aws-java-sdk-marketplacecommerceanalytics-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-inspector\1.11.368\aws-java-sdk-inspector-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-iot\1.11.368\aws-java-sdk-iot-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-api-gateway\1.11.368\aws-java-sdk-api-gateway-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-acm\1.11.368\aws-java-sdk-acm-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-gamelift\1.11.368\aws-java-sdk-gamelift-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-dms\1.11.368\aws-java-sdk-dms-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-marketplacemeteringservice\1.11.368\aws-java-sdk-marketplacemeteringservice-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cognitoidp\1.11.368\aws-java-sdk-cognitoidp-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-discovery\1.11.368\aws-java-sdk-discovery-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-applicationautoscaling\1.11.368\aws-java-sdk-applicationautoscaling-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-snowball\1.11.368\aws-java-sdk-snowball-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-rekognition\1.11.368\aws-java-sdk-rekognition-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-polly\1.11.368\aws-java-sdk-polly-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-lightsail\1.11.368\aws-java-sdk-lightsail-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-stepfunctions\1.11.368\aws-java-sdk-stepfunctions-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-health\1.11.368\aws-java-sdk-health-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-costandusagereport\1.11.368\aws-java-sdk-costandusagereport-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-codebuild\1.11.368\aws-java-sdk-codebuild-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-appstream\1.11.368\aws-java-sdk-appstream-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-shield\1.11.368\aws-java-sdk-shield-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-batch\1.11.368\aws-java-sdk-batch-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-lex\1.11.368\aws-java-sdk-lex-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mechanicalturkrequester\1.11.368\aws-java-sdk-mechanicalturkrequester-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-organizations\1.11.368\aws-java-sdk-organizations-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-workdocs\1.11.368\aws-java-sdk-workdocs-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-core\1.11.368\aws-java-sdk-core-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\software\amazon\ion\ion-java\1.0.2\ion-java-1.0.2.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\dataformat\jackson-dataformat-cbor\2.6.7\jackson-dataformat-cbor-2.6.7.jar;C:\Users\Sohan.Dey\.m2\repository\joda-time\joda-time\2.8.1\joda-time-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-models\1.11.368\aws-java-sdk-models-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-swf-libraries\1.11.22\aws-java-sdk-swf-libraries-1.11.22.jar;C:\Users\Sohan.Dey\.m2\repository\com\aventstack\extentreports\3.0.0\extentreports-3.0.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\freemarker\freemarker\2.3.23\freemarker-2.3.23.jar;C:\Users\Sohan.Dey\.m2\repository\org\mongodb\mongodb-driver\3.3.0\mongodb-driver-3.3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\mongodb\bson\3.3.0\bson-3.3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\mongodb\mongodb-driver-core\3.3.0\mongodb-driver-core-3.3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\httpcomponents\httpmime\4.5.2\httpmime-4.5.2.jar;C:\Users\Sohan.Dey\.m2\repository\com\relevantcodes\extentreports\2.41.2\extentreports-2.41.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\jsoup\jsoup\1.8.3\jsoup-1.8.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\xerial\sqlite-jdbc\3.8.11.1\sqlite-jdbc-3.8.11.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\jayway\jsonpath\json-path\2.4.0\json-path-2.4.0.jar;C:\Users\Sohan.Dey\.m2\repository\net\minidev\json-smart\2.3\json-smart-2.3.jar;C:\Users\Sohan.Dey\.m2\repository\net\minidev\accessors-smart\1.2\accessors-smart-1.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\ow2\asm\asm\5.0.4\asm-5.0.4.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-model\3.3.9\maven-model-3.3.9.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\plexus\plexus-utils\3.0.22\plexus-utils-3.0.22.jar;C:\Users\Sohan.Dey\.m2\repository\io\rest-assured\rest-assured\3.0.7\rest-assured-3.0.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\groovy\groovy\2.4.12\groovy-2.4.12.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\groovy\groovy-xml\2.4.12\groovy-xml-2.4.12.jar;C:\Users\Sohan.Dey\.m2\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\hamcrest\hamcrest-library\1.3\hamcrest-library-1.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\ccil\cowan\tagsoup\tagsoup\1.2.1\tagsoup-1.2.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\rest-assured\json-path\3.0.7\json-path-3.0.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\groovy\groovy-json\2.4.12\groovy-json-2.4.12.jar;C:\Users\Sohan.Dey\.m2\repository\io\rest-assured\rest-assured-common\3.0.7\rest-assured-common-3.0.7.jar;C:\Users\Sohan.Dey\.m2\repository\io\rest-assured\xml-path\3.0.7\xml-path-3.0.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\testng\testng\6.11\testng-6.11.jar;C:\Users\Sohan.Dey\.m2\repository\com\beust\jcommander\1.64\jcommander-1.64.jar;C:\Users\Sohan.Dey\.m2\repository\org\yaml\snakeyaml\1.17\snakeyaml-1.17.jar;C:\Users\Sohan.Dey\.m2\repository\org\zeroturnaround\zt-zip\1.13\zt-zip-1.13.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.10.1\jackson-core-2.10.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.9.5\jackson-annotations-2.9.5.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.10.5\jackson-databind-2.10.5.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\dataformat\jackson-dataformat-xml\2.9.5\jackson-dataformat-xml-2.9.5.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\module\jackson-module-jaxb-annotations\2.9.5\jackson-module-jaxb-annotations-2.9.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\woodstox\stax2-api\3.1.4\stax2-api-3.1.4.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\woodstox\woodstox-core\5.0.3\woodstox-core-5.0.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\json\json\20180130\json-20180130.jar;C:\Users\Sohan.Dey\.m2\repository\com\googlecode\json-simple\json-simple\1.1.1\json-simple-1.1.1.jar;C:\Users\Sohan.Dey\.m2\repository\junit\junit\4.10\junit-4.10.jar;C:\Users\Sohan.Dey\.m2\repository\com\google\code\gson\gson\2.8.4\gson-2.8.4.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\plugins\maven-assembly-plugin\3.1.0\maven-assembly-plugin-3.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-plugin-api\3.0\maven-plugin-api-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\sisu\sisu-inject-plexus\1.4.2\sisu-inject-plexus-1.4.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\sisu\sisu-inject-bean\1.4.2\sisu-inject-bean-1.4.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\sisu\sisu-guice\2.1.7\sisu-guice-2.1.7-noaop.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-core\3.0\maven-core-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-settings\3.0\maven-settings-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-settings-builder\3.0\maven-settings-builder-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-repository-metadata\3.0\maven-repository-metadata-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-model-builder\3.0\maven-model-builder-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-aether-provider\3.0\maven-aether-provider-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\aether\aether-impl\1.7\aether-impl-1.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\aether\aether-spi\1.7\aether-spi-1.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\aether\aether-api\1.7\aether-api-1.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\aether\aether-util\1.7\aether-util-1.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\plexus\plexus-classworlds\2.2.3\plexus-classworlds-2.2.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\plexus\plexus-component-annotations\1.5.5\plexus-component-annotations-1.5.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\plexus\plexus-sec-dispatcher\1.3\plexus-sec-dispatcher-1.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\plexus\plexus-cipher\1.4\plexus-cipher-1.4.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-artifact\3.0\maven-artifact-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\shared\maven-common-artifact-filters\3.0.1\maven-common-artifact-filters-3.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\shared\maven-shared-utils\3.1.0\maven-shared-utils-3.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\shared\maven-artifact-transfer\0.9.0\maven-artifact-transfer-0.9.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\plexus\plexus-interpolation\1.24\plexus-interpolation-1.24.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\plexus\plexus-archiver\3.5\plexus-archiver-3.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\commons\commons-compress\1.14\commons-compress-1.14.jar;C:\Users\Sohan.Dey\.m2\repository\org\iq80\snappy\snappy\0.4\snappy-0.4.jar;C:\Users\Sohan.Dey\.m2\repository\org\tukaani\xz\1.6\xz-1.6.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\shared\file-management\3.0.0\file-management-3.0.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\shared\maven-shared-io\3.0.0\maven-shared-io-3.0.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-compat\3.0\maven-compat-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\wagon\wagon-provider-api\2.10\wagon-provider-api-2.10.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\shared\maven-filtering\3.1.1\maven-filtering-3.1.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\plexus\plexus-build-api\0.0.7\plexus-build-api-0.0.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\plexus\plexus-io\3.0.0\plexus-io-3.0.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-archiver\3.2.0\maven-archiver-3.2.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\google\guava\guava\19.0\guava-19.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\hibernate\hibernate-core\5.4.2.Final\hibernate-core-5.4.2.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\logging\jboss-logging\3.3.2.Final\jboss-logging-3.3.2.Final.jar;C:\Users\Sohan.Dey\.m2\repository\javax\persistence\javax.persistence-api\2.2\javax.persistence-api-2.2.jar;C:\Users\Sohan.Dey\.m2\repository\net\bytebuddy\byte-buddy\1.9.10\byte-buddy-1.9.10.jar;C:\Users\Sohan.Dey\.m2\repository\antlr\antlr\2.7.7\antlr-2.7.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\spec\javax\transaction\jboss-transaction-api_1.2_spec\1.1.1.Final\jboss-transaction-api_1.2_spec-1.1.1.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\jandex\2.0.5.Final\jandex-2.0.5.Final.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\classmate\1.3.4\classmate-1.3.4.jar;C:\Users\Sohan.Dey\.m2\repository\javax\activation\javax.activation-api\1.2.0\javax.activation-api-1.2.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\dom4j\dom4j\2.1.1\dom4j-2.1.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\hibernate\common\hibernate-commons-annotations\5.1.0.Final\hibernate-commons-annotations-5.1.0.Final.jar;C:\Users\Sohan.Dey\.m2\repository\javax\xml\bind\jaxb-api\2.3.1\jaxb-api-2.3.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\glassfish\jaxb\jaxb-runtime\2.3.1\jaxb-runtime-2.3.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\glassfish\jaxb\txw2\2.3.1\txw2-2.3.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\sun\istack\istack-commons-runtime\3.0.7\istack-commons-runtime-3.0.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\jvnet\staxex\stax-ex\1.8\stax-ex-1.8.jar;C:\Users\Sohan.Dey\.m2\repository\com\sun\xml\fastinfoset\FastInfoset\1.2.15\FastInfoset-1.2.15.jar;C:\Users\Sohan.Dey\.m2\repository\commons-beanutils\commons-beanutils\1.9.2\commons-beanutils-1.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\commons-logging\commons-logging\1.1.1\commons-logging-1.1.1.jar;C:\Users\Sohan.Dey\.m2\repository\commons-collections\commons-collections\3.2.1\commons-collections-3.2.1.jar;C:\Users\Sohan.Dey\.m2\repository\javax\validation\validation-api\2.0.1.Final\validation-api-2.0.1.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\swagger\swagger-annotations\1.5.20\swagger-annotations-1.5.20.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.9.5\jackson-datatype-jsr310-2.9.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\postgresql\postgresql\42.2.2\postgresql-42.2.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\slf4j\slf4j-log4j12\1.6.2\slf4j-log4j12-1.6.2.jar;C:\Users\Sohan.Dey\.m2\repository\log4j\log4j\1.2.16\log4j-1.2.16.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\logging\log4j\log4j-api\2.11.1\log4j-api-2.11.1.jar;C:\Users\Sohan.Dey\.m2\repository\net\lingala\zip4j\zip4j\1.3.2\zip4j-1.3.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\httpcomponents\httpclient\4.5.3\httpclient-4.5.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\httpcomponents\httpcore\4.4.6\httpcore-4.4.6.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-client\2.8.1\hadoop-client-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-common\2.8.1\hadoop-common-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\commons-cli\commons-cli\1.2\commons-cli-1.2.jar;C:\Users\Sohan.Dey\.m2\repository\xmlenc\xmlenc\0.52\xmlenc-0.52.jar;C:\Users\Sohan.Dey\.m2\repository\commons-net\commons-net\3.1\commons-net-3.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\mortbay\jetty\jetty-sslengine\6.1.26\jetty-sslengine-6.1.26.jar;C:\Users\Sohan.Dey\.m2\repository\javax\servlet\jsp\jsp-api\2.1\jsp-api-2.1.jar;C:\Users\Sohan.Dey\.m2\repository\commons-configuration\commons-configuration\1.6\commons-configuration-1.6.jar;C:\Users\Sohan.Dey\.m2\repository\commons-digester\commons-digester\1.8\commons-digester-1.8.jar;C:\Users\Sohan.Dey\.m2\repository\commons-beanutils\commons-beanutils-core\1.8.0\commons-beanutils-core-1.8.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\jackson\jackson-core-asl\1.9.13\jackson-core-asl-1.9.13.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\jackson\jackson-mapper-asl\1.9.13\jackson-mapper-asl-1.9.13.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\avro\avro\1.7.4\avro-1.7.4.jar;C:\Users\Sohan.Dey\.m2\repository\com\thoughtworks\paranamer\paranamer\2.3\paranamer-2.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\xerial\snappy\snappy-java\1.0.4.1\snappy-java-1.0.4.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\google\protobuf\protobuf-java\2.5.0\protobuf-java-2.5.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-auth\2.8.1\hadoop-auth-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\directory\server\apacheds-kerberos-codec\2.0.0-M15\apacheds-kerberos-codec-2.0.0-M15.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\directory\server\apacheds-i18n\2.0.0-M15\apacheds-i18n-2.0.0-M15.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\directory\api\api-asn1-api\1.0.0-M20\api-asn1-api-1.0.0-M20.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\directory\api\api-util\1.0.0-M20\api-util-1.0.0-M20.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\curator\curator-framework\2.7.1\curator-framework-2.7.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\curator\curator-client\2.7.1\curator-client-2.7.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\curator\curator-recipes\2.7.1\curator-recipes-2.7.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\google\code\findbugs\jsr305\3.0.0\jsr305-3.0.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\htrace\htrace-core4\4.0.1-incubating\htrace-core4-4.0.1-incubating.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\zookeeper\zookeeper\3.4.6\zookeeper-3.4.6.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty\3.7.0.Final\netty-3.7.0.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-hdfs\2.8.1\hadoop-hdfs-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-hdfs-client\2.8.1\hadoop-hdfs-client-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\squareup\okhttp\okhttp\2.4.0\okhttp-2.4.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\squareup\okio\okio\1.4.0\okio-1.4.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-app\2.8.1\hadoop-mapreduce-client-app-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-common\2.8.1\hadoop-mapreduce-client-common-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-yarn-client\2.8.1\hadoop-yarn-client-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-yarn-server-common\2.8.1\hadoop-yarn-server-common-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-shuffle\2.8.1\hadoop-mapreduce-client-shuffle-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\fusesource\leveldbjni\leveldbjni-all\1.8\leveldbjni-all-1.8.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-yarn-api\2.8.1\hadoop-yarn-api-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-core\2.8.1\hadoop-mapreduce-client-core-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-yarn-common\2.8.1\hadoop-yarn-common-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\javax\servlet\servlet-api\2.5\servlet-api-2.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\mortbay\jetty\jetty-util\6.1.26\jetty-util-6.1.26.jar;C:\Users\Sohan.Dey\.m2\repository\com\sun\jersey\jersey-core\1.9\jersey-core-1.9.jar;C:\Users\Sohan.Dey\.m2\repository\com\sun\jersey\jersey-client\1.9\jersey-client-1.9.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\jackson\jackson-jaxrs\1.9.13\jackson-jaxrs-1.9.13.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\jackson\jackson-xc\1.9.13\jackson-xc-1.9.13.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-jobclient\2.8.1\hadoop-mapreduce-client-jobclient-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-annotations\2.8.1\hadoop-annotations-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\bouncycastle\bcprov-jdk16\1.45\bcprov-jdk16-1.45.jar;C:\Users\Sohan.Dey\.m2\repository\commons-codec\commons-codec\1.11\commons-codec-1.11.jar;C:\Users\Sohan.Dey\.m2\repository\commons-io\commons-io\2.6\commons-io-2.6.jar;C:\Users\Sohan.Dey\.m2\repository\com\google\zxing\core\3.3.3\core-3.3.3.jar;C:\Users\Sohan.Dey\.m2\repository\com\google\zxing\javase\2.0\javase-2.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\hamcrest\hamcrest-all\1.3\hamcrest-all-1.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\velocity\velocity\1.7\velocity-1.7.jar;C:\Users\Sohan.Dey\.m2\repository\commons-lang\commons-lang\2.4\commons-lang-2.4.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\html2pdf\2.0.0\html2pdf-2.0.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\forms\7.1.0\forms-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\kernel\7.1.0\kernel-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\io\7.1.0\io-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\layout\7.1.0\layout-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\itextpdf\5.5.13\itextpdf-5.5.13.jar;C:\Users\Sohan.Dey\.m2\repository\javax\mail\javax.mail-api\1.6.2\javax.mail-api-1.6.2.jar;D:\Mosip_Automation_Test\Docker_Test\MOSIP-19726\mosip-functional-tests\authentication-demo-service\target\classes;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-web\2.0.2.RELEASE\spring-boot-starter-web-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-json\2.0.2.RELEASE\spring-boot-starter-json-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.9.5\jackson-datatype-jdk8-2.9.5.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.9.5\jackson-module-parameter-names-2.9.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\2.0.2.RELEASE\spring-boot-starter-tomcat-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\tomcat\embed\tomcat-embed-el\8.5.31\tomcat-embed-el-8.5.31.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\8.5.31\tomcat-embed-websocket-8.5.31.jar;C:\Users\Sohan.Dey\.m2\repository\org\hibernate\validator\hibernate-validator\6.0.9.Final\hibernate-validator-6.0.9.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-web\5.0.6.RELEASE\spring-web-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-webmvc\5.0.6.RELEASE\spring-webmvc-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-expression\5.0.6.RELEASE\spring-expression-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-test\2.0.2.RELEASE\spring-boot-starter-test-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-test\2.0.2.RELEASE\spring-boot-test-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-test-autoconfigure\2.0.2.RELEASE\spring-boot-test-autoconfigure-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\assertj\assertj-core\3.9.1\assertj-core-3.9.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\skyscreamer\jsonassert\1.5.0\jsonassert-1.5.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\vaadin\external\google\android-json\0.0.20131108.vaadin1\android-json-0.0.20131108.vaadin1.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-core\5.0.6.RELEASE\spring-core-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-jcl\5.0.6.RELEASE\spring-jcl-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-test\5.0.6.RELEASE\spring-test-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\xmlunit\xmlunit-core\2.5.1\xmlunit-core-2.5.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\springfox\springfox-swagger-ui\2.9.2\springfox-swagger-ui-2.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\io\springfox\springfox-spring-web\2.9.2\springfox-spring-web-2.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\io\springfox\springfox-swagger2\2.9.2\springfox-swagger2-2.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\io\springfox\springfox-spi\2.9.2\springfox-spi-2.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\io\springfox\springfox-core\2.9.2\springfox-core-2.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\io\springfox\springfox-schema\2.9.2\springfox-schema-2.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\io\springfox\springfox-swagger-common\2.9.2\springfox-swagger-common-2.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\plugin\spring-plugin-core\1.2.0.RELEASE\spring-plugin-core-1.2.0.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\plugin\spring-plugin-metadata\1.2.0.RELEASE\spring-plugin-metadata-1.2.0.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\mapstruct\mapstruct\1.2.0.Final\mapstruct-1.2.0.Final.jar;C:\Users\Sohan.Dey\.m2\repository\javax\ws\rs\javax.ws.rs-api\2.0\javax.ws.rs-api-2.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\authentication\authentication-core\1.2.0.1-SNAPSHOT\authentication-core-1.2.0.1-SNAPSHOT.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-cache\2.0.2.RELEASE\spring-boot-starter-cache-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-context-support\5.0.6.RELEASE\spring-context-support-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\com\machinezoo\sourceafis\sourceafis\3.4.0\sourceafis-3.4.0.jar;C:\Users\Sohan.Dey\.m2\repository\net\sf\trove4j\trove4j\3.0.3\trove4j-3.0.3.jar;C:\Users\Sohan.Dey\.m2\repository\com\machinezoo\noexception\noexception\1.3.2\noexception-1.3.2.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\mhshams\jnbis\2.0.1\jnbis-2.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\sanselan\sanselan\0.97-incubator\sanselan-0.97-incubator.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\idrepository\id-repository-core\1.2.0\id-repository-core-1.2.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-biosdk-provider\1.2.0\kernel-biosdk-provider-1.2.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-biometrics-api\1.2.0\kernel-biometrics-api-1.2.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-demographics-api\1.2.0\kernel-demographics-api-1.2.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-webflux\2.0.2.RELEASE\spring-boot-starter-webflux-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-reactor-netty\2.0.2.RELEASE\spring-boot-starter-reactor-netty-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\io\projectreactor\ipc\reactor-netty\0.7.7.RELEASE\reactor-netty-0.7.7.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-handler-proxy\4.1.24.Final\netty-handler-proxy-4.1.24.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-codec-socks\4.1.24.Final\netty-codec-socks-4.1.24.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-transport-native-epoll\4.1.24.Final\netty-transport-native-epoll-4.1.24.Final-linux-x86_64.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-transport-native-unix-common\4.1.24.Final\netty-transport-native-unix-common-4.1.24.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-webflux\5.0.6.RELEASE\spring-webflux-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\io\projectreactor\reactor-core\3.1.7.RELEASE\reactor-core-3.1.7.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\synchronoss\cloud\nio-multipart-parser\1.1.0\nio-multipart-parser-1.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\synchronoss\cloud\nio-stream-storage\1.1.3\nio-stream-storage-1.1.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\springdoc\springdoc-openapi-ui\1.5.10\springdoc-openapi-ui-1.5.10.jar;C:\Users\Sohan.Dey\.m2\repository\org\springdoc\springdoc-openapi-webmvc-core\1.5.10\springdoc-openapi-webmvc-core-1.5.10.jar;C:\Users\Sohan.Dey\.m2\repository\org\springdoc\springdoc-openapi-common\1.5.10\springdoc-openapi-common-1.5.10.jar;C:\Users\Sohan.Dey\.m2\repository\io\swagger\core\v3\swagger-models\2.1.10\swagger-models-2.1.10.jar;C:\Users\Sohan.Dey\.m2\repository\io\swagger\core\v3\swagger-annotations\2.1.10\swagger-annotations-2.1.10.jar;C:\Users\Sohan.Dey\.m2\repository\io\swagger\core\v3\swagger-integration\2.1.10\swagger-integration-2.1.10.jar;C:\Users\Sohan.Dey\.m2\repository\io\swagger\core\v3\swagger-core\2.1.10\swagger-core-2.1.10.jar;C:\Users\Sohan.Dey\.m2\repository\jakarta\xml\bind\jakarta.xml.bind-api\2.3.2\jakarta.xml.bind-api-2.3.2.jar;C:\Users\Sohan.Dey\.m2\repository\jakarta\activation\jakarta.activation-api\1.2.1\jakarta.activation-api-1.2.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\dataformat\jackson-dataformat-yaml\2.12.1\jackson-dataformat-yaml-2.12.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\github\classgraph\classgraph\4.8.69\classgraph-4.8.69.jar;C:\Users\Sohan.Dey\.m2\repository\org\webjars\swagger-ui\3.51.1\swagger-ui-3.51.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\webjars\webjars-locator-core\0.45\webjars-locator-core-0.45.jar;C:\Users\Sohan.Dey\.m2\repository\commons-fileupload\commons-fileupload\1.4\commons-fileupload-1.4.jar;C:\Users\Sohan.Dey\.m2\repository\org\mockito\mockito-core\2.23.4\mockito-core-2.23.4.jar;C:\Users\Sohan.Dey\.m2\repository\net\bytebuddy\byte-buddy-agent\1.9.3\byte-buddy-agent-1.9.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\objenesis\objenesis\2.6\objenesis-2.6.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-websubclient-api\1.2.0.1-SNAPSHOT\kernel-websubclient-api-1.2.0.1-SNAPSHOT.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-aspects\5.0.6.RELEASE\spring-aspects-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\aspectj\aspectjweaver\1.8.13\aspectjweaver-1.8.13.jar;C:\Users\Sohan.Dey\.m2\repository\org\owasp\encoder\encoder\1.2.3\encoder-1.2.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\tensorflow\tensorflow\1.12.0\tensorflow-1.12.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\tensorflow\libtensorflow\1.12.0\libtensorflow-1.12.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\tensorflow\libtensorflow_jni\1.12.0\libtensorflow_jni-1.12.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-templatemanager-velocity\1.2.0.1-SNAPSHOT\kernel-templatemanager-velocity-1.2.0.1-SNAPSHOT.jar;C:\Users\Sohan.Dey\.m2\repository\javax\servlet\javax.servlet-api\4.0.1\javax.servlet-api-4.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\cloud\spring-cloud-starter-config\2.0.0.RELEASE\spring-cloud-starter-config-2.0.0.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\cloud\spring-cloud-starter\2.0.0.RELEASE\spring-cloud-starter-2.0.0.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\cloud\spring-cloud-context\2.0.0.RELEASE\spring-cloud-context-2.0.0.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\security\spring-security-crypto\5.0.6.RELEASE\spring-security-crypto-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\cloud\spring-cloud-commons\2.0.0.RELEASE\spring-cloud-commons-2.0.0.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\security\spring-security-rsa\1.0.5.RELEASE\spring-security-rsa-1.0.5.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\cloud\spring-cloud-config-client\2.0.0.RELEASE\spring-cloud-config-client-2.0.0.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\jai-imageio\jai-imageio-jpeg2000\1.3.0\jai-imageio-jpeg2000-1.3.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\jai-imageio\jai-imageio-core\1.3.0\jai-imageio-core-1.3.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-keymanager-service\1.2.0.1-SNAPSHOT\kernel-keymanager-service-1.2.0.1-SNAPSHOT-lib.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\security\spring-security-test\5.0.5.RELEASE\spring-security-test-5.0.5.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\security\spring-security-core\5.0.5.RELEASE\spring-security-core-5.0.5.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-pdfgenerator-itext\1.2.0.1-SNAPSHOT\kernel-pdfgenerator-itext-1.2.0.1-SNAPSHOT.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\barcodes\7.1.0\barcodes-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\font-asian\7.1.0\font-asian-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\hyph\7.1.0\hyph-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\pdfa\7.1.0\pdfa-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\sign\7.1.0\sign-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\tool\xmlworker\5.5.13\xmlworker-5.5.13.jar;C:\Users\Sohan.Dey\.m2\repository\org\bouncycastle\bcpkix-jdk15on\1.66\bcpkix-jdk15on-1.66.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-data-jpa\2.0.2.RELEASE\spring-boot-starter-data-jpa-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-jdbc\2.0.2.RELEASE\spring-boot-starter-jdbc-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\com\zaxxer\HikariCP\2.7.9\HikariCP-2.7.9.jar;C:\Users\Sohan.Dey\.m2\repository\com\h2database\h2\1.4.197\h2-1.4.197.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\microsoft\TSS.Java\0.3.0\TSS.Java-0.3.0.jar;C:\Users\Sohan.Dey\.m2\repository\net\java\dev\jna\jna\4.4.0\jna-4.4.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\cache2k\cache2k-api\2.4.1.Final\cache2k-api-2.4.1.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\cache2k\cache2k-core\2.4.1.Final\cache2k-core-2.4.1.Final.jar;C:\Users\Sohan.Dey\.m2\repository\com\nimbusds\nimbus-jose-jwt\9.14\nimbus-jose-jwt-9.14.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-core\1.2.0.1-SNAPSHOT\kernel-core-1.2.0.1-SNAPSHOT.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter\2.0.2.RELEASE\spring-boot-starter-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot\2.0.2.RELEASE\spring-boot-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\2.0.2.RELEASE\spring-boot-autoconfigure-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-logging\2.0.2.RELEASE\spring-boot-starter-logging-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.10.0\log4j-to-slf4j-2.10.0.jar;C:\Users\Sohan.Dey\.m2\repository\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\data\spring-data-jpa\2.0.7.RELEASE\spring-data-jpa-2.0.7.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\data\spring-data-commons\2.0.7.RELEASE\spring-data-commons-2.0.7.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-orm\5.0.6.RELEASE\spring-orm-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-jdbc\5.0.6.RELEASE\spring-jdbc-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-context\5.0.6.RELEASE\spring-context-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-aop\5.0.6.RELEASE\spring-aop-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-tx\5.0.6.RELEASE\spring-tx-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-beans\5.0.6.RELEASE\spring-beans-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\aspectj\aspectjrt\1.8.12\aspectjrt-1.8.12.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-security\2.0.2.RELEASE\spring-boot-starter-security-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\security\spring-security-config\5.0.5.RELEASE\spring-security-config-5.0.5.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\security\spring-security-web\5.0.5.RELEASE\spring-security-web-5.0.5.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\javax\transaction\javax.transaction-api\1.3\javax.transaction-api-1.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\bouncycastle\bcprov-jdk15on\1.66\bcprov-jdk15on-1.66.jar;C:\Users\Sohan.Dey\.m2\repository\javax\interceptor\javax.interceptor-api\1.2\javax.interceptor-api-1.2.jar;C:\Users\Sohan.Dey\.m2\repository\com\google\code\findbugs\annotations\3.0.1\annotations-3.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\net\jcip\jcip-annotations\1.0\jcip-annotations-1.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\swagger\swagger-models\1.5.21\swagger-models-1.5.21.jar;C:\Users\Sohan.Dey\.m2\repository\com\auth0\java-jwt\3.8.1\java-jwt-3.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\micrometer\micrometer-core\1.4.2\micrometer-core-1.4.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\hdrhistogram\HdrHistogram\2.1.12\HdrHistogram-2.1.12.jar;C:\Users\Sohan.Dey\.m2\repository\org\latencyutils\LatencyUtils\2.0.3\LatencyUtils-2.0.3.jar;C:\Users\Sohan.Dey\.m2\repository\io\micrometer\micrometer-registry-prometheus\1.4.2\micrometer-registry-prometheus-1.4.2.jar;C:\Users\Sohan.Dey\.m2\repository\io\prometheus\simpleclient_common\0.8.1\simpleclient_common-0.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\prometheus\simpleclient\0.8.1\simpleclient-0.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\slf4j\jul-to-slf4j\1.7.25\jul-to-slf4j-1.7.25.jar;C:\Users\Sohan.Dey\.m2\repository\org\slf4j\jcl-over-slf4j\1.7.25\jcl-over-slf4j-1.7.25.jar;C:\Users\Sohan.Dey\.m2\repository\javax\activation\activation\1.1\activation-1.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\cloud\spring-cloud-starter-sleuth\2.0.4.RELEASE\spring-cloud-starter-sleuth-2.0.4.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-aop\2.0.9.RELEASE\spring-boot-starter-aop-2.0.9.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\cloud\spring-cloud-sleuth-core\2.0.4.RELEASE\spring-cloud-sleuth-core-2.0.4.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave\5.6.1\brave-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\zipkin2\zipkin\2.12.0\zipkin-2.12.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\reporter2\zipkin-reporter\2.7.14\zipkin-reporter-2.7.14.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-context-log4j2\5.6.1\brave-context-log4j2-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-spring-web\5.6.1\brave-instrumentation-spring-web-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-http\5.6.1\brave-instrumentation-http-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-spring-rabbit\5.6.1\brave-instrumentation-spring-rabbit-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-kafka-clients\5.6.1\brave-instrumentation-kafka-clients-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-httpclient\5.6.1\brave-instrumentation-httpclient-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-httpasyncclient\5.6.1\brave-instrumentation-httpasyncclient-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-spring-webmvc\5.6.1\brave-instrumentation-spring-webmvc-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-servlet\5.6.1\brave-instrumentation-servlet-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-actuator\2.0.2.RELEASE\spring-boot-starter-actuator-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-actuator-autoconfigure\2.0.2.RELEASE\spring-boot-actuator-autoconfigure-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-actuator\2.0.2.RELEASE\spring-boot-actuator-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\8.5.55\tomcat-embed-core-8.5.55.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\tomcat\tomcat-annotations-api\8.5.55\tomcat-annotations-api-8.5.55.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\retry\spring-retry\1.2.1.RELEASE\spring-retry-1.2.1.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\module\jackson-module-afterburner\2.12.0\jackson-module-afterburner-2.12.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-registration-packet-manager\1.1.5.3\kernel-registration-packet-manager-1.1.5.3.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-keygenerator-bouncycastle\1.1.5.3\kernel-keygenerator-bouncycastle-1.1.5.3.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-cbeffutil-api\1.1.5.3\kernel-cbeffutil-api-1.1.5.3.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-logger-logback\1.1.5.3\kernel-logger-logback-1.1.5.3.jar;C:\Users\Sohan.Dey\.m2\repository\net\logstash\logback\logstash-logback-encoder\6.4\logstash-logback-encoder-6.4.jar;C:\Users\Sohan.Dey\.m2\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;C:\Users\Sohan.Dey\.m2\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;C:\Users\Sohan.Dey\.m2\repository\ch\qos\logback\logback-access\1.2.3\logback-access-1.2.3.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-crypto-jce\1.1.5.3\kernel-crypto-jce-1.1.5.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\bitbucket\b_c\jose4j\0.6.5\jose4j-0.6.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\wink\wink-json4j-provider\1.1.2-incubating\wink-json4j-provider-1.1.2-incubating.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\wink\wink-common\1.1.2-incubating\wink-common-1.1.2-incubating.jar;C:\Users\Sohan.Dey\.m2\repository\com\sun\xml\bind\jaxb-impl\2.2.1.1\jaxb-impl-2.2.1.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\geronimo\specs\geronimo-annotation_1.1_spec\1.0\geronimo-annotation_1.1_spec-1.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\wink\wink-json4j\1.1.2-incubating\wink-json4j-1.1.2-incubating.jar;C:\Users\Sohan.Dey\.m2\repository\javax\ws\rs\jsr311-api\1.1.1\jsr311-api-1.1.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\checkerframework\checker-qual\2.9.0\checker-qual-2.9.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\activemq\activemq-broker\5.15.9\activemq-broker-5.15.9.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\activemq\activemq-client\5.15.9\activemq-client-5.15.9.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\geronimo\specs\geronimo-jms_1.1_spec\1.1.1\geronimo-jms_1.1_spec-1.1.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\fusesource\hawtbuf\hawtbuf\1.11\hawtbuf-1.11.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\geronimo\specs\geronimo-j2ee-management_1.1_spec\1.0.1\geronimo-j2ee-management_1.1_spec-1.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\activemq\activemq-openwire-legacy\5.15.9\activemq-openwire-legacy-5.15.9.jar;C:\Users\Sohan.Dey\.m2\repository\org\projectlombok\lombok\1.18.8\lombok-1.18.8.jar \ No newline at end of file diff --git a/apitest/.temp-MosipFunctionalTest-classpath-arg-1695652238739.txt b/apitest/.temp-MosipFunctionalTest-classpath-arg-1695652238739.txt new file mode 100644 index 00000000000..0fc13dd5a9b --- /dev/null +++ b/apitest/.temp-MosipFunctionalTest-classpath-arg-1695652238739.txt @@ -0,0 +1 @@ +-classpath D:\Mosip_Automation_Test\MOSIP_FUNCTIONAL_TESTS\mosip-functional-tests\automationtests\target\test-classes;D:\Mosip_Automation_Test\MOSIP_FUNCTIONAL_TESTS\mosip-functional-tests\automationtests\target\classes;C:\Users\Sohan.Dey\.m2\repository\com\opencsv\opencsv\4.1\opencsv-4.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\commons\commons-lang3\3.6\commons-lang3-3.6.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\commons\commons-text\1.1\commons-text-1.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\ibm\icu\icu4j\63.1\icu4j-63.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\keycloak\keycloak-admin-client\17.0.1\keycloak-admin-client-17.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\keycloak\keycloak-core\17.0.1\keycloak-core-17.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\keycloak\keycloak-common\17.0.1\keycloak-common-17.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\resteasy\resteasy-client\3.13.2.Final\resteasy-client-3.13.2.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\spec\javax\ws\rs\jboss-jaxrs-api_2.1_spec\2.0.1.Final\jboss-jaxrs-api_2.1_spec-2.0.1.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\resteasy\resteasy-jaxrs\3.13.2.Final\resteasy-jaxrs-3.13.2.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\reactivestreams\reactive-streams\1.0.3\reactive-streams-1.0.3.jar;C:\Users\Sohan.Dey\.m2\repository\jakarta\validation\jakarta.validation-api\2.0.2\jakarta.validation-api-2.0.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\spec\javax\annotation\jboss-annotations-api_1.3_spec\2.0.1.Final\jboss-annotations-api_1.3_spec-2.0.1.Final.jar;C:\Users\Sohan.Dey\.m2\repository\com\sun\activation\jakarta.activation\1.2.1\jakarta.activation-1.2.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\stephenc\jcip\jcip-annotations\1.0-1\jcip-annotations-1.0-1.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\resteasy\resteasy-multipart-provider\3.13.2.Final\resteasy-multipart-provider-3.13.2.Final.jar;C:\Users\Sohan.Dey\.m2\repository\com\sun\mail\jakarta.mail\1.6.5\jakarta.mail-1.6.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\james\apache-mime4j\0.6\apache-mime4j-0.6.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\resteasy\resteasy-jackson2-provider\3.13.2.Final\resteasy-jackson2-provider-3.13.2.Final.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\jaxrs\jackson-jaxrs-json-provider\2.10.5\jackson-jaxrs-json-provider-2.10.5.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\jaxrs\jackson-jaxrs-base\2.10.5\jackson-jaxrs-base-2.10.5.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\fge\json-patch\1.9\json-patch-1.9.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\fge\jackson-coreutils\1.6\jackson-coreutils-1.6.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\fge\msg-simple\1.1\msg-simple-1.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\fge\btf\1.2\btf-1.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\resteasy\resteasy-jaxb-provider\3.13.2.Final\resteasy-jaxb-provider-3.13.2.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\spec\javax\xml\bind\jboss-jaxb-api_2.3_spec\2.0.0.Final\jboss-jaxb-api_2.3_spec-2.0.0.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\javassist\javassist\3.25.0-GA\javassist-3.25.0-GA.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\jknack\handlebars\3.0.0\handlebars-3.0.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\antlr\antlr4-runtime\4.5.1-1\antlr4-runtime-4.5.1-1.jar;C:\Users\Sohan.Dey\.m2\repository\org\mozilla\rhino\1.7R4\rhino-1.7R4.jar;C:\Users\Sohan.Dey\.m2\repository\org\slf4j\slf4j-api\1.6.4\slf4j-api-1.6.4.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\commons\commons-collections4\4.3\commons-collections4-4.3.jar;C:\Users\Sohan.Dey\.m2\repository\io\jsonwebtoken\jjwt\0.6.0\jjwt-0.6.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\flipkart\zjsonpatch\zjsonpatch\0.4.7\zjsonpatch-0.4.7.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk\1.11.368\aws-java-sdk-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-dlm\1.11.368\aws-java-sdk-dlm-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\jmespath-java\1.11.368\jmespath-java-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-macie\1.11.368\aws-java-sdk-macie-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-eks\1.11.368\aws-java-sdk-eks-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mediatailor\1.11.368\aws-java-sdk-mediatailor-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-neptune\1.11.368\aws-java-sdk-neptune-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-pi\1.11.368\aws-java-sdk-pi-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-iot1clickprojects\1.11.368\aws-java-sdk-iot1clickprojects-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-iot1clickdevices\1.11.368\aws-java-sdk-iot1clickdevices-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-iotanalytics\1.11.368\aws-java-sdk-iotanalytics-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-acmpca\1.11.368\aws-java-sdk-acmpca-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-secretsmanager\1.11.368\aws-java-sdk-secretsmanager-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-fms\1.11.368\aws-java-sdk-fms-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-connect\1.11.368\aws-java-sdk-connect-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-transcribe\1.11.368\aws-java-sdk-transcribe-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-autoscalingplans\1.11.368\aws-java-sdk-autoscalingplans-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-workmail\1.11.368\aws-java-sdk-workmail-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-servicediscovery\1.11.368\aws-java-sdk-servicediscovery-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloud9\1.11.368\aws-java-sdk-cloud9-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-serverlessapplicationrepository\1.11.368\aws-java-sdk-serverlessapplicationrepository-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-alexaforbusiness\1.11.368\aws-java-sdk-alexaforbusiness-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-resourcegroups\1.11.368\aws-java-sdk-resourcegroups-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-comprehend\1.11.368\aws-java-sdk-comprehend-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-translate\1.11.368\aws-java-sdk-translate-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-sagemaker\1.11.368\aws-java-sdk-sagemaker-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-iotjobsdataplane\1.11.368\aws-java-sdk-iotjobsdataplane-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-sagemakerruntime\1.11.368\aws-java-sdk-sagemakerruntime-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-kinesisvideo\1.11.368\aws-java-sdk-kinesisvideo-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-codec-http\4.1.17.Final\netty-codec-http-4.1.17.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-codec\4.1.17.Final\netty-codec-4.1.17.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-handler\4.1.17.Final\netty-handler-4.1.17.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-buffer\4.1.17.Final\netty-buffer-4.1.17.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-common\4.1.17.Final\netty-common-4.1.17.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-transport\4.1.17.Final\netty-transport-4.1.17.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-resolver\4.1.17.Final\netty-resolver-4.1.17.Final.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-appsync\1.11.368\aws-java-sdk-appsync-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-guardduty\1.11.368\aws-java-sdk-guardduty-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mq\1.11.368\aws-java-sdk-mq-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mediaconvert\1.11.368\aws-java-sdk-mediaconvert-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mediastore\1.11.368\aws-java-sdk-mediastore-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mediastoredata\1.11.368\aws-java-sdk-mediastoredata-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-medialive\1.11.368\aws-java-sdk-medialive-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mediapackage\1.11.368\aws-java-sdk-mediapackage-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-costexplorer\1.11.368\aws-java-sdk-costexplorer-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-pricing\1.11.368\aws-java-sdk-pricing-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mobile\1.11.368\aws-java-sdk-mobile-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudhsmv2\1.11.368\aws-java-sdk-cloudhsmv2-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-glue\1.11.368\aws-java-sdk-glue-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-migrationhub\1.11.368\aws-java-sdk-migrationhub-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-dax\1.11.368\aws-java-sdk-dax-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-greengrass\1.11.368\aws-java-sdk-greengrass-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-athena\1.11.368\aws-java-sdk-athena-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-marketplaceentitlement\1.11.368\aws-java-sdk-marketplaceentitlement-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-codestar\1.11.368\aws-java-sdk-codestar-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-lexmodelbuilding\1.11.368\aws-java-sdk-lexmodelbuilding-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-resourcegroupstaggingapi\1.11.368\aws-java-sdk-resourcegroupstaggingapi-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-pinpoint\1.11.368\aws-java-sdk-pinpoint-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-xray\1.11.368\aws-java-sdk-xray-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-opsworkscm\1.11.368\aws-java-sdk-opsworkscm-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-support\1.11.368\aws-java-sdk-support-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-simpledb\1.11.368\aws-java-sdk-simpledb-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-servicecatalog\1.11.368\aws-java-sdk-servicecatalog-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-servermigration\1.11.368\aws-java-sdk-servermigration-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-simpleworkflow\1.11.368\aws-java-sdk-simpleworkflow-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-storagegateway\1.11.368\aws-java-sdk-storagegateway-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-route53\1.11.368\aws-java-sdk-route53-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-s3\1.11.368\aws-java-sdk-s3-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-importexport\1.11.368\aws-java-sdk-importexport-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-sts\1.11.368\aws-java-sdk-sts-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-sqs\1.11.368\aws-java-sdk-sqs-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-rds\1.11.368\aws-java-sdk-rds-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-redshift\1.11.368\aws-java-sdk-redshift-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-elasticbeanstalk\1.11.368\aws-java-sdk-elasticbeanstalk-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-glacier\1.11.368\aws-java-sdk-glacier-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-iam\1.11.368\aws-java-sdk-iam-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-datapipeline\1.11.368\aws-java-sdk-datapipeline-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-elasticloadbalancing\1.11.368\aws-java-sdk-elasticloadbalancing-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-elasticloadbalancingv2\1.11.368\aws-java-sdk-elasticloadbalancingv2-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-emr\1.11.368\aws-java-sdk-emr-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-elasticache\1.11.368\aws-java-sdk-elasticache-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-elastictranscoder\1.11.368\aws-java-sdk-elastictranscoder-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-ec2\1.11.368\aws-java-sdk-ec2-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-dynamodb\1.11.368\aws-java-sdk-dynamodb-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-sns\1.11.368\aws-java-sdk-sns-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-budgets\1.11.368\aws-java-sdk-budgets-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudtrail\1.11.368\aws-java-sdk-cloudtrail-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudwatch\1.11.368\aws-java-sdk-cloudwatch-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-logs\1.11.368\aws-java-sdk-logs-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-events\1.11.368\aws-java-sdk-events-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cognitoidentity\1.11.368\aws-java-sdk-cognitoidentity-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cognitosync\1.11.368\aws-java-sdk-cognitosync-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-directconnect\1.11.368\aws-java-sdk-directconnect-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudformation\1.11.368\aws-java-sdk-cloudformation-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudfront\1.11.368\aws-java-sdk-cloudfront-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-clouddirectory\1.11.368\aws-java-sdk-clouddirectory-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-kinesis\1.11.368\aws-java-sdk-kinesis-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-opsworks\1.11.368\aws-java-sdk-opsworks-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-ses\1.11.368\aws-java-sdk-ses-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-autoscaling\1.11.368\aws-java-sdk-autoscaling-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudsearch\1.11.368\aws-java-sdk-cloudsearch-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudwatchmetrics\1.11.368\aws-java-sdk-cloudwatchmetrics-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-codedeploy\1.11.368\aws-java-sdk-codedeploy-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-codepipeline\1.11.368\aws-java-sdk-codepipeline-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-kms\1.11.368\aws-java-sdk-kms-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-config\1.11.368\aws-java-sdk-config-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-lambda\1.11.368\aws-java-sdk-lambda-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-ecs\1.11.368\aws-java-sdk-ecs-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-ecr\1.11.368\aws-java-sdk-ecr-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudhsm\1.11.368\aws-java-sdk-cloudhsm-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-ssm\1.11.368\aws-java-sdk-ssm-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-workspaces\1.11.368\aws-java-sdk-workspaces-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-machinelearning\1.11.368\aws-java-sdk-machinelearning-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-directory\1.11.368\aws-java-sdk-directory-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-efs\1.11.368\aws-java-sdk-efs-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-codecommit\1.11.368\aws-java-sdk-codecommit-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-devicefarm\1.11.368\aws-java-sdk-devicefarm-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-elasticsearch\1.11.368\aws-java-sdk-elasticsearch-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-waf\1.11.368\aws-java-sdk-waf-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-marketplacecommerceanalytics\1.11.368\aws-java-sdk-marketplacecommerceanalytics-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-inspector\1.11.368\aws-java-sdk-inspector-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-iot\1.11.368\aws-java-sdk-iot-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-api-gateway\1.11.368\aws-java-sdk-api-gateway-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-acm\1.11.368\aws-java-sdk-acm-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-gamelift\1.11.368\aws-java-sdk-gamelift-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-dms\1.11.368\aws-java-sdk-dms-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-marketplacemeteringservice\1.11.368\aws-java-sdk-marketplacemeteringservice-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cognitoidp\1.11.368\aws-java-sdk-cognitoidp-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-discovery\1.11.368\aws-java-sdk-discovery-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-applicationautoscaling\1.11.368\aws-java-sdk-applicationautoscaling-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-snowball\1.11.368\aws-java-sdk-snowball-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-rekognition\1.11.368\aws-java-sdk-rekognition-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-polly\1.11.368\aws-java-sdk-polly-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-lightsail\1.11.368\aws-java-sdk-lightsail-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-stepfunctions\1.11.368\aws-java-sdk-stepfunctions-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-health\1.11.368\aws-java-sdk-health-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-costandusagereport\1.11.368\aws-java-sdk-costandusagereport-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-codebuild\1.11.368\aws-java-sdk-codebuild-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-appstream\1.11.368\aws-java-sdk-appstream-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-shield\1.11.368\aws-java-sdk-shield-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-batch\1.11.368\aws-java-sdk-batch-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-lex\1.11.368\aws-java-sdk-lex-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mechanicalturkrequester\1.11.368\aws-java-sdk-mechanicalturkrequester-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-organizations\1.11.368\aws-java-sdk-organizations-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-workdocs\1.11.368\aws-java-sdk-workdocs-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-core\1.11.368\aws-java-sdk-core-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\software\amazon\ion\ion-java\1.0.2\ion-java-1.0.2.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\dataformat\jackson-dataformat-cbor\2.6.7\jackson-dataformat-cbor-2.6.7.jar;C:\Users\Sohan.Dey\.m2\repository\joda-time\joda-time\2.8.1\joda-time-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-models\1.11.368\aws-java-sdk-models-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-swf-libraries\1.11.22\aws-java-sdk-swf-libraries-1.11.22.jar;C:\Users\Sohan.Dey\.m2\repository\com\aventstack\extentreports\3.0.0\extentreports-3.0.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\freemarker\freemarker\2.3.23\freemarker-2.3.23.jar;C:\Users\Sohan.Dey\.m2\repository\org\mongodb\mongodb-driver\3.3.0\mongodb-driver-3.3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\mongodb\bson\3.3.0\bson-3.3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\mongodb\mongodb-driver-core\3.3.0\mongodb-driver-core-3.3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\httpcomponents\httpmime\4.5.2\httpmime-4.5.2.jar;C:\Users\Sohan.Dey\.m2\repository\com\relevantcodes\extentreports\2.41.2\extentreports-2.41.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\jsoup\jsoup\1.8.3\jsoup-1.8.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\xerial\sqlite-jdbc\3.8.11.1\sqlite-jdbc-3.8.11.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\jayway\jsonpath\json-path\2.4.0\json-path-2.4.0.jar;C:\Users\Sohan.Dey\.m2\repository\net\minidev\json-smart\2.3\json-smart-2.3.jar;C:\Users\Sohan.Dey\.m2\repository\net\minidev\accessors-smart\1.2\accessors-smart-1.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\ow2\asm\asm\5.0.4\asm-5.0.4.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-model\3.3.9\maven-model-3.3.9.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\plexus\plexus-utils\3.0.22\plexus-utils-3.0.22.jar;C:\Users\Sohan.Dey\.m2\repository\io\rest-assured\rest-assured\3.0.7\rest-assured-3.0.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\groovy\groovy\2.4.12\groovy-2.4.12.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\groovy\groovy-xml\2.4.12\groovy-xml-2.4.12.jar;C:\Users\Sohan.Dey\.m2\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\hamcrest\hamcrest-library\1.3\hamcrest-library-1.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\ccil\cowan\tagsoup\tagsoup\1.2.1\tagsoup-1.2.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\rest-assured\json-path\3.0.7\json-path-3.0.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\groovy\groovy-json\2.4.12\groovy-json-2.4.12.jar;C:\Users\Sohan.Dey\.m2\repository\io\rest-assured\rest-assured-common\3.0.7\rest-assured-common-3.0.7.jar;C:\Users\Sohan.Dey\.m2\repository\io\rest-assured\xml-path\3.0.7\xml-path-3.0.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\testng\testng\6.11\testng-6.11.jar;C:\Users\Sohan.Dey\.m2\repository\com\beust\jcommander\1.64\jcommander-1.64.jar;C:\Users\Sohan.Dey\.m2\repository\org\yaml\snakeyaml\1.17\snakeyaml-1.17.jar;C:\Users\Sohan.Dey\.m2\repository\org\zeroturnaround\zt-zip\1.13\zt-zip-1.13.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.10.1\jackson-core-2.10.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.9.5\jackson-annotations-2.9.5.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.10.5\jackson-databind-2.10.5.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\dataformat\jackson-dataformat-xml\2.9.5\jackson-dataformat-xml-2.9.5.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\module\jackson-module-jaxb-annotations\2.9.5\jackson-module-jaxb-annotations-2.9.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\woodstox\stax2-api\3.1.4\stax2-api-3.1.4.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\woodstox\woodstox-core\5.0.3\woodstox-core-5.0.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\json\json\20180130\json-20180130.jar;C:\Users\Sohan.Dey\.m2\repository\com\googlecode\json-simple\json-simple\1.1.1\json-simple-1.1.1.jar;C:\Users\Sohan.Dey\.m2\repository\junit\junit\4.10\junit-4.10.jar;C:\Users\Sohan.Dey\.m2\repository\com\google\code\gson\gson\2.8.4\gson-2.8.4.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\plugins\maven-assembly-plugin\3.1.0\maven-assembly-plugin-3.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-plugin-api\3.0\maven-plugin-api-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\sisu\sisu-inject-plexus\1.4.2\sisu-inject-plexus-1.4.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\sisu\sisu-inject-bean\1.4.2\sisu-inject-bean-1.4.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\sisu\sisu-guice\2.1.7\sisu-guice-2.1.7-noaop.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-core\3.0\maven-core-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-settings\3.0\maven-settings-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-settings-builder\3.0\maven-settings-builder-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-repository-metadata\3.0\maven-repository-metadata-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-model-builder\3.0\maven-model-builder-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-aether-provider\3.0\maven-aether-provider-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\aether\aether-impl\1.7\aether-impl-1.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\aether\aether-spi\1.7\aether-spi-1.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\aether\aether-api\1.7\aether-api-1.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\aether\aether-util\1.7\aether-util-1.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\plexus\plexus-classworlds\2.2.3\plexus-classworlds-2.2.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\plexus\plexus-component-annotations\1.5.5\plexus-component-annotations-1.5.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\plexus\plexus-sec-dispatcher\1.3\plexus-sec-dispatcher-1.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\plexus\plexus-cipher\1.4\plexus-cipher-1.4.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-artifact\3.0\maven-artifact-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\shared\maven-common-artifact-filters\3.0.1\maven-common-artifact-filters-3.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\shared\maven-shared-utils\3.1.0\maven-shared-utils-3.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\shared\maven-artifact-transfer\0.9.0\maven-artifact-transfer-0.9.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\plexus\plexus-interpolation\1.24\plexus-interpolation-1.24.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\plexus\plexus-archiver\3.5\plexus-archiver-3.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\commons\commons-compress\1.14\commons-compress-1.14.jar;C:\Users\Sohan.Dey\.m2\repository\org\iq80\snappy\snappy\0.4\snappy-0.4.jar;C:\Users\Sohan.Dey\.m2\repository\org\tukaani\xz\1.6\xz-1.6.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\shared\file-management\3.0.0\file-management-3.0.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\shared\maven-shared-io\3.0.0\maven-shared-io-3.0.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-compat\3.0\maven-compat-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\wagon\wagon-provider-api\2.10\wagon-provider-api-2.10.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\shared\maven-filtering\3.1.1\maven-filtering-3.1.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\plexus\plexus-build-api\0.0.7\plexus-build-api-0.0.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\plexus\plexus-io\3.0.0\plexus-io-3.0.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-archiver\3.2.0\maven-archiver-3.2.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\google\guava\guava\19.0\guava-19.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\hibernate\hibernate-core\5.4.2.Final\hibernate-core-5.4.2.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\logging\jboss-logging\3.3.2.Final\jboss-logging-3.3.2.Final.jar;C:\Users\Sohan.Dey\.m2\repository\javax\persistence\javax.persistence-api\2.2\javax.persistence-api-2.2.jar;C:\Users\Sohan.Dey\.m2\repository\net\bytebuddy\byte-buddy\1.9.10\byte-buddy-1.9.10.jar;C:\Users\Sohan.Dey\.m2\repository\antlr\antlr\2.7.7\antlr-2.7.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\spec\javax\transaction\jboss-transaction-api_1.2_spec\1.1.1.Final\jboss-transaction-api_1.2_spec-1.1.1.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\jandex\2.0.5.Final\jandex-2.0.5.Final.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\classmate\1.3.4\classmate-1.3.4.jar;C:\Users\Sohan.Dey\.m2\repository\javax\activation\javax.activation-api\1.2.0\javax.activation-api-1.2.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\dom4j\dom4j\2.1.1\dom4j-2.1.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\hibernate\common\hibernate-commons-annotations\5.1.0.Final\hibernate-commons-annotations-5.1.0.Final.jar;C:\Users\Sohan.Dey\.m2\repository\javax\xml\bind\jaxb-api\2.3.1\jaxb-api-2.3.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\glassfish\jaxb\jaxb-runtime\2.3.1\jaxb-runtime-2.3.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\glassfish\jaxb\txw2\2.3.1\txw2-2.3.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\sun\istack\istack-commons-runtime\3.0.7\istack-commons-runtime-3.0.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\jvnet\staxex\stax-ex\1.8\stax-ex-1.8.jar;C:\Users\Sohan.Dey\.m2\repository\com\sun\xml\fastinfoset\FastInfoset\1.2.15\FastInfoset-1.2.15.jar;C:\Users\Sohan.Dey\.m2\repository\commons-beanutils\commons-beanutils\1.9.2\commons-beanutils-1.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\commons-logging\commons-logging\1.1.1\commons-logging-1.1.1.jar;C:\Users\Sohan.Dey\.m2\repository\commons-collections\commons-collections\3.2.1\commons-collections-3.2.1.jar;C:\Users\Sohan.Dey\.m2\repository\javax\validation\validation-api\2.0.1.Final\validation-api-2.0.1.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\swagger\swagger-annotations\1.5.20\swagger-annotations-1.5.20.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.9.5\jackson-datatype-jsr310-2.9.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\postgresql\postgresql\42.2.2\postgresql-42.2.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\slf4j\slf4j-log4j12\1.6.2\slf4j-log4j12-1.6.2.jar;C:\Users\Sohan.Dey\.m2\repository\log4j\log4j\1.2.16\log4j-1.2.16.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\logging\log4j\log4j-api\2.11.1\log4j-api-2.11.1.jar;C:\Users\Sohan.Dey\.m2\repository\net\lingala\zip4j\zip4j\1.3.2\zip4j-1.3.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\httpcomponents\httpclient\4.5.3\httpclient-4.5.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\httpcomponents\httpcore\4.4.6\httpcore-4.4.6.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-client\2.8.1\hadoop-client-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-common\2.8.1\hadoop-common-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\commons-cli\commons-cli\1.2\commons-cli-1.2.jar;C:\Users\Sohan.Dey\.m2\repository\xmlenc\xmlenc\0.52\xmlenc-0.52.jar;C:\Users\Sohan.Dey\.m2\repository\commons-net\commons-net\3.1\commons-net-3.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\mortbay\jetty\jetty-sslengine\6.1.26\jetty-sslengine-6.1.26.jar;C:\Users\Sohan.Dey\.m2\repository\javax\servlet\jsp\jsp-api\2.1\jsp-api-2.1.jar;C:\Users\Sohan.Dey\.m2\repository\commons-configuration\commons-configuration\1.6\commons-configuration-1.6.jar;C:\Users\Sohan.Dey\.m2\repository\commons-digester\commons-digester\1.8\commons-digester-1.8.jar;C:\Users\Sohan.Dey\.m2\repository\commons-beanutils\commons-beanutils-core\1.8.0\commons-beanutils-core-1.8.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\jackson\jackson-core-asl\1.9.13\jackson-core-asl-1.9.13.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\jackson\jackson-mapper-asl\1.9.13\jackson-mapper-asl-1.9.13.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\avro\avro\1.7.4\avro-1.7.4.jar;C:\Users\Sohan.Dey\.m2\repository\com\thoughtworks\paranamer\paranamer\2.3\paranamer-2.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\xerial\snappy\snappy-java\1.0.4.1\snappy-java-1.0.4.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\google\protobuf\protobuf-java\2.5.0\protobuf-java-2.5.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-auth\2.8.1\hadoop-auth-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\directory\server\apacheds-kerberos-codec\2.0.0-M15\apacheds-kerberos-codec-2.0.0-M15.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\directory\server\apacheds-i18n\2.0.0-M15\apacheds-i18n-2.0.0-M15.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\directory\api\api-asn1-api\1.0.0-M20\api-asn1-api-1.0.0-M20.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\directory\api\api-util\1.0.0-M20\api-util-1.0.0-M20.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\curator\curator-framework\2.7.1\curator-framework-2.7.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\curator\curator-client\2.7.1\curator-client-2.7.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\curator\curator-recipes\2.7.1\curator-recipes-2.7.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\google\code\findbugs\jsr305\3.0.0\jsr305-3.0.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\htrace\htrace-core4\4.0.1-incubating\htrace-core4-4.0.1-incubating.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\zookeeper\zookeeper\3.4.6\zookeeper-3.4.6.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty\3.7.0.Final\netty-3.7.0.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-hdfs\2.8.1\hadoop-hdfs-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-hdfs-client\2.8.1\hadoop-hdfs-client-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\squareup\okhttp\okhttp\2.4.0\okhttp-2.4.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\squareup\okio\okio\1.4.0\okio-1.4.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-app\2.8.1\hadoop-mapreduce-client-app-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-common\2.8.1\hadoop-mapreduce-client-common-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-yarn-client\2.8.1\hadoop-yarn-client-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-yarn-server-common\2.8.1\hadoop-yarn-server-common-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-shuffle\2.8.1\hadoop-mapreduce-client-shuffle-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\fusesource\leveldbjni\leveldbjni-all\1.8\leveldbjni-all-1.8.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-yarn-api\2.8.1\hadoop-yarn-api-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-core\2.8.1\hadoop-mapreduce-client-core-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-yarn-common\2.8.1\hadoop-yarn-common-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\javax\servlet\servlet-api\2.5\servlet-api-2.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\mortbay\jetty\jetty-util\6.1.26\jetty-util-6.1.26.jar;C:\Users\Sohan.Dey\.m2\repository\com\sun\jersey\jersey-core\1.9\jersey-core-1.9.jar;C:\Users\Sohan.Dey\.m2\repository\com\sun\jersey\jersey-client\1.9\jersey-client-1.9.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\jackson\jackson-xc\1.9.13\jackson-xc-1.9.13.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-jobclient\2.8.1\hadoop-mapreduce-client-jobclient-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-annotations\2.8.1\hadoop-annotations-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\bouncycastle\bcprov-jdk15on\1.56\bcprov-jdk15on-1.56.jar;C:\Users\Sohan.Dey\.m2\repository\commons-codec\commons-codec\1.11\commons-codec-1.11.jar;C:\Users\Sohan.Dey\.m2\repository\commons-io\commons-io\2.6\commons-io-2.6.jar;C:\Users\Sohan.Dey\.m2\repository\com\google\zxing\core\3.3.3\core-3.3.3.jar;C:\Users\Sohan.Dey\.m2\repository\com\google\zxing\javase\2.0\javase-2.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\hamcrest\hamcrest-all\1.3\hamcrest-all-1.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\velocity\velocity\1.7\velocity-1.7.jar;C:\Users\Sohan.Dey\.m2\repository\commons-lang\commons-lang\2.4\commons-lang-2.4.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\html2pdf\2.0.0\html2pdf-2.0.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\forms\7.1.0\forms-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\kernel\7.1.0\kernel-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\io\7.1.0\io-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\layout\7.1.0\layout-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\itextpdf\5.5.13\itextpdf-5.5.13.jar;C:\Users\Sohan.Dey\.m2\repository\javax\mail\javax.mail-api\1.6.2\javax.mail-api-1.6.2.jar;D:\Mosip_Automation_Test\MOSIP_FUNCTIONAL_TESTS\mosip-functional-tests\authentication-demo-service\target\classes;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-web\2.0.2.RELEASE\spring-boot-starter-web-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-json\2.0.2.RELEASE\spring-boot-starter-json-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.9.5\jackson-datatype-jdk8-2.9.5.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.9.5\jackson-module-parameter-names-2.9.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\2.0.2.RELEASE\spring-boot-starter-tomcat-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\tomcat\embed\tomcat-embed-el\8.5.31\tomcat-embed-el-8.5.31.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\8.5.31\tomcat-embed-websocket-8.5.31.jar;C:\Users\Sohan.Dey\.m2\repository\org\hibernate\validator\hibernate-validator\6.0.9.Final\hibernate-validator-6.0.9.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-web\5.0.6.RELEASE\spring-web-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-webmvc\5.0.6.RELEASE\spring-webmvc-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-expression\5.0.6.RELEASE\spring-expression-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-test\2.0.2.RELEASE\spring-boot-starter-test-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-test\2.0.2.RELEASE\spring-boot-test-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-test-autoconfigure\2.0.2.RELEASE\spring-boot-test-autoconfigure-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\assertj\assertj-core\3.9.1\assertj-core-3.9.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\skyscreamer\jsonassert\1.5.0\jsonassert-1.5.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\vaadin\external\google\android-json\0.0.20131108.vaadin1\android-json-0.0.20131108.vaadin1.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-core\5.0.6.RELEASE\spring-core-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-jcl\5.0.6.RELEASE\spring-jcl-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-test\5.0.6.RELEASE\spring-test-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\xmlunit\xmlunit-core\2.5.1\xmlunit-core-2.5.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\springfox\springfox-swagger-ui\2.9.2\springfox-swagger-ui-2.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\io\springfox\springfox-spring-web\2.9.2\springfox-spring-web-2.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\io\springfox\springfox-swagger2\2.9.2\springfox-swagger2-2.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\io\springfox\springfox-spi\2.9.2\springfox-spi-2.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\io\springfox\springfox-core\2.9.2\springfox-core-2.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\io\springfox\springfox-schema\2.9.2\springfox-schema-2.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\io\springfox\springfox-swagger-common\2.9.2\springfox-swagger-common-2.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\plugin\spring-plugin-core\1.2.0.RELEASE\spring-plugin-core-1.2.0.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\plugin\spring-plugin-metadata\1.2.0.RELEASE\spring-plugin-metadata-1.2.0.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\mapstruct\mapstruct\1.2.0.Final\mapstruct-1.2.0.Final.jar;C:\Users\Sohan.Dey\.m2\repository\javax\ws\rs\javax.ws.rs-api\2.0\javax.ws.rs-api-2.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\authentication\authentication-core\1.2.0.1-B3\authentication-core-1.2.0.1-B3.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-cache\2.0.2.RELEASE\spring-boot-starter-cache-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-context-support\5.0.6.RELEASE\spring-context-support-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\com\machinezoo\sourceafis\sourceafis\3.4.0\sourceafis-3.4.0.jar;C:\Users\Sohan.Dey\.m2\repository\net\sf\trove4j\trove4j\3.0.3\trove4j-3.0.3.jar;C:\Users\Sohan.Dey\.m2\repository\com\machinezoo\noexception\noexception\1.3.2\noexception-1.3.2.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\mhshams\jnbis\2.0.1\jnbis-2.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\sanselan\sanselan\0.97-incubator\sanselan-0.97-incubator.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\idrepository\id-repository-core\1.2.0.1-B1\id-repository-core-1.2.0.1-B1.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-biosdk-provider\1.2.0.1-B1\kernel-biosdk-provider-1.2.0.1-B1.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-biometrics-api\1.2.0.1-B1\kernel-biometrics-api-1.2.0.1-B1.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-demographics-api\1.2.0.1-B1\kernel-demographics-api-1.2.0.1-B1.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-webflux\2.0.2.RELEASE\spring-boot-starter-webflux-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-reactor-netty\2.0.2.RELEASE\spring-boot-starter-reactor-netty-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\io\projectreactor\ipc\reactor-netty\0.7.7.RELEASE\reactor-netty-0.7.7.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-handler-proxy\4.1.24.Final\netty-handler-proxy-4.1.24.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-codec-socks\4.1.24.Final\netty-codec-socks-4.1.24.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-transport-native-epoll\4.1.24.Final\netty-transport-native-epoll-4.1.24.Final-linux-x86_64.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-transport-native-unix-common\4.1.24.Final\netty-transport-native-unix-common-4.1.24.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-webflux\5.0.6.RELEASE\spring-webflux-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\synchronoss\cloud\nio-multipart-parser\1.1.0\nio-multipart-parser-1.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\synchronoss\cloud\nio-stream-storage\1.1.3\nio-stream-storage-1.1.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\springdoc\springdoc-openapi-ui\1.5.10\springdoc-openapi-ui-1.5.10.jar;C:\Users\Sohan.Dey\.m2\repository\org\springdoc\springdoc-openapi-webmvc-core\1.5.10\springdoc-openapi-webmvc-core-1.5.10.jar;C:\Users\Sohan.Dey\.m2\repository\org\springdoc\springdoc-openapi-common\1.5.10\springdoc-openapi-common-1.5.10.jar;C:\Users\Sohan.Dey\.m2\repository\io\swagger\core\v3\swagger-models\2.1.10\swagger-models-2.1.10.jar;C:\Users\Sohan.Dey\.m2\repository\io\swagger\core\v3\swagger-annotations\2.1.10\swagger-annotations-2.1.10.jar;C:\Users\Sohan.Dey\.m2\repository\io\swagger\core\v3\swagger-integration\2.1.10\swagger-integration-2.1.10.jar;C:\Users\Sohan.Dey\.m2\repository\io\swagger\core\v3\swagger-core\2.1.10\swagger-core-2.1.10.jar;C:\Users\Sohan.Dey\.m2\repository\jakarta\xml\bind\jakarta.xml.bind-api\2.3.2\jakarta.xml.bind-api-2.3.2.jar;C:\Users\Sohan.Dey\.m2\repository\jakarta\activation\jakarta.activation-api\1.2.1\jakarta.activation-api-1.2.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\dataformat\jackson-dataformat-yaml\2.12.1\jackson-dataformat-yaml-2.12.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\github\classgraph\classgraph\4.8.69\classgraph-4.8.69.jar;C:\Users\Sohan.Dey\.m2\repository\org\webjars\swagger-ui\3.51.1\swagger-ui-3.51.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\webjars\webjars-locator-core\0.45\webjars-locator-core-0.45.jar;C:\Users\Sohan.Dey\.m2\repository\commons-fileupload\commons-fileupload\1.4\commons-fileupload-1.4.jar;C:\Users\Sohan.Dey\.m2\repository\org\mockito\mockito-core\2.23.4\mockito-core-2.23.4.jar;C:\Users\Sohan.Dey\.m2\repository\net\bytebuddy\byte-buddy-agent\1.9.3\byte-buddy-agent-1.9.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\objenesis\objenesis\2.6\objenesis-2.6.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-websubclient-api\1.2.0.1-SNAPSHOT\kernel-websubclient-api-1.2.0.1-SNAPSHOT.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-aspects\5.0.6.RELEASE\spring-aspects-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\aspectj\aspectjweaver\1.8.13\aspectjweaver-1.8.13.jar;C:\Users\Sohan.Dey\.m2\repository\org\owasp\encoder\encoder\1.2.3\encoder-1.2.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-actuator\2.0.2.RELEASE\spring-boot-starter-actuator-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-actuator-autoconfigure\2.0.2.RELEASE\spring-boot-actuator-autoconfigure-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-actuator\2.0.2.RELEASE\spring-boot-actuator-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\tensorflow\tensorflow\1.12.0\tensorflow-1.12.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\tensorflow\libtensorflow\1.12.0\libtensorflow-1.12.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\tensorflow\libtensorflow_jni\1.12.0\libtensorflow_jni-1.12.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-templatemanager-velocity\1.2.0.1-SNAPSHOT\kernel-templatemanager-velocity-1.2.0.1-SNAPSHOT.jar;C:\Users\Sohan.Dey\.m2\repository\javax\servlet\javax.servlet-api\4.0.1\javax.servlet-api-4.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\cloud\spring-cloud-starter-config\2.0.0.RELEASE\spring-cloud-starter-config-2.0.0.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\cloud\spring-cloud-starter\2.0.0.RELEASE\spring-cloud-starter-2.0.0.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\cloud\spring-cloud-context\2.0.0.RELEASE\spring-cloud-context-2.0.0.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\security\spring-security-crypto\5.0.6.RELEASE\spring-security-crypto-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\cloud\spring-cloud-commons\2.0.0.RELEASE\spring-cloud-commons-2.0.0.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\security\spring-security-rsa\1.0.5.RELEASE\spring-security-rsa-1.0.5.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\cloud\spring-cloud-config-client\2.0.0.RELEASE\spring-cloud-config-client-2.0.0.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\jai-imageio\jai-imageio-jpeg2000\1.3.0\jai-imageio-jpeg2000-1.3.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\jai-imageio\jai-imageio-core\1.3.0\jai-imageio-core-1.3.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-keymanager-service\1.2.0.1-SNAPSHOT\kernel-keymanager-service-1.2.0.1-SNAPSHOT-lib.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\security\spring-security-test\5.0.5.RELEASE\spring-security-test-5.0.5.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\security\spring-security-core\5.0.5.RELEASE\spring-security-core-5.0.5.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-pdfgenerator-itext\1.2.0.1-SNAPSHOT\kernel-pdfgenerator-itext-1.2.0.1-SNAPSHOT.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\barcodes\7.1.0\barcodes-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\font-asian\7.1.0\font-asian-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\hyph\7.1.0\hyph-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\pdfa\7.1.0\pdfa-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\sign\7.1.0\sign-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\tool\xmlworker\5.5.13\xmlworker-5.5.13.jar;C:\Users\Sohan.Dey\.m2\repository\org\bouncycastle\bcpkix-jdk15on\1.66\bcpkix-jdk15on-1.66.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-data-jpa\2.0.2.RELEASE\spring-boot-starter-data-jpa-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-jdbc\2.0.2.RELEASE\spring-boot-starter-jdbc-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\com\zaxxer\HikariCP\2.7.9\HikariCP-2.7.9.jar;C:\Users\Sohan.Dey\.m2\repository\com\h2database\h2\1.4.197\h2-1.4.197.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\microsoft\TSS.Java\0.3.0\TSS.Java-0.3.0.jar;C:\Users\Sohan.Dey\.m2\repository\net\java\dev\jna\jna\4.4.0\jna-4.4.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\cache2k\cache2k-api\2.4.1.Final\cache2k-api-2.4.1.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\cache2k\cache2k-core\2.4.1.Final\cache2k-core-2.4.1.Final.jar;C:\Users\Sohan.Dey\.m2\repository\com\nimbusds\nimbus-jose-jwt\9.14\nimbus-jose-jwt-9.14.jar;C:\Users\Sohan.Dey\.m2\repository\io\projectreactor\reactor-core\3.1.7.RELEASE\reactor-core-3.1.7.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-core\1.2.0.1-B1\kernel-core-1.2.0.1-B1.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter\2.0.2.RELEASE\spring-boot-starter-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot\2.0.2.RELEASE\spring-boot-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\2.0.2.RELEASE\spring-boot-autoconfigure-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-logging\2.0.2.RELEASE\spring-boot-starter-logging-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.10.0\log4j-to-slf4j-2.10.0.jar;C:\Users\Sohan.Dey\.m2\repository\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\data\spring-data-jpa\2.0.7.RELEASE\spring-data-jpa-2.0.7.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\data\spring-data-commons\2.0.7.RELEASE\spring-data-commons-2.0.7.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-orm\5.0.6.RELEASE\spring-orm-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-jdbc\5.0.6.RELEASE\spring-jdbc-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-context\5.0.6.RELEASE\spring-context-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-aop\5.0.6.RELEASE\spring-aop-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-tx\5.0.6.RELEASE\spring-tx-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-beans\5.0.6.RELEASE\spring-beans-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\aspectj\aspectjrt\1.8.12\aspectjrt-1.8.12.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-security\2.0.2.RELEASE\spring-boot-starter-security-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\security\spring-security-config\5.0.5.RELEASE\spring-security-config-5.0.5.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\security\spring-security-web\5.0.5.RELEASE\spring-security-web-5.0.5.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\javax\transaction\javax.transaction-api\1.3\javax.transaction-api-1.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\javax\interceptor\javax.interceptor-api\1.2\javax.interceptor-api-1.2.jar;C:\Users\Sohan.Dey\.m2\repository\com\google\code\findbugs\annotations\3.0.1\annotations-3.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\net\jcip\jcip-annotations\1.0\jcip-annotations-1.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\swagger\swagger-models\1.5.21\swagger-models-1.5.21.jar;C:\Users\Sohan.Dey\.m2\repository\com\auth0\java-jwt\3.8.1\java-jwt-3.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\micrometer\micrometer-core\1.4.2\micrometer-core-1.4.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\hdrhistogram\HdrHistogram\2.1.12\HdrHistogram-2.1.12.jar;C:\Users\Sohan.Dey\.m2\repository\org\latencyutils\LatencyUtils\2.0.3\LatencyUtils-2.0.3.jar;C:\Users\Sohan.Dey\.m2\repository\io\micrometer\micrometer-registry-prometheus\1.4.2\micrometer-registry-prometheus-1.4.2.jar;C:\Users\Sohan.Dey\.m2\repository\io\prometheus\simpleclient_common\0.8.1\simpleclient_common-0.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\prometheus\simpleclient\0.8.1\simpleclient-0.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\slf4j\jul-to-slf4j\1.7.25\jul-to-slf4j-1.7.25.jar;C:\Users\Sohan.Dey\.m2\repository\org\slf4j\jcl-over-slf4j\1.7.25\jcl-over-slf4j-1.7.25.jar;C:\Users\Sohan.Dey\.m2\repository\javax\activation\activation\1.1\activation-1.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\cloud\spring-cloud-starter-sleuth\2.0.4.RELEASE\spring-cloud-starter-sleuth-2.0.4.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-aop\2.0.9.RELEASE\spring-boot-starter-aop-2.0.9.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\cloud\spring-cloud-sleuth-core\2.0.4.RELEASE\spring-cloud-sleuth-core-2.0.4.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave\5.6.1\brave-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\zipkin2\zipkin\2.12.0\zipkin-2.12.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\reporter2\zipkin-reporter\2.7.14\zipkin-reporter-2.7.14.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-context-log4j2\5.6.1\brave-context-log4j2-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-spring-web\5.6.1\brave-instrumentation-spring-web-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-http\5.6.1\brave-instrumentation-http-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-spring-rabbit\5.6.1\brave-instrumentation-spring-rabbit-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-kafka-clients\5.6.1\brave-instrumentation-kafka-clients-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-httpclient\5.6.1\brave-instrumentation-httpclient-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-httpasyncclient\5.6.1\brave-instrumentation-httpasyncclient-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-spring-webmvc\5.6.1\brave-instrumentation-spring-webmvc-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-servlet\5.6.1\brave-instrumentation-servlet-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\8.5.55\tomcat-embed-core-8.5.55.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\tomcat\tomcat-annotations-api\8.5.55\tomcat-annotations-api-8.5.55.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\retry\spring-retry\1.2.1.RELEASE\spring-retry-1.2.1.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\module\jackson-module-afterburner\2.12.0\jackson-module-afterburner-2.12.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-registration-packet-manager\1.1.5.3\kernel-registration-packet-manager-1.1.5.3.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-keygenerator-bouncycastle\1.1.5.3\kernel-keygenerator-bouncycastle-1.1.5.3.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-cbeffutil-api\1.1.5.3\kernel-cbeffutil-api-1.1.5.3.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-logger-logback\1.1.5.3\kernel-logger-logback-1.1.5.3.jar;C:\Users\Sohan.Dey\.m2\repository\net\logstash\logback\logstash-logback-encoder\6.4\logstash-logback-encoder-6.4.jar;C:\Users\Sohan.Dey\.m2\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;C:\Users\Sohan.Dey\.m2\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;C:\Users\Sohan.Dey\.m2\repository\ch\qos\logback\logback-access\1.2.3\logback-access-1.2.3.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-crypto-jce\1.1.5.3\kernel-crypto-jce-1.1.5.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\bitbucket\b_c\jose4j\0.6.5\jose4j-0.6.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\wink\wink-json4j-provider\1.1.2-incubating\wink-json4j-provider-1.1.2-incubating.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\wink\wink-common\1.1.2-incubating\wink-common-1.1.2-incubating.jar;C:\Users\Sohan.Dey\.m2\repository\com\sun\xml\bind\jaxb-impl\2.2.1.1\jaxb-impl-2.2.1.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\geronimo\specs\geronimo-annotation_1.1_spec\1.0\geronimo-annotation_1.1_spec-1.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\wink\wink-json4j\1.1.2-incubating\wink-json4j-1.1.2-incubating.jar;C:\Users\Sohan.Dey\.m2\repository\javax\ws\rs\jsr311-api\1.1.1\jsr311-api-1.1.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\checkerframework\checker-qual\2.9.0\checker-qual-2.9.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\activemq\activemq-broker\5.15.9\activemq-broker-5.15.9.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\activemq\activemq-client\5.15.9\activemq-client-5.15.9.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\geronimo\specs\geronimo-jms_1.1_spec\1.1.1\geronimo-jms_1.1_spec-1.1.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\fusesource\hawtbuf\hawtbuf\1.11\hawtbuf-1.11.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\geronimo\specs\geronimo-j2ee-management_1.1_spec\1.0.1\geronimo-j2ee-management_1.1_spec-1.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\activemq\activemq-openwire-legacy\5.15.9\activemq-openwire-legacy-5.15.9.jar;C:\Users\Sohan.Dey\.m2\repository\org\projectlombok\lombok\1.18.8\lombok-1.18.8.jar \ No newline at end of file diff --git a/apitest/.temp-New_configuration (1)-classpath-arg-1658840665646.txt b/apitest/.temp-New_configuration (1)-classpath-arg-1658840665646.txt new file mode 100644 index 00000000000..1aa22a4a915 --- /dev/null +++ b/apitest/.temp-New_configuration (1)-classpath-arg-1658840665646.txt @@ -0,0 +1 @@ +-classpath D:\Mosip_Automation_Test\Docker_Test\mosip-functional-tests\automationtests\target\test-classes;D:\Mosip_Automation_Test\Docker_Test\mosip-functional-tests\automationtests\target\classes;C:\Users\Sohan.Dey\.m2\repository\com\opencsv\opencsv\4.1\opencsv-4.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\commons\commons-lang3\3.6\commons-lang3-3.6.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\commons\commons-text\1.1\commons-text-1.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\ibm\icu\icu4j\63.1\icu4j-63.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\keycloak\keycloak-admin-client\17.0.1\keycloak-admin-client-17.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\keycloak\keycloak-core\17.0.1\keycloak-core-17.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\keycloak\keycloak-common\17.0.1\keycloak-common-17.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\resteasy\resteasy-client\3.13.2.Final\resteasy-client-3.13.2.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\spec\javax\ws\rs\jboss-jaxrs-api_2.1_spec\2.0.1.Final\jboss-jaxrs-api_2.1_spec-2.0.1.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\resteasy\resteasy-jaxrs\3.13.2.Final\resteasy-jaxrs-3.13.2.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\reactivestreams\reactive-streams\1.0.3\reactive-streams-1.0.3.jar;C:\Users\Sohan.Dey\.m2\repository\jakarta\validation\jakarta.validation-api\2.0.2\jakarta.validation-api-2.0.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\spec\javax\annotation\jboss-annotations-api_1.3_spec\2.0.1.Final\jboss-annotations-api_1.3_spec-2.0.1.Final.jar;C:\Users\Sohan.Dey\.m2\repository\com\sun\activation\jakarta.activation\1.2.1\jakarta.activation-1.2.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\stephenc\jcip\jcip-annotations\1.0-1\jcip-annotations-1.0-1.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\resteasy\resteasy-multipart-provider\3.13.2.Final\resteasy-multipart-provider-3.13.2.Final.jar;C:\Users\Sohan.Dey\.m2\repository\com\sun\mail\jakarta.mail\1.6.5\jakarta.mail-1.6.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\james\apache-mime4j\0.6\apache-mime4j-0.6.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\resteasy\resteasy-jackson2-provider\3.13.2.Final\resteasy-jackson2-provider-3.13.2.Final.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\jaxrs\jackson-jaxrs-json-provider\2.10.5\jackson-jaxrs-json-provider-2.10.5.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\jaxrs\jackson-jaxrs-base\2.10.5\jackson-jaxrs-base-2.10.5.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\fge\json-patch\1.9\json-patch-1.9.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\fge\jackson-coreutils\1.6\jackson-coreutils-1.6.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\fge\msg-simple\1.1\msg-simple-1.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\fge\btf\1.2\btf-1.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\resteasy\resteasy-jaxb-provider\3.13.2.Final\resteasy-jaxb-provider-3.13.2.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\spec\javax\xml\bind\jboss-jaxb-api_2.3_spec\2.0.0.Final\jboss-jaxb-api_2.3_spec-2.0.0.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\javassist\javassist\3.25.0-GA\javassist-3.25.0-GA.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\jknack\handlebars\3.0.0\handlebars-3.0.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\antlr\antlr4-runtime\4.5.1-1\antlr4-runtime-4.5.1-1.jar;C:\Users\Sohan.Dey\.m2\repository\org\mozilla\rhino\1.7R4\rhino-1.7R4.jar;C:\Users\Sohan.Dey\.m2\repository\org\slf4j\slf4j-api\1.6.4\slf4j-api-1.6.4.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\commons\commons-collections4\4.3\commons-collections4-4.3.jar;C:\Users\Sohan.Dey\.m2\repository\io\jsonwebtoken\jjwt\0.6.0\jjwt-0.6.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\flipkart\zjsonpatch\zjsonpatch\0.4.7\zjsonpatch-0.4.7.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk\1.11.368\aws-java-sdk-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-dlm\1.11.368\aws-java-sdk-dlm-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\jmespath-java\1.11.368\jmespath-java-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-macie\1.11.368\aws-java-sdk-macie-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-eks\1.11.368\aws-java-sdk-eks-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mediatailor\1.11.368\aws-java-sdk-mediatailor-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-neptune\1.11.368\aws-java-sdk-neptune-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-pi\1.11.368\aws-java-sdk-pi-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-iot1clickprojects\1.11.368\aws-java-sdk-iot1clickprojects-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-iot1clickdevices\1.11.368\aws-java-sdk-iot1clickdevices-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-iotanalytics\1.11.368\aws-java-sdk-iotanalytics-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-acmpca\1.11.368\aws-java-sdk-acmpca-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-secretsmanager\1.11.368\aws-java-sdk-secretsmanager-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-fms\1.11.368\aws-java-sdk-fms-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-connect\1.11.368\aws-java-sdk-connect-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-transcribe\1.11.368\aws-java-sdk-transcribe-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-autoscalingplans\1.11.368\aws-java-sdk-autoscalingplans-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-workmail\1.11.368\aws-java-sdk-workmail-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-servicediscovery\1.11.368\aws-java-sdk-servicediscovery-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloud9\1.11.368\aws-java-sdk-cloud9-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-serverlessapplicationrepository\1.11.368\aws-java-sdk-serverlessapplicationrepository-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-alexaforbusiness\1.11.368\aws-java-sdk-alexaforbusiness-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-resourcegroups\1.11.368\aws-java-sdk-resourcegroups-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-comprehend\1.11.368\aws-java-sdk-comprehend-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-translate\1.11.368\aws-java-sdk-translate-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-sagemaker\1.11.368\aws-java-sdk-sagemaker-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-iotjobsdataplane\1.11.368\aws-java-sdk-iotjobsdataplane-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-sagemakerruntime\1.11.368\aws-java-sdk-sagemakerruntime-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-kinesisvideo\1.11.368\aws-java-sdk-kinesisvideo-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-codec-http\4.1.17.Final\netty-codec-http-4.1.17.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-codec\4.1.17.Final\netty-codec-4.1.17.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-handler\4.1.17.Final\netty-handler-4.1.17.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-buffer\4.1.17.Final\netty-buffer-4.1.17.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-common\4.1.17.Final\netty-common-4.1.17.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-transport\4.1.17.Final\netty-transport-4.1.17.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-resolver\4.1.17.Final\netty-resolver-4.1.17.Final.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-appsync\1.11.368\aws-java-sdk-appsync-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-guardduty\1.11.368\aws-java-sdk-guardduty-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mq\1.11.368\aws-java-sdk-mq-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mediaconvert\1.11.368\aws-java-sdk-mediaconvert-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mediastore\1.11.368\aws-java-sdk-mediastore-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mediastoredata\1.11.368\aws-java-sdk-mediastoredata-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-medialive\1.11.368\aws-java-sdk-medialive-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mediapackage\1.11.368\aws-java-sdk-mediapackage-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-costexplorer\1.11.368\aws-java-sdk-costexplorer-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-pricing\1.11.368\aws-java-sdk-pricing-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mobile\1.11.368\aws-java-sdk-mobile-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudhsmv2\1.11.368\aws-java-sdk-cloudhsmv2-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-glue\1.11.368\aws-java-sdk-glue-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-migrationhub\1.11.368\aws-java-sdk-migrationhub-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-dax\1.11.368\aws-java-sdk-dax-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-greengrass\1.11.368\aws-java-sdk-greengrass-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-athena\1.11.368\aws-java-sdk-athena-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-marketplaceentitlement\1.11.368\aws-java-sdk-marketplaceentitlement-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-codestar\1.11.368\aws-java-sdk-codestar-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-lexmodelbuilding\1.11.368\aws-java-sdk-lexmodelbuilding-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-resourcegroupstaggingapi\1.11.368\aws-java-sdk-resourcegroupstaggingapi-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-pinpoint\1.11.368\aws-java-sdk-pinpoint-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-xray\1.11.368\aws-java-sdk-xray-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-opsworkscm\1.11.368\aws-java-sdk-opsworkscm-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-support\1.11.368\aws-java-sdk-support-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-simpledb\1.11.368\aws-java-sdk-simpledb-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-servicecatalog\1.11.368\aws-java-sdk-servicecatalog-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-servermigration\1.11.368\aws-java-sdk-servermigration-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-simpleworkflow\1.11.368\aws-java-sdk-simpleworkflow-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-storagegateway\1.11.368\aws-java-sdk-storagegateway-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-route53\1.11.368\aws-java-sdk-route53-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-s3\1.11.368\aws-java-sdk-s3-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-importexport\1.11.368\aws-java-sdk-importexport-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-sts\1.11.368\aws-java-sdk-sts-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-sqs\1.11.368\aws-java-sdk-sqs-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-rds\1.11.368\aws-java-sdk-rds-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-redshift\1.11.368\aws-java-sdk-redshift-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-elasticbeanstalk\1.11.368\aws-java-sdk-elasticbeanstalk-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-glacier\1.11.368\aws-java-sdk-glacier-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-iam\1.11.368\aws-java-sdk-iam-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-datapipeline\1.11.368\aws-java-sdk-datapipeline-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-elasticloadbalancing\1.11.368\aws-java-sdk-elasticloadbalancing-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-elasticloadbalancingv2\1.11.368\aws-java-sdk-elasticloadbalancingv2-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-emr\1.11.368\aws-java-sdk-emr-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-elasticache\1.11.368\aws-java-sdk-elasticache-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-elastictranscoder\1.11.368\aws-java-sdk-elastictranscoder-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-ec2\1.11.368\aws-java-sdk-ec2-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-dynamodb\1.11.368\aws-java-sdk-dynamodb-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-sns\1.11.368\aws-java-sdk-sns-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-budgets\1.11.368\aws-java-sdk-budgets-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudtrail\1.11.368\aws-java-sdk-cloudtrail-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudwatch\1.11.368\aws-java-sdk-cloudwatch-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-logs\1.11.368\aws-java-sdk-logs-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-events\1.11.368\aws-java-sdk-events-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cognitoidentity\1.11.368\aws-java-sdk-cognitoidentity-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cognitosync\1.11.368\aws-java-sdk-cognitosync-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-directconnect\1.11.368\aws-java-sdk-directconnect-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudformation\1.11.368\aws-java-sdk-cloudformation-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudfront\1.11.368\aws-java-sdk-cloudfront-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-clouddirectory\1.11.368\aws-java-sdk-clouddirectory-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-kinesis\1.11.368\aws-java-sdk-kinesis-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-opsworks\1.11.368\aws-java-sdk-opsworks-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-ses\1.11.368\aws-java-sdk-ses-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-autoscaling\1.11.368\aws-java-sdk-autoscaling-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudsearch\1.11.368\aws-java-sdk-cloudsearch-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudwatchmetrics\1.11.368\aws-java-sdk-cloudwatchmetrics-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-codedeploy\1.11.368\aws-java-sdk-codedeploy-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-codepipeline\1.11.368\aws-java-sdk-codepipeline-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-kms\1.11.368\aws-java-sdk-kms-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-config\1.11.368\aws-java-sdk-config-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-lambda\1.11.368\aws-java-sdk-lambda-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-ecs\1.11.368\aws-java-sdk-ecs-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-ecr\1.11.368\aws-java-sdk-ecr-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cloudhsm\1.11.368\aws-java-sdk-cloudhsm-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-ssm\1.11.368\aws-java-sdk-ssm-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-workspaces\1.11.368\aws-java-sdk-workspaces-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-machinelearning\1.11.368\aws-java-sdk-machinelearning-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-directory\1.11.368\aws-java-sdk-directory-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-efs\1.11.368\aws-java-sdk-efs-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-codecommit\1.11.368\aws-java-sdk-codecommit-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-devicefarm\1.11.368\aws-java-sdk-devicefarm-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-elasticsearch\1.11.368\aws-java-sdk-elasticsearch-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-waf\1.11.368\aws-java-sdk-waf-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-marketplacecommerceanalytics\1.11.368\aws-java-sdk-marketplacecommerceanalytics-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-inspector\1.11.368\aws-java-sdk-inspector-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-iot\1.11.368\aws-java-sdk-iot-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-api-gateway\1.11.368\aws-java-sdk-api-gateway-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-acm\1.11.368\aws-java-sdk-acm-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-gamelift\1.11.368\aws-java-sdk-gamelift-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-dms\1.11.368\aws-java-sdk-dms-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-marketplacemeteringservice\1.11.368\aws-java-sdk-marketplacemeteringservice-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-cognitoidp\1.11.368\aws-java-sdk-cognitoidp-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-discovery\1.11.368\aws-java-sdk-discovery-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-applicationautoscaling\1.11.368\aws-java-sdk-applicationautoscaling-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-snowball\1.11.368\aws-java-sdk-snowball-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-rekognition\1.11.368\aws-java-sdk-rekognition-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-polly\1.11.368\aws-java-sdk-polly-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-lightsail\1.11.368\aws-java-sdk-lightsail-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-stepfunctions\1.11.368\aws-java-sdk-stepfunctions-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-health\1.11.368\aws-java-sdk-health-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-costandusagereport\1.11.368\aws-java-sdk-costandusagereport-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-codebuild\1.11.368\aws-java-sdk-codebuild-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-appstream\1.11.368\aws-java-sdk-appstream-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-shield\1.11.368\aws-java-sdk-shield-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-batch\1.11.368\aws-java-sdk-batch-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-lex\1.11.368\aws-java-sdk-lex-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-mechanicalturkrequester\1.11.368\aws-java-sdk-mechanicalturkrequester-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-organizations\1.11.368\aws-java-sdk-organizations-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-workdocs\1.11.368\aws-java-sdk-workdocs-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-core\1.11.368\aws-java-sdk-core-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\software\amazon\ion\ion-java\1.0.2\ion-java-1.0.2.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\dataformat\jackson-dataformat-cbor\2.6.7\jackson-dataformat-cbor-2.6.7.jar;C:\Users\Sohan.Dey\.m2\repository\joda-time\joda-time\2.8.1\joda-time-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-models\1.11.368\aws-java-sdk-models-1.11.368.jar;C:\Users\Sohan.Dey\.m2\repository\com\amazonaws\aws-java-sdk-swf-libraries\1.11.22\aws-java-sdk-swf-libraries-1.11.22.jar;C:\Users\Sohan.Dey\.m2\repository\com\aventstack\extentreports\3.0.0\extentreports-3.0.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\freemarker\freemarker\2.3.23\freemarker-2.3.23.jar;C:\Users\Sohan.Dey\.m2\repository\org\mongodb\mongodb-driver\3.3.0\mongodb-driver-3.3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\mongodb\bson\3.3.0\bson-3.3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\mongodb\mongodb-driver-core\3.3.0\mongodb-driver-core-3.3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\httpcomponents\httpmime\4.5.2\httpmime-4.5.2.jar;C:\Users\Sohan.Dey\.m2\repository\com\relevantcodes\extentreports\2.41.2\extentreports-2.41.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\jsoup\jsoup\1.8.3\jsoup-1.8.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\xerial\sqlite-jdbc\3.8.11.1\sqlite-jdbc-3.8.11.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\jayway\jsonpath\json-path\2.4.0\json-path-2.4.0.jar;C:\Users\Sohan.Dey\.m2\repository\net\minidev\json-smart\2.3\json-smart-2.3.jar;C:\Users\Sohan.Dey\.m2\repository\net\minidev\accessors-smart\1.2\accessors-smart-1.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\ow2\asm\asm\5.0.4\asm-5.0.4.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-model\3.3.9\maven-model-3.3.9.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\plexus\plexus-utils\3.0.22\plexus-utils-3.0.22.jar;C:\Users\Sohan.Dey\.m2\repository\io\rest-assured\rest-assured\3.0.7\rest-assured-3.0.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\groovy\groovy\2.4.12\groovy-2.4.12.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\groovy\groovy-xml\2.4.12\groovy-xml-2.4.12.jar;C:\Users\Sohan.Dey\.m2\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\hamcrest\hamcrest-library\1.3\hamcrest-library-1.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\ccil\cowan\tagsoup\tagsoup\1.2.1\tagsoup-1.2.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\rest-assured\json-path\3.0.7\json-path-3.0.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\groovy\groovy-json\2.4.12\groovy-json-2.4.12.jar;C:\Users\Sohan.Dey\.m2\repository\io\rest-assured\rest-assured-common\3.0.7\rest-assured-common-3.0.7.jar;C:\Users\Sohan.Dey\.m2\repository\io\rest-assured\xml-path\3.0.7\xml-path-3.0.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\testng\testng\6.11\testng-6.11.jar;C:\Users\Sohan.Dey\.m2\repository\com\beust\jcommander\1.64\jcommander-1.64.jar;C:\Users\Sohan.Dey\.m2\repository\org\yaml\snakeyaml\1.17\snakeyaml-1.17.jar;C:\Users\Sohan.Dey\.m2\repository\org\zeroturnaround\zt-zip\1.13\zt-zip-1.13.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.10.1\jackson-core-2.10.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.9.5\jackson-annotations-2.9.5.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.10.5\jackson-databind-2.10.5.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\dataformat\jackson-dataformat-xml\2.9.5\jackson-dataformat-xml-2.9.5.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\module\jackson-module-jaxb-annotations\2.9.5\jackson-module-jaxb-annotations-2.9.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\woodstox\stax2-api\3.1.4\stax2-api-3.1.4.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\woodstox\woodstox-core\5.0.3\woodstox-core-5.0.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\json\json\20180130\json-20180130.jar;C:\Users\Sohan.Dey\.m2\repository\com\googlecode\json-simple\json-simple\1.1.1\json-simple-1.1.1.jar;C:\Users\Sohan.Dey\.m2\repository\junit\junit\4.10\junit-4.10.jar;C:\Users\Sohan.Dey\.m2\repository\com\google\code\gson\gson\2.8.4\gson-2.8.4.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\plugins\maven-assembly-plugin\3.1.0\maven-assembly-plugin-3.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-plugin-api\3.0\maven-plugin-api-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\sisu\sisu-inject-plexus\1.4.2\sisu-inject-plexus-1.4.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\sisu\sisu-inject-bean\1.4.2\sisu-inject-bean-1.4.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\sisu\sisu-guice\2.1.7\sisu-guice-2.1.7-noaop.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-core\3.0\maven-core-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-settings\3.0\maven-settings-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-settings-builder\3.0\maven-settings-builder-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-repository-metadata\3.0\maven-repository-metadata-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-model-builder\3.0\maven-model-builder-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-aether-provider\3.0\maven-aether-provider-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\aether\aether-impl\1.7\aether-impl-1.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\aether\aether-spi\1.7\aether-spi-1.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\aether\aether-api\1.7\aether-api-1.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\aether\aether-util\1.7\aether-util-1.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\plexus\plexus-classworlds\2.2.3\plexus-classworlds-2.2.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\plexus\plexus-component-annotations\1.5.5\plexus-component-annotations-1.5.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\plexus\plexus-sec-dispatcher\1.3\plexus-sec-dispatcher-1.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\plexus\plexus-cipher\1.4\plexus-cipher-1.4.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-artifact\3.0\maven-artifact-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\shared\maven-common-artifact-filters\3.0.1\maven-common-artifact-filters-3.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\shared\maven-shared-utils\3.1.0\maven-shared-utils-3.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\shared\maven-artifact-transfer\0.9.0\maven-artifact-transfer-0.9.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\plexus\plexus-interpolation\1.24\plexus-interpolation-1.24.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\plexus\plexus-archiver\3.5\plexus-archiver-3.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\commons\commons-compress\1.14\commons-compress-1.14.jar;C:\Users\Sohan.Dey\.m2\repository\org\iq80\snappy\snappy\0.4\snappy-0.4.jar;C:\Users\Sohan.Dey\.m2\repository\org\tukaani\xz\1.6\xz-1.6.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\shared\file-management\3.0.0\file-management-3.0.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\shared\maven-shared-io\3.0.0\maven-shared-io-3.0.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-compat\3.0\maven-compat-3.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\wagon\wagon-provider-api\2.10\wagon-provider-api-2.10.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\shared\maven-filtering\3.1.1\maven-filtering-3.1.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\sonatype\plexus\plexus-build-api\0.0.7\plexus-build-api-0.0.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\plexus\plexus-io\3.0.0\plexus-io-3.0.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\maven\maven-archiver\3.2.0\maven-archiver-3.2.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\google\guava\guava\19.0\guava-19.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\hibernate\hibernate-core\5.4.2.Final\hibernate-core-5.4.2.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\logging\jboss-logging\3.3.2.Final\jboss-logging-3.3.2.Final.jar;C:\Users\Sohan.Dey\.m2\repository\javax\persistence\javax.persistence-api\2.2\javax.persistence-api-2.2.jar;C:\Users\Sohan.Dey\.m2\repository\net\bytebuddy\byte-buddy\1.9.10\byte-buddy-1.9.10.jar;C:\Users\Sohan.Dey\.m2\repository\antlr\antlr\2.7.7\antlr-2.7.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\spec\javax\transaction\jboss-transaction-api_1.2_spec\1.1.1.Final\jboss-transaction-api_1.2_spec-1.1.1.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\jboss\jandex\2.0.5.Final\jandex-2.0.5.Final.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\classmate\1.3.4\classmate-1.3.4.jar;C:\Users\Sohan.Dey\.m2\repository\javax\activation\javax.activation-api\1.2.0\javax.activation-api-1.2.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\dom4j\dom4j\2.1.1\dom4j-2.1.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\hibernate\common\hibernate-commons-annotations\5.1.0.Final\hibernate-commons-annotations-5.1.0.Final.jar;C:\Users\Sohan.Dey\.m2\repository\javax\xml\bind\jaxb-api\2.3.1\jaxb-api-2.3.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\glassfish\jaxb\jaxb-runtime\2.3.1\jaxb-runtime-2.3.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\glassfish\jaxb\txw2\2.3.1\txw2-2.3.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\sun\istack\istack-commons-runtime\3.0.7\istack-commons-runtime-3.0.7.jar;C:\Users\Sohan.Dey\.m2\repository\org\jvnet\staxex\stax-ex\1.8\stax-ex-1.8.jar;C:\Users\Sohan.Dey\.m2\repository\com\sun\xml\fastinfoset\FastInfoset\1.2.15\FastInfoset-1.2.15.jar;C:\Users\Sohan.Dey\.m2\repository\commons-beanutils\commons-beanutils\1.9.2\commons-beanutils-1.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\commons-logging\commons-logging\1.1.1\commons-logging-1.1.1.jar;C:\Users\Sohan.Dey\.m2\repository\commons-collections\commons-collections\3.2.1\commons-collections-3.2.1.jar;C:\Users\Sohan.Dey\.m2\repository\javax\validation\validation-api\2.0.1.Final\validation-api-2.0.1.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\swagger\swagger-annotations\1.5.20\swagger-annotations-1.5.20.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.9.5\jackson-datatype-jsr310-2.9.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\postgresql\postgresql\42.2.2\postgresql-42.2.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\slf4j\slf4j-log4j12\1.6.2\slf4j-log4j12-1.6.2.jar;C:\Users\Sohan.Dey\.m2\repository\log4j\log4j\1.2.16\log4j-1.2.16.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\logging\log4j\log4j-api\2.11.1\log4j-api-2.11.1.jar;C:\Users\Sohan.Dey\.m2\repository\net\lingala\zip4j\zip4j\1.3.2\zip4j-1.3.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\httpcomponents\httpclient\4.5.3\httpclient-4.5.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\httpcomponents\httpcore\4.4.6\httpcore-4.4.6.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-client\2.8.1\hadoop-client-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-common\2.8.1\hadoop-common-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\commons-cli\commons-cli\1.2\commons-cli-1.2.jar;C:\Users\Sohan.Dey\.m2\repository\xmlenc\xmlenc\0.52\xmlenc-0.52.jar;C:\Users\Sohan.Dey\.m2\repository\commons-net\commons-net\3.1\commons-net-3.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\mortbay\jetty\jetty-sslengine\6.1.26\jetty-sslengine-6.1.26.jar;C:\Users\Sohan.Dey\.m2\repository\javax\servlet\jsp\jsp-api\2.1\jsp-api-2.1.jar;C:\Users\Sohan.Dey\.m2\repository\commons-configuration\commons-configuration\1.6\commons-configuration-1.6.jar;C:\Users\Sohan.Dey\.m2\repository\commons-digester\commons-digester\1.8\commons-digester-1.8.jar;C:\Users\Sohan.Dey\.m2\repository\commons-beanutils\commons-beanutils-core\1.8.0\commons-beanutils-core-1.8.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\jackson\jackson-core-asl\1.9.13\jackson-core-asl-1.9.13.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\jackson\jackson-mapper-asl\1.9.13\jackson-mapper-asl-1.9.13.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\avro\avro\1.7.4\avro-1.7.4.jar;C:\Users\Sohan.Dey\.m2\repository\com\thoughtworks\paranamer\paranamer\2.3\paranamer-2.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\xerial\snappy\snappy-java\1.0.4.1\snappy-java-1.0.4.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\google\protobuf\protobuf-java\2.5.0\protobuf-java-2.5.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-auth\2.8.1\hadoop-auth-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\directory\server\apacheds-kerberos-codec\2.0.0-M15\apacheds-kerberos-codec-2.0.0-M15.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\directory\server\apacheds-i18n\2.0.0-M15\apacheds-i18n-2.0.0-M15.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\directory\api\api-asn1-api\1.0.0-M20\api-asn1-api-1.0.0-M20.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\directory\api\api-util\1.0.0-M20\api-util-1.0.0-M20.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\curator\curator-framework\2.7.1\curator-framework-2.7.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\curator\curator-client\2.7.1\curator-client-2.7.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\curator\curator-recipes\2.7.1\curator-recipes-2.7.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\google\code\findbugs\jsr305\3.0.0\jsr305-3.0.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\htrace\htrace-core4\4.0.1-incubating\htrace-core4-4.0.1-incubating.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\zookeeper\zookeeper\3.4.6\zookeeper-3.4.6.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty\3.7.0.Final\netty-3.7.0.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-hdfs\2.8.1\hadoop-hdfs-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-hdfs-client\2.8.1\hadoop-hdfs-client-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\squareup\okhttp\okhttp\2.4.0\okhttp-2.4.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\squareup\okio\okio\1.4.0\okio-1.4.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-app\2.8.1\hadoop-mapreduce-client-app-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-common\2.8.1\hadoop-mapreduce-client-common-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-yarn-client\2.8.1\hadoop-yarn-client-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-yarn-server-common\2.8.1\hadoop-yarn-server-common-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-shuffle\2.8.1\hadoop-mapreduce-client-shuffle-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\fusesource\leveldbjni\leveldbjni-all\1.8\leveldbjni-all-1.8.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-yarn-api\2.8.1\hadoop-yarn-api-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-core\2.8.1\hadoop-mapreduce-client-core-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-yarn-common\2.8.1\hadoop-yarn-common-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\javax\servlet\servlet-api\2.5\servlet-api-2.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\mortbay\jetty\jetty-util\6.1.26\jetty-util-6.1.26.jar;C:\Users\Sohan.Dey\.m2\repository\com\sun\jersey\jersey-core\1.9\jersey-core-1.9.jar;C:\Users\Sohan.Dey\.m2\repository\com\sun\jersey\jersey-client\1.9\jersey-client-1.9.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\jackson\jackson-jaxrs\1.9.13\jackson-jaxrs-1.9.13.jar;C:\Users\Sohan.Dey\.m2\repository\org\codehaus\jackson\jackson-xc\1.9.13\jackson-xc-1.9.13.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-jobclient\2.8.1\hadoop-mapreduce-client-jobclient-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\hadoop\hadoop-annotations\2.8.1\hadoop-annotations-2.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\bouncycastle\bcprov-jdk16\1.45\bcprov-jdk16-1.45.jar;C:\Users\Sohan.Dey\.m2\repository\commons-codec\commons-codec\1.11\commons-codec-1.11.jar;C:\Users\Sohan.Dey\.m2\repository\commons-io\commons-io\2.6\commons-io-2.6.jar;C:\Users\Sohan.Dey\.m2\repository\com\google\zxing\core\3.3.3\core-3.3.3.jar;C:\Users\Sohan.Dey\.m2\repository\com\google\zxing\javase\2.0\javase-2.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\hamcrest\hamcrest-all\1.3\hamcrest-all-1.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\velocity\velocity\1.7\velocity-1.7.jar;C:\Users\Sohan.Dey\.m2\repository\commons-lang\commons-lang\2.4\commons-lang-2.4.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\html2pdf\2.0.0\html2pdf-2.0.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\forms\7.1.0\forms-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\kernel\7.1.0\kernel-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\io\7.1.0\io-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\layout\7.1.0\layout-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\itextpdf\5.5.13\itextpdf-5.5.13.jar;C:\Users\Sohan.Dey\.m2\repository\javax\mail\javax.mail-api\1.6.2\javax.mail-api-1.6.2.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\authentication\authentication-demo-service\1.2.0.1-SNAPSHOT\authentication-demo-service-1.2.0.1-SNAPSHOT.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-web\2.0.2.RELEASE\spring-boot-starter-web-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-json\2.0.2.RELEASE\spring-boot-starter-json-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.9.5\jackson-datatype-jdk8-2.9.5.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.9.5\jackson-module-parameter-names-2.9.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\2.0.2.RELEASE\spring-boot-starter-tomcat-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\tomcat\embed\tomcat-embed-el\8.5.31\tomcat-embed-el-8.5.31.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\8.5.31\tomcat-embed-websocket-8.5.31.jar;C:\Users\Sohan.Dey\.m2\repository\org\hibernate\validator\hibernate-validator\6.0.9.Final\hibernate-validator-6.0.9.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-web\5.0.6.RELEASE\spring-web-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-webmvc\5.0.6.RELEASE\spring-webmvc-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-expression\5.0.6.RELEASE\spring-expression-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-test\2.0.2.RELEASE\spring-boot-starter-test-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-test\2.0.2.RELEASE\spring-boot-test-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-test-autoconfigure\2.0.2.RELEASE\spring-boot-test-autoconfigure-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\assertj\assertj-core\3.9.1\assertj-core-3.9.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\skyscreamer\jsonassert\1.5.0\jsonassert-1.5.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\vaadin\external\google\android-json\0.0.20131108.vaadin1\android-json-0.0.20131108.vaadin1.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-core\5.0.6.RELEASE\spring-core-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-jcl\5.0.6.RELEASE\spring-jcl-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-test\5.0.6.RELEASE\spring-test-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\xmlunit\xmlunit-core\2.5.1\xmlunit-core-2.5.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\springfox\springfox-swagger-ui\2.9.2\springfox-swagger-ui-2.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\io\springfox\springfox-spring-web\2.9.2\springfox-spring-web-2.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\io\springfox\springfox-swagger2\2.9.2\springfox-swagger2-2.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\io\springfox\springfox-spi\2.9.2\springfox-spi-2.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\io\springfox\springfox-core\2.9.2\springfox-core-2.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\io\springfox\springfox-schema\2.9.2\springfox-schema-2.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\io\springfox\springfox-swagger-common\2.9.2\springfox-swagger-common-2.9.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\plugin\spring-plugin-core\1.2.0.RELEASE\spring-plugin-core-1.2.0.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\plugin\spring-plugin-metadata\1.2.0.RELEASE\spring-plugin-metadata-1.2.0.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\mapstruct\mapstruct\1.2.0.Final\mapstruct-1.2.0.Final.jar;C:\Users\Sohan.Dey\.m2\repository\javax\ws\rs\javax.ws.rs-api\2.0\javax.ws.rs-api-2.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\authentication\authentication-core\1.2.0.1-SNAPSHOT\authentication-core-1.2.0.1-SNAPSHOT.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-cache\2.0.2.RELEASE\spring-boot-starter-cache-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-context-support\5.0.6.RELEASE\spring-context-support-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\com\machinezoo\sourceafis\sourceafis\3.4.0\sourceafis-3.4.0.jar;C:\Users\Sohan.Dey\.m2\repository\net\sf\trove4j\trove4j\3.0.3\trove4j-3.0.3.jar;C:\Users\Sohan.Dey\.m2\repository\com\machinezoo\noexception\noexception\1.3.2\noexception-1.3.2.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\mhshams\jnbis\2.0.1\jnbis-2.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\sanselan\sanselan\0.97-incubator\sanselan-0.97-incubator.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\idrepository\id-repository-core\1.2.0\id-repository-core-1.2.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-biosdk-provider\1.2.0\kernel-biosdk-provider-1.2.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-biometrics-api\1.2.0\kernel-biometrics-api-1.2.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-demographics-api\1.2.0\kernel-demographics-api-1.2.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-webflux\2.0.2.RELEASE\spring-boot-starter-webflux-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-reactor-netty\2.0.2.RELEASE\spring-boot-starter-reactor-netty-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\io\projectreactor\ipc\reactor-netty\0.7.7.RELEASE\reactor-netty-0.7.7.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-handler-proxy\4.1.24.Final\netty-handler-proxy-4.1.24.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-codec-socks\4.1.24.Final\netty-codec-socks-4.1.24.Final.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-transport-native-epoll\4.1.24.Final\netty-transport-native-epoll-4.1.24.Final-linux-x86_64.jar;C:\Users\Sohan.Dey\.m2\repository\io\netty\netty-transport-native-unix-common\4.1.24.Final\netty-transport-native-unix-common-4.1.24.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-webflux\5.0.6.RELEASE\spring-webflux-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\io\projectreactor\reactor-core\3.1.7.RELEASE\reactor-core-3.1.7.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\synchronoss\cloud\nio-multipart-parser\1.1.0\nio-multipart-parser-1.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\synchronoss\cloud\nio-stream-storage\1.1.3\nio-stream-storage-1.1.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\springdoc\springdoc-openapi-ui\1.5.10\springdoc-openapi-ui-1.5.10.jar;C:\Users\Sohan.Dey\.m2\repository\org\springdoc\springdoc-openapi-webmvc-core\1.5.10\springdoc-openapi-webmvc-core-1.5.10.jar;C:\Users\Sohan.Dey\.m2\repository\org\springdoc\springdoc-openapi-common\1.5.10\springdoc-openapi-common-1.5.10.jar;C:\Users\Sohan.Dey\.m2\repository\io\swagger\core\v3\swagger-models\2.1.10\swagger-models-2.1.10.jar;C:\Users\Sohan.Dey\.m2\repository\io\swagger\core\v3\swagger-annotations\2.1.10\swagger-annotations-2.1.10.jar;C:\Users\Sohan.Dey\.m2\repository\io\swagger\core\v3\swagger-integration\2.1.10\swagger-integration-2.1.10.jar;C:\Users\Sohan.Dey\.m2\repository\io\swagger\core\v3\swagger-core\2.1.10\swagger-core-2.1.10.jar;C:\Users\Sohan.Dey\.m2\repository\jakarta\xml\bind\jakarta.xml.bind-api\2.3.2\jakarta.xml.bind-api-2.3.2.jar;C:\Users\Sohan.Dey\.m2\repository\jakarta\activation\jakarta.activation-api\1.2.1\jakarta.activation-api-1.2.1.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\dataformat\jackson-dataformat-yaml\2.12.1\jackson-dataformat-yaml-2.12.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\github\classgraph\classgraph\4.8.69\classgraph-4.8.69.jar;C:\Users\Sohan.Dey\.m2\repository\org\webjars\swagger-ui\3.51.1\swagger-ui-3.51.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\webjars\webjars-locator-core\0.45\webjars-locator-core-0.45.jar;C:\Users\Sohan.Dey\.m2\repository\commons-fileupload\commons-fileupload\1.4\commons-fileupload-1.4.jar;C:\Users\Sohan.Dey\.m2\repository\org\mockito\mockito-core\2.23.4\mockito-core-2.23.4.jar;C:\Users\Sohan.Dey\.m2\repository\net\bytebuddy\byte-buddy-agent\1.9.3\byte-buddy-agent-1.9.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\objenesis\objenesis\2.6\objenesis-2.6.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-websubclient-api\1.2.0.1-SNAPSHOT\kernel-websubclient-api-1.2.0.1-SNAPSHOT.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-aspects\5.0.6.RELEASE\spring-aspects-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\aspectj\aspectjweaver\1.8.13\aspectjweaver-1.8.13.jar;C:\Users\Sohan.Dey\.m2\repository\org\owasp\encoder\encoder\1.2.3\encoder-1.2.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\tensorflow\tensorflow\1.12.0\tensorflow-1.12.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\tensorflow\libtensorflow\1.12.0\libtensorflow-1.12.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\tensorflow\libtensorflow_jni\1.12.0\libtensorflow_jni-1.12.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-templatemanager-velocity\1.2.0.1-SNAPSHOT\kernel-templatemanager-velocity-1.2.0.1-SNAPSHOT.jar;C:\Users\Sohan.Dey\.m2\repository\javax\servlet\javax.servlet-api\4.0.1\javax.servlet-api-4.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\cloud\spring-cloud-starter-config\2.0.0.RELEASE\spring-cloud-starter-config-2.0.0.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\cloud\spring-cloud-starter\2.0.0.RELEASE\spring-cloud-starter-2.0.0.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\cloud\spring-cloud-context\2.0.0.RELEASE\spring-cloud-context-2.0.0.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\security\spring-security-crypto\5.0.6.RELEASE\spring-security-crypto-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\cloud\spring-cloud-commons\2.0.0.RELEASE\spring-cloud-commons-2.0.0.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\security\spring-security-rsa\1.0.5.RELEASE\spring-security-rsa-1.0.5.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\cloud\spring-cloud-config-client\2.0.0.RELEASE\spring-cloud-config-client-2.0.0.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\jai-imageio\jai-imageio-jpeg2000\1.3.0\jai-imageio-jpeg2000-1.3.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\jai-imageio\jai-imageio-core\1.3.0\jai-imageio-core-1.3.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-keymanager-service\1.2.0.1-SNAPSHOT\kernel-keymanager-service-1.2.0.1-SNAPSHOT-lib.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\security\spring-security-test\5.0.5.RELEASE\spring-security-test-5.0.5.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\security\spring-security-core\5.0.5.RELEASE\spring-security-core-5.0.5.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-pdfgenerator-itext\1.2.0.1-SNAPSHOT\kernel-pdfgenerator-itext-1.2.0.1-SNAPSHOT.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\barcodes\7.1.0\barcodes-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\font-asian\7.1.0\font-asian-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\hyph\7.1.0\hyph-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\pdfa\7.1.0\pdfa-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\sign\7.1.0\sign-7.1.0.jar;C:\Users\Sohan.Dey\.m2\repository\com\itextpdf\tool\xmlworker\5.5.13\xmlworker-5.5.13.jar;C:\Users\Sohan.Dey\.m2\repository\org\bouncycastle\bcpkix-jdk15on\1.66\bcpkix-jdk15on-1.66.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-data-jpa\2.0.2.RELEASE\spring-boot-starter-data-jpa-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-jdbc\2.0.2.RELEASE\spring-boot-starter-jdbc-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\com\zaxxer\HikariCP\2.7.9\HikariCP-2.7.9.jar;C:\Users\Sohan.Dey\.m2\repository\com\h2database\h2\1.4.197\h2-1.4.197.jar;C:\Users\Sohan.Dey\.m2\repository\com\github\microsoft\TSS.Java\0.3.0\TSS.Java-0.3.0.jar;C:\Users\Sohan.Dey\.m2\repository\net\java\dev\jna\jna\4.4.0\jna-4.4.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\cache2k\cache2k-api\2.4.1.Final\cache2k-api-2.4.1.Final.jar;C:\Users\Sohan.Dey\.m2\repository\org\cache2k\cache2k-core\2.4.1.Final\cache2k-core-2.4.1.Final.jar;C:\Users\Sohan.Dey\.m2\repository\com\nimbusds\nimbus-jose-jwt\9.14\nimbus-jose-jwt-9.14.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-core\1.2.0.1-SNAPSHOT\kernel-core-1.2.0.1-SNAPSHOT.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter\2.0.2.RELEASE\spring-boot-starter-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot\2.0.2.RELEASE\spring-boot-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\2.0.2.RELEASE\spring-boot-autoconfigure-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-logging\2.0.2.RELEASE\spring-boot-starter-logging-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.10.0\log4j-to-slf4j-2.10.0.jar;C:\Users\Sohan.Dey\.m2\repository\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\data\spring-data-jpa\2.0.7.RELEASE\spring-data-jpa-2.0.7.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\data\spring-data-commons\2.0.7.RELEASE\spring-data-commons-2.0.7.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-orm\5.0.6.RELEASE\spring-orm-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-jdbc\5.0.6.RELEASE\spring-jdbc-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-context\5.0.6.RELEASE\spring-context-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-aop\5.0.6.RELEASE\spring-aop-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-tx\5.0.6.RELEASE\spring-tx-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\spring-beans\5.0.6.RELEASE\spring-beans-5.0.6.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\aspectj\aspectjrt\1.8.12\aspectjrt-1.8.12.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-security\2.0.2.RELEASE\spring-boot-starter-security-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\security\spring-security-config\5.0.5.RELEASE\spring-security-config-5.0.5.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\security\spring-security-web\5.0.5.RELEASE\spring-security-web-5.0.5.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\javax\transaction\javax.transaction-api\1.3\javax.transaction-api-1.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\bouncycastle\bcprov-jdk15on\1.66\bcprov-jdk15on-1.66.jar;C:\Users\Sohan.Dey\.m2\repository\javax\interceptor\javax.interceptor-api\1.2\javax.interceptor-api-1.2.jar;C:\Users\Sohan.Dey\.m2\repository\com\google\code\findbugs\annotations\3.0.1\annotations-3.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\net\jcip\jcip-annotations\1.0\jcip-annotations-1.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\swagger\swagger-models\1.5.21\swagger-models-1.5.21.jar;C:\Users\Sohan.Dey\.m2\repository\com\auth0\java-jwt\3.8.1\java-jwt-3.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\micrometer\micrometer-core\1.4.2\micrometer-core-1.4.2.jar;C:\Users\Sohan.Dey\.m2\repository\org\hdrhistogram\HdrHistogram\2.1.12\HdrHistogram-2.1.12.jar;C:\Users\Sohan.Dey\.m2\repository\org\latencyutils\LatencyUtils\2.0.3\LatencyUtils-2.0.3.jar;C:\Users\Sohan.Dey\.m2\repository\io\micrometer\micrometer-registry-prometheus\1.4.2\micrometer-registry-prometheus-1.4.2.jar;C:\Users\Sohan.Dey\.m2\repository\io\prometheus\simpleclient_common\0.8.1\simpleclient_common-0.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\prometheus\simpleclient\0.8.1\simpleclient-0.8.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\slf4j\jul-to-slf4j\1.7.25\jul-to-slf4j-1.7.25.jar;C:\Users\Sohan.Dey\.m2\repository\org\slf4j\jcl-over-slf4j\1.7.25\jcl-over-slf4j-1.7.25.jar;C:\Users\Sohan.Dey\.m2\repository\javax\activation\activation\1.1\activation-1.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\cloud\spring-cloud-starter-sleuth\2.0.4.RELEASE\spring-cloud-starter-sleuth-2.0.4.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-aop\2.0.9.RELEASE\spring-boot-starter-aop-2.0.9.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\cloud\spring-cloud-sleuth-core\2.0.4.RELEASE\spring-cloud-sleuth-core-2.0.4.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave\5.6.1\brave-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\zipkin2\zipkin\2.12.0\zipkin-2.12.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\reporter2\zipkin-reporter\2.7.14\zipkin-reporter-2.7.14.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-context-log4j2\5.6.1\brave-context-log4j2-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-spring-web\5.6.1\brave-instrumentation-spring-web-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-http\5.6.1\brave-instrumentation-http-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-spring-rabbit\5.6.1\brave-instrumentation-spring-rabbit-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-kafka-clients\5.6.1\brave-instrumentation-kafka-clients-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-httpclient\5.6.1\brave-instrumentation-httpclient-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-httpasyncclient\5.6.1\brave-instrumentation-httpasyncclient-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-spring-webmvc\5.6.1\brave-instrumentation-spring-webmvc-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\io\zipkin\brave\brave-instrumentation-servlet\5.6.1\brave-instrumentation-servlet-5.6.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-starter-actuator\2.0.2.RELEASE\spring-boot-starter-actuator-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-actuator-autoconfigure\2.0.2.RELEASE\spring-boot-actuator-autoconfigure-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\boot\spring-boot-actuator\2.0.2.RELEASE\spring-boot-actuator-2.0.2.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\8.5.55\tomcat-embed-core-8.5.55.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\tomcat\tomcat-annotations-api\8.5.55\tomcat-annotations-api-8.5.55.jar;C:\Users\Sohan.Dey\.m2\repository\org\springframework\retry\spring-retry\1.2.1.RELEASE\spring-retry-1.2.1.RELEASE.jar;C:\Users\Sohan.Dey\.m2\repository\com\fasterxml\jackson\module\jackson-module-afterburner\2.12.0\jackson-module-afterburner-2.12.0.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-registration-packet-manager\1.1.5.3\kernel-registration-packet-manager-1.1.5.3.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-keygenerator-bouncycastle\1.1.5.3\kernel-keygenerator-bouncycastle-1.1.5.3.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-cbeffutil-api\1.1.5.3\kernel-cbeffutil-api-1.1.5.3.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-logger-logback\1.1.5.3\kernel-logger-logback-1.1.5.3.jar;C:\Users\Sohan.Dey\.m2\repository\net\logstash\logback\logstash-logback-encoder\6.4\logstash-logback-encoder-6.4.jar;C:\Users\Sohan.Dey\.m2\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;C:\Users\Sohan.Dey\.m2\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;C:\Users\Sohan.Dey\.m2\repository\ch\qos\logback\logback-access\1.2.3\logback-access-1.2.3.jar;C:\Users\Sohan.Dey\.m2\repository\io\mosip\kernel\kernel-crypto-jce\1.1.5.3\kernel-crypto-jce-1.1.5.3.jar;C:\Users\Sohan.Dey\.m2\repository\org\bitbucket\b_c\jose4j\0.6.5\jose4j-0.6.5.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\wink\wink-json4j-provider\1.1.2-incubating\wink-json4j-provider-1.1.2-incubating.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\wink\wink-common\1.1.2-incubating\wink-common-1.1.2-incubating.jar;C:\Users\Sohan.Dey\.m2\repository\com\sun\xml\bind\jaxb-impl\2.2.1.1\jaxb-impl-2.2.1.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\geronimo\specs\geronimo-annotation_1.1_spec\1.0\geronimo-annotation_1.1_spec-1.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\wink\wink-json4j\1.1.2-incubating\wink-json4j-1.1.2-incubating.jar;C:\Users\Sohan.Dey\.m2\repository\javax\ws\rs\jsr311-api\1.1.1\jsr311-api-1.1.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\checkerframework\checker-qual\2.9.0\checker-qual-2.9.0.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\activemq\activemq-broker\5.15.9\activemq-broker-5.15.9.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\activemq\activemq-client\5.15.9\activemq-client-5.15.9.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\geronimo\specs\geronimo-jms_1.1_spec\1.1.1\geronimo-jms_1.1_spec-1.1.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\fusesource\hawtbuf\hawtbuf\1.11\hawtbuf-1.11.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\geronimo\specs\geronimo-j2ee-management_1.1_spec\1.0.1\geronimo-j2ee-management_1.1_spec-1.0.1.jar;C:\Users\Sohan.Dey\.m2\repository\org\apache\activemq\activemq-openwire-legacy\5.15.9\activemq-openwire-legacy-5.15.9.jar;C:\Users\Sohan.Dey\.m2\repository\org\projectlombok\lombok\1.18.8\lombok-1.18.8.jar \ No newline at end of file diff --git a/apitest/Dockerfile b/apitest/Dockerfile new file mode 100644 index 00000000000..d60f8894275 --- /dev/null +++ b/apitest/Dockerfile @@ -0,0 +1,57 @@ +FROM mosipdev/openjdk-21-jre:latest + +ARG SOURCE +ARG COMMIT_HASH +ARG COMMIT_ID +ARG BUILD_TIME +LABEL source=${SOURCE} +LABEL commit_hash=${COMMIT_HASH} +LABEL commit_id=${COMMIT_ID} +LABEL build_time=${BUILD_TIME} + +# can be passed during Docker build as build time environment for github branch to pickup configuration from. +ARG container_user=mosip + +# can be passed during Docker build as build time environment for github branch to pickup configuration from. +ARG container_user_group=mosip + +# can be passed during Docker build as build time environment for github branch to pickup configuration from. +ARG container_user_uid=1002 + +# can be passed during Docker build as build time environment for github branch to pickup configuration from. +ARG container_user_gid=1001 + +ARG KUBECTL_VERSION=1.22.9 + +# set working directory for the user +WORKDIR /home/${container_user} + +ENV work_dir=/home/${container_user} + +ADD ./apitest/target/ $work_dir + +ADD entrypoint.sh $work_dir/entrypoint.sh + +# install packages and create user +RUN apt-get -y update \ +&& apt-get install -y unzip jq curl \ +&& groupadd -g ${container_user_gid} ${container_user_group} \ +&& useradd -u ${container_user_uid} -g ${container_user_group} -s /bin/bash -m ${container_user} \ +&& curl -LO "https://storage.googleapis.com/kubernetes-release/release/v${KUBECTL_VERSION}/bin/linux/amd64/kubectl" \ +&& mkdir -p /home/${container_user} \ +&& chmod +x kubectl $work_dir/entrypoint.sh \ +&& mv kubectl /usr/local/bin/ \ +&& chown -R ${container_user}:${container_user} /home/${container_user} /etc/ssl/certs/java/cacerts \ +&& chmod 644 /etc/ssl/certs/java/cacerts + +# select container user for all tasks +USER ${container_user_uid}:${container_user_gid} + +EXPOSE 8083 + +ENV MODULES= +ENV ENV_USER= +ENV ENV_ENDPOINT= +ENV ENV_TESTLEVEL=smokeAndRegression + +ENTRYPOINT ["./entrypoint.sh"] diff --git a/apitest/README.md b/apitest/README.md new file mode 100644 index 00000000000..51b6226796a --- /dev/null +++ b/apitest/README.md @@ -0,0 +1,3 @@ +# Automation test + +All automation test code. diff --git a/apitest/entrypoint.sh b/apitest/entrypoint.sh new file mode 100644 index 00000000000..02756bf9f06 --- /dev/null +++ b/apitest/entrypoint.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +## Run automationtests +java -jar -Dmodules="$MODULES" -Denv.user="$ENV_USER" -Denv.endpoint="$ENV_ENDPOINT" -Denv.testLevel="$ENV_TESTLEVEL" apitest-prereg-*-jar-with-dependencies.jar; \ No newline at end of file diff --git a/apitest/pom.xml b/apitest/pom.xml new file mode 100644 index 00000000000..e0651508aba --- /dev/null +++ b/apitest/pom.xml @@ -0,0 +1,415 @@ + + 4.0.0 + io.mosip.prereg + apitest-prereg + jar + apitest-prereg + Parent project of MOSIP Pre-Registration apitests + https://github.com/mosip/pre-registration + 1.2.1-java21-SNAPSHOT + + + + MPL 2.0 + https://www.mozilla.org/en-US/MPL/2.0/ + + + + + scm:git:git://github.com/mosip/pre-registration.git + scm:git:ssh://github.com:mosip/pre-registration.git + https://github.com/mosip/pre-registration + HEAD + + + + + Mosip + mosip.emailnotifier@gmail.com + io.mosip + https://github.com/mosip/pre-registration + + + + + UTF-8 + + + 21 + 21 + 3.8.0 + 3.0.2 + 3.1.0 + 3.2.0 + 1.5 + 3.2.4 + 3.0.0 + 2.2.1 + + 3.0.1 + apitest-prereg-1.2.1-java21-SNAPSHOT-jar-with-dependencies + + + + + + + UTF-8 + + + 11 + 11 + 3.7.0 + 3.0.2 + 3.1.0 + 2.9 + 0.8.1 + 3.2 + 3.0.1 + 2.3 + false + 3.7.0.1746 + + 2.0.2.RELEASE + 2.0.7.RELEASE + 5.0.5.RELEASE + 2.0.0.RELEASE + + 2.0.7 + 1.5.20 + 2.9.2 + + 3.6.2 + 3.7.0 + + + + 1.2 + 3.0.0 + 1.3 + 2.2 + 2.0.1.Final + 2.2.6 + + + 1.4.197 + 5.1.46 + 42.2.2 + 2.5.0 + 6.0.12.Final + + + 1.10.19 + 1.7.4 + 2.0.0-beta.5 + + + 3.6.1 + 3.7 + 2.6 + 1.11 + 4.3 + 1.9.2 + 2.2 + 4.5.6 + 19.0 + 1.18.32 + 0.1.54 + 1.4.0 + 7.1.0 + 2.0.0 + 5.5.13 + 2.3.23 + 1.7 + 2.0 + 1.5.2 + 2.1.1 + 1.60 + 63.1 + 1.0.0 + 3.3.3 + 2.8.1 + 4.1.0-incubating + 1.11.368 + 0.2.4 + 2.3.0 + 3.0.1 + 1.9.12 + 0.6.0 + 2.0.0.AM2 + + + + + + + + 0.8.2 + 2.2 + 3.2 + UTF-8 + 3.7.0 + 3.0.1 + + + 1.1.6 + 1.7.19 + 1.10.19 + + + 1.4.6 + + + 5.0.6.RELEASE + + + 5.4.2.Final + + + 2.1.1 + + + 10.13.1.1 + + + 3.4.0 + + + 1.3.5 + + + 0.3.12 + + + 0.3.0 + + + 1.1.2-incubating + 1.2.0.1-B1 + 0.4.7 + 3.0.0 + 2.41.2 + 2.4.0 + 3.3.9 + 3.0.7 + 6.11 + 1.13 + automationtests-commons-1.2.0.1-SNAPSHOT-jar-with-dependencies + + + + + io.mosip.testrig.apirig.apitest.commons + apitest-commons + 1.2.1-java21-SNAPSHOT + + + + + + + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + + + attach-javadocs + + jar + + + + + none + + + + maven-compiler-plugin + ${maven.compiler.version} + + ${maven.compiler.source} + ${maven.compiler.target} + -Dfile.encoding=UTF-8 + + + + org.apache.maven.plugins + maven-javadoc-plugin + ${maven.javadoc.version} + + none + + + + pl.project13.maven + git-commit-id-plugin + ${git.commit.id.plugin.version} + + + populate-git-commit-information + + revision + + + true + MM/dd/yyyy HH:mm:ss Z + 8 + true + + ${project.build.outputDirectory}/git.properties + + + + + ${project.basedir}/.git + + + + org.apache.maven.plugins + maven-gpg-plugin + ${maven.gpg.plugin.version} + + + sign-artifacts + verify + + sign + + + + --pinentry-mode + loopback + + + + + + + org.apache.maven.plugins + maven-shade-plugin + ${maven.shade.plugin.version} + + + + shade + + + ${fileName} + + + + + + + io.mosip.testrig.apirig.testrunner.MosipTestRunner + + + + + + *:* + + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA + + + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + + true + true + + + ${project.name} + ${project.version} + ${user.name} + ${os.name} + ${maven.build.timestamp} + ${env.BUILD_NUMBER} + ${env.BUILD_ID} + ${env.BUILD_URL} + + + + + + org.apache.maven.plugins + maven-war-plugin + ${maven.war.plugin.version} + + + + true + true + + + ${project.name} + ${project.version} + ${user.name} + ${os.name} + ${maven.build.timestamp} + ${env.BUILD_NUMBER} + ${env.BUILD_ID} + ${env.BUILD_URL} + + + + + + org.apache.maven.plugins + maven-source-plugin + ${maven.source.plugin.version} + + + attach-sources + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-antrun-plugin + ${maven.antrun.plugin.version} + + + make-jar-executable + package + + run + + + + + + + + + + + + + \ No newline at end of file diff --git a/apitest/src/main/java/io/mosip/testrig/apirig/testrunner/MosipTestRunner.java b/apitest/src/main/java/io/mosip/testrig/apirig/testrunner/MosipTestRunner.java new file mode 100644 index 00000000000..de2bc877984 --- /dev/null +++ b/apitest/src/main/java/io/mosip/testrig/apirig/testrunner/MosipTestRunner.java @@ -0,0 +1,350 @@ +package io.mosip.testrig.apirig.testrunner; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.StringWriter; +import java.security.KeyPair; +import java.security.KeyPairGenerator; +import java.security.NoSuchAlgorithmException; +import java.security.PublicKey; +import java.security.interfaces.RSAPublicKey; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Properties; + +import org.apache.log4j.Logger; +import org.bouncycastle.openssl.jcajce.JcaPEMWriter; +import org.testng.TestNG; + +import com.nimbusds.jose.jwk.KeyUse; +import com.nimbusds.jose.jwk.RSAKey; + +import io.mosip.testrig.apirig.dbaccess.DBManager; +import io.mosip.testrig.apirig.utils.AdminTestUtil; +import io.mosip.testrig.apirig.utils.CertificateGenerationUtil; +import io.mosip.testrig.apirig.utils.CertsUtil; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.EncryptionDecrptionUtil; +import io.mosip.testrig.apirig.utils.GlobalConstants; +import io.mosip.testrig.apirig.utils.JWKKeyUtil; +import io.mosip.testrig.apirig.utils.KeyCloakUserAndAPIKeyGeneration; +import io.mosip.testrig.apirig.utils.KeycloakUserManager; +import io.mosip.testrig.apirig.utils.MispPartnerAndLicenseKeyGeneration; +import io.mosip.testrig.apirig.utils.OutputValidationUtil; +import io.mosip.testrig.apirig.utils.PartnerRegistration; + +/** + * Class to initiate mosip api test execution + * + * @author Vignesh + * + */ +public class MosipTestRunner { + private static final Logger LOGGER = Logger.getLogger(MosipTestRunner.class); + private static String cachedPath = null; + + public static String jarUrl = MosipTestRunner.class.getProtectionDomain().getCodeSource().getLocation().getPath(); + public static List languageList = new ArrayList<>(); + + /** + * C Main method to start mosip test execution + * + * @param arg + */ + public static void main(String[] arg) { + + try { + + Map envMap = System.getenv(); + LOGGER.info("** ------------- Get ALL ENV varibales --------------------------------------------- **"); + for (String envName : envMap.keySet()) { + LOGGER.info(String.format("ENV %s = %s%n", envName, envMap.get(envName))); + } + ExtractResource.removeOldMosipTestTestResource(); + if (checkRunType().equalsIgnoreCase("JAR")) { + ExtractResource.extractCommonResourceFromJar(); + } else { + ExtractResource.copyCommonResources(); + } + ConfigManager.init(); + BaseTestCase.suiteSetup(); + setLogLevels(); + AdminTestUtil.encryptDecryptUtil = new EncryptionDecrptionUtil(); + + // For now we are not doing health check for qa-115. + if (BaseTestCase.isTargetEnvLTS()) { + HealthChecker healthcheck = new HealthChecker(); + healthcheck.setCurrentRunningModule(BaseTestCase.currentModule); + Thread trigger = new Thread(healthcheck); + trigger.start(); + } + KeycloakUserManager.removeUser(); + KeycloakUserManager.createUsers(); + KeycloakUserManager.closeKeycloakInstance(); + + List localLanguageList = new ArrayList<>(BaseTestCase.getLanguageList()); + AdminTestUtil.getLocationData(); + + String partnerKeyURL = ""; + String updatedPartnerKeyURL = ""; + String ekycPartnerKeyURL = ""; + + if (BaseTestCase.listOfModules.contains("auth") + || BaseTestCase.listOfModules.contains(GlobalConstants.ESIGNET)) { + PartnerRegistration.deleteCertificates(); + CertificateGenerationUtil.getThumbprints(); + AdminTestUtil.createAndPublishPolicy(); + AdminTestUtil.createEditAndPublishPolicy(); + partnerKeyURL = PartnerRegistration.generateAndGetPartnerKeyUrl(); + updatedPartnerKeyURL = PartnerRegistration.generateAndGetUpdatedPartnerKeyUrl(); + + AdminTestUtil.createAndPublishPolicyForKyc(); + ekycPartnerKeyURL = PartnerRegistration.generateAndGetEkycPartnerKeyUrl(); + + } + + if (BaseTestCase.listOfModules.contains(GlobalConstants.MASTERDATA)) { + AdminTestUtil.getHierarchyZoneCode(); + BaseTestCase.mapUserToZone(); + BaseTestCase.mapZone(); + AdminTestUtil.getLocationLevelData(); + AdminTestUtil.getLocationData(); + AdminTestUtil.getZoneName(); + + + + for (int i = 0; i < localLanguageList.size(); i++) { + BaseTestCase.languageList.clear(); + BaseTestCase.languageList.add(localLanguageList.get(i)); + + DBManager.clearMasterDbData(); + BaseTestCase.currentModule = GlobalConstants.MASTERDATA; + BaseTestCase.setReportName("masterdata-" + localLanguageList.get(i)); + startTestRunner(); + + } + + } else if (BaseTestCase.listOfModules.contains("auth") + || BaseTestCase.listOfModules.contains(GlobalConstants.ESIGNET)) { + if (partnerKeyURL.isEmpty()) + // if (partnerKeyURL.isEmpty() || ekycPartnerKeyURL.isEmpty()) + LOGGER.error("partnerKeyURL is null"); + else + startTestRunner(); + } else { + startTestRunner(); + } + } catch (Exception e) { + LOGGER.error("Exception " + e.getMessage()); + } + + MockSMTPListener.bTerminate = true; + + if (BaseTestCase.isTargetEnvLTS()) + HealthChecker.bTerminate = true; + + System.exit(0); + + } + + private static void setLogLevels() { + AdminTestUtil.setLogLevel(); + OutputValidationUtil.setLogLevel(); + PartnerRegistration.setLogLevel(); + KeyCloakUserAndAPIKeyGeneration.setLogLevel(); + MispPartnerAndLicenseKeyGeneration.setLogLevel(); + JWKKeyUtil.setLogLevel(); + CertsUtil.setLogLevel(); + } + + /** + * The method to start mosip testng execution + * + * @throws IOException + */ + public static void startTestRunner() { + File homeDir = null; + TestNG runner = new TestNG(); + List suitefiles = new ArrayList<>(); + List modulesToRun = BaseTestCase.listOfModules; + String os = System.getProperty("os.name"); + LOGGER.info(os); + if (checkRunType().contains("IDE") || os.toLowerCase().contains("windows")) { + homeDir = new File(System.getProperty("user.dir") + "/testNgXmlFiles"); + LOGGER.info("IDE :" + homeDir); + } else { + File dir = new File(System.getProperty("user.dir")); + homeDir = new File(dir.getParent() + "/mosip/testNgXmlFiles"); + LOGGER.info("ELSE :" + homeDir); + } + for (File file : homeDir.listFiles()) { + for (String fileName : modulesToRun) { + if (file.getName().toLowerCase().contains(fileName)) { + suitefiles.add(file.getAbsolutePath()); + } else if (fileName.equals("all") && file.getName().toLowerCase().contains("testng")) { + suitefiles.add(file.getAbsolutePath()); + } + } + } + runner.setTestSuites(suitefiles); + System.getProperties().setProperty("testng.outpur.dir", "testng-report"); + runner.setOutputDirectory("testng-report"); + runner.run(); + } + + /** + * The method to return class loader resource path + * + * @return String + * @throws IOException + */ + /* + * public static String getGlobalResourcePath() { if + * (checkRunType().equalsIgnoreCase("JAR")) { return new + * File(jarUrl).getParentFile().getAbsolutePath() + + * "/MosipTestResource/MosipTemporaryTestResource"; } else if + * (checkRunType().equalsIgnoreCase("IDE")) { String path = new + * File(MosipTestRunner.class.getClassLoader().getResource("").getPath()). + * getAbsolutePath() + "/MosipTestResource/MosipTemporaryTestResource"; if + * (path.contains(GlobalConstants.TESTCLASSES)) path = + * path.replace(GlobalConstants.TESTCLASSES, "classes"); return path; } return + * "Global Resource File Path Not Found"; } + */ + + public static String getGlobalResourcePath() { + if (cachedPath != null) { + return cachedPath; + } + + String path = null; + if (checkRunType().equalsIgnoreCase("JAR")) { + path = new File(jarUrl).getParentFile().getAbsolutePath() + "/MosipTestResource/MosipTemporaryTestResource"; + } else if (checkRunType().equalsIgnoreCase("IDE")) { + path = new File(MosipTestRunner.class.getClassLoader().getResource("").getPath()).getAbsolutePath() + + "/MosipTestResource/MosipTemporaryTestResource"; + if (path.contains(GlobalConstants.TESTCLASSES)) + path = path.replace(GlobalConstants.TESTCLASSES, "classes"); + } + + if (path != null) { + cachedPath = path; + return path; + } else { + return "Global Resource File Path Not Found"; + } + } + + public static String getResourcePath() { + return getGlobalResourcePath(); +// if (checkRunType().equalsIgnoreCase("JAR")) { +// return new File(jarUrl).getParentFile().getAbsolutePath(); +// } else if (checkRunType().equalsIgnoreCase("IDE")) { +// String path = new File(MosipTestRunner.class.getClassLoader().getResource("").getPath()).getAbsolutePath(); +// if (path.contains(GlobalConstants.TESTCLASSES)) +// path = path.replace(GlobalConstants.TESTCLASSES, "classes"); +// return path; +// } +// return "Global Resource File Path Not Found"; + } + + public static String generatePulicKey() { + String publicKey = null; + try { + KeyPairGenerator keyGenerator = KeyPairGenerator.getInstance("RSA"); + keyGenerator.initialize(2048, BaseTestCase.secureRandom); + final KeyPair keypair = keyGenerator.generateKeyPair(); + publicKey = java.util.Base64.getEncoder().encodeToString(keypair.getPublic().getEncoded()); + } catch (NoSuchAlgorithmException e) { + LOGGER.error(e.getMessage()); + } + return publicKey; + } + + public static KeyPairGenerator keyPairGen = null; + + public static KeyPairGenerator getKeyPairGeneratorInstance() { + if (keyPairGen != null) + return keyPairGen; + try { + keyPairGen = KeyPairGenerator.getInstance("RSA"); + keyPairGen.initialize(2048); + + } catch (NoSuchAlgorithmException e) { + LOGGER.error(e.getMessage()); + } + + return keyPairGen; + } + + public static String generatePublicKeyForMimoto() { + + String vcString = ""; + try { + KeyPairGenerator keyPairGenerator = getKeyPairGeneratorInstance(); + KeyPair keyPair = keyPairGenerator.generateKeyPair(); + PublicKey publicKey = keyPair.getPublic(); + StringWriter stringWriter = new StringWriter(); + try (JcaPEMWriter pemWriter = new JcaPEMWriter(stringWriter)) { + pemWriter.writeObject(publicKey); + pemWriter.flush(); + vcString = stringWriter.toString(); + if (System.getProperty("os.name").toLowerCase().contains("windows")) { + vcString = vcString.replaceAll("\r\n", "\\\\n"); + } else { + vcString = vcString.replaceAll("\n", "\\\\n"); + } + } catch (Exception e) { + throw e; + } + } catch (Exception e) { + LOGGER.error(e.getMessage()); + } + return vcString; + } + + public static String generateJWKPublicKey() { + try { + KeyPairGenerator keyGenerator = KeyPairGenerator.getInstance("RSA"); + keyGenerator.initialize(2048, BaseTestCase.secureRandom); + final KeyPair keypair = keyGenerator.generateKeyPair(); + RSAKey jwk = new RSAKey.Builder((RSAPublicKey) keypair.getPublic()).keyID("RSAKeyID") + .keyUse(KeyUse.SIGNATURE).privateKey(keypair.getPrivate()).build(); + + return jwk.toJSONString(); + } catch (NoSuchAlgorithmException e) { + LOGGER.error(e.getMessage()); + return null; + } + } + + public static Properties getproperty(String path) { + Properties prop = new Properties(); + FileInputStream inputStream = null; + try { + File file = new File(path); + inputStream = new FileInputStream(file); + prop.load(inputStream); + } catch (Exception e) { + LOGGER.error(GlobalConstants.EXCEPTION_STRING_2 + e.getMessage()); + } finally { + AdminTestUtil.closeInputStream(inputStream); + } + return prop; + } + + /** + * The method will return mode of application started either from jar or eclipse + * ide + * + * @return + */ + public static String checkRunType() { + if (MosipTestRunner.class.getResource("MosipTestRunner.class").getPath().contains(".jar")) + return "JAR"; + else + return "IDE"; + } + +} diff --git a/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/BookAppoinmentByPrid.java b/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/BookAppoinmentByPrid.java new file mode 100644 index 00000000000..a709f1e9656 --- /dev/null +++ b/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/BookAppoinmentByPrid.java @@ -0,0 +1,146 @@ +package io.mosip.testrig.apirig.testscripts; + +import java.lang.reflect.Field; +import java.util.List; +import java.util.Map; + +import javax.ws.rs.core.MediaType; + +import org.apache.log4j.Level; +import org.apache.log4j.Logger; +import org.testng.Assert; +import org.testng.ITest; +import org.testng.ITestContext; +import org.testng.ITestResult; +import org.testng.Reporter; +import org.testng.SkipException; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; +import org.testng.internal.BaseTestMethod; +import org.testng.internal.TestResult; + +import io.mosip.testrig.apirig.dto.OutputValidationDto; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.HealthChecker; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.utils.AdminTestUtil; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.GlobalConstants; +import io.mosip.testrig.apirig.utils.KernelAuthentication; +import io.mosip.testrig.apirig.utils.OutputValidationUtil; +import io.mosip.testrig.apirig.utils.ReportUtil; +import io.mosip.testrig.apirig.utils.RestClient; +import io.restassured.response.Response; + +public class BookAppoinmentByPrid extends AdminTestUtil implements ITest { + private static final Logger logger = Logger.getLogger(BookAppoinmentByPrid.class); + protected String testCaseName = ""; + public Response response = null; + + @BeforeClass + public static void setLogLevel() { + if (ConfigManager.IsDebugEnabled()) + logger.setLevel(Level.ALL); + else + logger.setLevel(Level.ERROR); + } + + /** + * get current testcaseName + */ + @Override + public String getTestName() { + return testCaseName; + } + + /** + * Data provider class provides test case list + * + * @return object of data provider + */ + @DataProvider(name = "testcaselist") + public Object[] getTestCaseList(ITestContext context) { + String ymlFile = context.getCurrentXmlTest().getLocalParameters().get("ymlFile"); + logger.info("Started executing yml: " + ymlFile); + return getYmlTestData(ymlFile); + } + + /** + * Test method for OTP Generation execution + * + * @param objTestParameters + * @param testScenario + * @param testcaseName + * @throws AuthenticationTestException + * @throws AdminTestException + */ + @Test(dataProvider = "testcaselist") + public void test(TestCaseDTO testCaseDTO) throws AuthenticationTestException, AdminTestException { + String regCenterId = null; + String appDate = null; + String timeSlotFrom = null; + String timeSlotTo = null; + testCaseName = testCaseDTO.getTestCaseName(); + if (HealthChecker.signalTerminateExecution) { + throw new SkipException( + GlobalConstants.TARGET_ENV_HEALTH_CHECK_FAILED + HealthChecker.healthCheckFailureMapS); + } + Response slotAvailabilityResponse = RestClient.getRequestWithCookie( + ApplnURI + properties.getProperty("appointmentavailabilityurl") + + properties.getProperty("regcentretobookappointment"), + MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON, COOKIENAME, + new KernelAuthentication().getTokenByRole(testCaseDTO.getRole())); + List appointmentDetails = AdminTestUtil.getAppointmentDetails(slotAvailabilityResponse); + if (appointmentDetails.size() >= 4) { + try { + regCenterId = appointmentDetails.get(0); + appDate = appointmentDetails.get(1); + timeSlotFrom = appointmentDetails.get(2); + timeSlotTo = appointmentDetails.get(3); + } catch (IndexOutOfBoundsException e) { + logger.info("Center not available"); + Assert.fail("Centers unavailable"); + } + } + String inputJosn = getJsonFromTemplate(testCaseDTO.getInput(), testCaseDTO.getInputTemplate()); + inputJosn = inputJosn.replace("$registration_center_id$", regCenterId); + inputJosn = inputJosn.replace("$appointment_date$", appDate); + inputJosn = inputJosn.replace("$time_slot_from$", timeSlotFrom); + inputJosn = inputJosn.replace("$time_slot_to$", timeSlotTo); + response = postWithBodyAndCookie(ApplnURI + testCaseDTO.getEndPoint(), inputJosn, COOKIENAME, + testCaseDTO.getRole(), testCaseDTO.getTestCaseName()); + + Map> ouputValid = OutputValidationUtil.doJsonOutputValidation( + response.asString(), getJsonFromTemplate(testCaseDTO.getOutput(), testCaseDTO.getOutputTemplate()), + testCaseDTO, response.getStatusCode()); + Reporter.log(ReportUtil.getOutputValidationReport(ouputValid)); + + if (!OutputValidationUtil.publishOutputResult(ouputValid)) + throw new AdminTestException("Failed at output validation"); + + } + + /** + * The method ser current test name to result + * + * @param result + */ + @AfterMethod(alwaysRun = true) + public void setResultTestName(ITestResult result) { + try { + Field method = TestResult.class.getDeclaredField("m_method"); + method.setAccessible(true); + method.set(result, result.getMethod().clone()); + BaseTestMethod baseTestMethod = (BaseTestMethod) result.getMethod(); + Field f = baseTestMethod.getClass().getSuperclass().getDeclaredField("m_methodName"); + f.setAccessible(true); + f.set(baseTestMethod, testCaseName); + } catch (Exception e) { + Reporter.log("Exception : " + e.getMessage()); + } + } + +} diff --git a/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/CreatePreReg.java b/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/CreatePreReg.java new file mode 100644 index 00000000000..f64c3ef307b --- /dev/null +++ b/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/CreatePreReg.java @@ -0,0 +1,148 @@ +package io.mosip.testrig.apirig.testscripts; + +import java.lang.reflect.Field; +import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Level; +import org.apache.log4j.Logger; +import org.json.JSONObject; +import org.testng.ITest; +import org.testng.ITestContext; +import org.testng.ITestResult; +import org.testng.Reporter; +import org.testng.SkipException; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; +import org.testng.internal.BaseTestMethod; +import org.testng.internal.TestResult; + +import io.mosip.testrig.apirig.dto.OutputValidationDto; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; +import io.mosip.testrig.apirig.testrunner.HealthChecker; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.utils.AdminTestUtil; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.GlobalConstants; +import io.mosip.testrig.apirig.utils.OutputValidationUtil; +import io.mosip.testrig.apirig.utils.ReportUtil; +import io.restassured.response.Response; + +public class CreatePreReg extends AdminTestUtil implements ITest { + private static final Logger logger = Logger.getLogger(CreatePreReg.class); + protected String testCaseName = ""; + public String idKeyName = null; + public Response response = null; + + @BeforeClass + public static void setLogLevel() { + if (ConfigManager.IsDebugEnabled()) + logger.setLevel(Level.ALL); + else + logger.setLevel(Level.ERROR); + } + + /** + * get current testcaseName + */ + @Override + public String getTestName() { + return testCaseName; + } + + /** + * Data provider class provides test case list + * + * @return object of data provider + */ + @DataProvider(name = "testcaselist") + public Object[] getTestCaseList(ITestContext context) { + String ymlFile = context.getCurrentXmlTest().getLocalParameters().get("ymlFile"); + idKeyName = context.getCurrentXmlTest().getLocalParameters().get("idKeyName"); + logger.info("Started executing yml: " + ymlFile); + return getYmlTestData(ymlFile); + } + + /** + * Test method for OTP Generation execution + * + * @param objTestParameters + * @param testScenario + * @param testcaseName + * @throws AuthenticationTestException + * @throws AdminTestException + * @throws NoSuchAlgorithmException + */ + @Test(dataProvider = "testcaselist") + public void test(TestCaseDTO testCaseDTO) + throws AuthenticationTestException, AdminTestException, NoSuchAlgorithmException { + testCaseName = testCaseDTO.getTestCaseName(); + if (HealthChecker.signalTerminateExecution) { + throw new SkipException( + GlobalConstants.TARGET_ENV_HEALTH_CHECK_FAILED + HealthChecker.healthCheckFailureMapS); + } + testCaseDTO.setInputTemplate(AdminTestUtil.generateHbsForPrereg(false)); + String[] templateFields = testCaseDTO.getTemplateFields(); + + String jsonInput = testCaseDTO.getInput(); + + String inputJson = getJsonFromTemplate(jsonInput, testCaseDTO.getInputTemplate(), false); + String outputJson = getJsonFromTemplate(testCaseDTO.getOutput(), testCaseDTO.getOutputTemplate()); + if (testCaseDTO.getTemplateFields() != null && templateFields.length > 0) { + ArrayList inputtestCases = AdminTestUtil.getInputTestCase(testCaseDTO); + ArrayList outputtestcase = AdminTestUtil.getOutputTestCase(testCaseDTO); + + languageList = new ArrayList<>(BaseTestCase.getLanguageList()); + for (int i = 0; i < languageList.size(); i++) { + response = postWithBodyAndCookieForAutoGeneratedId(ApplnURI + testCaseDTO.getEndPoint(), + getJsonFromTemplate(inputtestCases.get(i).toString(), testCaseDTO.getInputTemplate()), + COOKIENAME, testCaseDTO.getRole(), testCaseDTO.getTestCaseName(), idKeyName); + + Map> ouputValid = OutputValidationUtil.doJsonOutputValidation( + response.asString(), + getJsonFromTemplate(outputtestcase.get(i).toString(), testCaseDTO.getOutputTemplate()), + testCaseDTO, response.getStatusCode()); + + Reporter.log(ReportUtil.getOutputValidationReport(ouputValid)); + + if (!OutputValidationUtil.publishOutputResult(ouputValid)) + throw new AdminTestException("Failed at output validation"); + } + } else { + response = postWithBodyAndCookieForAutoGeneratedId(ApplnURI + testCaseDTO.getEndPoint(), inputJson, + COOKIENAME, testCaseDTO.getRole(), testCaseDTO.getTestCaseName(), idKeyName); + Map> ouputValid = OutputValidationUtil + .doJsonOutputValidation(response.asString(), outputJson, testCaseDTO, response.getStatusCode()); + Reporter.log(ReportUtil.getOutputValidationReport(ouputValid)); + if (!OutputValidationUtil.publishOutputResult(ouputValid)) + throw new AdminTestException("Failed at output validation"); + } + + } + + /** + * The method ser current test name to result + * + * @param result + */ + @AfterMethod(alwaysRun = true) + public void setResultTestName(ITestResult result) { + try { + Field method = TestResult.class.getDeclaredField("m_method"); + method.setAccessible(true); + method.set(result, result.getMethod().clone()); + BaseTestMethod baseTestMethod = (BaseTestMethod) result.getMethod(); + Field f = baseTestMethod.getClass().getSuperclass().getDeclaredField("m_methodName"); + f.setAccessible(true); + f.set(baseTestMethod, testCaseName); + } catch (Exception e) { + Reporter.log("Exception : " + e.getMessage()); + } + } +} diff --git a/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/DeleteWithParam.java b/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/DeleteWithParam.java new file mode 100644 index 00000000000..cf3496b404e --- /dev/null +++ b/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/DeleteWithParam.java @@ -0,0 +1,137 @@ +package io.mosip.testrig.apirig.testscripts; + +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Level; +import org.apache.log4j.Logger; +import org.json.JSONObject; +import org.testng.ITest; +import org.testng.ITestContext; +import org.testng.ITestResult; +import org.testng.Reporter; +import org.testng.SkipException; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; +import org.testng.internal.BaseTestMethod; +import org.testng.internal.TestResult; + +import io.mosip.testrig.apirig.dto.OutputValidationDto; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.HealthChecker; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.utils.AdminTestUtil; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.GlobalConstants; +import io.mosip.testrig.apirig.utils.OutputValidationUtil; +import io.mosip.testrig.apirig.utils.ReportUtil; +import io.restassured.response.Response; + +public class DeleteWithParam extends AdminTestUtil implements ITest { + private static final Logger logger = Logger.getLogger(DeleteWithParam.class); + protected String testCaseName = ""; + public Response response = null; + + @BeforeClass + public static void setLogLevel() { + if (ConfigManager.IsDebugEnabled()) + logger.setLevel(Level.ALL); + else + logger.setLevel(Level.ERROR); + } + + /** + * get current testcaseName + */ + @Override + public String getTestName() { + return testCaseName; + } + + /** + * Data provider class provides test case list + * + * @return object of data provider + */ + @DataProvider(name = "testcaselist") + public Object[] getTestCaseList(ITestContext context) { + String ymlFile = context.getCurrentXmlTest().getLocalParameters().get("ymlFile"); + logger.info("Started executing yml: " + ymlFile); + return getYmlTestData(ymlFile); + } + + /** + * + * @param testScenario + * @param testcaseName + * @throws AuthenticationTestException + * @throws AdminTestException + */ + @Test(dataProvider = "testcaselist") + public void test(TestCaseDTO testCaseDTO) throws AuthenticationTestException, AdminTestException { + testCaseName = testCaseDTO.getTestCaseName(); + testCaseName = isTestCaseValidForExecution(testCaseDTO); + if (HealthChecker.signalTerminateExecution) { + throw new SkipException( + GlobalConstants.TARGET_ENV_HEALTH_CHECK_FAILED + HealthChecker.healthCheckFailureMapS); + } + String[] templateFields = testCaseDTO.getTemplateFields(); + + if (testCaseDTO.getTemplateFields() != null && templateFields.length > 0) { + ArrayList inputtestCases = AdminTestUtil.getInputTestCase(testCaseDTO); + ArrayList outputtestcase = AdminTestUtil.getOutputTestCase(testCaseDTO); + + for (int i = 0; i < languageList.size(); i++) { + response = deleteWithPathParamAndCookie(ApplnURI + testCaseDTO.getEndPoint(), + getJsonFromTemplate(inputtestCases.get(i).toString(), testCaseDTO.getInputTemplate()), + COOKIENAME, testCaseDTO.getRole(), testCaseDTO.getTestCaseName()); + + Map> ouputValid = OutputValidationUtil.doJsonOutputValidation( + response.asString(), + getJsonFromTemplate(outputtestcase.get(i).toString(), testCaseDTO.getOutputTemplate()), + testCaseDTO, response.getStatusCode()); + Reporter.log(ReportUtil.getOutputValidationReport(ouputValid)); + + if (!OutputValidationUtil.publishOutputResult(ouputValid)) + throw new AdminTestException("Failed at output validation"); + } + } + + else { + response = deleteWithPathParamAndCookie(ApplnURI + testCaseDTO.getEndPoint(), + getJsonFromTemplate(testCaseDTO.getInput(), testCaseDTO.getInputTemplate()), COOKIENAME, + testCaseDTO.getRole(), testCaseDTO.getTestCaseName()); + Map> ouputValid = OutputValidationUtil.doJsonOutputValidation( + response.asString(), getJsonFromTemplate(testCaseDTO.getOutput(), testCaseDTO.getOutputTemplate()), + testCaseDTO, response.getStatusCode()); + Reporter.log(ReportUtil.getOutputValidationReport(ouputValid)); + if (!OutputValidationUtil.publishOutputResult(ouputValid)) + throw new AdminTestException("Failed at output validation"); + } + } + + /** + * The method ser current test name to result + * + * @param result + */ + @AfterMethod(alwaysRun = true) + public void setResultTestName(ITestResult result) { + try { + Field method = TestResult.class.getDeclaredField("m_method"); + method.setAccessible(true); + method.set(result, result.getMethod().clone()); + BaseTestMethod baseTestMethod = (BaseTestMethod) result.getMethod(); + Field f = baseTestMethod.getClass().getSuperclass().getDeclaredField("m_methodName"); + f.setAccessible(true); + f.set(baseTestMethod, testCaseName); + } catch (Exception e) { + Reporter.log("Exception : " + e.getMessage()); + } + } +} \ No newline at end of file diff --git a/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/GetWithParam.java b/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/GetWithParam.java new file mode 100644 index 00000000000..619854620ab --- /dev/null +++ b/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/GetWithParam.java @@ -0,0 +1,145 @@ +package io.mosip.testrig.apirig.testscripts; + +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Level; +import org.apache.log4j.Logger; +import org.json.JSONObject; +import org.testng.ITest; +import org.testng.ITestContext; +import org.testng.ITestResult; +import org.testng.Reporter; +import org.testng.SkipException; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; +import org.testng.internal.BaseTestMethod; +import org.testng.internal.TestResult; + +import io.mosip.testrig.apirig.dto.OutputValidationDto; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.HealthChecker; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.utils.AdminTestUtil; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.GlobalConstants; +import io.mosip.testrig.apirig.utils.OutputValidationUtil; +import io.mosip.testrig.apirig.utils.ReportUtil; +import io.restassured.response.Response; + +public class GetWithParam extends AdminTestUtil implements ITest { + private static final Logger logger = Logger.getLogger(GetWithParam.class); + protected String testCaseName = ""; + public Response response = null; + public boolean auditLogCheck = false; + + @BeforeClass + public static void setLogLevel() { + if (ConfigManager.IsDebugEnabled()) + logger.setLevel(Level.ALL); + else + logger.setLevel(Level.ERROR); + } + + /** + * get current testcaseName + */ + @Override + public String getTestName() { + return testCaseName; + } + + /** + * Data provider class provides test case list + * + * @return object of data provider + */ + @DataProvider(name = "testcaselist") + public Object[] getTestCaseList(ITestContext context) { + String ymlFile = context.getCurrentXmlTest().getLocalParameters().get("ymlFile"); + logger.info("Started executing yml: " + ymlFile); + return getYmlTestData(ymlFile); + } + + /** + * Test method for OTP Generation execution + * + * @param objTestParameters + * @param testScenario + * @param testcaseName + * @throws AuthenticationTestException + * @throws AdminTestException + */ + @Test(dataProvider = "testcaselist") + public void test(TestCaseDTO testCaseDTO) throws AuthenticationTestException, AdminTestException { + testCaseName = testCaseDTO.getTestCaseName(); + testCaseName = isTestCaseValidForExecution(testCaseDTO); + if (HealthChecker.signalTerminateExecution) { + throw new SkipException( + GlobalConstants.TARGET_ENV_HEALTH_CHECK_FAILED + HealthChecker.healthCheckFailureMapS); + } + + auditLogCheck = testCaseDTO.isAuditLogCheck(); + String[] templateFields = testCaseDTO.getTemplateFields(); + + + if (testCaseDTO.getTemplateFields() != null && templateFields.length > 0) { + ArrayList inputtestCases = AdminTestUtil.getInputTestCase(testCaseDTO); + ArrayList outputtestcase = AdminTestUtil.getOutputTestCase(testCaseDTO); + for (int i = 0; i < languageList.size(); i++) { + response = getWithPathParamAndCookie(ApplnURI + testCaseDTO.getEndPoint(), + getJsonFromTemplate(inputtestCases.get(i).toString(), testCaseDTO.getInputTemplate()), + COOKIENAME, testCaseDTO.getRole(), testCaseDTO.getTestCaseName()); + + Map> ouputValid = OutputValidationUtil.doJsonOutputValidation( + response.asString(), + getJsonFromTemplate(outputtestcase.get(i).toString(), testCaseDTO.getOutputTemplate()), + testCaseDTO, response.getStatusCode()); + Reporter.log(ReportUtil.getOutputValidationReport(ouputValid)); + + if (!OutputValidationUtil.publishOutputResult(ouputValid)) + throw new AdminTestException("Failed at output validation"); + } + } + + else { + response = getWithPathParamAndCookie(ApplnURI + testCaseDTO.getEndPoint(), + getJsonFromTemplate(testCaseDTO.getInput(), testCaseDTO.getInputTemplate()), auditLogCheck, + COOKIENAME, testCaseDTO.getRole(), testCaseDTO.getTestCaseName()); + } + Map> ouputValid = null; + ouputValid = OutputValidationUtil.doJsonOutputValidation(response.asString(), + getJsonFromTemplate(testCaseDTO.getOutput(), testCaseDTO.getOutputTemplate()), testCaseDTO, + response.getStatusCode()); + + Reporter.log(ReportUtil.getOutputValidationReport(ouputValid)); + if (!OutputValidationUtil.publishOutputResult(ouputValid)) + throw new AdminTestException("Failed at output validation"); + } + + + /** + * The method ser current test name to result + * + * @param result + */ + @AfterMethod(alwaysRun = true) + public void setResultTestName(ITestResult result) { + try { + Field method = TestResult.class.getDeclaredField("m_method"); + method.setAccessible(true); + method.set(result, result.getMethod().clone()); + BaseTestMethod baseTestMethod = (BaseTestMethod) result.getMethod(); + Field f = baseTestMethod.getClass().getSuperclass().getDeclaredField("m_methodName"); + f.setAccessible(true); + f.set(baseTestMethod, testCaseName); + } catch (Exception e) { + Reporter.log("Exception : " + e.getMessage()); + } + } +} diff --git a/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/GetWithParamForAutoGenId.java b/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/GetWithParamForAutoGenId.java new file mode 100644 index 00000000000..73c0d3dafe3 --- /dev/null +++ b/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/GetWithParamForAutoGenId.java @@ -0,0 +1,147 @@ +package io.mosip.testrig.apirig.testscripts; + +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Level; +import org.apache.log4j.Logger; +import org.json.JSONObject; +import org.testng.ITest; +import org.testng.ITestContext; +import org.testng.ITestResult; +import org.testng.Reporter; +import org.testng.SkipException; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; +import org.testng.internal.BaseTestMethod; +import org.testng.internal.TestResult; + +import io.mosip.testrig.apirig.dto.OutputValidationDto; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.HealthChecker; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.utils.AdminTestUtil; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.GlobalConstants; +import io.mosip.testrig.apirig.utils.OutputValidationUtil; +import io.mosip.testrig.apirig.utils.ReportUtil; +import io.restassured.response.Response; + +public class GetWithParamForAutoGenId extends AdminTestUtil implements ITest { + private static final Logger logger = Logger.getLogger(GetWithParamForAutoGenId.class); + protected String testCaseName = ""; + public String idKeyName = null; + public Response response = null; + public boolean auditLogCheck = false; + + @BeforeClass + public static void setLogLevel() { + if (ConfigManager.IsDebugEnabled()) + logger.setLevel(Level.ALL); + else + logger.setLevel(Level.ERROR); + } + + /** + * get current testcaseName + */ + @Override + public String getTestName() { + return testCaseName; + } + + /** + * Data provider class provides test case list + * + * @return object of data provider + */ + @DataProvider(name = "testcaselist") + public Object[] getTestCaseList(ITestContext context) { + String ymlFile = context.getCurrentXmlTest().getLocalParameters().get("ymlFile"); + idKeyName = context.getCurrentXmlTest().getLocalParameters().get("idKeyName"); + logger.info("Started executing yml: " + ymlFile); + return getYmlTestData(ymlFile); + } + + /** + * Test method for OTP Generation execution + * + * @param objTestParameters + * @param testScenario + * @param testcaseName + * @throws AuthenticationTestException + * @throws AdminTestException + */ + @Test(dataProvider = "testcaselist") + public void test(TestCaseDTO testCaseDTO) throws AuthenticationTestException, AdminTestException { + testCaseName = testCaseDTO.getTestCaseName(); + testCaseName = isTestCaseValidForExecution(testCaseDTO); + if (HealthChecker.signalTerminateExecution) { + throw new SkipException( + GlobalConstants.TARGET_ENV_HEALTH_CHECK_FAILED + HealthChecker.healthCheckFailureMapS); + } + + auditLogCheck = testCaseDTO.isAuditLogCheck(); + String[] templateFields = testCaseDTO.getTemplateFields(); + + if (testCaseDTO.getTemplateFields() != null && templateFields.length > 0) { + ArrayList inputtestCases = AdminTestUtil.getInputTestCase(testCaseDTO); + ArrayList outputtestcase = AdminTestUtil.getOutputTestCase(testCaseDTO); + for (int i = 0; i < languageList.size(); i++) { + response = getWithPathParamAndCookieForAutoGeneratedId(ApplnURI + testCaseDTO.getEndPoint(), + getJsonFromTemplate(inputtestCases.get(i).toString(), testCaseDTO.getInputTemplate()), + COOKIENAME, testCaseDTO.getRole(), testCaseDTO.getTestCaseName(), idKeyName); + + Map> ouputValid = OutputValidationUtil.doJsonOutputValidation( + response.asString(), + getJsonFromTemplate(outputtestcase.get(i).toString(), testCaseDTO.getOutputTemplate()), + testCaseDTO, response.getStatusCode()); + Reporter.log(ReportUtil.getOutputValidationReport(ouputValid)); + + if (!OutputValidationUtil.publishOutputResult(ouputValid)) + throw new AdminTestException("Failed at output validation"); + } + } else { + response = getWithPathParamAndCookieForAutoGeneratedId(ApplnURI + testCaseDTO.getEndPoint(), + getJsonFromTemplate(testCaseDTO.getInput(), testCaseDTO.getInputTemplate()), auditLogCheck, + COOKIENAME, testCaseDTO.getRole(), testCaseDTO.getTestCaseName(), idKeyName); + } + Map> ouputValid = null; + + ouputValid = OutputValidationUtil.doJsonOutputValidation(response.asString(), + getJsonFromTemplate(testCaseDTO.getOutput(), testCaseDTO.getOutputTemplate()), testCaseDTO, + response.getStatusCode()); + + + Reporter.log(ReportUtil.getOutputValidationReport(ouputValid)); + if (!OutputValidationUtil.publishOutputResult(ouputValid)) + throw new AdminTestException("Failed at output validation"); + } + + + + /** + * The method ser current test name to result + * + * @param result + */ + @AfterMethod(alwaysRun = true) + public void setResultTestName(ITestResult result) { + try { + Field method = TestResult.class.getDeclaredField("m_method"); + method.setAccessible(true); + method.set(result, result.getMethod().clone()); + BaseTestMethod baseTestMethod = (BaseTestMethod) result.getMethod(); + Field f = baseTestMethod.getClass().getSuperclass().getDeclaredField("m_methodName"); + f.setAccessible(true); + f.set(baseTestMethod, testCaseName); + } catch (Exception e) { + Reporter.log("Exception : " + e.getMessage()); + } + } +} \ No newline at end of file diff --git a/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/PostWithFormDataAndFileForNotificationAPI.java b/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/PostWithFormDataAndFileForNotificationAPI.java new file mode 100644 index 00000000000..6aafb09a868 --- /dev/null +++ b/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/PostWithFormDataAndFileForNotificationAPI.java @@ -0,0 +1,121 @@ +package io.mosip.testrig.apirig.testscripts; + +import java.lang.reflect.Field; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Level; +import org.apache.log4j.Logger; +import org.testng.ITest; +import org.testng.ITestContext; +import org.testng.ITestResult; +import org.testng.Reporter; +import org.testng.SkipException; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; +import org.testng.internal.BaseTestMethod; +import org.testng.internal.TestResult; + +import io.mosip.testrig.apirig.dto.OutputValidationDto; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.HealthChecker; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.utils.AdminTestUtil; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.GlobalConstants; +import io.mosip.testrig.apirig.utils.OutputValidationUtil; +import io.mosip.testrig.apirig.utils.ReportUtil; +import io.restassured.response.Response; + +public class PostWithFormDataAndFileForNotificationAPI extends AdminTestUtil implements ITest { + private static final Logger logger = Logger.getLogger(PostWithFormDataAndFileForNotificationAPI.class); + protected String testCaseName = ""; + String idKeyName = null; + public Response response = null; + + @BeforeClass + public static void setLogLevel() { + if (ConfigManager.IsDebugEnabled()) + logger.setLevel(Level.ALL); + else + logger.setLevel(Level.ERROR); + } + + /** + * get current testcaseName + */ + @Override + public String getTestName() { + return testCaseName; + } + + /** + * Data provider class provides test case list + * + * @return object of data provider + */ + @DataProvider(name = "testcaselist") + public Object[] getTestCaseList(ITestContext context) { + String ymlFile = context.getCurrentXmlTest().getLocalParameters().get("ymlFile"); + idKeyName = context.getCurrentXmlTest().getLocalParameters().get("idKeyName"); + logger.info("Started executing yml: " + ymlFile); + return getYmlTestData(ymlFile); + } + + /** + * Test method for OTP Generation execution + * + * @param objTestParameters + * @param testScenario + * @param testcaseName + * @throws AuthenticationTestException + * @throws AdminTestException + */ + @Test(dataProvider = "testcaselist") + public void test(TestCaseDTO testCaseDTO) throws AdminTestException { + testCaseName = testCaseDTO.getTestCaseName(); + String inputJson = getJsonFromTemplate(testCaseDTO.getInput(), testCaseDTO.getInputTemplate()); + testCaseDTO = AdminTestUtil.filterHbs(testCaseDTO); + if (HealthChecker.signalTerminateExecution) { + throw new SkipException( + GlobalConstants.TARGET_ENV_HEALTH_CHECK_FAILED + HealthChecker.healthCheckFailureMapS); + } + + + response = postWithMultipartFormDataAndFile(ApplnURI + testCaseDTO.getEndPoint(), inputJson, + testCaseDTO.getRole(), testCaseDTO.getTestCaseName(), idKeyName); + + Map> ouputValid = OutputValidationUtil.doJsonOutputValidation( + response.asString(), getJsonFromTemplate(testCaseDTO.getOutput(), testCaseDTO.getOutputTemplate()), + testCaseDTO, response.getStatusCode()); + Reporter.log(ReportUtil.getOutputValidationReport(ouputValid)); + + if (!OutputValidationUtil.publishOutputResult(ouputValid)) + throw new AdminTestException("Failed at output validation"); + + } + + + /** + * The method ser current test name to result + * + * @param result + */ + @AfterMethod(alwaysRun = true) + public void setResultTestName(ITestResult result) { + try { + Field method = TestResult.class.getDeclaredField("m_method"); + method.setAccessible(true); + method.set(result, result.getMethod().clone()); + BaseTestMethod baseTestMethod = (BaseTestMethod) result.getMethod(); + Field f = baseTestMethod.getClass().getSuperclass().getDeclaredField("m_methodName"); + f.setAccessible(true); + f.set(baseTestMethod, testCaseName); + } catch (Exception e) { + Reporter.log("Exception : " + e.getMessage()); + } + } +} diff --git a/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/PostWithFormPathParamAndFile.java b/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/PostWithFormPathParamAndFile.java new file mode 100644 index 00000000000..d318db71eb3 --- /dev/null +++ b/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/PostWithFormPathParamAndFile.java @@ -0,0 +1,123 @@ +package io.mosip.testrig.apirig.testscripts; + +import java.lang.reflect.Field; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Level; +import org.apache.log4j.Logger; +import org.testng.ITest; +import org.testng.ITestContext; +import org.testng.ITestResult; +import org.testng.Reporter; +import org.testng.SkipException; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; +import org.testng.internal.BaseTestMethod; +import org.testng.internal.TestResult; + +import io.mosip.testrig.apirig.dto.OutputValidationDto; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.HealthChecker; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.utils.AdminTestUtil; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.GlobalConstants; +import io.mosip.testrig.apirig.utils.OutputValidationUtil; +import io.mosip.testrig.apirig.utils.ReportUtil; +import io.restassured.response.Response; + +public class PostWithFormPathParamAndFile extends AdminTestUtil implements ITest { + private static final Logger logger = Logger.getLogger(PostWithFormPathParamAndFile.class); + protected String testCaseName = ""; + public String idKeyName = null; + public Response response = null; + + @BeforeClass + public static void setLogLevel() { + if (ConfigManager.IsDebugEnabled()) + logger.setLevel(Level.ALL); + else + logger.setLevel(Level.ERROR); + } + + /** + * get current testcaseName + */ + @Override + public String getTestName() { + return testCaseName; + } + + /** + * Data provider class provides test case list + * + * @return object of data provider + */ + @DataProvider(name = "testcaselist") + public Object[] getTestCaseList(ITestContext context) { + String ymlFile = context.getCurrentXmlTest().getLocalParameters().get("ymlFile"); + idKeyName = context.getCurrentXmlTest().getLocalParameters().get("idKeyName"); + logger.info("Started executing yml: " + ymlFile); + return getYmlTestData(ymlFile); + } + + /** + * Test method for OTP Generation execution + * + * @param objTestParameters + * @param testScenario + * @param testcaseName + * @throws AuthenticationTestException + * @throws AdminTestException + */ + @Test(dataProvider = "testcaselist") + public void test(TestCaseDTO testCaseDTO) throws AdminTestException { + testCaseName = testCaseDTO.getTestCaseName(); + if (HealthChecker.signalTerminateExecution) { + throw new SkipException( + GlobalConstants.TARGET_ENV_HEALTH_CHECK_FAILED + HealthChecker.healthCheckFailureMapS); + } + + String inputJson = getJsonFromTemplate(testCaseDTO.getInput(), testCaseDTO.getInputTemplate()); + + response = postWithFormPathParamAndFile(ApplnURI + testCaseDTO.getEndPoint(), inputJson, testCaseDTO.getRole(), + testCaseDTO.getTestCaseName(), idKeyName); + + Map> ouputValid = null; + + ouputValid = OutputValidationUtil.doJsonOutputValidation(response.asString(), + getJsonFromTemplate(testCaseDTO.getOutput(), testCaseDTO.getOutputTemplate()), testCaseDTO, + response.getStatusCode()); + + + Reporter.log(ReportUtil.getOutputValidationReport(ouputValid)); + + if (!OutputValidationUtil.publishOutputResult(ouputValid)) + throw new AdminTestException("Failed at output validation"); + + } + + /** + * The method ser current test name to result + * + * @param result + */ + @AfterMethod(alwaysRun = true) + public void setResultTestName(ITestResult result) { + try { + Field method = TestResult.class.getDeclaredField("m_method"); + method.setAccessible(true); + method.set(result, result.getMethod().clone()); + BaseTestMethod baseTestMethod = (BaseTestMethod) result.getMethod(); + Field f = baseTestMethod.getClass().getSuperclass().getDeclaredField("m_methodName"); + f.setAccessible(true); + f.set(baseTestMethod, testCaseName); + } catch (Exception e) { + Reporter.log("Exception : " + e.getMessage()); + } + } +} diff --git a/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/PostWithPathParamsAndBody.java b/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/PostWithPathParamsAndBody.java new file mode 100644 index 00000000000..00ca27af272 --- /dev/null +++ b/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/PostWithPathParamsAndBody.java @@ -0,0 +1,121 @@ +package io.mosip.testrig.apirig.testscripts; + +import java.lang.reflect.Field; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Level; +import org.apache.log4j.Logger; +import org.testng.ITest; +import org.testng.ITestContext; +import org.testng.ITestResult; +import org.testng.Reporter; +import org.testng.SkipException; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; +import org.testng.internal.BaseTestMethod; +import org.testng.internal.TestResult; + +import io.mosip.testrig.apirig.dto.OutputValidationDto; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.HealthChecker; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.utils.AdminTestUtil; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.GlobalConstants; +import io.mosip.testrig.apirig.utils.OutputValidationUtil; +import io.mosip.testrig.apirig.utils.ReportUtil; +import io.restassured.response.Response; + +public class PostWithPathParamsAndBody extends AdminTestUtil implements ITest { + private static final Logger logger = Logger.getLogger(PostWithPathParamsAndBody.class); + protected String testCaseName = ""; + public String pathParams = null; + + @BeforeClass + public static void setLogLevel() { + if (ConfigManager.IsDebugEnabled()) + logger.setLevel(Level.ALL); + else + logger.setLevel(Level.ERROR); + } + + /** + * get current testcaseName + */ + @Override + public String getTestName() { + return testCaseName; + } + + /** + * Data provider class provides test case list + * + * @return object of data provider + */ + @DataProvider(name = "testcaselist") + public Object[] getTestCaseList(ITestContext context) { + String ymlFile = context.getCurrentXmlTest().getLocalParameters().get("ymlFile"); + pathParams = context.getCurrentXmlTest().getLocalParameters().get("pathParams"); + logger.info("Started executing yml: " + ymlFile); + return getYmlTestData(ymlFile); + } + + /** + * Test method for OTP Generation execution + * + * @param objTestParameters + * @param testScenario + * @param testcaseName + * @throws AuthenticationTestException + * @throws AdminTestException + */ + @Test(dataProvider = "testcaselist") + public void test(TestCaseDTO testCaseDTO) throws AuthenticationTestException, AdminTestException { + String regCenterId = null; + if (HealthChecker.signalTerminateExecution) { + throw new SkipException( + GlobalConstants.TARGET_ENV_HEALTH_CHECK_FAILED + HealthChecker.healthCheckFailureMapS); + } + + + + String inputJosn = getJsonFromTemplate(testCaseDTO.getInput(), testCaseDTO.getInputTemplate()); + + Response response = postWithPathParamsBodyAndCookie(ApplnURI + testCaseDTO.getEndPoint(), inputJosn, COOKIENAME, + testCaseDTO.getRole(), testCaseDTO.getTestCaseName(), pathParams); + + Map> ouputValid = OutputValidationUtil.doJsonOutputValidation( + response.asString(), getJsonFromTemplate(testCaseDTO.getOutput(), testCaseDTO.getOutputTemplate()), + testCaseDTO, response.getStatusCode()); + Reporter.log(ReportUtil.getOutputValidationReport(ouputValid)); + + if (!OutputValidationUtil.publishOutputResult(ouputValid)) + throw new AdminTestException("Failed at output validation"); + + } + + /** + * The method ser current test name to result + * + * @param result + */ + @AfterMethod(alwaysRun = true) + public void setResultTestName(ITestResult result) { + try { + Field method = TestResult.class.getDeclaredField("m_method"); + method.setAccessible(true); + method.set(result, result.getMethod().clone()); + BaseTestMethod baseTestMethod = (BaseTestMethod) result.getMethod(); + Field f = baseTestMethod.getClass().getSuperclass().getDeclaredField("m_methodName"); + f.setAccessible(true); + f.set(baseTestMethod, testCaseName); + } catch (Exception e) { + Reporter.log("Exception : " + e.getMessage()); + } + } + +} diff --git a/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/PreregAuditValidator.java b/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/PreregAuditValidator.java new file mode 100644 index 00000000000..fde9395570d --- /dev/null +++ b/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/PreregAuditValidator.java @@ -0,0 +1,130 @@ +package io.mosip.testrig.apirig.testscripts; + +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Level; +import org.apache.log4j.Logger; +import org.testng.ITest; +import org.testng.ITestContext; +import org.testng.ITestResult; +import org.testng.Reporter; +import org.testng.SkipException; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; +import org.testng.internal.BaseTestMethod; +import org.testng.internal.TestResult; + +import io.mosip.testrig.apirig.dbaccess.AuditDBManager; +import io.mosip.testrig.apirig.dto.OutputValidationDto; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.BaseTestCase; +import io.mosip.testrig.apirig.testrunner.HealthChecker; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.utils.AdminTestUtil; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.GlobalConstants; +import io.mosip.testrig.apirig.utils.OutputValidationUtil; +import io.restassured.response.Response; + +public class PreregAuditValidator extends AdminTestUtil implements ITest { + private static final Logger logger = Logger.getLogger(PreregAuditValidator.class); + protected String testCaseName = ""; + public static List templateFields = new ArrayList<>(); + public Response response = null; + + /** + * get current testcaseName + */ + @Override + public String getTestName() { + return testCaseName; + } + + @BeforeClass + public static void setLogLevel() { + if (ConfigManager.IsDebugEnabled()) + logger.setLevel(Level.ALL); + else + logger.setLevel(Level.ERROR); + } + + /** + * Data provider class provides test case list + * + * @return object of data provider + */ + @DataProvider(name = "testcaselist") + public Object[] getTestCaseList(ITestContext context) { + String ymlFile = context.getCurrentXmlTest().getLocalParameters().get("ymlFile"); + logger.info("Started executing yml: " + ymlFile); + return getYmlTestData(ymlFile); + } + + @Test(dataProvider = "testcaselist") + public void test(TestCaseDTO testCaseDTO) throws AuthenticationTestException, AdminTestException { + testCaseName = testCaseDTO.getTestCaseName(); + if (HealthChecker.signalTerminateExecution) { + throw new SkipException( + GlobalConstants.TARGET_ENV_HEALTH_CHECK_FAILED + HealthChecker.healthCheckFailureMapS); + } + String[] templateFields = testCaseDTO.getTemplateFields(); + List queryProp = Arrays.asList(templateFields); + logger.info(queryProp); + + String query = "select * from audit.app_audit_log where app_name = 'PREREGISTRATION' && session_user_name = '" + + "robin.hood@mailinator.com" + "'"; + + logger.info(query); + Map response = AuditDBManager.executeQueryAndGetRecord(testCaseDTO.getRole(), query); + + Map> objMap = new HashMap<>(); + List objList = new ArrayList<>(); + OutputValidationDto objOpDto = new OutputValidationDto(); + if (response.size() > 0) { + + objOpDto.setStatus("PASS"); + } else { + objOpDto.setStatus(GlobalConstants.FAIL_STRING); + } + + objList.add(objOpDto); + objMap.put(GlobalConstants.EXPECTED_VS_ACTUAL, objList); + + if (!OutputValidationUtil.publishOutputResult(objMap)) + throw new AdminTestException("Failed at output validation"); + } + + /** + * The method ser current test name to result + * + * @param result + */ + @AfterMethod(alwaysRun = true) + public void setResultTestName(ITestResult result) { + + String deleteQuery = "delete from audit.app_audit_log where app_name = 'PREREGISTRATION' and session_user_name = '" + + "robin.hood@mailinator.com" + "'"; + + logger.info(deleteQuery); + AuditDBManager.executeQueryAndDeleteRecord("audit", deleteQuery); + try { + Field method = TestResult.class.getDeclaredField("m_method"); + method.setAccessible(true); + method.set(result, result.getMethod().clone()); + BaseTestMethod baseTestMethod = (BaseTestMethod) result.getMethod(); + Field f = baseTestMethod.getClass().getSuperclass().getDeclaredField("m_methodName"); + f.setAccessible(true); + f.set(baseTestMethod, testCaseName); + } catch (Exception e) { + Reporter.log("Exception : " + e.getMessage()); + } + } +} diff --git a/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/PutWithPathParam.java b/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/PutWithPathParam.java new file mode 100644 index 00000000000..0dbf734bd61 --- /dev/null +++ b/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/PutWithPathParam.java @@ -0,0 +1,141 @@ +package io.mosip.testrig.apirig.testscripts; + +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Level; +import org.apache.log4j.Logger; +import org.json.JSONObject; +import org.testng.ITest; +import org.testng.ITestContext; +import org.testng.ITestResult; +import org.testng.Reporter; +import org.testng.SkipException; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; +import org.testng.internal.BaseTestMethod; +import org.testng.internal.TestResult; + +import io.mosip.testrig.apirig.dto.OutputValidationDto; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.HealthChecker; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.utils.AdminTestUtil; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.GlobalConstants; +import io.mosip.testrig.apirig.utils.OutputValidationUtil; +import io.mosip.testrig.apirig.utils.ReportUtil; +import io.restassured.response.Response; + +public class PutWithPathParam extends AdminTestUtil implements ITest { + private static final Logger logger = Logger.getLogger(PutWithPathParam.class); + protected String testCaseName = ""; + public Response response = null; + + @BeforeClass + public static void setLogLevel() { + if (ConfigManager.IsDebugEnabled()) + logger.setLevel(Level.ALL); + else + logger.setLevel(Level.ERROR); + } + + /** + * get current testcaseName + */ + @Override + public String getTestName() { + return testCaseName; + } + + /** + * Data provider class provides test case list + * + * @return object of data provider + */ + @DataProvider(name = "testcaselist") + public Object[] getTestCaseList(ITestContext context) { + String ymlFile = context.getCurrentXmlTest().getLocalParameters().get("ymlFile"); + logger.info("Started executing yml: " + ymlFile); + return getYmlTestData(ymlFile); + } + + /** + * Test method for OTP Generation execution + * + * @param objTestParameters + * @param testScenario + * @param testcaseName + * @throws AuthenticationTestException + * @throws AdminTestException + */ + @Test(dataProvider = "testcaselist") + public void test(TestCaseDTO testCaseDTO) throws AuthenticationTestException, AdminTestException { + testCaseName = testCaseDTO.getTestCaseName(); + String[] templateFields = testCaseDTO.getTemplateFields(); + if (HealthChecker.signalTerminateExecution) { + throw new SkipException( + GlobalConstants.TARGET_ENV_HEALTH_CHECK_FAILED + HealthChecker.healthCheckFailureMapS); + } + + + if (testCaseDTO.getTemplateFields() != null && templateFields.length > 0) { + ArrayList inputtestCases = AdminTestUtil.getInputTestCase(testCaseDTO); + ArrayList outputtestcase = AdminTestUtil.getOutputTestCase(testCaseDTO); + for (int i = 0; i < languageList.size(); i++) { + response = putWithPathParamAndCookie(ApplnURI + testCaseDTO.getEndPoint(), + getJsonFromTemplate(inputtestCases.get(i).toString(), testCaseDTO.getInputTemplate()), + COOKIENAME, testCaseDTO.getRole(), testCaseDTO.getTestCaseName()); + + Map> ouputValid = OutputValidationUtil.doJsonOutputValidation( + response.asString(), + getJsonFromTemplate(outputtestcase.get(i).toString(), testCaseDTO.getOutputTemplate()), + testCaseDTO, response.getStatusCode()); + Reporter.log(ReportUtil.getOutputValidationReport(ouputValid)); + + if (!OutputValidationUtil.publishOutputResult(ouputValid)) + throw new AdminTestException("Failed at output validation"); + } + } + + else { + response = putWithPathParamAndCookie(ApplnURI + testCaseDTO.getEndPoint(), + getJsonFromTemplate(testCaseDTO.getInput(), testCaseDTO.getInputTemplate()), COOKIENAME, + testCaseDTO.getRole(), testCaseDTO.getTestCaseName()); + + Map> ouputValid = OutputValidationUtil.doJsonOutputValidation( + response.asString(), getJsonFromTemplate(testCaseDTO.getOutput(), testCaseDTO.getOutputTemplate()), + testCaseDTO, response.getStatusCode()); + Reporter.log(ReportUtil.getOutputValidationReport(ouputValid)); + + if (!OutputValidationUtil.publishOutputResult(ouputValid)) + throw new AdminTestException("Failed at output validation"); + } + + } + + /** + * The method ser current test name to result + * + * @param result + */ + @AfterMethod(alwaysRun = true) + public void setResultTestName(ITestResult result) { + try { + Field method = TestResult.class.getDeclaredField("m_method"); + method.setAccessible(true); + method.set(result, result.getMethod().clone()); + BaseTestMethod baseTestMethod = (BaseTestMethod) result.getMethod(); + Field f = baseTestMethod.getClass().getSuperclass().getDeclaredField("m_methodName"); + f.setAccessible(true); + f.set(baseTestMethod, testCaseName); + } catch (Exception e) { + Reporter.log("Exception : " + e.getMessage()); + } + } +} diff --git a/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/SimplePost.java b/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/SimplePost.java new file mode 100644 index 00000000000..08d3cd2f648 --- /dev/null +++ b/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/SimplePost.java @@ -0,0 +1,146 @@ +package io.mosip.testrig.apirig.testscripts; + +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Level; +import org.apache.log4j.Logger; +import org.json.JSONObject; +import org.testng.ITest; +import org.testng.ITestContext; +import org.testng.ITestResult; +import org.testng.Reporter; +import org.testng.SkipException; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; +import org.testng.internal.BaseTestMethod; +import org.testng.internal.TestResult; + +import io.mosip.testrig.apirig.dto.OutputValidationDto; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.HealthChecker; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.utils.AdminTestUtil; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.GlobalConstants; +import io.mosip.testrig.apirig.utils.OutputValidationUtil; +import io.mosip.testrig.apirig.utils.ReportUtil; +import io.restassured.response.Response; + +public class SimplePost extends AdminTestUtil implements ITest { + private static final Logger logger = Logger.getLogger(SimplePost.class); + protected String testCaseName = ""; + public Response response = null; + public boolean auditLogCheck = false; + + @BeforeClass + public static void setLogLevel() { + if (ConfigManager.IsDebugEnabled()) + logger.setLevel(Level.ALL); + else + logger.setLevel(Level.ERROR); + } + + /** + * get current testcaseName + */ + @Override + public String getTestName() { + return testCaseName; + } + + /** + * Data provider class provides test case list + * + * @return object of data provider + */ + @DataProvider(name = "testcaselist") + public Object[] getTestCaseList(ITestContext context) { + String ymlFile = context.getCurrentXmlTest().getLocalParameters().get("ymlFile"); + logger.info("Started executing yml: " + ymlFile); + return getYmlTestData(ymlFile); + } + + /** + * Test method for OTP Generation execution + * + * @param objTestParameters + * @param testScenario + * @param testcaseName + * @throws AuthenticationTestException + * @throws AdminTestException + */ + @Test(dataProvider = "testcaselist") + public void test(TestCaseDTO testCaseDTO) throws AuthenticationTestException, AdminTestException { + testCaseName = testCaseDTO.getTestCaseName(); + testCaseName = isTestCaseValidForExecution(testCaseDTO); + auditLogCheck = testCaseDTO.isAuditLogCheck(); + String[] templateFields = testCaseDTO.getTemplateFields(); + if (HealthChecker.signalTerminateExecution) { + throw new SkipException( + GlobalConstants.TARGET_ENV_HEALTH_CHECK_FAILED + HealthChecker.healthCheckFailureMapS); + } + + String inputJson = getJsonFromTemplate(testCaseDTO.getInput(), testCaseDTO.getInputTemplate()); + + if (testCaseDTO.getTemplateFields() != null && templateFields.length > 0) { + ArrayList inputtestCases = AdminTestUtil.getInputTestCase(testCaseDTO); + ArrayList outputtestcase = AdminTestUtil.getOutputTestCase(testCaseDTO); + for (int i = 0; i < languageList.size(); i++) { + response = postWithBodyAndCookie(ApplnURI + testCaseDTO.getEndPoint(), + getJsonFromTemplate(inputtestCases.get(i).toString(), testCaseDTO.getInputTemplate()), + COOKIENAME, testCaseDTO.getRole(), testCaseDTO.getTestCaseName()); + + Map> ouputValid = OutputValidationUtil.doJsonOutputValidation( + response.asString(), + getJsonFromTemplate(outputtestcase.get(i).toString(), testCaseDTO.getOutputTemplate()), + testCaseDTO, response.getStatusCode()); + Reporter.log(ReportUtil.getOutputValidationReport(ouputValid)); + + if (!OutputValidationUtil.publishOutputResult(ouputValid)) + throw new AdminTestException("Failed at output validation"); + } + } + + else { + response = postWithBodyAndCookie(ApplnURI + testCaseDTO.getEndPoint(), inputJson, auditLogCheck, COOKIENAME, + testCaseDTO.getRole(), testCaseDTO.getTestCaseName()); + } + Map> ouputValid = null; + + ouputValid = OutputValidationUtil.doJsonOutputValidation(response.asString(), + getJsonFromTemplate(testCaseDTO.getOutput(), testCaseDTO.getOutputTemplate()), testCaseDTO, + response.getStatusCode()); + + Reporter.log(ReportUtil.getOutputValidationReport(ouputValid)); + + if (!OutputValidationUtil.publishOutputResult(ouputValid)) { + throw new AdminTestException("Failed at otp output validation"); + } + } + + /** + * The method ser current test name to result + * + * @param result + */ + @AfterMethod(alwaysRun = true) + public void setResultTestName(ITestResult result) { + try { + Field method = TestResult.class.getDeclaredField("m_method"); + method.setAccessible(true); + method.set(result, result.getMethod().clone()); + BaseTestMethod baseTestMethod = (BaseTestMethod) result.getMethod(); + Field f = baseTestMethod.getClass().getSuperclass().getDeclaredField("m_methodName"); + f.setAccessible(true); + f.set(baseTestMethod, testCaseName); + } catch (Exception e) { + Reporter.log("Exception : " + e.getMessage()); + } + } +} diff --git a/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/UpdatePrereg.java b/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/UpdatePrereg.java new file mode 100644 index 00000000000..5ca9372519d --- /dev/null +++ b/apitest/src/main/java/io/mosip/testrig/apirig/testscripts/UpdatePrereg.java @@ -0,0 +1,144 @@ +package io.mosip.testrig.apirig.testscripts; + +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Level; +import org.apache.log4j.Logger; +import org.json.JSONObject; +import org.testng.ITest; +import org.testng.ITestContext; +import org.testng.ITestResult; +import org.testng.Reporter; +import org.testng.SkipException; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; +import org.testng.internal.BaseTestMethod; +import org.testng.internal.TestResult; + +import io.mosip.testrig.apirig.dto.OutputValidationDto; +import io.mosip.testrig.apirig.dto.TestCaseDTO; +import io.mosip.testrig.apirig.testrunner.HealthChecker; +import io.mosip.testrig.apirig.utils.AdminTestException; +import io.mosip.testrig.apirig.utils.AdminTestUtil; +import io.mosip.testrig.apirig.utils.AuthenticationTestException; +import io.mosip.testrig.apirig.utils.ConfigManager; +import io.mosip.testrig.apirig.utils.GlobalConstants; +import io.mosip.testrig.apirig.utils.OutputValidationUtil; +import io.mosip.testrig.apirig.utils.ReportUtil; +import io.restassured.response.Response; + +public class UpdatePrereg extends AdminTestUtil implements ITest { + private static final Logger logger = Logger.getLogger(UpdatePrereg.class); + protected String testCaseName = ""; + String pathParams = null; + public Response response = null; + + @BeforeClass + public static void setLogLevel() { + if (ConfigManager.IsDebugEnabled()) + logger.setLevel(Level.ALL); + else + logger.setLevel(Level.ERROR); + } + + /** + * get current testcaseName + */ + @Override + public String getTestName() { + return testCaseName; + } + + /** + * Data provider class provides test case list + * + * @return object of data provider + */ + @DataProvider(name = "testcaselist") + public Object[] getTestCaseList(ITestContext context) { + String ymlFile = context.getCurrentXmlTest().getLocalParameters().get("ymlFile"); + pathParams = context.getCurrentXmlTest().getLocalParameters().get("pathParams"); + logger.info("Started executing yml: " + ymlFile); + return getYmlTestData(ymlFile); + } + + /** + * Test method for OTP Generation execution + * + * @param objTestParameters + * @param testScenario + * @param testcaseName + * @throws AuthenticationTestException + * @throws AdminTestException + */ + @Test(dataProvider = "testcaselist") + public void test(TestCaseDTO testCaseDTO) throws AuthenticationTestException, AdminTestException { + testCaseName = testCaseDTO.getTestCaseName(); + testCaseDTO.setInputTemplate(AdminTestUtil.generateHbsForPrereg(true)); + String[] templateFields = testCaseDTO.getTemplateFields(); + if (HealthChecker.signalTerminateExecution) { + throw new SkipException( + GlobalConstants.TARGET_ENV_HEALTH_CHECK_FAILED + HealthChecker.healthCheckFailureMapS); + } + + String outputJson = getJsonFromTemplate(testCaseDTO.getOutput(), testCaseDTO.getOutputTemplate()); + String inputJson = getJsonFromTemplate(testCaseDTO.getInput(), testCaseDTO.getInputTemplate(), false); + + if (testCaseDTO.getTemplateFields() != null && templateFields.length > 0) { + ArrayList inputtestCases = AdminTestUtil.getInputTestCase(testCaseDTO); + ArrayList outputtestcase = AdminTestUtil.getOutputTestCase(testCaseDTO); + for (int i = 0; i < languageList.size(); i++) { + response = putWithPathParamsBodyAndCookie(ApplnURI + testCaseDTO.getEndPoint(), + getJsonFromTemplate(inputtestCases.get(i).toString(), testCaseDTO.getInputTemplate()), + COOKIENAME, testCaseDTO.getRole(), testCaseDTO.getTestCaseName(), pathParams); + + Map> ouputValid = OutputValidationUtil.doJsonOutputValidation( + response.asString(), + getJsonFromTemplate(outputtestcase.get(i).toString(), testCaseDTO.getOutputTemplate()), + testCaseDTO, response.getStatusCode()); + Reporter.log(ReportUtil.getOutputValidationReport(ouputValid)); + + if (!OutputValidationUtil.publishOutputResult(ouputValid)) + throw new AdminTestException("Failed at output validation"); + } + } + + else { + response = putWithPathParamsBodyAndCookie(ApplnURI + testCaseDTO.getEndPoint(), inputJson, COOKIENAME, + testCaseDTO.getRole(), testCaseDTO.getTestCaseName(), pathParams); + + Map> ouputValid = OutputValidationUtil + .doJsonOutputValidation(response.asString(), outputJson, testCaseDTO, response.getStatusCode()); + Reporter.log(ReportUtil.getOutputValidationReport(ouputValid)); + + if (!OutputValidationUtil.publishOutputResult(ouputValid)) + throw new AdminTestException("Failed at output validation"); + } + + } + + /** + * The method ser current test name to result + * + * @param result + */ + @AfterMethod(alwaysRun = true) + public void setResultTestName(ITestResult result) { + try { + Field method = TestResult.class.getDeclaredField("m_method"); + method.setAccessible(true); + method.set(result, result.getMethod().clone()); + BaseTestMethod baseTestMethod = (BaseTestMethod) result.getMethod(); + Field f = baseTestMethod.getClass().getSuperclass().getDeclaredField("m_methodName"); + f.setAccessible(true); + f.set(baseTestMethod, testCaseName); + } catch (Exception e) { + Reporter.log("Exception : " + e.getMessage()); + } + } +} diff --git a/apitest/src/main/resources/config/Authorization/internalAuthRequest.json b/apitest/src/main/resources/config/Authorization/internalAuthRequest.json new file mode 100644 index 00000000000..162f0524bfa --- /dev/null +++ b/apitest/src/main/resources/config/Authorization/internalAuthRequest.json @@ -0,0 +1,9 @@ +{ + "request": { + "userName": "110005", + "password": "mosip", + "appId": "admin", + "clientId": "mosip-admin-client", + "clientSecret": "xyz123" + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/config/Authorization/request.json b/apitest/src/main/resources/config/Authorization/request.json new file mode 100644 index 00000000000..e86c7431df3 --- /dev/null +++ b/apitest/src/main/resources/config/Authorization/request.json @@ -0,0 +1,7 @@ +{ + "request": { + "appId": "prereg", + "password": "prereguser", + "userName": "prereguser" + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/config/Kernel.properties b/apitest/src/main/resources/config/Kernel.properties new file mode 100644 index 00000000000..d98d4febeca --- /dev/null +++ b/apitest/src/main/resources/config/Kernel.properties @@ -0,0 +1,278 @@ +#---------------------------------- End point(s) relative URLs ----------------------------------# +authclientidsecretkeyURL = /v1/authmanager/authenticate/clientidsecretkey +authentication = /v1/authmanager/authenticate/useridPwd +authenticationInternal = /v1/authmanager/authenticate/internal/useridPwd +keycloakAuthURL = /auth/realms/master/protocol/openid-connect/token +auditLog_URI = /v1/auditmanager/audits +CentetMachineUserMappingToMasterData_uri = /v1/masterdata/registrationmachineusermappings +EmailNotification_URI = /v1/notifier/email/send +encrypt_URI = /v1/keymanager/encrypt +decrypt_URI = /v1/keymanager/decrypt +FetchApplication_URI = /v1/masterdata/applicationtypes +FetchApplication_lang_URI = /v1/masterdata/applicationtypes/{langcode} +FetchApplication_id_lang_URI = /v1/masterdata/applicationtypes/{code}/{langcode} +FetchBiometricAttribute_URI = /v1/masterdata/getbiometricattributesbyauthtype/{langcode}/{biometrictypecode} +FetchBiometricAuthType_URI = /v1/masterdata/biometrictypes/{langcode} +FetchBlackListedWord_URI = /v1/masterdata/blacklistedwords/{langcode} +FetchDevice_lang_URI = /v1/masterdata/devices/{languagecode} +FetchDevice_id_lang_URI = /v1/masterdata/devices/{languagecode}/{deviceType} +FetchDeviceSpec_lang_URI = /v1/masterdata/devicespecifications/{langcode} +FetchDeviceSpec_id_lang_URI = /v1/masterdata/devicespecifications/{langcode}/{devicetypecode} +FetchDocumentCategories_URI = /v1/masterdata/documentcategories/{langcode} +FetchDocumentCategories_URI_withcodeAndLangCode = /v1/masterdata/documentcategories/{code}/{langcode} +FetchDocumentTypes_URI = /v1/masterdata/documenttypes/{documentcategorycode}/{langcode} +FetchGenderType_URI = /v1/masterdata/gendertypes +FetchGenderType_id_lang_URI = /v1/masterdata/gendertypes/{langcode} +FetchHolidays_URI = /v1/masterdata/holidays +FetchHolidays_id_URI = /v1/masterdata/holidays/{holidayid} +FetchHolidays_id_lang_URI = /v1/masterdata/holidays/{holidayid}/{langcode} +FetchIDlist_URI = /v1/masterdata/idtypes/{langcode} +FetchLocationHierarchy_URI_withlangCode = /v1/masterdata/locations/{langcode} +FetchLocationHierarchy_URI_locationcode = /v1/masterdata/locations/{locationcode}/{langcode} +FetchLocationHierarchy_URI_hierarchyname = /v1/masterdata/locations/locationhierarchy/{hierarchyname} +FetchMachine_URI = /v1/masterdata/machines +FetchMachine_lang_URI = /v1/masterdata/machines/{langcode} +FetchMachine_id_lang_URI = /v1/masterdata/machines/{id}/{langcode} +FetchMachineHistory_URI = /v1/masterdata/machineshistories/{id}/{langcode}/{effdatetimes} +FetchRegCent_URI = /v1/masterdata/registrationcenters +FetchRegCent_id_lang_URI = /v1/masterdata/registrationcenters/{id}/{langcode} +FetchRegCent_loc_lang_URI = /v1/masterdata/getlocspecificregistrationcenters/{langcode}/{locationcode} +FetchRegCent_hir_name_lang_URI = /v1/masterdata/registrationcenters/{langcode}/{hierarchylevel}/{name} +FetchRegCent_prox_lang_URI = /v1/masterdata/getcoordinatespecificregistrationcenters/{langcode}/{longitude}/{latitude}/{proximitydistance} +FetchRegCentHistory_URI = /v1/masterdata/registrationcentershistory/{registrationCenterId}/{langcode}/{effectiveDate} +FetchRegCentHolidays_URI = /v1/masterdata/getregistrationcenterholidays/{langcode}/{registrationcenterid}/{year} +FetchRegcentMachUserMaping_URI = /v1/masterdata/getregistrationmachineusermappinghistory/{effdtimes}/{registrationcenterid}/{machineid}/{userid} +FetchRejectionReason_URI = /v1/masterdata/packetrejectionreasons/{reasoncategorycode}/{langcode} +FetchTemplate_URI = /v1/masterdata/templates +FetchTemplate_lang_URI = /v1/masterdata/templates/{langcode} +FetchTemplate_id_lang_URI = /v1/masterdata/templates/{langcode}/{templatetypecode} +FetchTitle_URI = /v1/masterdata/title/{langcode} +fetchAllTemplate = /v1/masterdata/templates/templatetypecodes/{code} +getApplicantType = /v1/masterdata/getApplicantType +fetchDeviceHistory = /v1/masterdata/deviceshistories/{id}/{langcode}/{effdatetimes} +getDocType_DocCatByAppID = /v1/masterdata/applicanttype/{applicantId}/languages +getDocTypeDocCatByLangCode = /v1/masterdata/validdocuments/{languagecode} +fetchImmediateChildLocation = /v1/masterdata/locations/immediatechildren/{locationcode}/{langcode} +getIndividualType = /v1/masterdata/individualtypes +getRoles = /v1/syncdata/roles +fetchRegCenter = /v1/masterdata/registrationcenters/validate/{id}/{langCode}/{timestamp} +fetchRegistrationCenterDeviceHistory = /v1/masterdata/registrationcenterdevicehistory/{regcenterid}/{deviceid}/{effdatetimes} +getusersBasedOnRegCenter = /v1/syncdata/userdetails/{regid} +licKeyGenerator = /v1/keymanager/license/generate +mapLicenseKey = /v1/keymanager/license/permission +fetchmapLicenseKey = /v1/keymanager/license/permission +OTPGeneration = /v1/otpmanager/otp/generate +OTPValidation = /v1/otpmanager/otp/validate +otpNotifier = /v1/otpnotifier/otp/send +RIDGenerator_URI = /v1/ridgenerator/generate/rid/{centerid}/{machineid} +SmsNotification_URI = /v1/notifier/sms/send +syncConf = /v1/syncdata/configs +fetchIncrementalData = /v1/syncjob/syncjobdef +fetchmasterdata = /v1/syncdata/masterdata +fetchmasterdatawithRID = /v1/syncdata/masterdata/{regcenterId} +SyncPublicKeyToRegClient_URI = /v1/keymanager/publickey/ +uingenerator = /v1/idgenerator/uin +validateGenderByName = /v1/masterdata/gendertypes/validate/{gendername} +validateLocationByName = /v1/masterdata/locations/validate/{locationname} +tokenIdGenerator_URI = /v1/keymanager/{uin}/{partnercode} +getRIDByUserId = /v1/authmanager/rid/{appid}/{userid} +syncMdatawithKeyIndex = /v1/syncdata/clientsettings +syncMdatawithRegCentIdKeyIndex = /v1/syncdata/clientsettings/{regcenterid} +uploadpublickey = /v1/syncdata/tpm/publickey +getUserHistory = /v1/masterdata/users/{id}/{eff_dtimes} +sendOtp = /v1/authmanager/authenticate/sendotp +useridOTP = /v1/authmanager/authenticate/useridOTP +preregSendOtp = /preregistration/v1/login/sendOtp/langcode +preregValidateOtp = /preregistration/v1/login/validateOtp +zoneMappingUrl = /v1/masterdata/zoneuser +zoneNameUrl = /v1/masterdata/zones/zonename +zoneMappingActivateUrl = /v1/masterdata/zoneuser +userCenterMappingUrl = /v1/masterdata/usercentermapping +bulkUploadUrl = /v1/admin/bulkupload +currentUserURI=/#/uinservices/viewhistory +actuatorEndpoint=/resident/v1/actuator/env +actuatorAdminEndpoint=/v1/admin/actuator/env +actuatorMasterDataEndpoint=/v1/masterdata/actuator/env +actuatorIDAEndpoint=/idauthentication/v1/actuator/env +actuatorRegprocEndpoint=/registrationprocessor/v1/registrationtransaction/actuator/env +actuatorEsignetEndpoint=/v1/esignet/actuator/env +tokenEndpoint=/v1/esignet/oauth/token +auditActuatorEndpoint=/v1/auditmanager/actuator/info +validateBindingEndpoint=ida-binding +esignetWellKnownEndPoint=/v1/esignet/oidc/.well-known/openid-configuration +signupSettingsEndPoint=/v1/signup/settings + + + + +#---------------------------------- APP IDs ----------------------------------# +#-- When test rig ran in docker, these values dervied from the environment ---# +mosip_pms_app_id = partner +mosip_resident_app_id = resident +mosip_idrepo_app_id = idrepo +mosip_regclient_app_id = registrationclient +mosip_hotlist_app_id = hotlist +mosip_regprocclient_app_id = regproc +AuthAppID = resident +mosip_admin_app_id = admin + + + +#---------------------------------- Client IDs -------------------------------# +#-- When test rig ran in docker, these values dervied from the environment ---# +mosip_pms_client_id = mosip-pms-client +mosip_partner_client_id = mosip-partner-client +mosip_resident_client_id = mosip-resident-client +mosip_idrepo_client_id = mosip-idrepo-client +mosip_reg_client_id = mosip-reg-client +mosip_admin_client_id = mosip-admin-client +mosip_hotlist_client_id = mosip-hotlist-client +mosip_regproc_client_id = mosip-regproc-client +mpartner_default_mobile_client_id = mpartner-default-mobile +mosip_testrig_client_id = mosip-testrig-client +AuthClientID = mosip-resident-client + + + +#---------------------------------- Client Secret Keys -----------------------# +#-- When test rig ran in docker, these values dervied from the environment ---# +mosip_partner_client_secret = vXS7WUyPDpfWYuoz +mosip_pms_client_secret = 5Qj8vn989OL1Vlu6 +mosip_resident_client_secret = SnZQ6nnVwN9YWvdM +mosip_idrepo_client_secret = AeM2TwFuuZygCuvO +mosip_reg_client_secret = DLXygc82rkAkjrwV +mosip_admin_client_secret = Styop9nqkshXMTgj +mosip_hotlist_client_secret = TKyc4cqWymxjiLEsVydX4uME1xU3i9xl +mosip_regproc_client_secret = eyeXdyhO0u2ETibw +mpartner_default_mobile_secret = iCkj8BRZU6hP6MAN +mosip_testrig_client_secret = AonuXbikoWmHP5ug +AuthClientSecret = SnZQ6nnVwN9YWvdM + + + +#----------------------------- minio proprties ------------------------------# +s3-user-key = minioadmin +s3-user-secret = minioadmin +s3-host = http://minio.minio:9000 +s3-account = automation +s3-region = null +reportExpirationInDays = 3 +s3-account-for-persona-data = personaData +push-reports-to-s3 = no + + +#-------------------- Keycloak User Creation proprties ----------------------# +#-- When test rig ran in docker,few of below dervied from the environment ---# +new_Resident_User = 111995 +new_Resident_Password = mosip123 +new_Resident_Role = default-roles-mosip,PARTNER_ADMIN +roles.111995 = PARTNER_ADMIN,default-roles-mosip +keycloak_UserName = admin +keycloak_Password = sMDr9Ainw9 +keycloak-external-url = https://iam.qa-inji.mosip.net +keycloak-realm-id = mosip +iam-users-to-create = 111997,111998,220005,111992,globaladmin,111887 +iam-users-password = mosip123,mosip123,mosip123,mosip123,mosip123 +roles.220005 = GLOBAL_ADMIN,ID_AUTHENTICATION,REGISTRATION_ADMIN,REGISTRATION_SUPERVISOR,ZONAL_ADMIN +roles.111997 = AUTH_PARTNER,PARTNER_ADMIN,PMS_ADMIN,POLICYMANAGER,REGISTRATION_SUPERVISOR +roles.111887 = AUTH_PARTNER,PARTNER_ADMIN,PMS_ADMIN,REGISTRATION_SUPERVISOR +roles.111998 = POLICYMANAGER +roles.111992 = GLOBAL_ADMIN +roles.globaladmin = GLOBAL_ADMIN,REGISTRATION_ADMIN,uma_authorization,ZONAL_ADMIN,default-roles-mosip + + +#------------------------- DB Connectivity proprties ------------------------# +#-- When test rig ran in docker,few of below dervied from the environment ---# +driver_class=org.postgresql.Driver +pool_size=1 +dialect=org.hibernate.dialect.PostgreSQLDialect +show_sql=true +current_session_context_class=thread +audit_url=jdbc:postgresql://qa-inji.mosip.net:5432/mosip_audit +audit_username=postgres +audit_password=2BhgiSpCaT +audit_default_schema=audit +DB_PORT= +installation-domain= +partner_url=jdbc:postgresql://qa-inji.mosip.net:5432/mosip_ida +partner_username=postgres +partner_password=2BhgiSpCaT +partner_default_schema=partner +reportLogPath=automationLogAndReport +postgresqlUser=postgresql +db-port=5432 +db-server=qa-inji.mosip.net +hibernate.connection.driver_class=org.postgresql.Driver +hibernate.connection.pool_size=1 +hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect +hibernate.show_sql=true +hibernate.current_session_context_class=thread +db-su-user=postgres +postgres-password=2BhgiSpCaT +pms_db_schema=pms +km_db_schema=keymgr +master_db_schema=master +audit_db_schema=audit +ida_db_schema=ida + + +#------------------------- DSL specific proprties ------------------------# +#------------------------- We need to see how to have DSL specific proprties file ------------------------# +packetUtilityBaseUrl=http://localhost:8080 +mountPathForScenario=D:/centralized/mountvolume +mountPath=/home/mosip/mountvolume +# Add scenarios to skip from automation and server side +# supported values "S-scnearioNumber" for server side and "A-scnearioNumber" for automation +scenariosToSkip= +# Add scenarios to include in the the execution list +# Empty if we want to execute all the scenarios--- +scenariosToExecute= +# supported values yes or no +useExternalScenarioSheet=yes +# supported values are 1 to 8 +threadCount=1 + +#------------------------ Generic properties ------------------------# +enableDebug=yes +preconfiguredOtp=111111 +usePreConfiguredOtp=true +# supported values yes or no. Assume that by Default e-signet is deployed +eSignetDeployed=yes +partnerUrlSuffix=oYf63Lax0DY2QkYMRHnrmDqhmO3RMWQagwm0ftgLlkuin1KOND/666/576732 +reportIgnoredTestCases=yes +servicesNotDeployed= +esignetMockBaseURL=esignet-insurance. +slack-webhook-url= +serverErrorsToMonitor=IDA-MLC-018 +pmsAuthInternal=true +partner_password=mosip123 +partner_userName=111997 +partner_user_password=mosip123 +policytest_password=mosip123 +policytest_userName=111998 +policytest_without_pmrole_userName=111887 +admin_password=mosip123 +admin_userName=220005 +admin_zone_password=mosip123 +admin_zone_userName=globaladmin + + + +#------------------------- Need to check if these are used or not ------------------------# +OTPTimeOut = 181 +attempt = 10 +ConfigParameters=mosip.kernel.rid.length,mosip.kernel.uin.length,mosip.kernel.sms.country.code,mosip.kernel.sms.number.length,mosip.kernel.otp.default-length,mosip.kernel.otp.expiry-time,mosip.kernel.otp.key-freeze-time,mosip.kernel.otp.validation-attempt-threshold,mosip.kernel.otp.min-key-length,mosip.kernel.otp.max-key-length,mosip.kernel.licensekey.length,mosip.supported-languages +# supported values are 0 ,1, 2 based on number of env languages +langselect=0 + + + +#----------------------------------AuthDemoService Host properties----------------------------------------------------------# +#Uncommemnt the below to run locally +authDemoServiceBaseURL=http://localhost +authDemoServicePort=8082 +authCertsPath= +#Uncommemnt the below to run in Docker +#authDemoServiceBaseURL=http://authdemo.apitestrig +#authDemoServicePort=80 +#authCertsPath=/home/mosip/authcerts \ No newline at end of file diff --git a/apitest/src/main/resources/config/application.properties b/apitest/src/main/resources/config/application.properties new file mode 100644 index 00000000000..c0e9841a79c --- /dev/null +++ b/apitest/src/main/resources/config/application.properties @@ -0,0 +1,103 @@ +## End point(s) relative URLs +internalSignEndpoint=/idauthentication/v1/internal/jwtSign +signJsonPath=config/sign.json +encryptionPath=v1/identity/encrypt?isInternal=false +internalEncryptionPath=v1/identity/encrypt?isInternal=true +encodePath=v1/identity/encode +decodePath=v1/identity/decode +signRequest=v1/identity/signRequest +decryptPath=/idauthentication/v1/internal/decrypt +decryptkycdataurl = v1/identity/decryptEkycData +encodeFilePath=v1/identity/encodeFile +decodeFilePath=v1/identity/decodeFile/?fileName=cbeff +validateSignaturePath=v1/identity/validateSign?signature=$signature$ +splitEncryptedData=v1/identity/splitEncryptedData +bioValueEncryptionTemplate=config/bioValueEncryptionTemplate.json +idaMappingPath=config/mapping.properties +getIdaCertificateUrl=/idauthentication/v1/internal/getCertificate +getPartnerCertificateUrl=/v1/partnermanager/partners/{partnerId}/certificate +putPartnerRegistrationUrl=/v1/partnermanager/partners +getPartnerCertURL=v1/identity/generatePartnerKeys +uploadCACertificateUrl=/v1/partnermanager/partners/certificate/ca/upload +uploadIntermediateCertificateUrl=/v1/partnermanager/partners/certificate/ca/upload +uploadPartnerCertificateUrl=/v1/partnermanager/partners/certificate/upload +uploadSignedCertificateUrl=v1/identity/updatePartnerCertificate +getKeyCloakTokenUrl = /auth/realms/master/protocol/openid-connect/token +masterSchemaURL=/v1/masterdata/idschema/latest +preregLoginConfigUrl=/preregistration/v1/login/config +uploadIdaFirurl=v1/identity/uploadIDACertificate?certificateType=IDA_FIR&moduleName=$MODULENAME$&certsDir=$CERTSDIR$ +uploadPartnerurl=v1/identity/uploadIDACertificate?certificateType=PARTNER&moduleName=$MODULENAME$&certsDir=$CERTSDIR$ +uploadInternalurl=v1/identity/uploadIDACertificate?certificateType=INTERNAL&moduleName=$MODULENAME$&certsDir=$CERTSDIR$ +authPolicyUrl=/v1/policymanager/policies +policyGroupUrl=/v1/policymanager/policies/group/new +publishPolicyurl=/v1/policymanager/policies/POLICYID/group/POLICYGROUPID/publish +clearCertificateURL=v1/identity/clearKeys?moduleName=$MODULENAME$&certsDir=$CERTSDIR$ +fetchLocationData=/v1/masterdata/locations/all +fetchLocationLevel=/v1/masterdata/locations/level/ +fetchTitle=/v1/masterdata/title +fetchZoneCode=/v1/masterdata/zones/hierarchy/ +fetchZone=/v1/masterdata/zones/zonename +decryptKycUrl=/v1/identity/decryptEkycData +retrieveIdByUin=/idrepository/v1/identity/idvid/ +fetchLocationHierarchyLevels=/v1/masterdata/locationHierarchyLevels/ +fetchLocationHierarchy=/v1/masterdata/locations/locationhierarchy/ +generateArgon2HashURL=/v1/keymanager/generateArgon2Hash +appointmentavailabilityurl=/preregistration/v1/appointment/availability/ +validateSignatureUrl=v1/identity/validateSign +vciContextURL=https://www.w3.org/2018/credentials/v1 + +## Auto generated properties while running the test rig(s) +adminAutoGeneratedIdPropFileName=/admin/autoGeneratedId.properties +masterDataAutoGeneratedIdPropFileName=/masterdata/autoGeneratedId.properties +syncDataAutoGeneratedIdPropFileName=/syncdata/autoGeneratedId.properties +preregAutoGeneratedIdPropFileName=/preReg/autoGeneratedId.properties +partnerAutoGeneratedIdPropFileName=/partner/autoGeneratedId.properties +idrepoAutoGeneratedIdPropFileName=/idRepository/autoGeneratedId.properties +residentAutoGeneratedIdPropFileName=/resident/autoGeneratedId.properties +esignetAutoGeneratedIdPropFileName=/esignet/autoGeneratedId.properties +mimotoAutoGeneratedIdPropFileName=/mimoto/autoGeneratedId.properties +authAutoGeneratedIdPropFileName=/ida/autoGeneratedId.properties +prerequisiteAutoGeneratedIdPropFileName=/prerequisite/autoGeneratedId.properties +regProcAutoGeneratedIdPropFileName=/regProc/autoGeneratedId.properties +mobileIdAutoGeneratedIdPropFileName=/mobileId/autoGeneratedId.properties + +## As below are non changble values, move these out from properties file +appIdForCertificate=IDA +partnerrefId=PARTNER +internalrefId=INTERNAL +idaFirRefId=IDA-FIR +proxyOTP=111111 +wrongOtp=123455 + +## +regcentretobookappointment=10003 +keysToValidateInKYC=phoneNumber,emailId,age,dob,name_eng +#partner certificate refId, used for getting the partner certificate +partner=9998 +signatureheaderKey=response-signature +uinGenMaxLoopCount=20 +uinGenDelayTime=10000 +Delaytime=90000 + + +## Remove this from properties file +picturevalue=iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAIAAAACUFjqAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAABCSURBVChTbYtBEgAgCAL7/6eNhBy09qDi6gpjXZSxUU8o/jrfpDmcmY1QAOWhgTswv6sSm8zVhULlgst++8T51IjYNUHdI+4XZHoAAAAASUVORK5CYII= + + +## Check are we using these properties. If not remove them +zoneCode_to_beMapped=NTH +expireOtpTime=180000 +demoAppVersion=1.2.1-SNAPSHOT +AttributetoBeUpdate:Name +ValuetoBeUpdate:Sohan + +## As these will be based on regEx, move these out from proprties file +passwordForAddIdentity=12341234_Aa +passwordToReset=12341234_AaB + +## Need to revisit these propeties +XSRFTOKEN=7d01b2a8-b89d-41ad-9361-d7f6294021d1 +codeChallenge=E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM +codeVerifier=dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk +policyNumberForSunBirdRC=654321 +challengeValueForSunBirdRC=eyJmdWxsTmFtZSI6IkthaWYgU2lkZGlxdWUiLCJkb2IiOiIyMDAwLTA3LTI2In0= \ No newline at end of file diff --git a/apitest/src/main/resources/config/healthCheckEndpoint.properties b/apitest/src/main/resources/config/healthCheckEndpoint.properties new file mode 100644 index 00000000000..f7a8576fe1e --- /dev/null +++ b/apitest/src/main/resources/config/healthCheckEndpoint.properties @@ -0,0 +1,45 @@ +###### = +regproc_masterdata=/v1/hotlist/actuator/health +masterdata=/v1/admin/actuator/health +auth_idrepo_resident_regproc_masterdata=/v1/auditmanager/actuator/health +auth_idrepo_resident_regproc_masterdata=/v1/authmanager/actuator/health +auth_idrepo_regproc=/biosdk-service/actuator/health +auth_mobileid=/v1/credentialservice/actuator/health +auth_mobileid=/v1/credentialrequest/actuator/health +auth_idrepo_regproc_partner=/v1/datashare/actuator/health +auth_mobileid_esignet=/idauthentication/v1/actuator/health +auth_mobileid_esignet_partner=/idauthentication/v1/internal/actuator/health +auth_mobileid_esignet=/idauthentication/v1/otp/actuator/health +idrepo_auth_mobileid_mimoto_esignet_resident_regproc=/idrepository/v1/identity/actuator/health +idrepo_regproc=/v1/idgenerator/actuator/health +idrepo_resident_regproc_masterdata=/v1/keymanager/actuator/health +auth_idrepo_masterdata_mobileid_mimoto_esignet_resident_partner_prereg_regproc=/v1/masterdata/actuator/health +auth_idrepo_resident_regproc=/v1/notifier/actuator/health +auth_mobileid=/v1/otpmanager/actuator/health +partner_auth_esignet_idrepo_resident_regproc=/v1/partnermanager/actuator/health +partner_auth_esignet_regproc=/v1/policymanager/actuator/health +prereg=/preregistration/v1/captcha/actuator/health +prereg=/v1/pridgenerator/actuator/health +resident_regproc=/registrationprocessor/v1/packetreceiver/actuator/health +regproc_masterdata=/registrationprocessor/v1/registrationstatus/actuator/health +resident_auth_esignet_mobileid=/resident/v1/actuator/health +# TO DO idrepo_auth_mobileid_mimoto_esignet_resident=/v1/ridgenerator/actuator/health +regproc_masterdata=/v1/syncdata/actuator/health +idrepo_auth_mobileid_mimoto_esignet_resident_regproc=/idrepository/v1/actuator/health +auth_idrepo_resident_regproc=/hub/actuator/health +resident_esignet=/v1/esignet/actuator/health + +#The below actuators are not used for functional test rigs. +#regproc=/v1/identity/actuator/health +#regproc=/registrationprocessor/v1/registrationtransaction/actuator/health +#regproc=/registrationprocessor/v1/workflowmanager/actuator/health +#regproc=/registrationprocessor/v1/landingzone/actuator/health +#regproc=/registrationprocessor/v1/notification/actuator/health +#regproc=/registrationprocessor/v1/opencrvs-stage/actuator/health +#regproc=/registrationprocessor/v1/reprocessor/actuator/health +#regproc=/v1/print/actuator/health +#regproc=/registrationprocessor/v1/camelbridge/actuator/health +#regproc=/v1/packetcreator/actuator/health +#regproc=/commons/v1/packetmanager/actuator/health +#regproc=/v1/mock-abis-service/actuator/health +#regproc=/v1/mockmv/actuator/health \ No newline at end of file diff --git a/apitest/src/main/resources/config/prereg_SendOtp.json b/apitest/src/main/resources/config/prereg_SendOtp.json new file mode 100644 index 00000000000..142abe1273f --- /dev/null +++ b/apitest/src/main/resources/config/prereg_SendOtp.json @@ -0,0 +1,9 @@ +{ + "id": "mosip.pre-registration.login.sendotp", + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "request": { + "langCode": "$PRIMARYLANG$", + "userId": "robin.hood@mailinator.com" + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/config/prereg_ValidateOtp.json b/apitest/src/main/resources/config/prereg_ValidateOtp.json new file mode 100644 index 00000000000..93d22c9b123 --- /dev/null +++ b/apitest/src/main/resources/config/prereg_ValidateOtp.json @@ -0,0 +1,9 @@ +{ + "id": "mosip.pre-registration.login.useridotp", + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "request": { + "otp": "781412", + "userId": "robin.hood@mailinator.com" + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/customize-emailable-report-template.html b/apitest/src/main/resources/customize-emailable-report-template.html new file mode 100644 index 00000000000..cfeca4d6e18 --- /dev/null +++ b/apitest/src/main/resources/customize-emailable-report-template.html @@ -0,0 +1,61 @@ + + + + + + + + + +
+ mosip-logo +
+ + \ No newline at end of file diff --git a/apitest/src/main/resources/dbFiles/.xml b/apitest/src/main/resources/dbFiles/.xml new file mode 100644 index 00000000000..ae236dcffbd --- /dev/null +++ b/apitest/src/main/resources/dbFiles/.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apitest/src/main/resources/dbFiles/PMS_delete_script.txt b/apitest/src/main/resources/dbFiles/PMS_delete_script.txt new file mode 100644 index 00000000000..a0100b9d415 --- /dev/null +++ b/apitest/src/main/resources/dbFiles/PMS_delete_script.txt @@ -0,0 +1,28 @@ +delete from pms.partner_contact where partner_id='Tech-123'; +delete from partner_policy where part_id='Tech-123'; +delete from partner_policy where policy_id in (select id from auth_policy where name in ('mosip policy','mosip data share policy')); +delete from partner_policy_request where part_id='Tech-123'; +delete from pms.partner_policy where label='string'; +delete from partner_policy_request where policy_id in (select id from auth_policy where name in ('mosip policy','mosip data share policy')); +delete from partner_policy_bioextract where policy_id in (select id from auth_policy where name in ('mosip policy','mosip data share policy')); +delete from partner_policy_credential_type where part_id='MOVP'; +delete from pms.partner where id in ('Tech-123','MOVP','DPP','MISP','MISP2','FTP','111997','updatepolicy'); +delete from pms.auth_policy where name in('mosip policy','mosip policy2','mosip policy3','mosip data share policy','mosip data share policy2'); +delete from pms.policy_group where name in ('mosip policy group','mosip policy group2','update_policy_group'); +delete from pms.misp_license where cr_by='pm_testuser'; +delete from pms.misp_license where misp_id in ('MISP','MISP2'); +delete from pms.ftp_chip_detail where foundational_trust_provider_id='FTP'; +delete from pms.misp where name='mosip_misp'; +delete from pms.secure_biometric_interface where provider_id='Tech-123'; +delete from pms.device_detail where id='device-id-123'; +delete from pms.device_detail where make in ('abcde','abcdef'); +delete from mosip_keymgr.keymgr.ca_cert_store where cert_subject ='CN=mosiptest.org,O=MOSIPTEST,L=Bangalore,ST=Karantaka,C=IN'; +delete from mosip_keymgr.keymgr.partner_cert_store where cert_subject ='CN=Techno.com,O=Techno,L=Bangalore,ST=Karnataka,C=IN'; +delete from mosip_keymgr.keymgr.partner_cert_store where cert_subject ='CN=Techno,O=Techno,L=Bangalore,ST=Karnataka,C=IN'; +delete from mosip_keymgr.keymgr.ca_cert_store where cert_subject ='CN=apitest,OU=apitest,O=apitest,L=BLR,ST=KAR,C=IN'; +delete from mosip_keymgr.keymgr.ca_cert_store where cert_subject ='CN=apitest2,OU=apitest2,O=apitest2,L=BLR,ST=KAR,C=IN'; +delete from mosip_keymgr.keymgr.partner_cert_store where cert_subject ='CN=deviceprovider,OU=deviceprovider,O=deviceprovider,L=BLR,ST=KAR,C=IN'; +delete from mosip_keymgr.keymgr.partner_cert_store where cert_subject ='CN=movp,OU=movp,O=movp,L=BLR,ST=KAR,C=IN'; +delete from mosip_keymgr.keymgr.partner_cert_store where cert_subject ='CN=ftp,OU=ftp,O=ftp,L=BLR,ST=KAR,C=IN'; +delete from mosip_keymgr.keymgr.partner_cert_store where cert_subject ='CN=misp,OU=misp,O=misp,L=BLR,ST=KAR,C=IN'; +delete from mosip_keymgr.keymgr.partner_cert_store where cert_subject ='CN=misp2,OU=misp2,O=misp2,L=BLR,ST=KAR,C=IN'; \ No newline at end of file diff --git a/apitest/src/main/resources/dbFiles/dbConfig.xml b/apitest/src/main/resources/dbFiles/dbConfig.xml new file mode 100644 index 00000000000..e27fb8f563a --- /dev/null +++ b/apitest/src/main/resources/dbFiles/dbConfig.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apitest/src/main/resources/dbFiles/delete_Masterdata.sql b/apitest/src/main/resources/dbFiles/delete_Masterdata.sql new file mode 100644 index 00000000000..8724f6b2e58 --- /dev/null +++ b/apitest/src/main/resources/dbFiles/delete_Masterdata.sql @@ -0,0 +1,88 @@ +delete from master.blocklisted_words where cr_by='dumbo6'; +delete from master.blocklisted_words where word='dumbooo'; +delete from master.blocklisted_words where cr_by='masterdata-220005'; +delete from master.machine_master where cr_by='masterdata-220005'; +delete from master.machine_master where cr_by='masterdata-220005'; +delete from master.machine_master where name in ('Mach-Test','Mach-Test2','Mach-Test updated'); +delete from master.machine_master mm WHERE mm.mspec_id IN(SELECT ms.id from master.machine_spec ms where ms.cr_by='masterdata-220005'); +delete FROM master.machine_spec WHERE mtyp_code IN (SELECT code FROM master.machine_type WHERE cr_by = 'masterdata-220005'); +delete from master.machine_spec where cr_by='masterdata-220005'; +delete from master.machine_type where cr_by='masterdata-220005'; +delete from master.gender where cr_by='masterdata-220005'; +delete from master.device_master where upd_by='masterdata-220005'; +delete from master.device_master where cr_by='masterdata-220005'; +delete from master.device_master where name='testDevicedummy'; +DELETE FROM master.device_master WHERE dspec_id IN(SELECT id FROM master.device_spec WHERE cr_by='masterdata-220005'); +delete from master.device_spec where cr_by='masterdata-220005'; +delete from master.device_type where cr_by='masterdata-220005'; +delete from master.loc_holiday where cr_by='masterdata-220005'; +delete from master.reg_center_type where cr_by='masterdata-220005'; +delete from master.registration_center where cr_by='masterdata-220005'; +delete from master.loc_holiday where cr_by='masterdata-220005'; +delete from master.reg_center_type where cr_by='masterdata-220005'; +delete from master.registration_center where cr_by='masterdata-220005'; +delete from master.device_type where cr_by='masterdata-220005'; +delete from master.doc_type where cr_by='masterdata-220005'; +delete from master.doc_category where cr_by='masterdata-220005'; +delete from master.location where cr_by='masterdata-220005'; +delete from master.template where cr_by='masterdata-220005'; +update master.template set is_active='true', is_deleted='false' where id='1101'; +delete from master.template where template_typ_code IN(select code from master.template_type where code='Test-info-Template-auto'); +delete from master.template_type where code='Test-info-Template-auto'; +update master.location set is_active='true', is_deleted='false' where code='10114'; +delete from master.location where code in('TST123','IND'); +delete from master.valid_document where cr_by='masterdata-220005'; +delete from master.user_detail where cr_by='masterdata-220005'; +delete from master.template_type where cr_by='masterdata-220005'; +delete from master.template_file_format where cr_by='masterdata-220005'; +delete from master.reason_list where cr_by='masterdata-220005'; +delete from master.reason_category where cr_by='masterdata-220005'; +delete from master.language where cr_by='masterdata-220005'; +delete from master.identity_schema where cr_by='masterdata-220005'; +delete from master.biometric_attribute where cr_by='masterdata-220005'; +delete from master.biometric_type where cr_by='masterdata-220005'; +delete from master.appl_form_type where cr_by='masterdata-220005'; +delete from master.id_type where cr_by='masterdata-220005'; +delete from master.dynamic_field where cr_by='masterdata-220005'; +delete from master.zone_user where usr_id='masterdata-220005'; +delete from master.blocklisted_words where word='dumbo6'; +delete from master.blocklisted_words where word='dumbo7'; +delete from master.machine_master where name in ('Mach-Test','Mach-Test2','Mach-Test updated'); +delete from master.machine_master where mac_address = '61-D3-FD-12-C9-ED'; +delete from master.machine_spec where name='HP'; +delete from master.machine_master where cr_by='masterdata-220005'; +delete from master.machine_type where code='Laptop2'; +delete from master.gender where code='Genderdummy'; +delete FROM master.device_master where name in ('testDevicedummy','testDevicedummy updated'); +delete from master.device_master where dspec_id='743'; +delete from master.device_spec where id='743'; +delete from master.device_type where code='GST3'; +delete from master.loc_holiday where holiday_name='AutoTest user Eng'; +delete from master.reg_center_type where code='ALT-3'; +delete FROM master.registration_center where name in ('Test123','HSR Center updated'); +delete from master.loc_holiday where holiday_name in ('AutoTest user Eng','AutoTest user'); +delete from master.reg_center_type where code in('ALT-3','ALT-5'); +delete from master.registration_center where id='10000'; +delete from master.device_type where code in ('GST3','GST4'); +delete from master.doc_type where code in ('TestDocType0010','TestDocType0020'); +delete from master.doc_category where code in ('DocTestCode123','DocTestCode321'); +delete from master.location where code='TST12'; +delete from master.template where id='445566777'; +delete from master.template where template_typ_code IN(select code from master.template_type where code='Test-info-Template-auto'); +update master.template set is_active='true', is_deleted='false' where id='1101'; +delete from master.template_type where code='Test-info-Template-auto'; +update master.location set is_active='true', is_deleted='false' where code='10114'; +delete from master.location where code in('TST123','IND'); +delete from master.valid_document where doctyp_Code='doc_auto_test'; +delete from master.user_detail where cr_by='110005'; +delete from master.template_type where code='Test-info-Template-auto'; +delete from master.template_file_format where code='Doc'; +delete from master.reason_list where code='TEST_LIST_CODE'; +delete from master.reason_category where code='TEST_CAT_CODE'; +delete from master.language where code='automationLang'; +delete from master.identity_schema where title='test-schema'; +delete from master.biometric_attribute where code='TST'; +delete from master.biometric_type where code='dumbo6'; +delete from master.appl_form_type where code='dumbo'; +delete from master.id_type where code='NEW'; +delete from master.dynamic_field where name in ('TestAutomationField','TestAPL'); diff --git a/apitest/src/main/resources/krb5.conf b/apitest/src/main/resources/krb5.conf new file mode 100644 index 00000000000..734dbfcf887 --- /dev/null +++ b/apitest/src/main/resources/krb5.conf @@ -0,0 +1,29 @@ +# Configuration snippets may be placed in this directory as well +includedir /etc/krb5.conf.d/ + +[logging] + default = FILE:/var/log/krb5libs.log + kdc = FILE:/var/log/krb5kdc.log + admin_server = FILE:/var/log/kadmind.log + +[libdefaults] + kdc_timeout = 30s + udp_preference_limit = 1 + dns_lookup_realm = false + ticket_lifetime = 365d + renew_lifetime = 365d + forwardable = true + rdns = false + pkinit_anchors = /etc/pki/tls/certs/ca-bundle.crt + default_realm = NODE-MASTER.SOUTHINDIA.CLOUDAPP.AZURE.COM + #default_ccache_name = KEYRING:persistent:%{uid} + +[realms] + NODE-MASTER.SOUTHINDIA.CLOUDAPP.AZURE.COM = { + kdc = node-master.southindia.cloudapp.azure.com:51088 + admin_server = node-master.southindia.cloudapp.azure.com +} + +[domain_realm] + .node-master.southindia.cloudapp.azure.com = NODE-MASTER.SOUTHINDIA.CLOUDAPP.AZURE.COM + node-master.southindia.cloudapp.azure.com = NODE-MASTER.SOUTHINDIA.CLOUDAPP.AZURE.COM \ No newline at end of file diff --git a/apitest/src/main/resources/log4j.properties b/apitest/src/main/resources/log4j.properties new file mode 100644 index 00000000000..93001dc6826 --- /dev/null +++ b/apitest/src/main/resources/log4j.properties @@ -0,0 +1,8 @@ +log4j.rootLogger=INFO, Appender1,Appender2 +log4j.appender.Appender1=org.apache.log4j.ConsoleAppender +log4j.appender.Appender1.layout=org.apache.log4j.PatternLayout +log4j.appender.Appender1.layout.ConversionPattern=%-7p %d [%t] %c %x - %m%n +log4j.appender.Appender2=org.apache.log4j.FileAppender +log4j.appender.Appender2.File=src/logs/mosip-api-test.log +log4j.appender.Appender2.layout=org.apache.log4j.PatternLayout +log4j.appender.Appender2.layout.ConversionPattern=%-7p %d [%t] %c %x - %m%n diff --git a/apitest/src/main/resources/metadata.xml b/apitest/src/main/resources/metadata.xml new file mode 100644 index 00000000000..ea66c92e66e --- /dev/null +++ b/apitest/src/main/resources/metadata.xml @@ -0,0 +1,16 @@ + + 4.0.0 + io.mosip.testrig.apirig.automationtests + automationtests + jar + io.mosip.testrig.apirig.automationtests + http://maven.apache.org + + + io.mosip + mosip-parent + 1.0.10 + + + diff --git a/apitest/src/main/resources/preReg/AddLostUinApplication/AddLostUinApplication.yml b/apitest/src/main/resources/preReg/AddLostUinApplication/AddLostUinApplication.yml new file mode 100644 index 00000000000..9fe69c02a42 --- /dev/null +++ b/apitest/src/main/resources/preReg/AddLostUinApplication/AddLostUinApplication.yml @@ -0,0 +1,171 @@ +AddLostUinApplication: + Prereg_AddLostUinApplication_All_Valid_Smoke_sid: + endPoint: /preregistration/v1/applications/lostuin + role: batch + templateFields: ["langCode"] + restMethod: post + inputTemplate: preReg/AddLostUinApplication/addLostUinApplication + outputTemplate: preReg/AddLostUinApplication/addLostUinApplicationResult + input: '{ + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "langCode": "eng", + "id": "mosip.pre-registration.lostuin.create" +}' + output: '{ + "bookingType": "LOST_FORGOTTEN_UIN", + "applicationStatusCode": "SUBMITTED" +}' + Prereg_AddLostUinApplication_Invalid_id: + endPoint: /preregistration/v1/applications/lostuin + role: batch + templateFields: ["langCode"] + restMethod: post + inputTemplate: preReg/AddLostUinApplication/addLostUinApplication + outputTemplate: preReg/error + input: '{ + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "langCode": "eng", + "id": "n.create" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_014" + } + ] +}' + Prereg_AddLostUinApplication_invalid_lang_code: + endPoint: /preregistration/v1/applications/lostuin + role: batch + templateFields: ["langCode"] + restMethod: post + inputTemplate: preReg/AddLostUinApplication/addLostUinApplication + outputTemplate: preReg/error + input: '{ + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "langCode": "e@@dd", + "id": "mosip.pre-registration.lostuin.create" +}' + output: '{ + "bookingType": "LOST_FORGOTTEN_UIN", + "applicationStatusCode": "SUBMITTED" +}' + Prereg_AddLostUinApplication_without_version: + endPoint: /preregistration/v1/applications/lostuin + role: batch + templateFields: ["langCode"] + restMethod: post + inputTemplate: preReg/AddLostUinApplication/addLostUinApplication + outputTemplate: preReg/error + input: '{ + "version": "", + "requesttime": "$TIMESTAMP$", + "langCode": "eng", + "id": "mosip.pre-registration.lostuin.create" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_014" + } + ] +}' + Prereg_AddLostUinApplication_without_version_attribute: + endPoint: /preregistration/v1/applications/lostuin + role: batch + templateFields: ["langCode"] + restMethod: post + inputTemplate: preReg/AddLostUinApplication/addLostUinApplication + outputTemplate: preReg/error + input: '{ + "version": "$IGNORE$", + "requesttime": "$TIMESTAMP$", + "langCode": "eng", + "id": "mosip.pre-registration.lostuin.create" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_014" + } + ] +}' + Prereg_AddLostUinApplication_with_INVALID_version: + endPoint: /preregistration/v1/applications/lostuin + role: batch + templateFields: ["langCode"] + restMethod: post + inputTemplate: preReg/AddLostUinApplication/addLostUinApplication + outputTemplate: preReg/error + input: '{ + "version": "$353F@GGWYS", + "requesttime": "$TIMESTAMP$", + "langCode": "eng", + "id": "mosip.pre-registration.lostuin.create" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_014" + } + ] +}' + Prereg_AddLostUinApplication_Valid_Smoke_sid: + endPoint: /preregistration/v1/applications/lostuin + role: batch + templateFields: ["langCode"] + restMethod: post + inputTemplate: preReg/AddLostUinApplication/addLostUinApplication + outputTemplate: preReg/AddLostUinApplication/addLostUinApplicationResult + input: '{ + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "langCode": "eng", + "id": "mosip.pre-registration.lostuin.create" +}' + output: '{ + "bookingType": "LOST_FORGOTTEN_UIN", + "applicationStatusCode": "SUBMITTED" +}' + + Prereg_AddLostUinApplication_inValid_langcode: + endPoint: /preregistration/v1/applications/lostuin + role: batch + restMethod: post + inputTemplate: preReg/AddLostUinApplication/addLostUinApplication + outputTemplate: preReg/error + input: '{ + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "langCode": "xyz", + "id": "mosip.pre-registration.lostuin.create" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_014" + } + ] +}' + Prereg_AddLostUinApplication_without_any_data: + endPoint: /preregistration/v1/applications/lostuin + role: batch + restMethod: post + inputTemplate: preReg/AddLostUinApplication/addLostUinApplication + outputTemplate: preReg/error + input: '{ + "version": "", + "requesttime": "", + "langCode": "", + "id": "" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_014" + } + ] +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/AddLostUinApplication/addLostUinApplication.hbs b/apitest/src/main/resources/preReg/AddLostUinApplication/addLostUinApplication.hbs new file mode 100644 index 00000000000..0cd0453f1dc --- /dev/null +++ b/apitest/src/main/resources/preReg/AddLostUinApplication/addLostUinApplication.hbs @@ -0,0 +1,8 @@ +{ + "id": "{{id}}", + "version": "{{version}}", + "requesttime": "{{requesttime}}", + "request": { + "langCode": "{{langCode}}" + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/AddLostUinApplication/addLostUinApplicationResult.hbs b/apitest/src/main/resources/preReg/AddLostUinApplication/addLostUinApplicationResult.hbs new file mode 100644 index 00000000000..c9bc8b39df3 --- /dev/null +++ b/apitest/src/main/resources/preReg/AddLostUinApplication/addLostUinApplicationResult.hbs @@ -0,0 +1,6 @@ +{ + "response": { + "applicationStatusCode": "{{applicationStatusCode}}", + "bookingType": "{{bookingType}}" + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/AddUpdateRegistration/AddUpdateRegistration.yml b/apitest/src/main/resources/preReg/AddUpdateRegistration/AddUpdateRegistration.yml new file mode 100644 index 00000000000..b31e8d97d5f --- /dev/null +++ b/apitest/src/main/resources/preReg/AddUpdateRegistration/AddUpdateRegistration.yml @@ -0,0 +1,39 @@ +AddUpdateRegistration: + Prereg_AddUpdateRegistration_All_Valid_Smoke_sid: + endPoint: /preregistration/v1/applications/updateregistration + role: batch + templateFields: ["langCode"] + restMethod: post + inputTemplate: preReg/AddUpdateRegistration/addUpdateRegistration + outputTemplate: preReg/AddUpdateRegistration/addUpdateRegistrationResult + input: '{ + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "langCode": "eng", + "id": "mosip.pre-registration.updateregistration.create" +}' + output: '{ + "bookingType": "UPDATE_REGISTRATION", + "applicationStatusCode": "SUBMITTED" +}' + + Prereg_AddUpdateRegistration_inValid_langcode: + endPoint: /preregistration/v1/applications/updateregistration + role: batch + restMethod: post + inputTemplate: preReg/AddUpdateRegistration/addUpdateRegistration + outputTemplate: preReg/error + input: '{ + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "langCode": "xyz", + "id": "mosip.pre-registration.updateregistration.create" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_014", + "message": "Lang code is invalid" + } + ] +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/AddUpdateRegistration/addUpdateRegistration.hbs b/apitest/src/main/resources/preReg/AddUpdateRegistration/addUpdateRegistration.hbs new file mode 100644 index 00000000000..0cd0453f1dc --- /dev/null +++ b/apitest/src/main/resources/preReg/AddUpdateRegistration/addUpdateRegistration.hbs @@ -0,0 +1,8 @@ +{ + "id": "{{id}}", + "version": "{{version}}", + "requesttime": "{{requesttime}}", + "request": { + "langCode": "{{langCode}}" + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/AddUpdateRegistration/addUpdateRegistrationResult.hbs b/apitest/src/main/resources/preReg/AddUpdateRegistration/addUpdateRegistrationResult.hbs new file mode 100644 index 00000000000..c9bc8b39df3 --- /dev/null +++ b/apitest/src/main/resources/preReg/AddUpdateRegistration/addUpdateRegistrationResult.hbs @@ -0,0 +1,6 @@ +{ + "response": { + "applicationStatusCode": "{{applicationStatusCode}}", + "bookingType": "{{bookingType}}" + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/AuditLog/AuditLog.yml b/apitest/src/main/resources/preReg/AuditLog/AuditLog.yml new file mode 100644 index 00000000000..e3a9031befa --- /dev/null +++ b/apitest/src/main/resources/preReg/AuditLog/AuditLog.yml @@ -0,0 +1,13 @@ +addContact: + Prereg_AddContact_All_Valid_Smoke: + endPoint: SELECT module_name,cr_by FROM audit.app_audit_log where module_name LIKE '%prereg%' order by action_dtimes desc LIMIT 5 + role: audit + templateFields: ["preregQuery","prereg service"] + restMethod: post + inputTemplate: prereg/AuditLog/auditlog + outputTemplate: prereg/AuditLog/AuditLogResult + input: '{ + }' + output: '{ + "module_name": "prereg service" + }' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/AuditLog/AuditLogResult.hbs b/apitest/src/main/resources/preReg/AuditLog/AuditLogResult.hbs new file mode 100644 index 00000000000..ecf91c4fc6c --- /dev/null +++ b/apitest/src/main/resources/preReg/AuditLog/AuditLogResult.hbs @@ -0,0 +1,4 @@ +{ + "module_name": "{{module_name}}", + "cr_by": "{{cr_by}}" +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/AuditLog/auditlog.hbs b/apitest/src/main/resources/preReg/AuditLog/auditlog.hbs new file mode 100644 index 00000000000..be4951065d3 --- /dev/null +++ b/apitest/src/main/resources/preReg/AuditLog/auditlog.hbs @@ -0,0 +1,3 @@ +{ + "moduleName": "{{moduleName}}" +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/BookMultipleAppointment/BookMultipleAppointment.yml b/apitest/src/main/resources/preReg/BookMultipleAppointment/BookMultipleAppointment.yml new file mode 100644 index 00000000000..3b4926980be --- /dev/null +++ b/apitest/src/main/resources/preReg/BookMultipleAppointment/BookMultipleAppointment.yml @@ -0,0 +1,32 @@ +BookMultipleAppointment: + Prereg_BookMultipleAppointment_All_Valid_Smoke: + endPoint: /preregistration/v1/appointment + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/BookMultipleAppointment/bookMultipleAppointment + outputTemplate: preReg/BookMultipleAppointment/bookMultipleAppointmentResult + input: '{ +"bookingRequest": [{ + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "requesttime": "$TIMESTAMP$", + } +"bookingR{ + "preRegistrationId": "$ID:CreatePrereg_Valid_Smoke_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "requesttime": "$TIMESTAMP$" + }] +}' + output: '{ +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/BookMultipleAppointment/bookMultipleAppointment.hbs b/apitest/src/main/resources/preReg/BookMultipleAppointment/bookMultipleAppointment.hbs new file mode 100644 index 00000000000..5cffcaf1f63 --- /dev/null +++ b/apitest/src/main/resources/preReg/BookMultipleAppointment/bookMultipleAppointment.hbs @@ -0,0 +1,23 @@ +{ + "id": "{{id}}", + "version": "{{version}}", + "requesttime": "{{requesttime}}", + "request":{ + "bookingRequest": [ + { + "preRegistrationId":"{{preRegistrationId}}", + "registration_center_id": "{{registration_center_id}}", + "appointment_date": "{{appointment_date}}", + "time_slot_from": "{{time_slot_from}}", + "time_slot_to": "{{time_slot_to}}" + }, + { + "preRegistrationId":"{{preRegistrationId}}", + "registration_center_id": "{{registration_center_id}}", + "appointment_date": "{{appointment_date}}", + "time_slot_from": "{{time_slot_from}}", + "time_slot_to": "{{time_slot_to}}" + } + + ]} +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/BookMultipleAppointment/bookMultipleAppointmentResult.hbs b/apitest/src/main/resources/preReg/BookMultipleAppointment/bookMultipleAppointmentResult.hbs new file mode 100644 index 00000000000..4e4d62b305e --- /dev/null +++ b/apitest/src/main/resources/preReg/BookMultipleAppointment/bookMultipleAppointmentResult.hbs @@ -0,0 +1,12 @@ +{ + "response": { + "bookingStatusResponse": [ + { + "bookingMessage": "{{bookingMessage}}" + }, + { + "bookingMessage": "{{bookingMessage}}" + } + ] + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/CancelApplicationsAppointment/CancelApplicationsAppointment.yml b/apitest/src/main/resources/preReg/CancelApplicationsAppointment/CancelApplicationsAppointment.yml new file mode 100644 index 00000000000..4b3744b61ae --- /dev/null +++ b/apitest/src/main/resources/preReg/CancelApplicationsAppointment/CancelApplicationsAppointment.yml @@ -0,0 +1,29 @@ +CancelApplicationsAppointment: + Prereg_CancelApplicationsAppointment_All_Valid_Smoke_sid: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + checkErrorsOnlyInResponse: true + restMethod: put + inputTemplate: preReg/CancelApplicationsAppointment/cancelApplicationsAppointment + outputTemplate: preReg/CancelApplicationsAppointment/cancelApplicationsAppointmentResult + input: '{ + "preRegistrationId": "$ID:CreatePrereg_Smoke_CancelApplicationsAppointment_sid_preRegistrationId$" +}' + output: '{ +}' + Prereg_CancelApplicationsAppointment_inValid_preRegistrationId_sid: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + restMethod: put + inputTemplate: preReg/CancelApplicationsAppointment/cancelApplicationsAppointment + outputTemplate: preReg/error + input: '{ + "preRegistrationId": "36272yhshsgblAppointment_sid_preRegistrati" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_APP_013" + } + ] +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/CancelApplicationsAppointment/cancelApplicationsAppointment.hbs b/apitest/src/main/resources/preReg/CancelApplicationsAppointment/cancelApplicationsAppointment.hbs new file mode 100644 index 00000000000..790ad2f2993 --- /dev/null +++ b/apitest/src/main/resources/preReg/CancelApplicationsAppointment/cancelApplicationsAppointment.hbs @@ -0,0 +1,3 @@ +{ + "preRegistrationId": "{{preRegistrationId}}" +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/CancelApplicationsAppointment/cancelApplicationsAppointmentResult.hbs b/apitest/src/main/resources/preReg/CancelApplicationsAppointment/cancelApplicationsAppointmentResult.hbs new file mode 100644 index 00000000000..7a73a41bfdf --- /dev/null +++ b/apitest/src/main/resources/preReg/CancelApplicationsAppointment/cancelApplicationsAppointmentResult.hbs @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/CancelAppointment/CancelAppointment.yml b/apitest/src/main/resources/preReg/CancelAppointment/CancelAppointment.yml new file mode 100644 index 00000000000..db6b22ce282 --- /dev/null +++ b/apitest/src/main/resources/preReg/CancelAppointment/CancelAppointment.yml @@ -0,0 +1,63 @@ +CancelAppointment: + Prereg_CancelAppointment_All_Valid_Smoke_sid: + endPoint: /preregistration/v1/appointment/{preRegistrationId} + role: batch + checkErrorsOnlyInResponse: true + restMethod: put + inputTemplate: preReg/CancelAppointment/cancelAppointment + outputTemplate: preReg/CancelAppointment/cancelAppointmentResult + input: '{ + "preRegistrationId": "$ID:CreatePrereg_Smoke_CancellAppointment_sid_preRegistrationId$" +}' + output: '{ +}' + Prereg_CancelAppointment_with_already_cancelled_appoinment: + endPoint: /preregistration/v1/appointment/{preRegistrationId} + role: batch + checkErrorsOnlyInResponse: true + restMethod: put + inputTemplate: preReg/CancelAppointment/cancelAppointment + outputTemplate: preReg/error + input: '{ + "preRegistrationId": "$ID:CreatePrereg_Smoke_CancellAppointment_sid_preRegistrationId$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_APP_013" + } + ] +}' + Prereg_CancelAppointment_cancell_incomplete_appoinment: + endPoint: /preregistration/v1/appointment/{preRegistrationId} + role: batch + checkErrorsOnlyInResponse: true + restMethod: put + inputTemplate: preReg/CancelAppointment/cancelAppointment + outputTemplate: preReg/error + input: '{ + "preRegistrationId": "$ID:CreatePrereg_cancell_incomplete_prid_sid_preRegistrationId$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_APP_013" + } + ] +}' + Prereg_CancelAppointment_inValid_preRegistrationId_sid: + endPoint: /preregistration/v1/appointment/{preRegistrationId} + role: batch + restMethod: put + inputTemplate: preReg/CancelAppointment/cancelAppointment + outputTemplate: preReg/error + input: '{ + "preRegistrationId": "36272yhshsgblAppointment_sid_preRegistrati" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_APP_013" + } + ] +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/CancelAppointment/cancelAppointment.hbs b/apitest/src/main/resources/preReg/CancelAppointment/cancelAppointment.hbs new file mode 100644 index 00000000000..790ad2f2993 --- /dev/null +++ b/apitest/src/main/resources/preReg/CancelAppointment/cancelAppointment.hbs @@ -0,0 +1,3 @@ +{ + "preRegistrationId": "{{preRegistrationId}}" +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/CancelAppointment/cancelAppointmentResult.hbs b/apitest/src/main/resources/preReg/CancelAppointment/cancelAppointmentResult.hbs new file mode 100644 index 00000000000..7a73a41bfdf --- /dev/null +++ b/apitest/src/main/resources/preReg/CancelAppointment/cancelAppointmentResult.hbs @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/CopyDocument/CopyDocument.yml b/apitest/src/main/resources/preReg/CopyDocument/CopyDocument.yml new file mode 100644 index 00000000000..6a94b624d06 --- /dev/null +++ b/apitest/src/main/resources/preReg/CopyDocument/CopyDocument.yml @@ -0,0 +1,66 @@ +CopyDocument: + Prereg_CopyDocument_All_Valid_Smoke_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId}?catCode={doc_cat_code}&sourcePreId={preRegistrationId} + role: batch + restMethod: put + inputTemplate: preReg/CopyDocument/copyDocument + outputTemplate: preReg/CopyDocument/copyDocumentResult + input: '{ + "doc_cat_code" : "POA", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$" +}' + output: '{ +"docCatCode":"POA", +"docTypCode": "RNC" +}' + Prereg_CopyDocument_in_Valid_doc_cat_code_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId}?catCode={doc_cat_code}&sourcePreId={preRegistrationId} + role: batch + restMethod: put + inputTemplate: preReg/CopyDocument/copyDocument + outputTemplate: preReg/error + input: '{ + "doc_cat_code" : "saxs@34dbjhj", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_017" + } + ] +}' + Prereg_CopyDocument_blank_doc_cat_code_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId}?catCode={doc_cat_code}&sourcePreId={preRegistrationId} + role: batch + restMethod: put + inputTemplate: preReg/CopyDocument/copyDocument + outputTemplate: preReg/error + input: '{ + "doc_cat_code" : "", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_017" + } + ] +}' + Prereg_CopyDocument_Invalid_preRegistrationId_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId}?catCode={doc_cat_code}&sourcePreId={preRegistrationId} + role: batch + restMethod: put + inputTemplate: preReg/CopyDocument/copyDocument + outputTemplate: preReg/error + input: '{ + "doc_cat_code" : "POA", + "preRegistrationId": "zsvahhv@345rc" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_APP_005" + } + ] +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/CopyDocument/copyDocument.hbs b/apitest/src/main/resources/preReg/CopyDocument/copyDocument.hbs new file mode 100644 index 00000000000..f9dc04d65d0 --- /dev/null +++ b/apitest/src/main/resources/preReg/CopyDocument/copyDocument.hbs @@ -0,0 +1,4 @@ +{ + "preRegistrationId": "{{preRegistrationId}}", + "doc_cat_code": "{{doc_cat_code}}" +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/CopyDocument/copyDocumentResult.hbs b/apitest/src/main/resources/preReg/CopyDocument/copyDocumentResult.hbs new file mode 100644 index 00000000000..c8f97455235 --- /dev/null +++ b/apitest/src/main/resources/preReg/CopyDocument/copyDocumentResult.hbs @@ -0,0 +1,6 @@ +{ + "response": { + "docCatCode": "{{docCatCode}}", + "docTypCode": "{{docTypCode}}" + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/DeleteAllDocForaPRID/DeleteAllDocForaPRID.yml b/apitest/src/main/resources/preReg/DeleteAllDocForaPRID/DeleteAllDocForaPRID.yml new file mode 100644 index 00000000000..b616cda969d --- /dev/null +++ b/apitest/src/main/resources/preReg/DeleteAllDocForaPRID/DeleteAllDocForaPRID.yml @@ -0,0 +1,29 @@ +DeleteAllDocForaPRID: + Prereg_DeletePreRegistration_All_Valid_Smoke_sid: + endPoint: /preregistration/v1/documents/preregistration/{preRegistrationId} + role: batch + checkErrorsOnlyInResponse: true + restMethod: delete + inputTemplate: preReg/DeleteAllDocForaPRID/deleteAllDocForaPRID + outputTemplate: preReg/DeleteAllDocForaPRID/deleteAllDocForaPRIDResult + input: '{ + "preRegistrationId": "$ID:CreatePrereg_Smoke_alldel_sid_preRegistrationId$" +}' + output: '{ +}' + Prereg_DeletePreRegistration_InValid_preRegistrationId_sid: + endPoint: /preregistration/v1/documents/preregistration/{preRegistrationId} + role: batch + restMethod: delete + inputTemplate: preReg/DeleteAllDocForaPRID/deleteAllDocForaPRID + outputTemplate: preReg/error + input: '{ + "preRegistrationId": "$I8765fghsid_preRegistrationId$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_APP_005", + } + ] +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/DeleteAllDocForaPRID/deleteAllDocForaPRID.hbs b/apitest/src/main/resources/preReg/DeleteAllDocForaPRID/deleteAllDocForaPRID.hbs new file mode 100644 index 00000000000..790ad2f2993 --- /dev/null +++ b/apitest/src/main/resources/preReg/DeleteAllDocForaPRID/deleteAllDocForaPRID.hbs @@ -0,0 +1,3 @@ +{ + "preRegistrationId": "{{preRegistrationId}}" +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/DeleteAllDocForaPRID/deleteAllDocForaPRIDResult.hbs b/apitest/src/main/resources/preReg/DeleteAllDocForaPRID/deleteAllDocForaPRIDResult.hbs new file mode 100644 index 00000000000..7a73a41bfdf --- /dev/null +++ b/apitest/src/main/resources/preReg/DeleteAllDocForaPRID/deleteAllDocForaPRIDResult.hbs @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/DeleteBooking/DeleteBooking.yml b/apitest/src/main/resources/preReg/DeleteBooking/DeleteBooking.yml new file mode 100644 index 00000000000..3c2974c5dee --- /dev/null +++ b/apitest/src/main/resources/preReg/DeleteBooking/DeleteBooking.yml @@ -0,0 +1,13 @@ +DeleteBooking: + Prereg_DeleteBooking_All_Valid_Smoke_sid: + endPoint: /preregistration/v1/applications/appointment?preRegistrationId={preRegistrationId} + role: batch + restMethod: delete + inputTemplate: preReg/DeleteBooking/deleteBooking + outputTemplate: preReg/DeleteBooking/deleteBookingResult + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$" +}' + output: '{ + "deletedBy":"robin.hood@mailinator.com" +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/DeleteBooking/deleteBooking.hbs b/apitest/src/main/resources/preReg/DeleteBooking/deleteBooking.hbs new file mode 100644 index 00000000000..790ad2f2993 --- /dev/null +++ b/apitest/src/main/resources/preReg/DeleteBooking/deleteBooking.hbs @@ -0,0 +1,3 @@ +{ + "preRegistrationId": "{{preRegistrationId}}" +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/DeleteBooking/deleteBookingResult.hbs b/apitest/src/main/resources/preReg/DeleteBooking/deleteBookingResult.hbs new file mode 100644 index 00000000000..ad158d3d0d7 --- /dev/null +++ b/apitest/src/main/resources/preReg/DeleteBooking/deleteBookingResult.hbs @@ -0,0 +1,5 @@ +{ + "response": { + "deletedBy": "{{deletedBy}}" + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/DeleteLostUinApplication/DeleteLostUinApplication.yml b/apitest/src/main/resources/preReg/DeleteLostUinApplication/DeleteLostUinApplication.yml new file mode 100644 index 00000000000..125a4b5093a --- /dev/null +++ b/apitest/src/main/resources/preReg/DeleteLostUinApplication/DeleteLostUinApplication.yml @@ -0,0 +1,76 @@ +DeleteLostUinApplication: + Prereg_DeleteLostUinApplication_All_Valid_Smoke_sid: + endPoint: /preregistration/v1/applications/prereg/{applicationId} + role: batch + checkErrorsOnlyInResponse: true + restMethod: delete + inputTemplate: preReg/DeleteLostUinApplication/deleteLostUinApplication + outputTemplate: preReg/DeleteLostUinApplication/deleteLostUinApplicationResult + input: '{ + "applicationId": "$ID:CreatePrereg_Valid_Smoke_sid_preRegistrationId$" +}' + output: '{ + "deletedBy": "$IGNORE$" +}' + Prereg_DeleteLostUinApplication_after_its_deletion: + endPoint: /preregistration/v1/applications/prereg/{applicationId} + role: batch + checkErrorsOnlyInResponse: true + restMethod: delete + inputTemplate: preReg/DeleteLostUinApplication/deleteLostUinApplication + outputTemplate: preReg/error + input: '{ + "applicationId": "$ID:CreatePrereg_Valid_Smoke_sid_preRegistrationId$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_APP_005" + } + ] +}' + Prereg_DeleteLostUinApplication_multiple_application_sid: + endPoint: /preregistration/v1/applications/prereg/{applicationId} + role: batch + checkErrorsOnlyInResponse: true + restMethod: delete + inputTemplate: preReg/DeleteLostUinApplication/deleteLostUinApplication + outputTemplate: preReg/DeleteLostUinApplication/deleteLostUinApplicationResult + input: '{ + "applicationId": "$ID:CreatePrereg_All_Valid_Smoke_UpdateDocRefID_sid_preRegistrationId$" +}' + output: '{ + "deletedBy": "$IGNORE$" +}' + Prereg_DeleteLostUinApplication_inValid_preRegistrationId_sid: + endPoint: /preregistration/v1/applications/prereg/{applicationId} + role: batch + restMethod: delete + inputTemplate: preReg/DeleteLostUinApplication/deleteLostUinApplication + outputTemplate: preReg/error + input: '{ + "applicationId": "nhhh654443@@ffffv" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_APP_005" + } + ] +}' + Prereg_DeleteLostUinApplication_random_number_sid: + endPoint: /preregistration/v1/applications/prereg/{applicationId} + role: batch + restMethod: delete + inputTemplate: preReg/DeleteLostUinApplication/deleteLostUinApplication + outputTemplate: preReg/error + input: '{ + "applicationId": "12736445738389" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_APP_005" + } + ] +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/DeleteLostUinApplication/deleteLostUinApplication.hbs b/apitest/src/main/resources/preReg/DeleteLostUinApplication/deleteLostUinApplication.hbs new file mode 100644 index 00000000000..95f5a367e5a --- /dev/null +++ b/apitest/src/main/resources/preReg/DeleteLostUinApplication/deleteLostUinApplication.hbs @@ -0,0 +1,3 @@ +{ + "applicationId": "{{applicationId}}" +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/DeleteLostUinApplication/deleteLostUinApplicationResult.hbs b/apitest/src/main/resources/preReg/DeleteLostUinApplication/deleteLostUinApplicationResult.hbs new file mode 100644 index 00000000000..0fac661eed6 --- /dev/null +++ b/apitest/src/main/resources/preReg/DeleteLostUinApplication/deleteLostUinApplicationResult.hbs @@ -0,0 +1,5 @@ +{ + "response": { + "deletedBy": "{{deletedBy}}" + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/DeletePreRegistration/DeletePreRegistration.yml b/apitest/src/main/resources/preReg/DeletePreRegistration/DeletePreRegistration.yml new file mode 100644 index 00000000000..0d23be3e7dd --- /dev/null +++ b/apitest/src/main/resources/preReg/DeletePreRegistration/DeletePreRegistration.yml @@ -0,0 +1,29 @@ +DeletePreRegistration: + Prereg_DeletePreRegistration_All_Valid_Smoke_sid: + endPoint: /preregistration/v1/applications/prereg/{preRegistrationId} + role: batch + restMethod: delete + inputTemplate: preReg/DeletePreRegistration/deletePreRegistration + outputTemplate: preReg/DeletePreRegistration/deletePreRegistrationResult + input: '{ + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$" +}' + output: '{ +"deletedBy": "robin.hood@mailinator.com" +}' + Prereg_DeletePreRegistration_inValid_preRegistrationId_sid: + endPoint: /preregistration/v1/applications/prereg/{preRegistrationId} + role: batch + restMethod: delete + inputTemplate: preReg/DeletePreRegistration/deletePreRegistration + outputTemplate: preReg/error + input: '{ + "preRegistrationId": "nhhh654443@@ffffv" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_APP_005" + } + ] +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/DeletePreRegistration/deletePreRegistration.hbs b/apitest/src/main/resources/preReg/DeletePreRegistration/deletePreRegistration.hbs new file mode 100644 index 00000000000..790ad2f2993 --- /dev/null +++ b/apitest/src/main/resources/preReg/DeletePreRegistration/deletePreRegistration.hbs @@ -0,0 +1,3 @@ +{ + "preRegistrationId": "{{preRegistrationId}}" +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/DeletePreRegistration/deletePreRegistrationResult.hbs b/apitest/src/main/resources/preReg/DeletePreRegistration/deletePreRegistrationResult.hbs new file mode 100644 index 00000000000..0fac661eed6 --- /dev/null +++ b/apitest/src/main/resources/preReg/DeletePreRegistration/deletePreRegistrationResult.hbs @@ -0,0 +1,5 @@ +{ + "response": { + "deletedBy": "{{deletedBy}}" + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/DeleteSpecificDocForaPRID/DeleteSpecificDocForaPRID.yml b/apitest/src/main/resources/preReg/DeleteSpecificDocForaPRID/DeleteSpecificDocForaPRID.yml new file mode 100644 index 00000000000..1ce3096c3ed --- /dev/null +++ b/apitest/src/main/resources/preReg/DeleteSpecificDocForaPRID/DeleteSpecificDocForaPRID.yml @@ -0,0 +1,49 @@ +DeleteSpecificDocForaPRID: + Prereg_DeleteSpecificDocForaPRID_All_Valid_Smoke_sid: + endPoint: /preregistration/v1/documents/{documentId}?preRegistrationId={preRegistrationId} + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/DeleteSpecificDocForaPRID/deleteSpecificDocForaPRID + outputTemplate: preReg/DeleteSpecificDocForaPRID/deleteSpecificDocForaPRIDResult + input: '{ + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "documentId": "$ID:UploadDocument_All_Valid_Smoke_sid_docId$" +}' + output: '{ + +}' + Prereg_DeletePreRegistration_inValid_preRegistrationId_sid: + endPoint: /preregistration/v1/documents/{documentId}?preRegistrationId={preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/DeleteSpecificDocForaPRID/deleteSpecificDocForaPRID + outputTemplate: preReg/error + input: '{ + "preRegistrationId": "hnyfv_preRegistrationId", + "documentId": "$ID:UploadDocument_All_Valid_Smoke_sid_docId$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_APP_005" + } + ] +}' + Prereg_DeletePreRegistration_inValid_documentId_sid: + endPoint: /preregistration/v1/documents/{documentId}?preRegistrationId={preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/DeleteSpecificDocForaPRID/deleteSpecificDocForaPRID + outputTemplate: preReg/error + input: '{ + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "documentId": "53fhv@fgjd_Smoke_sid_docId$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_DOC_005" + } + ] +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/DeleteSpecificDocForaPRID/deleteSpecificDocForaPRID.hbs b/apitest/src/main/resources/preReg/DeleteSpecificDocForaPRID/deleteSpecificDocForaPRID.hbs new file mode 100644 index 00000000000..81173ad49d8 --- /dev/null +++ b/apitest/src/main/resources/preReg/DeleteSpecificDocForaPRID/deleteSpecificDocForaPRID.hbs @@ -0,0 +1,4 @@ +{ + "preRegistrationId": "{{preRegistrationId}}", + "documentId": "{{documentId}}" +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/DeleteSpecificDocForaPRID/deleteSpecificDocForaPRIDResult.hbs b/apitest/src/main/resources/preReg/DeleteSpecificDocForaPRID/deleteSpecificDocForaPRIDResult.hbs new file mode 100644 index 00000000000..7a73a41bfdf --- /dev/null +++ b/apitest/src/main/resources/preReg/DeleteSpecificDocForaPRID/deleteSpecificDocForaPRIDResult.hbs @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/DiscardBooking/DiscardBookingOutput.json b/apitest/src/main/resources/preReg/DiscardBooking/DiscardBookingOutput.json new file mode 100644 index 00000000000..43dbcd677e9 --- /dev/null +++ b/apitest/src/main/resources/preReg/DiscardBooking/DiscardBookingOutput.json @@ -0,0 +1 @@ +[{"testType":"smoke","testCaseName":"DiscardBooking_smoke","jiraId":"MOS-1002","pre_registration_id":"valid","status":""}, {"testType":"regression","pre_registration_id":"invalid","status":""}] \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/DiscardBooking/DiscardBookingRequest.json b/apitest/src/main/resources/preReg/DiscardBooking/DiscardBookingRequest.json new file mode 100644 index 00000000000..8a3b358bd72 --- /dev/null +++ b/apitest/src/main/resources/preReg/DiscardBooking/DiscardBookingRequest.json @@ -0,0 +1,5 @@ +{ +"pre_registration_id":"36840240571537" + + +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/DiscardBooking/DiscardBooking_smoke/request.json b/apitest/src/main/resources/preReg/DiscardBooking/DiscardBooking_smoke/request.json new file mode 100644 index 00000000000..b01819561b0 --- /dev/null +++ b/apitest/src/main/resources/preReg/DiscardBooking/DiscardBooking_smoke/request.json @@ -0,0 +1,3 @@ +{ + "pre_registration_id": "20489159324981" +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/DiscardBooking/DiscardBooking_smoke/response.json b/apitest/src/main/resources/preReg/DiscardBooking/DiscardBooking_smoke/response.json new file mode 100644 index 00000000000..e27e947ae49 --- /dev/null +++ b/apitest/src/main/resources/preReg/DiscardBooking/DiscardBooking_smoke/response.json @@ -0,0 +1,14 @@ +{ +"id":"mosip.pre-registration.booking.book", +"version":"1.0", +"err":null, +"responsetime":"2019-04-01T07:22:13.078Z", +"response": +[ +{ +"preRegistrationId":"60724608364839", +"deletedBy":"987654321", +"deletedDateTime":"2019-04-01T07:22:13.078+0000" +} +] +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/Documents/invalidDocument/docSizeGreaterThan5MB.pdf b/apitest/src/main/resources/preReg/Documents/invalidDocument/docSizeGreaterThan5MB.pdf new file mode 100644 index 00000000000..8a4a67edab3 Binary files /dev/null and b/apitest/src/main/resources/preReg/Documents/invalidDocument/docSizeGreaterThan5MB.pdf differ diff --git a/apitest/src/main/resources/preReg/Documents/invalidDocument/file.csv b/apitest/src/main/resources/preReg/Documents/invalidDocument/file.csv new file mode 100644 index 00000000000..1a41026057e --- /dev/null +++ b/apitest/src/main/resources/preReg/Documents/invalidDocument/file.csv @@ -0,0 +1,2 @@ +Task1,Task2,Task3,Task4,Task5,Task6,Task7 +"Total 234234234 ",Task arrival,Task departure,Time Taken,Time spent,Time left,Time out diff --git a/apitest/src/main/resources/preReg/Documents/invalidDocument/file.txt b/apitest/src/main/resources/preReg/Documents/invalidDocument/file.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/apitest/src/main/resources/preReg/Documents/invalidDocument/file.xlsx b/apitest/src/main/resources/preReg/Documents/invalidDocument/file.xlsx new file mode 100644 index 00000000000..f71c049f719 Binary files /dev/null and b/apitest/src/main/resources/preReg/Documents/invalidDocument/file.xlsx differ diff --git a/apitest/src/main/resources/preReg/Documents/validDocument/IDProof.pdf b/apitest/src/main/resources/preReg/Documents/validDocument/IDProof.pdf new file mode 100644 index 00000000000..f3e47ffdd7b Binary files /dev/null and b/apitest/src/main/resources/preReg/Documents/validDocument/IDProof.pdf differ diff --git a/apitest/src/main/resources/preReg/FetchApplicationByPrid/FetchApplicationByPrid.yml b/apitest/src/main/resources/preReg/FetchApplicationByPrid/FetchApplicationByPrid.yml new file mode 100644 index 00000000000..b6adbbaa5d8 --- /dev/null +++ b/apitest/src/main/resources/preReg/FetchApplicationByPrid/FetchApplicationByPrid.yml @@ -0,0 +1,29 @@ +FetchApplicationByPrid: + Prereg_FetchApplicationByPrid_All_Valid_Smoke_sid: + endPoint: /preregistration/v1/applications/prereg/{preRegistrationId} + role: batch + restMethod: get + inputTemplate: preReg/FetchApplicationByPrid/fetchApplicationByPrid + outputTemplate: preReg/FetchApplicationByPrid/fetchApplicationByPridResult + input: '{ + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$" +}' + output: '{ + "preRegistrationId": "59286406501581" +}' + Prereg_FetchApplicationByPrid_inValid_preRegistrationId_sid: + endPoint: /preregistration/v1/applications/prereg/{preRegistrationId} + role: batch + restMethod: get + inputTemplate: preReg/FetchApplicationByPrid/fetchApplicationByPrid + outputTemplate: preReg/error + input: '{ + "preRegistrationId": "ggfr3567ugg" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_APP_005" + } + ] +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/FetchApplicationByPrid/fetchApplicationByPrid.hbs b/apitest/src/main/resources/preReg/FetchApplicationByPrid/fetchApplicationByPrid.hbs new file mode 100644 index 00000000000..790ad2f2993 --- /dev/null +++ b/apitest/src/main/resources/preReg/FetchApplicationByPrid/fetchApplicationByPrid.hbs @@ -0,0 +1,3 @@ +{ + "preRegistrationId": "{{preRegistrationId}}" +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/FetchApplicationByPrid/fetchApplicationByPridResult.hbs b/apitest/src/main/resources/preReg/FetchApplicationByPrid/fetchApplicationByPridResult.hbs new file mode 100644 index 00000000000..3032571e178 --- /dev/null +++ b/apitest/src/main/resources/preReg/FetchApplicationByPrid/fetchApplicationByPridResult.hbs @@ -0,0 +1,12 @@ +{ + "response": { + "demographicDetails": { + "identity": { + "postalCode": "14022", + "dateOfBirth": "1996/01/01", + "phone": "8249742850", + "email": "goku@hogwarts.co.in" + } + } + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/FetchAppointmentDetailsByPrid/FetchAppointmentDetailsByPrid.yml b/apitest/src/main/resources/preReg/FetchAppointmentDetailsByPrid/FetchAppointmentDetailsByPrid.yml new file mode 100644 index 00000000000..c5f28547e5b --- /dev/null +++ b/apitest/src/main/resources/preReg/FetchAppointmentDetailsByPrid/FetchAppointmentDetailsByPrid.yml @@ -0,0 +1,29 @@ +FetchAppointmentDetailsByPrid: + Prereg_FetchAppointmentDetailsByPrid_All_Valid_Smoke_sid: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + restMethod: get + inputTemplate: preReg/FetchAppointmentDetailsByPrid/fetchAppointmentDetailsByPrid + outputTemplate: preReg/FetchAppointmentDetailsByPrid/fetchAppointmentDetailsByPridResult + input: '{ + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$" +}' + output: '{ + "registration_center_id": "10003" +}' + Prereg_FetchAppointmentDetailsByPrid_inValid_preRegistrationId_sid: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + restMethod: get + inputTemplate: preReg/FetchAppointmentDetailsByPrid/fetchAppointmentDetailsByPrid + outputTemplate: preReg/error + input: '{ + "preRegistrationId": "ggfr3567ugg" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_APP_013" + } + ] +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/FetchAppointmentDetailsByPrid/fetchAppointmentDetailsByPrid.hbs b/apitest/src/main/resources/preReg/FetchAppointmentDetailsByPrid/fetchAppointmentDetailsByPrid.hbs new file mode 100644 index 00000000000..790ad2f2993 --- /dev/null +++ b/apitest/src/main/resources/preReg/FetchAppointmentDetailsByPrid/fetchAppointmentDetailsByPrid.hbs @@ -0,0 +1,3 @@ +{ + "preRegistrationId": "{{preRegistrationId}}" +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/FetchAppointmentDetailsByPrid/fetchAppointmentDetailsByPridResult.hbs b/apitest/src/main/resources/preReg/FetchAppointmentDetailsByPrid/fetchAppointmentDetailsByPridResult.hbs new file mode 100644 index 00000000000..556701d6072 --- /dev/null +++ b/apitest/src/main/resources/preReg/FetchAppointmentDetailsByPrid/fetchAppointmentDetailsByPridResult.hbs @@ -0,0 +1,5 @@ +{ + "response": { + "registration_center_id": "{{registration_center_id}}" + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetAllApplications/GetAllApplications.yml b/apitest/src/main/resources/preReg/GetAllApplications/GetAllApplications.yml new file mode 100644 index 00000000000..a2917f183f6 --- /dev/null +++ b/apitest/src/main/resources/preReg/GetAllApplications/GetAllApplications.yml @@ -0,0 +1,58 @@ +GetAllApplications: + Prereg_GetAllApplications_All_Valid_Smoke_sid: + endPoint: /preregistration/v1/applications + role: batch + checkErrorsOnlyInResponse: true + restMethod: get + inputTemplate: preReg/GetAllApplications/getAllApplications + outputTemplate: preReg/GetAllApplications/getAllApplicationsResult + input: '{ + "type": null +}' + output: '{ +}' + Prereg_GetAllApplications_InValid: + endPoint: /preregistration/v1/applications + role: batch + checkErrorsOnlyInResponse: true + restMethod: get + inputTemplate: preReg/GetAllApplications/getAllApplications + outputTemplate: preReg/error + input: '{ + "type": "263gedbdbegegedb" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_APP_016" + } + ] +}' + Prereg_GetAllApplications_InValid_Type: + endPoint: /preregistration/v1/applications?type={type} + role: batch + restMethod: get + inputTemplate: preReg/GetAllApplications/getAllApplications + outputTemplate: preReg/error + input: '{ + "type": "erwsdhgqw5dcfbz" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_APP_016" + } + ] +}' + Prereg_GetAllApplications_Valid_Type_Smoke_sid: + endPoint: /preregistration/v1/applications?type={type} + role: batch + checkErrorsOnlyInResponse: true + restMethod: get + inputTemplate: preReg/GetAllApplications/getAllApplications + outputTemplate: preReg/GetAllApplications/getAllApplicationsResult + input: '{ + "type": "NEW_PREREGISTRATION" +}' + output: '{ +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetAllApplications/getAllApplications.hbs b/apitest/src/main/resources/preReg/GetAllApplications/getAllApplications.hbs new file mode 100644 index 00000000000..d94c75f3b55 --- /dev/null +++ b/apitest/src/main/resources/preReg/GetAllApplications/getAllApplications.hbs @@ -0,0 +1,3 @@ +{ + "type": "{{type}}" +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetAllApplications/getAllApplicationsResult.hbs b/apitest/src/main/resources/preReg/GetAllApplications/getAllApplicationsResult.hbs new file mode 100644 index 00000000000..7a73a41bfdf --- /dev/null +++ b/apitest/src/main/resources/preReg/GetAllApplications/getAllApplicationsResult.hbs @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetAllApplicationsWithapplicationId/GetAllApplicationsWithapplicationId.hbs b/apitest/src/main/resources/preReg/GetAllApplicationsWithapplicationId/GetAllApplicationsWithapplicationId.hbs new file mode 100644 index 00000000000..e783efaae56 --- /dev/null +++ b/apitest/src/main/resources/preReg/GetAllApplicationsWithapplicationId/GetAllApplicationsWithapplicationId.hbs @@ -0,0 +1,3 @@ +{ + "applicationId": "{{applicationId}}" +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetAllApplicationsWithapplicationId/GetAllApplicationsWithapplicationId.yml b/apitest/src/main/resources/preReg/GetAllApplicationsWithapplicationId/GetAllApplicationsWithapplicationId.yml new file mode 100644 index 00000000000..1ea0cdb397f --- /dev/null +++ b/apitest/src/main/resources/preReg/GetAllApplicationsWithapplicationId/GetAllApplicationsWithapplicationId.yml @@ -0,0 +1,42 @@ +GetAllApplicationsWithapplicationId: + Prereg_GetAllApplicationsWithapplicationId_All_Valid_Smoke_sid: + endPoint: /preregistration/v1/applications/{applicationId} + role: batch + checkErrorsOnlyInResponse: true + restMethod: get + inputTemplate: preReg/GetAllApplicationsWithapplicationId/GetAllApplicationsWithapplicationId + outputTemplate: preReg/GetAllApplicationsWithapplicationId/getAllApplicationsResult + input: '{ + "applicationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$" +}' + output: '{ +}' + Prereg_GetAllApplicationsWithapplicationId_with_expired: + endPoint: /preregistration/v1/applications/{applicationId} + role: batch + checkErrorsOnlyInResponse: true + restMethod: get + inputTemplate: preReg/GetAllApplicationsWithapplicationId/GetAllApplicationsWithapplicationId + outputTemplate: preReg/GetAllApplicationsWithapplicationId/getAllApplicationsResult + input: '{ + "applicationId": "$ID:CreatePrereg_with_future_date_preRegistrationId$" +}' + output: '{ +}' + Prereg_GetAllApplicationsWithapplicationId_with_invalid_app;icationId: + endPoint: /preregistration/v1/applications/{applicationId} + role: batch + checkErrorsOnlyInResponse: true + restMethod: get + inputTemplate: preReg/GetAllApplicationsWithapplicationId/GetAllApplicationsWithapplicationId + outputTemplate: preReg/error + input: '{ + "applicationId": "26363gdgdb@636e4gdg" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_APP_016" + } + ] +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetAllApplicationsWithapplicationId/getAllApplicationsResult.hbs b/apitest/src/main/resources/preReg/GetAllApplicationsWithapplicationId/getAllApplicationsResult.hbs new file mode 100644 index 00000000000..7a73a41bfdf --- /dev/null +++ b/apitest/src/main/resources/preReg/GetAllApplicationsWithapplicationId/getAllApplicationsResult.hbs @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetAllDocForPrId/GetAllDocForPrId.yml b/apitest/src/main/resources/preReg/GetAllDocForPrId/GetAllDocForPrId.yml new file mode 100644 index 00000000000..02e97b7ea52 --- /dev/null +++ b/apitest/src/main/resources/preReg/GetAllDocForPrId/GetAllDocForPrId.yml @@ -0,0 +1,31 @@ +GetAllDocForPrId: + Prereg_GetAllDocForPrId_All_Valid_Smoke_sid: + endPoint: /preregistration/v1/documents/preregistration/{preRegistrationId} + role: batch + checkErrorsOnlyInResponse: true + restMethod: get + inputTemplate: preReg/GetAllDocForPrId/getAllDocForPrId + outputTemplate: preReg/GetAllDocForPrId/getAllDocForPrIdResult + input: '{ + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$" +}' + output: '{ + "docCatCode": "$IGNORE$", + "docTypCode": "$IGNORE$" +}' + Prereg_GetAllDocForPrId_inValid_preRegistrationId_sid: + endPoint: /preregistration/v1/documents/preregistration/{preRegistrationId} + role: batch + restMethod: get + inputTemplate: preReg/GetAllDocForPrId/getAllDocForPrId + outputTemplate: preReg/error + input: '{ + "preRegistrationId": "jhgf4324" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_APP_005" + } + ] +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetAllDocForPrId/getAllDocForPrId.hbs b/apitest/src/main/resources/preReg/GetAllDocForPrId/getAllDocForPrId.hbs new file mode 100644 index 00000000000..790ad2f2993 --- /dev/null +++ b/apitest/src/main/resources/preReg/GetAllDocForPrId/getAllDocForPrId.hbs @@ -0,0 +1,3 @@ +{ + "preRegistrationId": "{{preRegistrationId}}" +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetAllDocForPrId/getAllDocForPrIdResult.hbs b/apitest/src/main/resources/preReg/GetAllDocForPrId/getAllDocForPrIdResult.hbs new file mode 100644 index 00000000000..08b3e148303 --- /dev/null +++ b/apitest/src/main/resources/preReg/GetAllDocForPrId/getAllDocForPrIdResult.hbs @@ -0,0 +1,10 @@ +{ + "response": { + "documentsMetaData": [ + { + "docCatCode": "{{docCatCode}}", + "docTypCode": "{{docTypCode}}" + } + ] + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetAllPreRegApplications/GetAllPreRegApplications.yml b/apitest/src/main/resources/preReg/GetAllPreRegApplications/GetAllPreRegApplications.yml new file mode 100644 index 00000000000..673ce6cadfb --- /dev/null +++ b/apitest/src/main/resources/preReg/GetAllPreRegApplications/GetAllPreRegApplications.yml @@ -0,0 +1,34 @@ +GetAllPreRegApplications: + Prereg_GetAllPreRegApplications_All_Valid_Smoke_sid: + endPoint: /preregistration/v1/applications + role: batch + checkErrorsOnlyInResponse: true + restMethod: get + inputTemplate: preReg/GetAllPreRegApplications/getAllPreRegApplications + outputTemplate: preReg/GetAllPreRegApplications/GetAllPreRegApplicationsResult + input: '{}' + output: '{ + "bookingType": "NEW_PREREGISTRATION" +}' + Prereg_GetAllPreRegApplications_LOST_UIN_APPLICATION_sid: + endPoint: /preregistration/v1/applications + role: batch + checkErrorsOnlyInResponse: true + restMethod: get + inputTemplate: preReg/GetAllPreRegApplications/getAllPreRegApplications + outputTemplate: preReg/GetAllPreRegApplications/GetAllPreRegApplicationsResult + input: '{}' + output: '{ + "bookingType": "NEW_PREREGISTRATION" +}' + Prereg_GetAllPreRegApplications_DELETE_UIN_APPLICATION_sid: + endPoint: /preregistration/v1/applications + role: batch + checkErrorsOnlyInResponse: true + restMethod: get + inputTemplate: preReg/GetAllPreRegApplications/getAllPreRegApplications + outputTemplate: preReg/GetAllPreRegApplications/GetAllPreRegApplicationsResult + input: '{}' + output: '{ + "bookingType": "NEW_PREREGISTRATION" +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetAllPreRegApplications/GetAllPreRegApplicationsResult.hbs b/apitest/src/main/resources/preReg/GetAllPreRegApplications/GetAllPreRegApplicationsResult.hbs new file mode 100644 index 00000000000..7a73a41bfdf --- /dev/null +++ b/apitest/src/main/resources/preReg/GetAllPreRegApplications/GetAllPreRegApplicationsResult.hbs @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetAllPreRegApplications/getAllPreRegApplications.hbs b/apitest/src/main/resources/preReg/GetAllPreRegApplications/getAllPreRegApplications.hbs new file mode 100644 index 00000000000..9e26dfeeb6e --- /dev/null +++ b/apitest/src/main/resources/preReg/GetAllPreRegApplications/getAllPreRegApplications.hbs @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetApplicationStatusWithPrId/GetApplicationStatusWithPrId.yml b/apitest/src/main/resources/preReg/GetApplicationStatusWithPrId/GetApplicationStatusWithPrId.yml new file mode 100644 index 00000000000..5804173f01e --- /dev/null +++ b/apitest/src/main/resources/preReg/GetApplicationStatusWithPrId/GetApplicationStatusWithPrId.yml @@ -0,0 +1,45 @@ +GetApplicationStatusWithPrId: + Prereg_GetApplicationStatusWithPrId_All_Valid_Smoke_sid: + endPoint: /preregistration/v1/applications/prereg/status/{preRegistrationId} + role: batch + restMethod: get + inputTemplate: preReg/GetApplicationStatusWithPrId/getApplicationStatusWithPrId + outputTemplate: preReg/GetApplicationStatusWithPrId/getApplicationStatusWithPrIdResult + input: '{ + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$" +}' + output: '{ + "statusCode": "Application_Incomplete" +}' + Prereg_GetApplicationStatusWithPrId_inValid_PRID_sid: + endPoint: /preregistration/v1/applications/prereg/status/{preRegistrationId} + role: batch + restMethod: get + inputTemplate: preReg/GetApplicationStatusWithPrId/getApplicationStatusWithPrId + outputTemplate: preReg/error + input: '{ + "preRegistrationId": "65125923803sass948" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_APP_005" + } + ] +}' + Prereg_GetApplicationStatusWithPrId_Blank_PRID_sid: + endPoint: /preregistration/v1/applications/prereg/status/{preRegistrationId} + role: batch + restMethod: get + inputTemplate: preReg/GetApplicationStatusWithPrId/getApplicationStatusWithPrId + outputTemplate: preReg/error + input: '{ + "preRegistrationId": "" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_APP_005" + } + ] +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetApplicationStatusWithPrId/getApplicationStatusWithPrId.hbs b/apitest/src/main/resources/preReg/GetApplicationStatusWithPrId/getApplicationStatusWithPrId.hbs new file mode 100644 index 00000000000..790ad2f2993 --- /dev/null +++ b/apitest/src/main/resources/preReg/GetApplicationStatusWithPrId/getApplicationStatusWithPrId.hbs @@ -0,0 +1,3 @@ +{ + "preRegistrationId": "{{preRegistrationId}}" +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetApplicationStatusWithPrId/getApplicationStatusWithPrIdResult.hbs b/apitest/src/main/resources/preReg/GetApplicationStatusWithPrId/getApplicationStatusWithPrIdResult.hbs new file mode 100644 index 00000000000..5bd4b5fb05f --- /dev/null +++ b/apitest/src/main/resources/preReg/GetApplicationStatusWithPrId/getApplicationStatusWithPrIdResult.hbs @@ -0,0 +1,5 @@ +{ + "response": { + "statusCode": "{{statusCode}}" + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetApplicationWithPrId/GetApplicationWithPrId.yml b/apitest/src/main/resources/preReg/GetApplicationWithPrId/GetApplicationWithPrId.yml new file mode 100644 index 00000000000..a6d6ed9b187 --- /dev/null +++ b/apitest/src/main/resources/preReg/GetApplicationWithPrId/GetApplicationWithPrId.yml @@ -0,0 +1,17 @@ +GetApplicationWithPrId: + Prereg_GetApplicationWithPrId_inValid_preRegistrationId: + endPoint: /preregistration/v1/applications/{preRegistrationId} + role: batch + restMethod: get + inputTemplate: preReg/GetApplicationWithPrId/getApplicationWithPrId + outputTemplate: preReg/error + input: '{ + "preRegistrationId": "dhsb3772@Dfvgbgh" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_APP_013" + } + ] +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetApplicationWithPrId/getApplicationWithPrId.hbs b/apitest/src/main/resources/preReg/GetApplicationWithPrId/getApplicationWithPrId.hbs new file mode 100644 index 00000000000..790ad2f2993 --- /dev/null +++ b/apitest/src/main/resources/preReg/GetApplicationWithPrId/getApplicationWithPrId.hbs @@ -0,0 +1,3 @@ +{ + "preRegistrationId": "{{preRegistrationId}}" +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetApplicationWithPrId/getApplicationWithPrIdResult.hbs b/apitest/src/main/resources/preReg/GetApplicationWithPrId/getApplicationWithPrIdResult.hbs new file mode 100644 index 00000000000..e2a27c29bce --- /dev/null +++ b/apitest/src/main/resources/preReg/GetApplicationWithPrId/getApplicationWithPrIdResult.hbs @@ -0,0 +1,95 @@ +{ + "response": { + "statusCode": "{{statusCode}}", + "langCode": "{{langCode}}", + "demographicDetails": { + "identity": { + "gender": [ + { + "language": "eng", + "value": "MLE" + }, + { + "language": "ara", + "value": "MLE" + } + ], + "city": [ + { + "language": "eng", + "value": "KNT" + }, + { + "language": "ara", + "value": "KNT" + } + ], + "postalCode": "14022", + "fullName": [ + { + "language": "eng", + "value": "Test Book appointment" + }, + { + "language": "ara", + "value": "پُجَ تهَكُر" + } + ], + "dateOfBirth": "1996/01/01", + "IDSchemaVersion": 0.1, + "province": [ + { + "language": "eng", + "value": "KTA" + }, + { + "language": "ara", + "value": "KTA" + } + ], + "zone": [ + { + "language": "eng", + "value": "BNMR" + }, + { + "language": "ara", + "value": "BNMR" + } + ], + "phone": "8249742850", + "addressLine1": [ + { + "language": "eng", + "value": "line1" + }, + { + "language": "ara", + "value": "لِنِ١" + } + ], + "residenceStatus": [ + { + "language": "eng", + "value": "NFR" + }, + { + "language": "ara", + "value": "NFR" + } + ], + "region": [ + { + "language": "eng", + "value": "RSK" + }, + { + "language": "ara", + "value": "RSK" + } + ], + "email": "goku@hogwarts.co.in" + } + } + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetAppointmentDetails/GetAppointmentDetails.yml b/apitest/src/main/resources/preReg/GetAppointmentDetails/GetAppointmentDetails.yml new file mode 100644 index 00000000000..ae02d25efc4 --- /dev/null +++ b/apitest/src/main/resources/preReg/GetAppointmentDetails/GetAppointmentDetails.yml @@ -0,0 +1,70 @@ +GetAppointmentDetails: + Prereg_GetAppointmentDetails_BookByPRID_All_Valid_Smoke_sid: + endPoint: /preregistration/v1/appointment/{preRegistrationId} + role: batch + restMethod: get + inputTemplate: preReg/GetAppointmentDetails/getAppointmentDetails + outputTemplate: preReg/GetAppointmentDetails/getAppointmentDetailsResult + input: '{ + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$" +}' + output: '{ + "registration_center_id": "10003" +}' + Prereg_GetAppointmentDetails_with_cancelled_appoinment: + endPoint: /preregistration/v1/appointment/{preRegistrationId} + role: batch + restMethod: get + inputTemplate: preReg/GetAppointmentDetails/getAppointmentDetails + outputTemplate: preReg/GetAppointmentDetails/getAppointmentDetailsResult + input: '{ + "preRegistrationId": "$ID:CreatePrereg_Smoke_CancelApplicationsAppointment_sid_preRegistrationId$" +}' + output: '{ + "registration_center_id": "10003" +}' + Prereg_GetAppointmentDetails_AllValid_Smoke_sid: + endPoint: /preregistration/v1/appointment/{preRegistrationId} + role: batch + restMethod: get + inputTemplate: preReg/GetAppointmentDetails/getAppointmentDetails + outputTemplate: preReg/GetAppointmentDetails/getAppointmentDetailsResult + input: '{ + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$" +}' + output: '{ + "registration_center_id": "10003" +}' + + Prereg_GetAppointmentDetails_inValid_preRegistrationId: + endPoint: /preregistration/v1/appointment/{preRegistrationId} + role: batch + restMethod: get + inputTemplate: preReg/GetAppointmentDetails/getAppointmentDetails + outputTemplate: preReg/error + input: '{ + "preRegistrationId": "ggfr3567ugg" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_APP_013" + } + ] +}' + Prereg_GetAppointmentDetails_empty_space_preRegistrationId: + endPoint: /preregistration/v1/appointment/{preRegistrationId} + role: batch + restMethod: get + inputTemplate: preReg/GetAppointmentDetails/getAppointmentDetails + outputTemplate: preReg/error + input: '{ + "preRegistrationId": " " +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_APP_013" + } + ] +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetAppointmentDetails/getAppointmentDetails.hbs b/apitest/src/main/resources/preReg/GetAppointmentDetails/getAppointmentDetails.hbs new file mode 100644 index 00000000000..790ad2f2993 --- /dev/null +++ b/apitest/src/main/resources/preReg/GetAppointmentDetails/getAppointmentDetails.hbs @@ -0,0 +1,3 @@ +{ + "preRegistrationId": "{{preRegistrationId}}" +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetAppointmentDetails/getAppointmentDetailsResult.hbs b/apitest/src/main/resources/preReg/GetAppointmentDetails/getAppointmentDetailsResult.hbs new file mode 100644 index 00000000000..556701d6072 --- /dev/null +++ b/apitest/src/main/resources/preReg/GetAppointmentDetails/getAppointmentDetailsResult.hbs @@ -0,0 +1,5 @@ +{ + "response": { + "registration_center_id": "{{registration_center_id}}" + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetAvailableSlotForRegCentreId/GetAvailableSlotForRegCentreId.yml b/apitest/src/main/resources/preReg/GetAvailableSlotForRegCentreId/GetAvailableSlotForRegCentreId.yml new file mode 100644 index 00000000000..07ad9e5a2d6 --- /dev/null +++ b/apitest/src/main/resources/preReg/GetAvailableSlotForRegCentreId/GetAvailableSlotForRegCentreId.yml @@ -0,0 +1,41 @@ +GetAvailableSlotForRegCentreId: + Prereg_GetAvailableSlotForRegCentreId_All_Valid_Smoke_sid: + endPoint: /preregistration/v1/appointment/availability/{registrationCenterId} + role: batch + restMethod: get + inputTemplate: preReg/GetAvailableSlotForRegCentreId/getAvailableSlotForRegCentreId + outputTemplate: preReg/GetAvailableSlotForRegCentreId/getAvailableSlotForRegCentreIdResult + input: '{ + "registrationCenterId": "10003" +}' + output: '{ + "regCenterId": "10003" +}' + Prereg_GetAvailableSlotForRegCentreId_inValid_registrationCenterId_sid: + endPoint: /preregistration/v1/appointment/availability/{registrationCenterId} + role: batch + restMethod: get + inputTemplate: preReg/GetAvailableSlotForRegCentreId/getAvailableSlotForRegCentreId + outputTemplate: preReg/error + input: '{ + "registrationCenterId": "1shsbsb@@@GB3" +}' + output: '{ + "errors": [ + { + "errorCode": "KER-MSD-215" + } + ] +}' + Prereg_GetAvailableSlotForRegCentreId_Valid_Smoke_sid: + endPoint: /preregistration/v1/appointment/availability/{registrationCenterId} + role: batch + restMethod: get + inputTemplate: preReg/GetAvailableSlotForRegCentreId/getAvailableSlotForRegCentreId + outputTemplate: preReg/GetAvailableSlotForRegCentreId/getAvailableSlotForRegCentreIdResult + input: '{ + "registrationCenterId": "10003" +}' + output: '{ + "regCenterId": "10003" +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetAvailableSlotForRegCentreId/getAvailableSlotForRegCentreId.hbs b/apitest/src/main/resources/preReg/GetAvailableSlotForRegCentreId/getAvailableSlotForRegCentreId.hbs new file mode 100644 index 00000000000..38c9e50ee98 --- /dev/null +++ b/apitest/src/main/resources/preReg/GetAvailableSlotForRegCentreId/getAvailableSlotForRegCentreId.hbs @@ -0,0 +1,3 @@ +{ + "registrationCenterId": "{{registrationCenterId}}" +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetAvailableSlotForRegCentreId/getAvailableSlotForRegCentreIdResult.hbs b/apitest/src/main/resources/preReg/GetAvailableSlotForRegCentreId/getAvailableSlotForRegCentreIdResult.hbs new file mode 100644 index 00000000000..5ef68303359 --- /dev/null +++ b/apitest/src/main/resources/preReg/GetAvailableSlotForRegCentreId/getAvailableSlotForRegCentreIdResult.hbs @@ -0,0 +1,5 @@ +{ + "response": { + "regCenterId": "{{regCenterId}}" + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetBookingsForRegCenter/GetBookingsForRegCenter.yml b/apitest/src/main/resources/preReg/GetBookingsForRegCenter/GetBookingsForRegCenter.yml new file mode 100644 index 00000000000..77e4a954e2d --- /dev/null +++ b/apitest/src/main/resources/preReg/GetBookingsForRegCenter/GetBookingsForRegCenter.yml @@ -0,0 +1,61 @@ +GetBookingsForRegCenter: + Prereg_GetBookingsForRegCenter_All_Valid_Smoke_sid: + endPoint: /preregistration/v1/applications/bookings/{regCenterId}?from_date=2020-10-01&to_date=2034-10-13 + role: batch + restMethod: get + inputTemplate: preReg/GetAvailableSlotForRegCentreId/getAvailableSlotForRegCentreId + outputTemplate: preReg/GetAvailableSlotForRegCentreId/getAvailableSlotForRegCentreIdResult + input: '{ + "regCenterId": "10003" +}' + output: '{ + "regCenterId": "10003" +}' + Prereg_GetBookingsForRegCenter_with_InValid_date_format: + endPoint: /preregistration/v1/applications/bookings/{regCenterId}?from_date=2020-45461&to_date=2034-10-13 + role: batch + restMethod: get + inputTemplate: preReg/GetAvailableSlotForRegCentreId/getAvailableSlotForRegCentreId + outputTemplate: preReg/error + input: '{ + "regCenterId": "10003" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_BOOK_RCI_032" + } + ] +}' + Prereg_GetBookingsForRegCenter_with_InValid_regcenter: + endPoint: /preregistration/v1/applications/bookings/{regCenterId}?from_date=2020-10-01&to_date=2034-10-13 + role: batch + restMethod: get + inputTemplate: preReg/GetAvailableSlotForRegCentreId/getAvailableSlotForRegCentreId + outputTemplate: preReg/error + input: '{ + "regCenterId": "10@@#$$003" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_BOOK_RCI_032" + } + ] +}' + Prereg_GetBookingsForRegCenter_with_InValid_regcenter_invalidDate: + endPoint: /preregistration/v1/applications/bookings/{regCenterId}?from_date=20204555&to_date=2034-10-13 + role: batch + restMethod: get + inputTemplate: preReg/GetAvailableSlotForRegCentreId/getAvailableSlotForRegCentreId + outputTemplate: preReg/error + input: '{ + "regCenterId": "10@@#$$003" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_BOOK_RCI_032" + } + ] +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetBookingsForRegCenter/getBookingsForRegCenter.hbs b/apitest/src/main/resources/preReg/GetBookingsForRegCenter/getBookingsForRegCenter.hbs new file mode 100644 index 00000000000..20c9ca46561 --- /dev/null +++ b/apitest/src/main/resources/preReg/GetBookingsForRegCenter/getBookingsForRegCenter.hbs @@ -0,0 +1,3 @@ +{ + "regCenterId": "{{regCenterId}}" +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetBookingsForRegCenter/getBookingsForRegCenterResult.hbs b/apitest/src/main/resources/preReg/GetBookingsForRegCenter/getBookingsForRegCenterResult.hbs new file mode 100644 index 00000000000..5ef68303359 --- /dev/null +++ b/apitest/src/main/resources/preReg/GetBookingsForRegCenter/getBookingsForRegCenterResult.hbs @@ -0,0 +1,5 @@ +{ + "response": { + "regCenterId": "{{regCenterId}}" + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetPRIDByDateRange/GetPRIDByDateRange.yml b/apitest/src/main/resources/preReg/GetPRIDByDateRange/GetPRIDByDateRange.yml new file mode 100644 index 00000000000..9f5895f62d9 --- /dev/null +++ b/apitest/src/main/resources/preReg/GetPRIDByDateRange/GetPRIDByDateRange.yml @@ -0,0 +1,396 @@ +GetPRIDByDateRange: + Prereg_GetPRIDByDateRange_All_Valid_Smoke_sid: + endPoint: /preregistration/v1/sync + role: regproc + restMethod: post + inputTemplate: preReg/GetPRIDByDateRange/getPRIDByDateRange + outputTemplate: preReg/GetPRIDByDateRange/getPRIDByDateRangeResult + input: '{ + "id": "mosip.pre-registration.datasync.fetch.ids", + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "registrationCenterId": "10003", + "fromDate": "2020-05-09", + "toDate": "2030-10-11" +}' + output: '{ + "id": "mosip.pre-registration.datasync.fetch.ids" +}' + Prereg_GetPRIDByDateRange_inValid_id: + endPoint: /preregistration/v1/sync + role: regproc + restMethod: post + inputTemplate: preReg/GetPRIDByDateRange/getPRIDByDateRange + outputTemplate: preReg/error + input: '{ + "id": "mop.pre-registration.datasync.fetch.ids", + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "registrationCenterId": "10003", + "fromDate": "2020-05-09", + "toDate": "2021-10-11" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_CORE_001" + } + ] +}' + Prereg_GetPRIDByDateRange_blank_id: + endPoint: /preregistration/v1/sync + role: regproc + restMethod: post + inputTemplate: preReg/GetPRIDByDateRange/getPRIDByDateRange + outputTemplate: preReg/error + input: '{ + "id": "", + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "registrationCenterId": "10003", + "fromDate": "2020-05-09", + "toDate": "2021-10-11" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_CORE_001" + } + ] +}' + Prereg_GetPRIDByDateRange_missing_id: + endPoint: /preregistration/v1/sync + role: regproc + restMethod: post + inputTemplate: preReg/GetPRIDByDateRange/getPRIDByDateRange + outputTemplate: preReg/error + input: '{ + "id": "$REMOVE$", + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "registrationCenterId": "10003", + "fromDate": "2020-05-09", + "toDate": "2021-10-11" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_CORE_001" + } + ] +}' + Prereg_GetPRIDByDateRange_invalid_version: + endPoint: /preregistration/v1/sync + role: regproc + restMethod: post + inputTemplate: preReg/GetPRIDByDateRange/getPRIDByDateRange + outputTemplate: preReg/error + input: '{ + "id": "mosip.pre-registration.datasync.fetch.ids", + "version": "1djhsnb@@@0", + "requesttime": "$TIMESTAMP$", + "registrationCenterId": "10003", + "fromDate": "2020-05-09", + "toDate": "2021-10-11" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_CORE_002" + } + ] +}' + Prereg_GetPRIDByDateRange_missing_version: + endPoint: /preregistration/v1/sync + role: regproc + restMethod: post + inputTemplate: preReg/GetPRIDByDateRange/getPRIDByDateRange + outputTemplate: preReg/error + input: '{ + "id": "mosip.pre-registration.datasync.fetch.ids", + "version": "$REMOVE$", + "requesttime": "$TIMESTAMP$", + "registrationCenterId": "10003", + "fromDate": "2020-05-09", + "toDate": "2021-10-11" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_CORE_002" + } + ] +}' + Prereg_GetPRIDByDateRange_blank_version: + endPoint: /preregistration/v1/sync + role: regproc + restMethod: post + inputTemplate: preReg/GetPRIDByDateRange/getPRIDByDateRange + outputTemplate: preReg/error + input: '{ + "id": "mosip.pre-registration.datasync.fetch.ids", + "version": "", + "requesttime": "$TIMESTAMP$", + "registrationCenterId": "10003", + "fromDate": "2020-05-09", + "toDate": "2021-10-11" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_CORE_002" + } + ] +}' + Prereg_GetPRIDByDateRange_blank_requesttime: + endPoint: /preregistration/v1/sync + role: regproc + restMethod: post + inputTemplate: preReg/GetPRIDByDateRange/getPRIDByDateRange + outputTemplate: preReg/error + input: '{ + "id": "mosip.pre-registration.datasync.fetch.ids", + "version": "1.0", + "requesttime": "", + "registrationCenterId": "10003", + "fromDate": "2020-05-09", + "toDate": "2021-10-11" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_CORE_003" + } + ] +}' + Prereg_GetPRIDByDateRange_missing_requesttime: + endPoint: /preregistration/v1/sync + role: regproc + restMethod: post + inputTemplate: preReg/GetPRIDByDateRange/getPRIDByDateRange + outputTemplate: preReg/error + input: '{ + "id": "mosip.pre-registration.datasync.fetch.ids", + "version": "1.0", + "requesttime": "$REMOVE$", + "registrationCenterId": "10003", + "fromDate": "2020-05-09", + "toDate": "2021-10-11" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_CORE_003" + } + ] +}' + Prereg_GetPRIDByDateRange_Invalid_requesttime: + endPoint: /preregistration/v1/sync + role: regproc + restMethod: post + inputTemplate: preReg/GetPRIDByDateRange/getPRIDByDateRange + outputTemplate: preReg/error + input: '{ + "id": "mosip.pre-registration.datasync.fetch.ids", + "version": "1.0", + "requesttime": "OVEdgeu37373", + "registrationCenterId": "10003", + "fromDate": "2020-05-09", + "toDate": "2021-10-11" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_015" + } + ] +}' + Prereg_GetPRIDByDateRange_Invalid_registrationCenterId: + endPoint: /preregistration/v1/sync + role: regproc + restMethod: post + inputTemplate: preReg/GetPRIDByDateRange/getPRIDByDateRange + outputTemplate: preReg/error + input: '{ + "id": "mosip.pre-registration.datasync.fetch.ids", + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "registrationCenterId": "100fff01", + "fromDate": "2020-05-09", + "toDate": "2021-10-11" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_BOOK_RCI_032" + } + ] +}' + Prereg_GetPRIDByDateRange_blank_registrationCenterId: + endPoint: /preregistration/v1/sync + role: regproc + restMethod: post + inputTemplate: preReg/GetPRIDByDateRange/getPRIDByDateRange + outputTemplate: preReg/error + input: '{ + "id": "mosip.pre-registration.datasync.fetch.ids", + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "registrationCenterId": "", + "fromDate": "2020-05-09", + "toDate": "2021-10-11" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_DATA_SYNC_009" + } + ] +}' + Prereg_GetPRIDByDateRange_missing_registrationCenterId: + endPoint: /preregistration/v1/sync + role: regproc + restMethod: post + inputTemplate: preReg/GetPRIDByDateRange/getPRIDByDateRange + outputTemplate: preReg/error + input: '{ + "id": "mosip.pre-registration.datasync.fetch.ids", + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "registrationCenterId": "$REMOVE$", + "fromDate": "2020-05-09", + "toDate": "2021-10-11" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_DATA_SYNC_009" + } + ] +}' + Prereg_GetPRIDByDateRange_missing_fromDate: + endPoint: /preregistration/v1/sync + role: regproc + restMethod: post + inputTemplate: preReg/GetPRIDByDateRange/getPRIDByDateRange + outputTemplate: preReg/error + input: '{ + "id": "mosip.pre-registration.datasync.fetch.ids", + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "registrationCenterId": "10001", + "fromDate": "$REMOVE$", + "toDate": "2021-10-11" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_019" + } + ] +}' + Prereg_GetPRIDByDateRange_Invalid_fromDate: + endPoint: /preregistration/v1/sync + role: regproc + restMethod: post + inputTemplate: preReg/GetPRIDByDateRange/getPRIDByDateRange + outputTemplate: preReg/error + input: '{ + "id": "mosip.pre-registration.datasync.fetch.ids", + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "registrationCenterId": "10001", + "fromDate": "2020-05dfddd-09", + "toDate": "2021-10-11" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_019" + } + ] +}' + Prereg_GetPRIDByDateRange_blank_fromDate: + endPoint: /preregistration/v1/sync + role: regproc + restMethod: post + inputTemplate: preReg/GetPRIDByDateRange/getPRIDByDateRange + outputTemplate: preReg/error + input: '{ + "id": "mosip.pre-registration.datasync.fetch.ids", + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "registrationCenterId": "10001", + "fromDate": "", + "toDate": "2021-10-11" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_019" + } + ] +}' + Prereg_GetPRIDByDateRange_blank_toDate: + endPoint: /preregistration/v1/sync + role: regproc + restMethod: post + inputTemplate: preReg/GetPRIDByDateRange/getPRIDByDateRange + outputTemplate: preReg/error + input: '{ + "id": "mosip.pre-registration.datasync.fetch.ids", + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "registrationCenterId": "10001", + "fromDate": "2020-05-09", + "toDate": "" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_BOOK_RCI_032" + } + ] +}' + Prereg_GetPRIDByDateRange_missing_toDate: + endPoint: /preregistration/v1/sync + role: regproc + restMethod: post + inputTemplate: preReg/GetPRIDByDateRange/getPRIDByDateRange + outputTemplate: preReg/error + input: '{ + "id": "mosip.pre-registration.datasync.fetch.ids", + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "registrationCenterId": "10001", + "fromDate": "2020-05-09", + "toDate": "$REMOVE$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_BOOK_RCI_032" + } + ] +}' + Prereg_GetPRIDByDateRange_Invalid_toDate: + endPoint: /preregistration/v1/sync + role: regproc + restMethod: post + inputTemplate: preReg/GetPRIDByDateRange/getPRIDByDateRange + outputTemplate: preReg/error + input: '{ + "id": "mosip.pre-registration.datasync.fetch.ids", + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "registrationCenterId": "10001", + "fromDate": "2020-05-09", + "toDate": "2021-1dddd0-11" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_019" + } + ] +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetPRIDByDateRange/getPRIDByDateRange.hbs b/apitest/src/main/resources/preReg/GetPRIDByDateRange/getPRIDByDateRange.hbs new file mode 100644 index 00000000000..a2889cce546 --- /dev/null +++ b/apitest/src/main/resources/preReg/GetPRIDByDateRange/getPRIDByDateRange.hbs @@ -0,0 +1,10 @@ +{ + "id": "{{id}}", + "version": "{{version}}", + "requesttime": "{{requesttime}}", + "request": { + "registrationCenterId":"{{registrationCenterId}}", + "fromDate":"{{fromDate}}", + "toDate":"{{toDate}}" + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetPRIDByDateRange/getPRIDByDateRangeResult.hbs b/apitest/src/main/resources/preReg/GetPRIDByDateRange/getPRIDByDateRangeResult.hbs new file mode 100644 index 00000000000..2addbfee983 --- /dev/null +++ b/apitest/src/main/resources/preReg/GetPRIDByDateRange/getPRIDByDateRangeResult.hbs @@ -0,0 +1,4 @@ +{ + "response": { + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetPRIDForRegCent/GetPRIDForRegCent.yml b/apitest/src/main/resources/preReg/GetPRIDForRegCent/GetPRIDForRegCent.yml new file mode 100644 index 00000000000..bfe838ce631 --- /dev/null +++ b/apitest/src/main/resources/preReg/GetPRIDForRegCent/GetPRIDForRegCent.yml @@ -0,0 +1,29 @@ +GetPRIDForRegCent: + Prereg_GetPRIDForRegCent_All_Valid_Smoke_sid: + endPoint: /preregistration/v1/appointment/preRegistrationId/{registrationCenterId}?from_date=2020-10-01&to_date=2034-10-13 + role: batch + restMethod: get + inputTemplate: preReg/GetPRIDForRegCent/getPRIDForRegCent + outputTemplate: preReg/GetPRIDForRegCent/getPRIDForRegCentResult + input: '{ + "registrationCenterId": "10003" +}' + output: '{ + "registration_center_id": "10003" +}' + Prereg_GetPRIDForRegCent_inValid_registrationCenterId_sid: + endPoint: /preregistration/v1/appointment/preRegistrationId/{registrationCenterId}?from_date=2020-10-01&to_date=2021-10-13 + role: batch + restMethod: get + inputTemplate: preReg/GetPRIDForRegCent/getPRIDForRegCent + outputTemplate: preReg/error + input: '{ + "registrationCenterId": "1000dnsjsja2@@3" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_BOOK_RCI_032" + } + ] +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetPRIDForRegCent/getPRIDForRegCent.hbs b/apitest/src/main/resources/preReg/GetPRIDForRegCent/getPRIDForRegCent.hbs new file mode 100644 index 00000000000..38c9e50ee98 --- /dev/null +++ b/apitest/src/main/resources/preReg/GetPRIDForRegCent/getPRIDForRegCent.hbs @@ -0,0 +1,3 @@ +{ + "registrationCenterId": "{{registrationCenterId}}" +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetPRIDForRegCent/getPRIDForRegCentResult.hbs b/apitest/src/main/resources/preReg/GetPRIDForRegCent/getPRIDForRegCentResult.hbs new file mode 100644 index 00000000000..556701d6072 --- /dev/null +++ b/apitest/src/main/resources/preReg/GetPRIDForRegCent/getPRIDForRegCentResult.hbs @@ -0,0 +1,5 @@ +{ + "response": { + "registration_center_id": "{{registration_center_id}}" + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetPreRegInfoByPrid/GetPreRegInfoByPrid.yml b/apitest/src/main/resources/preReg/GetPreRegInfoByPrid/GetPreRegInfoByPrid.yml new file mode 100644 index 00000000000..6b26c8c8a1f --- /dev/null +++ b/apitest/src/main/resources/preReg/GetPreRegInfoByPrid/GetPreRegInfoByPrid.yml @@ -0,0 +1,33 @@ +GetPreRegInfoByPrid: + Prereg_GetPreRegInfoByPrid_Valid_preRegistrationId: + endPoint: /preregistration/v1/applications/prereg/info/{preRegistrationId} + role: batch + restMethod: get + inputTemplate: preReg/GetPreRegInfoByPrid/getPreRegInfoByPrid + outputTemplate: preReg/GetPreRegInfoByPrid/getPreRegInfoByPridResult + input: '{ + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$" +}' + output: '{ + "postalCode":"14022", + "dateOfBirth": "$IGNORE$", + "IDSchemaVersion": "$IGNORE$", + "phone": "$IGNORE$" +}' + + Prereg_GetPreRegInfoByPrid_inValid_preRegistrationId: + endPoint: /preregistration/v1/applications/prereg/info/{preRegistrationId} + role: batch + restMethod: get + inputTemplate: preReg/GetPreRegInfoByPrid/getPreRegInfoByPrid + outputTemplate: preReg/error + input: '{ + "preRegistrationId": "123456" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_APP_005" + } + ] +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetPreRegInfoByPrid/getPreRegInfoByPrid.hbs b/apitest/src/main/resources/preReg/GetPreRegInfoByPrid/getPreRegInfoByPrid.hbs new file mode 100644 index 00000000000..790ad2f2993 --- /dev/null +++ b/apitest/src/main/resources/preReg/GetPreRegInfoByPrid/getPreRegInfoByPrid.hbs @@ -0,0 +1,3 @@ +{ + "preRegistrationId": "{{preRegistrationId}}" +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetPreRegInfoByPrid/getPreRegInfoByPridResult.hbs b/apitest/src/main/resources/preReg/GetPreRegInfoByPrid/getPreRegInfoByPridResult.hbs new file mode 100644 index 00000000000..849334514ea --- /dev/null +++ b/apitest/src/main/resources/preReg/GetPreRegInfoByPrid/getPreRegInfoByPridResult.hbs @@ -0,0 +1,14 @@ +{ + "response": { + "demographicResponse": { + "demographicDetails": { + "identity": { + "postalCode": "14022", + "dateOfBirth": "1996/01/01", + "phone": "8249742850", + "email": "goku@hogwarts.co.in" + } + } + } + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetSpecificDocumentforaPRID/GetSpecificDocumentforaPRID.yml b/apitest/src/main/resources/preReg/GetSpecificDocumentforaPRID/GetSpecificDocumentforaPRID.yml new file mode 100644 index 00000000000..ff67fcaa8c2 --- /dev/null +++ b/apitest/src/main/resources/preReg/GetSpecificDocumentforaPRID/GetSpecificDocumentforaPRID.yml @@ -0,0 +1,49 @@ +GetSpecificDocumentforaPRID: + Prereg_GetSpecificDocumentforaPRID_All_Valid_Smoke_sid: + endPoint: /preregistration/v1/documents/{documentId}?preRegistrationId={preRegistrationId} + role: batch + checkErrorsOnlyInResponse: true + restMethod: get + inputTemplate: preReg/GetSpecificDocumentforaPRID/getSpecificDocumentforaPRID + outputTemplate: preReg/GetSpecificDocumentforaPRID/getSpecificDocumentforaPRIDResult + input: '{ + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "documentId": "$ID:UploadDocument_All_Valid_Smoke_sid_docId$" +}' + output: '{ + "document": "$IGNORE$" +}' + Prereg_GetSpecificDocumentforaPRID_inValid_preRegistrationId_sid: + endPoint: /preregistration/v1/documents/{documentId}?preRegistrationId={preRegistrationId} + role: batch + restMethod: get + inputTemplate: preReg/GetSpecificDocumentforaPRID/getSpecificDocumentforaPRID + outputTemplate: preReg/error + input: '{ + "preRegistrationId": "shssb2423fsfvs", + "documentId": "$ID:UploadDocument_All_Valid_Smoke_sid_docId$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_APP_005" + } + ] +}' + Prereg_GetSpecificDocumentforaPRID_inValid_documentId_sid: + endPoint: /preregistration/v1/documents/{documentId}?preRegistrationId={preRegistrationId} + role: batch + restMethod: get + inputTemplate: preReg/GetSpecificDocumentforaPRID/getSpecificDocumentforaPRID + outputTemplate: preReg/error + input: '{ + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "documentId": "shshsbz5325" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_DOC_005" + } + ] +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetSpecificDocumentforaPRID/getSpecificDocumentforaPRID.hbs b/apitest/src/main/resources/preReg/GetSpecificDocumentforaPRID/getSpecificDocumentforaPRID.hbs new file mode 100644 index 00000000000..81173ad49d8 --- /dev/null +++ b/apitest/src/main/resources/preReg/GetSpecificDocumentforaPRID/getSpecificDocumentforaPRID.hbs @@ -0,0 +1,4 @@ +{ + "preRegistrationId": "{{preRegistrationId}}", + "documentId": "{{documentId}}" +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetSpecificDocumentforaPRID/getSpecificDocumentforaPRIDResult.hbs b/apitest/src/main/resources/preReg/GetSpecificDocumentforaPRID/getSpecificDocumentforaPRIDResult.hbs new file mode 100644 index 00000000000..7a7c6c63455 --- /dev/null +++ b/apitest/src/main/resources/preReg/GetSpecificDocumentforaPRID/getSpecificDocumentforaPRIDResult.hbs @@ -0,0 +1,5 @@ +{ + "response": { + "document": "{{document}}" + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetUpdatedDateTimeByPrid/GetUpdatedDateTimeByPrid.yml b/apitest/src/main/resources/preReg/GetUpdatedDateTimeByPrid/GetUpdatedDateTimeByPrid.yml new file mode 100644 index 00000000000..ac4ba56f9cf --- /dev/null +++ b/apitest/src/main/resources/preReg/GetUpdatedDateTimeByPrid/GetUpdatedDateTimeByPrid.yml @@ -0,0 +1,51 @@ +GetUpdatedDateTimeByPrid: + Prereg_GetUpdatedDateTimeByPrid_All_Valid_Smoke_sid: + endPoint: /preregistration/v1/applications/prereg/updatedTime + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/GetUpdatedDateTimeByPrid/getUpdatedDateTimeByPrid + outputTemplate: preReg/GetUpdatedDateTimeByPrid/getUpdatedDateTimeByPridResult + input: '{ + "id": "mosip.pre-registration.demographic.retrieve.date", + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "registartion_center_id": "10003", + "pre_registration_ids": [ + { + "pre_registration_id":"$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$" + }, + { + "pre_registration_id":"$ID:CreatePrereg_Valid_Smoke_sid_preRegistrationId$" + }, + { + "pre_registration_id":"$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$" + } + ] +}' + output: '{ +}' + Prereg_GetUpdatedDateTimeByPrid_InValid_ID: + endPoint: /preregistration/v1/applications/prereg/updatedTime + role: batch + restMethod: post + inputTemplate: preReg/GetUpdatedDateTimeByPrid/getUpdatedDateTimeByPrid + outputTemplate: preReg/error + input: '{ + "id": "mosip.pre-registration.demographic.retrieve.date", + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "registartion_center_id": "10003", + "pre_registration_ids": [ + { + "pre_registration_id":"rtr4243456rsdgfb" + } + ] +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_APP_005" + } + ] +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetUpdatedDateTimeByPrid/getUpdatedDateTimeByPrid.hbs b/apitest/src/main/resources/preReg/GetUpdatedDateTimeByPrid/getUpdatedDateTimeByPrid.hbs new file mode 100644 index 00000000000..ba73a4d44c3 --- /dev/null +++ b/apitest/src/main/resources/preReg/GetUpdatedDateTimeByPrid/getUpdatedDateTimeByPrid.hbs @@ -0,0 +1,14 @@ +{ + "id": "{{id}}", + "version": "{{version}}", + "requesttime": "{{requesttime}}", + "request": { + "registartion_center_id": "{{registartion_center_id}}", + "pre_registration_ids": [ + {{#each pre_registration_ids}} + "{{pre_registration_id}}" + {{#unless @last}},{{/unless}} + {{/each}} + ] + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/GetUpdatedDateTimeByPrid/getUpdatedDateTimeByPridResult.hbs b/apitest/src/main/resources/preReg/GetUpdatedDateTimeByPrid/getUpdatedDateTimeByPridResult.hbs new file mode 100644 index 00000000000..7a73a41bfdf --- /dev/null +++ b/apitest/src/main/resources/preReg/GetUpdatedDateTimeByPrid/getUpdatedDateTimeByPridResult.hbs @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/InvalidateToken/InvalidateToken.yml b/apitest/src/main/resources/preReg/InvalidateToken/InvalidateToken.yml new file mode 100644 index 00000000000..ce93d3c279b --- /dev/null +++ b/apitest/src/main/resources/preReg/InvalidateToken/InvalidateToken.yml @@ -0,0 +1,12 @@ +InvalidateToken: + Prereg_InvalidateToken_All_Valid_Smoke_sid: + endPoint: /preregistration/v1/login/invalidateToken + role: batch + restMethod: post + inputTemplate: preReg/InvalidateToken/invalidatetoken + outputTemplate: preReg/InvalidateToken/invalidatetokenresult + input: '{ +}' + output: '{ + "response": "Loggedout successfully" +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/InvalidateToken/invalidatetoken.hbs b/apitest/src/main/resources/preReg/InvalidateToken/invalidatetoken.hbs new file mode 100644 index 00000000000..7a73a41bfdf --- /dev/null +++ b/apitest/src/main/resources/preReg/InvalidateToken/invalidatetoken.hbs @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/InvalidateToken/invalidatetokenresult.hbs b/apitest/src/main/resources/preReg/InvalidateToken/invalidatetokenresult.hbs new file mode 100644 index 00000000000..eb8d6fea9a8 --- /dev/null +++ b/apitest/src/main/resources/preReg/InvalidateToken/invalidatetokenresult.hbs @@ -0,0 +1,3 @@ +{ + "response": "{{response}}" +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/SendNotifications/SendNotifications.yml b/apitest/src/main/resources/preReg/SendNotifications/SendNotifications.yml new file mode 100644 index 00000000000..69fb53a07aa --- /dev/null +++ b/apitest/src/main/resources/preReg/SendNotifications/SendNotifications.yml @@ -0,0 +1,97 @@ +SendNotifications: + Prereg_SendNotifications_All_Valid_Smoke: + endPoint: /preregistration/v1/notification + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/SendNotifications/sendNotifications_$LANGNUMBER$ + outputTemplate: preReg/SendNotifications/sendNotificationsResult + input: '{ + "id":"mosip.pre-registration.notification.notify", + "version":"1.0", + "requesttime":"$TIMESTAMP$", + "name":"TEST_FULLNAME", + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$", + "appointmentDate":"$ID:GetAppointmentDetails_BookByPRID_All_Valid_Smoke_sid_appointment_date$", + "appointmentTime":"$ID:GetAppointmentDetails_BookByPRID_All_Valid_Smoke_sid_time_slot_from$", + "mobNum":"9090872300", + "emailID":"mosipuser123@mailinator.com", + "additionalRecipient":false, + "isBatch":false +}' + output: '{ +}' + Prereg_SendNotifications_Notify_All_Valid_Smoke: + endPoint: /preregistration/v1/notification/notify + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/SendNotifications/sendNotificationsNotify + outputTemplate: preReg/SendNotifications/sendNotificationsResult + input: '{ + "id":"mosip.pre-registration.notification.notify", + "version":"1.0", + "requesttime":"$TIMESTAMP$", + "name":"TEST_FULLNAME", + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$", + "appointmentDate":"$ID:GetAppointmentDetails_BookByPRID_All_Valid_Smoke_sid_appointment_date$", + "appointmentTime":"$ID:GetAppointmentDetails_BookByPRID_All_Valid_Smoke_sid_time_slot_from$", + "mobNum":"9090872300", + "emailID":"mosipuser123@mailinator.com", + "isBatch":true +}' + output: '{ +}' + Prereg_SendNotifications_InValid_id: + endPoint: /preregistration/v1/notification + role: batch + restMethod: post + inputTemplate: preReg/SendNotifications/sendNotifications_$LANGNUMBER$ + outputTemplate: preReg/error + input: '{ + "id":"mosip.pre-registration.notification.notifyasdf", + "version":"1.0", + "requesttime":"$TIMESTAMP$", + "name":"FR", + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$", + "appointmentDate":"$ID:GetAppointmentDetails_BookByPRID_All_Valid_Smoke_sid_appointment_date$", + "appointmentTime":"$ID:GetAppointmentDetails_BookByPRID_All_Valid_Smoke_sid_time_slot_from$", + "mobNum":"9090872300", + "emailID":"mosipuser123@mailinator.com", + "additionalRecipient":false, + "isBatch":false +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_CORE_001" + } + ] +}' + Prereg_SendNotifications_InValid_preRegId: + endPoint: /preregistration/v1/notification + role: batch + restMethod: post + inputTemplate: preReg/SendNotifications/sendNotifications_$LANGNUMBER$ + outputTemplate: preReg/error + input: '{ + "id":"mosip.pre-registration.notification.notify", + "version":"1.0", + "requesttime":"$TIMESTAMP$", + "name":"FR", + "preRegistrationId":"sadgf", + "appointmentDate":"$ID:GetAppointmentDetails_BookByPRID_All_Valid_Smoke_sid_appointment_date$", + "appointmentTime":"$ID:GetAppointmentDetails_BookByPRID_All_Valid_Smoke_sid_time_slot_from$", + "mobNum":"9090872300", + "emailID":"mosipuser123@mailinator.com", + "additionalRecipient":false, + "isBatch":false +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_APP_005" + + } + ] +}' diff --git a/apitest/src/main/resources/preReg/SendNotifications/sendNotificationsNotify.hbs b/apitest/src/main/resources/preReg/SendNotifications/sendNotificationsNotify.hbs new file mode 100644 index 00000000000..a9562e2020f --- /dev/null +++ b/apitest/src/main/resources/preReg/SendNotifications/sendNotificationsNotify.hbs @@ -0,0 +1,12 @@ +{ + "requesttime":"{{requesttime}}", + "request":{ + "name":"{{name}}", + "preRegistrationId":"{{preRegistrationId}}", + "appointmentDate":"{{appointmentDate}}", + "appointmentTime":"{{appointmentTime}}", + "mobNum":"{{mobNum}}", + "emailID":"{{emailID}}", + "isBatch":{{isBatch}} + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/SendNotifications/sendNotificationsResult.hbs b/apitest/src/main/resources/preReg/SendNotifications/sendNotificationsResult.hbs new file mode 100644 index 00000000000..7a73a41bfdf --- /dev/null +++ b/apitest/src/main/resources/preReg/SendNotifications/sendNotificationsResult.hbs @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/SendNotifications/sendNotifications_DOUBLE.hbs b/apitest/src/main/resources/preReg/SendNotifications/sendNotifications_DOUBLE.hbs new file mode 100644 index 00000000000..e4200859d1b --- /dev/null +++ b/apitest/src/main/resources/preReg/SendNotifications/sendNotifications_DOUBLE.hbs @@ -0,0 +1,27 @@ +{ + "id":"{{id}}", + "version":"{{version}}", + "requesttime":"{{requesttime}}", + "request":{ + "$1STLANG$":{ + "name":"{{name}}", + "preRegistrationId":"{{preRegistrationId}}", + "appointmentDate":"{{appointmentDate}}", + "appointmentTime":"{{appointmentTime}}", + "mobNum":"{{mobNum}}", + "emailID":"{{emailID}}", + "additionalRecipient":{{additionalRecipient}}, + "isBatch":{{isBatch}} + }, + "$2NDLANG$":{ + "name":"{{name}}", + "preRegistrationId":"{{preRegistrationId}}", + "appointmentDate":"{{appointmentDate}}", + "appointmentTime":"{{appointmentTime}}", + "mobNum":"{{mobNum}}", + "emailID":"{{emailID}}", + "additionalRecipient":{{additionalRecipient}}, + "isBatch":{{isBatch}} + } + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/SendNotifications/sendNotifications_DOUBLE_V3.hbs b/apitest/src/main/resources/preReg/SendNotifications/sendNotifications_DOUBLE_V3.hbs new file mode 100644 index 00000000000..e4200859d1b --- /dev/null +++ b/apitest/src/main/resources/preReg/SendNotifications/sendNotifications_DOUBLE_V3.hbs @@ -0,0 +1,27 @@ +{ + "id":"{{id}}", + "version":"{{version}}", + "requesttime":"{{requesttime}}", + "request":{ + "$1STLANG$":{ + "name":"{{name}}", + "preRegistrationId":"{{preRegistrationId}}", + "appointmentDate":"{{appointmentDate}}", + "appointmentTime":"{{appointmentTime}}", + "mobNum":"{{mobNum}}", + "emailID":"{{emailID}}", + "additionalRecipient":{{additionalRecipient}}, + "isBatch":{{isBatch}} + }, + "$2NDLANG$":{ + "name":"{{name}}", + "preRegistrationId":"{{preRegistrationId}}", + "appointmentDate":"{{appointmentDate}}", + "appointmentTime":"{{appointmentTime}}", + "mobNum":"{{mobNum}}", + "emailID":"{{emailID}}", + "additionalRecipient":{{additionalRecipient}}, + "isBatch":{{isBatch}} + } + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/SendNotifications/sendNotifications_SINGLE.hbs b/apitest/src/main/resources/preReg/SendNotifications/sendNotifications_SINGLE.hbs new file mode 100644 index 00000000000..d950dad988b --- /dev/null +++ b/apitest/src/main/resources/preReg/SendNotifications/sendNotifications_SINGLE.hbs @@ -0,0 +1,17 @@ +{ + "id":"{{id}}", + "version":"{{version}}", + "requesttime":"{{requesttime}}", + "request":{ + "$1STLANG$":{ + "name":"{{name}}", + "preRegistrationId":"{{preRegistrationId}}", + "appointmentDate":"{{appointmentDate}}", + "appointmentTime":"{{appointmentTime}}", + "mobNum":"{{mobNum}}", + "emailID":"{{emailID}}", + "additionalRecipient":{{additionalRecipient}}, + "isBatch":{{isBatch}} + } + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/SendNotifications/sendNotifications_TRIPLE.hbs b/apitest/src/main/resources/preReg/SendNotifications/sendNotifications_TRIPLE.hbs new file mode 100644 index 00000000000..220c74d67cc --- /dev/null +++ b/apitest/src/main/resources/preReg/SendNotifications/sendNotifications_TRIPLE.hbs @@ -0,0 +1,37 @@ +{ + "id":"{{id}}", + "version":"{{version}}", + "requesttime":"{{requesttime}}", + "request":{ + "$1STLANG$":{ + "name":"{{name}}", + "preRegistrationId":"{{preRegistrationId}}", + "appointmentDate":"{{appointmentDate}}", + "appointmentTime":"{{appointmentTime}}", + "mobNum":"{{mobNum}}", + "emailID":"{{emailID}}", + "additionalRecipient":{{additionalRecipient}}, + "isBatch":{{isBatch}} + }, + "$2NDLANG$":{ + "name":"{{name}}", + "preRegistrationId":"{{preRegistrationId}}", + "appointmentDate":"{{appointmentDate}}", + "appointmentTime":"{{appointmentTime}}", + "mobNum":"{{mobNum}}", + "emailID":"{{emailID}}", + "additionalRecipient":{{additionalRecipient}}, + "isBatch":{{isBatch}} + }, + "$3RDLANG$":{ + "name":"{{name}}", + "preRegistrationId":"{{preRegistrationId}}", + "appointmentDate":"{{appointmentDate}}", + "appointmentTime":"{{appointmentTime}}", + "mobNum":"{{mobNum}}", + "emailID":"{{emailID}}", + "additionalRecipient":{{additionalRecipient}}, + "isBatch":{{isBatch}} + } + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/SendOtp/SendOtp.yml b/apitest/src/main/resources/preReg/SendOtp/SendOtp.yml new file mode 100644 index 00000000000..5e7968946a9 --- /dev/null +++ b/apitest/src/main/resources/preReg/SendOtp/SendOtp.yml @@ -0,0 +1,152 @@ +SendOtp: + Prereg_SendOtp_All_Valid_Smoke_Phone_sid: + endPoint: /preregistration/v1/login/sendOtp/langcode + role: batch + restMethod: post + inputTemplate: preReg/SendOtp/sendotp + outputTemplate: preReg/SendOtp/sendotpResult + input: '{ + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "userId": "9090872300", + "id": "mosip.pre-registration.login.sendotp" +}' + output: '{ + "status": "success" +}' + + Prereg_SendOtp_Invalid_Phone_Neg: + endPoint: /preregistration/v1/login/sendOtp/langcode + role: batch + restMethod: post + inputTemplate: preReg/SendOtp/sendotp + outputTemplate: preReg/error + input: '{ + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "userId": "12", + "id": "mosip.pre-registration.login.sendotp" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_LGN_008" + } + ] +}' + + Prereg_SendOtp_MISSING_Phone_Neg: + endPoint: /preregistration/v1/login/sendOtp/langcode + role: batch + restMethod: post + inputTemplate: preReg/SendOtp/sendotp + outputTemplate: preReg/error + input: '{ + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "userId": "$REMOVE$", + "id": "mosip.pre-registration.login.sendotp" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_LGN_008" + } + ] +}' + + Prereg_SendOtp_SpacialCharacter_Val_Phone_Neg: + endPoint: /preregistration/v1/login/sendOtp/langcode + role: batch + restMethod: post + inputTemplate: preReg/SendOtp/sendotp + outputTemplate: preReg/error + input: '{ + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "userId": "974$%26", + "id": "mosip.pre-registration.login.sendotp" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_LGN_008" + } + ] +}' + + Prereg_SendOtp_All_Valid_Smoke_email_sid: + endPoint: /preregistration/v1/login/sendOtp/langcode + role: batch + restMethod: post + inputTemplate: preReg/SendOtp/sendotp + outputTemplate: preReg/SendOtp/sendotpResult + input: '{ + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "userId": "john.doe@mailinator.com", + "id": "mosip.pre-registration.login.sendotp" +}' + output: '{ + "status": "success" +}' + + Prereg_SendOtp_Invalid__email_Neg: + endPoint: /preregistration/v1/login/sendOtp/langcode + role: batch + restMethod: post + inputTemplate: preReg/SendOtp/sendotp + outputTemplate: preReg/error + input: '{ + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "userId": "jo32", + "id": "mosip.pre-registration.login.sendotp" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_LGN_008" + } + ] +}' + + Prereg_SendOtp_Missing_email_Neg: + endPoint: /preregistration/v1/login/sendOtp/langcode + role: batch + restMethod: post + inputTemplate: preReg/SendOtp/sendotp + outputTemplate: preReg/error + input: '{ + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "userId": "$REMOVE$", + "id": "mosip.pre-registration.login.sendotp" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_LGN_008" + } + ] +}' + + Prereg_SendOtp_SpacialCharacter_email_Neg: + endPoint: /preregistration/v1/login/sendOtp/langcode + role: batch + restMethod: post + inputTemplate: preReg/SendOtp/sendotp + outputTemplate: preReg/error + input: '{ + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "userId": "$!&", + "id": "mosip.pre-registration.login.sendotp" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_LGN_008" + } + ] +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/SendOtp/sendotp.hbs b/apitest/src/main/resources/preReg/SendOtp/sendotp.hbs new file mode 100644 index 00000000000..9bf22aaa690 --- /dev/null +++ b/apitest/src/main/resources/preReg/SendOtp/sendotp.hbs @@ -0,0 +1,9 @@ +{ + "id": "{{id}}", + "version": "{{version}}", + "requesttime": "{{requesttime}}", + "request": { + "langCode": "$1STLANG$", + "userId": "{{userId}}" + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/SendOtp/sendotpResult.hbs b/apitest/src/main/resources/preReg/SendOtp/sendotpResult.hbs new file mode 100644 index 00000000000..0137f52daaa --- /dev/null +++ b/apitest/src/main/resources/preReg/SendOtp/sendotpResult.hbs @@ -0,0 +1,5 @@ +{ + "response": { + "status": "{{status}}" + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/Transliteration/Translate.yml b/apitest/src/main/resources/preReg/Transliteration/Translate.yml new file mode 100644 index 00000000000..c9c78174036 --- /dev/null +++ b/apitest/src/main/resources/preReg/Transliteration/Translate.yml @@ -0,0 +1,66 @@ +Transliteration: + Prereg_Transliteration_All_Valid_Smoke_sid: + endPoint: /preregistration/v1/transliteration/transliterate + role: batch + restMethod: post + inputTemplate: preReg/Transliteration/translate + outputTemplate: preReg/Transliteration/translateResult + input: '{ + "id": "mosip.pre-registration.transliteration.transliterate", + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "from_field_value": "string", + "from_field_lang": "eng", + "to_field_lang": "ara" + +}' + output: '{ + "from_field_value": "string", + "from_field_lang": "eng", + "to_field_value": "سترِنگ", + "to_field_lang": "ara" +}' + Prereg_Transliteration_inValid_tofieldlang: + endPoint: /preregistration/v1/transliteration/transliterate + role: batch + restMethod: post + inputTemplate: preReg/Transliteration/translate + outputTemplate: preReg/error + input: '{ + "id": "mosip.pre-registration.transliteration.transliterate", + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "from_field_value": "string", + "from_field_lang": "eng", + "to_field_lang": "asdlka" + +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_TRL_APP_002" + } + ] +}' + Prereg_Transliteration_inValid_fromfieldlang: + endPoint: /preregistration/v1/transliteration/transliterate + role: batch + restMethod: post + inputTemplate: preReg/Transliteration/translate + outputTemplate: preReg/error + input: '{ + "id": "mosip.pre-registration.transliteration.transliterate", + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "from_field_value": "string", + "from_field_lang": "wqeffv", + "to_field_lang": "ara" + +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_TRL_APP_002" + } + ] +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/Transliteration/translate.hbs b/apitest/src/main/resources/preReg/Transliteration/translate.hbs new file mode 100644 index 00000000000..b44b18f813c --- /dev/null +++ b/apitest/src/main/resources/preReg/Transliteration/translate.hbs @@ -0,0 +1,10 @@ +{ + "id": "{{id}}", + "version": "{{version}}", + "requesttime": "{{requesttime}}", + "request": { + "from_field_value": "{{from_field_value}}", + "from_field_lang": "{{from_field_lang}}", + "to_field_lang": "{{to_field_lang}}" + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/Transliteration/translateResult.hbs b/apitest/src/main/resources/preReg/Transliteration/translateResult.hbs new file mode 100644 index 00000000000..0b9563a103e --- /dev/null +++ b/apitest/src/main/resources/preReg/Transliteration/translateResult.hbs @@ -0,0 +1,8 @@ +{ + "response": { + "from_field_value": "{{from_field_value}}", + "from_field_lang": "{{from_field_lang}}", + "to_field_value": "{{to_field_value}}", + "to_field_lang": "{{to_field_lang}}" + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/UpdateDocRefID/UpdateDocRefID.yml b/apitest/src/main/resources/preReg/UpdateDocRefID/UpdateDocRefID.yml new file mode 100644 index 00000000000..8ca0d9fda82 --- /dev/null +++ b/apitest/src/main/resources/preReg/UpdateDocRefID/UpdateDocRefID.yml @@ -0,0 +1,115 @@ +UpdateDocRefID: + Prereg_UpdateDocRefID_All_Valid_Smoke_POA_sid: + endPoint: /preregistration/v1/documents/document/{documentId}?preRegistrationId={preRegistrationId}&refNumber={refNumber} + role: batch + checkErrorsOnlyInResponse: true + restMethod: put + inputTemplate: preReg/UpdateDocRefID/updateDocRefID + outputTemplate: preReg/UpdateDocRefID/updateDocRefIDResult + input: '{ + "documentId": "$ID:UploadDocument_All_Valid_Smoke_UpdateDocRefID_sid_docId$", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_UpdateDocRefID_sid_preRegistrationId$", + "refNumber":"text" +}' + output: '{ +}' + Prereg_UpdateDocRefID_All_Valid_Smoke_POI_sid: + endPoint: /preregistration/v1/documents/document/{documentId}?preRegistrationId={preRegistrationId}&refNumber={refNumber} + role: batch + checkErrorsOnlyInResponse: true + restMethod: put + inputTemplate: preReg/UpdateDocRefID/updateDocRefID + outputTemplate: preReg/UpdateDocRefID/updateDocRefIDResult + input: '{ + "documentId": "$ID:UploadDocument_All_Valid_Smoke_POI_UpdateDocRefID_sid_docId$", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_UpdateDocRefID_sid_preRegistrationId$", + "refNumber":"text" +}' + output: '{ +}' + Prereg_UpdateDocRefID_All_Valid_Smoke_POB_sid: + endPoint: /preregistration/v1/documents/document/{documentId}?preRegistrationId={preRegistrationId}&refNumber={refNumber} + role: batch + checkErrorsOnlyInResponse: true + restMethod: put + inputTemplate: preReg/UpdateDocRefID/updateDocRefID + outputTemplate: preReg/UpdateDocRefID/updateDocRefIDResult + input: '{ + "documentId": "$ID:UploadDocument_All_Valid_Smoke_POB_UpdateDocRefID_sid_docId$", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_UpdateDocRefID_sid_preRegistrationId$", + "refNumber":"text" +}' + output: '{ +}' + Prereg_UpdateDocRefID_All_Valid_Smoke_POR_sid: + endPoint: /preregistration/v1/documents/document/{documentId}?preRegistrationId={preRegistrationId}&refNumber={refNumber} + role: batch + checkErrorsOnlyInResponse: true + restMethod: put + inputTemplate: preReg/UpdateDocRefID/updateDocRefID + outputTemplate: preReg/UpdateDocRefID/updateDocRefIDResult + input: '{ + "documentId": "$ID:UploadDocument_All_Valid_Smoke_POR_UpdateDocRefID_sid_docId$", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_UpdateDocRefID_sid_preRegistrationId$", + "refNumber":"text" +}' + output: '{ +}' + Prereg_UpdateDocRefID_inValid_documentId: + endPoint: /preregistration/v1/documents/document/{documentId}?preRegistrationId={preRegistrationId}&refNumber={refNumber} + role: batch + restMethod: put + inputTemplate: preReg/UpdateDocRefID/updateDocRefID + outputTemplate: preReg/error + input: '{ + "documentId": "eafvsbegrw134", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_UpdateDocRefID_sid_preRegistrationId$", + "refNumber":"text" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_DOC_005" + } + ] +}' + + Prereg_UpdateDocRefID_All_SpatialCharacter_RefNum_Neg: + endPoint: /preregistration/v1/documents/document/{documentId}?preRegistrationId={preRegistrationId}&refNumber={refNumber} + role: batch + checkErrorsOnlyInResponse: true + restMethod: put + inputTemplate: preReg/UpdateDocRefID/updateDocRefID + outputTemplate: preReg/error + input: '{ + "documentId": "89jsn$!", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_UpdateDocRefID_sid_preRegistrationId$", + "refNumber":"text" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_DOC_005" + } + ] +}' + + Prereg_UpdateDocRefID_Exceeding_Limit_RefNum_Neg: + endPoint: /preregistration/v1/documents/document/{documentId}?preRegistrationId={preRegistrationId}&refNumber={refNumber} + role: batch + checkErrorsOnlyInResponse: true + restMethod: put + inputTemplate: preReg/UpdateDocRefID/updateDocRefID + outputTemplate: preReg/error + input: '{ + "documentId": "qwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnm", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_UpdateDocRefID_sid_preRegistrationId$", + "refNumber":"text" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_DOC_005" + } + ] +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/UpdateDocRefID/updateDocRefID.hbs b/apitest/src/main/resources/preReg/UpdateDocRefID/updateDocRefID.hbs new file mode 100644 index 00000000000..38ba325b394 --- /dev/null +++ b/apitest/src/main/resources/preReg/UpdateDocRefID/updateDocRefID.hbs @@ -0,0 +1,5 @@ +{ + "documentId": "{{documentId}}", + "preRegistrationId": "{{preRegistrationId}}", + "refNumber":"{{refNumber}}" +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/UpdateDocRefID/updateDocRefIDResult.hbs b/apitest/src/main/resources/preReg/UpdateDocRefID/updateDocRefIDResult.hbs new file mode 100644 index 00000000000..7a73a41bfdf --- /dev/null +++ b/apitest/src/main/resources/preReg/UpdateDocRefID/updateDocRefIDResult.hbs @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/UpdatePreRegStatus/updatePreRegStatus.hbs b/apitest/src/main/resources/preReg/UpdatePreRegStatus/updatePreRegStatus.hbs new file mode 100644 index 00000000000..e07f894aa66 --- /dev/null +++ b/apitest/src/main/resources/preReg/UpdatePreRegStatus/updatePreRegStatus.hbs @@ -0,0 +1,4 @@ +{ + "preRegistrationId": "{{preRegistrationId}}", + "statusCode": "{{statusCode}}" +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/UpdatePreRegStatus/updatePreRegStatus.yml b/apitest/src/main/resources/preReg/UpdatePreRegStatus/updatePreRegStatus.yml new file mode 100644 index 00000000000..ef04ce3c4cc --- /dev/null +++ b/apitest/src/main/resources/preReg/UpdatePreRegStatus/updatePreRegStatus.yml @@ -0,0 +1,123 @@ +UpdatePreRegStatus: + Prereg_UpdatePreRegStatus_All_Valid_Smoke_sid: + endPoint: /preregistration/v1/applications/prereg/status/{preRegistrationId}?statusCode={statusCode} + role: batch + checkErrorsOnlyInResponse: true + restMethod: get + inputTemplate: preReg/UpdatePreRegStatus/updatePreRegStatus + outputTemplate: preReg/UpdatePreRegStatus/updatePreRegStatusResult + input: '{ + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "statusCode": "Pending_Appointment" +}' + output: '{ +}' + Prereg_UpdatePreRegStatus_for_expired_testcase_sid: + endPoint: /preregistration/v1/applications/prereg/status/{preRegistrationId}?statusCode={statusCode} + role: batch + checkErrorsOnlyInResponse: true + restMethod: get + inputTemplate: preReg/UpdatePreRegStatus/updatePreRegStatus + outputTemplate: preReg/UpdatePreRegStatus/updatePreRegStatusResult + input: '{ + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_for_expiry_sid_preRegistrationId$", + "statusCode": "Pending_Appointment" +}' + output: '{ +}' + Prereg_UpdatePreRegStatus_All_Valid_Smoke_BookByPRID_sid: + endPoint: /preregistration/v1/applications/prereg/status/{preRegistrationId}?statusCode={statusCode} + role: batch + checkErrorsOnlyInResponse: true + restMethod: get + inputTemplate: preReg/UpdatePreRegStatus/updatePreRegStatus + outputTemplate: preReg/UpdatePreRegStatus/updatePreRegStatusResult + input: '{ + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$", + "statusCode": "Pending_Appointment" +}' + output: '{ +}' + Prereg_UpdatePreRegStatus_Valid_Smoke_sid: + endPoint: /preregistration/v1/applications/prereg/status/{preRegistrationId}?statusCode={statusCode} + role: batch + checkErrorsOnlyInResponse: true + restMethod: get + inputTemplate: preReg/UpdatePreRegStatus/updatePreRegStatus + outputTemplate: preReg/UpdatePreRegStatus/updatePreRegStatusResult + input: '{ + "preRegistrationId": "$ID:CreatePrereg_Valid_Smoke_sid_preRegistrationId$", + "statusCode": "Pending_Appointment" +}' + output: '{ +}' + Prereg_UpdatePreRegStatus_CA_Valid_Smoke_sid: + endPoint: /preregistration/v1/applications/prereg/status/{preRegistrationId}?statusCode={statusCode} + role: batch + checkErrorsOnlyInResponse: true + restMethod: get + inputTemplate: preReg/UpdatePreRegStatus/updatePreRegStatus + outputTemplate: preReg/UpdatePreRegStatus/updatePreRegStatusResult + input: '{ + "preRegistrationId": "$ID:CreatePrereg_Smoke_CancellAppointment_sid_preRegistrationId$", + "statusCode": "Pending_Appointment" +}' + output: '{ +}' + Prereg_UpdatePreRegStatus_Smoke_alldel_sid: + endPoint: /preregistration/v1/applications/prereg/status/{preRegistrationId}?statusCode={statusCode} + role: batch + checkErrorsOnlyInResponse: true + restMethod: get + inputTemplate: preReg/UpdatePreRegStatus/updatePreRegStatus + outputTemplate: preReg/UpdatePreRegStatus/updatePreRegStatusResult + input: '{ + "preRegistrationId": "$ID:CreatePrereg_Smoke_alldel_sid_preRegistrationId$", + "statusCode": "Pending_Appointment" +}' + output: '{ +}' + Prereg_UpdatePreRegStatus_Smoke_CancellAppointment_sid: + endPoint: /preregistration/v1/applications/prereg/status/{preRegistrationId}?statusCode={statusCode} + role: batch + checkErrorsOnlyInResponse: true + restMethod: get + inputTemplate: preReg/UpdatePreRegStatus/updatePreRegStatus + outputTemplate: preReg/UpdatePreRegStatus/updatePreRegStatusResult + input: '{ + "preRegistrationId": "$ID:CreatePrereg_Smoke_CancellAppointment_sid_preRegistrationId$", + "statusCode": "Pending_Appointment" +}' + output: '{ +}' + Prereg_UpdatePreRegStatus_Smoke_CancelApplicationsAppointment_sid: + endPoint: /preregistration/v1/applications/prereg/status/{preRegistrationId}?statusCode={statusCode} + role: batch + checkErrorsOnlyInResponse: true + restMethod: get + inputTemplate: preReg/UpdatePreRegStatus/updatePreRegStatus + outputTemplate: preReg/UpdatePreRegStatus/updatePreRegStatusResult + input: '{ + "preRegistrationId": "$ID:CreatePrereg_Smoke_CancelApplicationsAppointment_sid_preRegistrationId$", + "statusCode": "Pending_Appointment" +}' + output: '{ +}' + Prereg_UpdatePreRegStatus_without_update_prereg_status_sid: + endPoint: /preregistration/v1/applications/prereg/status/{preRegistrationId}?statusCode={statusCode} + role: batch + checkErrorsOnlyInResponse: true + restMethod: get + inputTemplate: preReg/UpdatePreRegStatus/updatePreRegStatus + outputTemplate: preReg/error + input: '{ + "preRegistrationId": "$ID:CreatePrereg_book_appoinment_without_update_prereg_status_sid_preRegistrationId$", + "statusCode": "Pending_Appointment" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_APP_023" + } + ] +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/UpdatePreRegStatus/updatePreRegStatusResult.hbs b/apitest/src/main/resources/preReg/UpdatePreRegStatus/updatePreRegStatusResult.hbs new file mode 100644 index 00000000000..7a73a41bfdf --- /dev/null +++ b/apitest/src/main/resources/preReg/UpdatePreRegStatus/updatePreRegStatusResult.hbs @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/UpdatePreregistration/UpdatePreregistration.yml b/apitest/src/main/resources/preReg/UpdatePreregistration/UpdatePreregistration.yml new file mode 100644 index 00000000000..a60b44479e6 --- /dev/null +++ b/apitest/src/main/resources/preReg/UpdatePreregistration/UpdatePreregistration.yml @@ -0,0 +1,364 @@ +UpdatePreregistration: + Prereg_UpdatePrereg_All_Valid_Smoke_sid: + endPoint: /preregistration/v1/applications/prereg/{preRegistrationId} + role: batch + restMethod: put + inputTemplate: preReg/UpdatePreregistration/updatePreregistration + outputTemplate: preReg/UpdatePreregistration/updatePreregistrationResult + input: '{ + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "postalCode": "14022", + "phone": "8249742850", + "email": "goku@hogwarts.co.in", + "IDSchemaVersion": 0.7, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.update" +}' + output: '{ + "langCode": "$1STLANG$" +}' + Prereg_UpdatePrereg_All_Valid_Smoke_BookByPRID_sid: + endPoint: /preregistration/v1/applications/prereg/{preRegistrationId} + role: batch + restMethod: put + inputTemplate: preReg/UpdatePreregistration/updatePreregistration + outputTemplate: preReg/UpdatePreregistration/updatePreregistrationResult + input: '{ + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$", + "postalCode": "14022", + "phone": "8249742850", + "email": "goku@hogwarts.co.in", + "IDSchemaVersion": 0.7, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.update" +}' + output: '{ + "langCode": "$1STLANG$" +}' + Prereg_UpdatePrereg_inValid_dateOfBirth_sid: + endPoint: /preregistration/v1/applications/prereg/{preRegistrationId} + role: batch + restMethod: put + inputTemplate: preReg/UpdatePreregistration/updatePreregistration + outputTemplate: preReg/error + input: '{ + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "postalCode": "14022", + "phone": "8249742850", + "email": "goku@hogwarts.co.in", + "IDSchemaVersion": 0.7, + "dateOfBirth": "272838SHSH", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.update" +}' + output: '{ + "errors": [ + { + "errorCode": "KER-IOV-004" + } + ] +}' + Prereg_UpdatePrereg_missing_Version_sid: + endPoint: /preregistration/v1/applications/prereg/{preRegistrationId} + role: batch + restMethod: put + inputTemplate: preReg/UpdatePreregistration/updatePreregistration + outputTemplate: preReg/error + input: '{ + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "postalCode": "14022", + "phone": "8249742850", + "email": "goku@thogwarts.co.in", + "IDSchemaVersion": 0.7, + "dateOfBirth": "1996/01/01", + "version": "$REMOVE$", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.update" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_002" + } + ] +}' + Prereg_UpdatePrereg_invalid_Version_sid: + endPoint: /preregistration/v1/applications/prereg/{preRegistrationId} + role: batch + restMethod: put + inputTemplate: preReg/UpdatePreregistration/updatePreregistration + outputTemplate: preReg/error + input: '{ + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "postalCode": "14022", + "phone": "8249742850", + "email": "goku@hogwarts.co.in", + "IDSchemaVersion": 0.7, + "dateOfBirth": "1996/01/01", + "version": "2728SHBSHSH", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.update" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_002" + } + ] +}' + Prereg_UpdatePrereg_invalid_email_sid: + endPoint: /preregistration/v1/applications/prereg/{preRegistrationId} + role: batch + restMethod: put + inputTemplate: preReg/UpdatePreregistration/updatePreregistration + outputTemplate: preReg/error + input: '{ + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "postalCode": "14022", + "phone": "8249742850", + "email": "soh#w@Scdfvg", + "IDSchemaVersion": 0.7, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.update" +}' + output: '{ + "errors": [ + { + "errorCode": "KER-IOV-004" + } + ] +}' + Prereg_UpdatePrereg_missing_langCode_sid: + endPoint: /preregistration/v1/applications/prereg/{preRegistrationId} + role: batch + restMethod: put + inputTemplate: preReg/UpdatePreregistration/updatePreregistration + outputTemplate: preReg/error + input: '{ + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "postalCode": "14022", + "phone": "8249742850", + "email": "soh#w@Scdfvg", + "IDSchemaVersion": 0.7, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$REMOVE$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.update" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_014" + } + ] +}' + Prereg_UpdatePrereg_INVALID_langCode_sid: + endPoint: /preregistration/v1/applications/prereg/{preRegistrationId} + role: batch + restMethod: put + inputTemplate: preReg/UpdatePreregistration/updatePreregistration + outputTemplate: preReg/error + input: '{ + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "postalCode": "14022", + "phone": "8249742850", + "email": "soh#w@Scdfvg", + "IDSchemaVersion": 0.7, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$2736EBDEB$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.update" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_014" + } + ] +}' + Prereg_UpdatePrereg_INVALID_requesttime_sid: + endPoint: /preregistration/v1/applications/prereg/{preRegistrationId} + role: batch + restMethod: put + inputTemplate: preReg/UpdatePreregistration/updatePreregistration + outputTemplate: preReg/error + input: '{ + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "postalCode": "14022", + "phone": "8249742850", + "email": "soh#w@Scdfvg", + "IDSchemaVersion": 0.7, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$47738$", + "id": "mosip.pre-registration.demographic.update" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_015" + } + ] +}' + Prereg_UpdatePrereg_Missing_requesttime_sid: + endPoint: /preregistration/v1/applications/prereg/{preRegistrationId} + role: batch + restMethod: put + inputTemplate: preReg/UpdatePreregistration/updatePreregistration + outputTemplate: preReg/error + input: '{ + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "postalCode": "14022", + "phone": "8249742850", + "email": "soh#w@Scdfvg", + "IDSchemaVersion": 0.7, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$REMOVE$", + "id": "mosip.pre-registration.demographic.update" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_003" + } + ] +}' + Prereg_UpdatePrereg_previous_date_sid: + endPoint: /preregistration/v1/applications/prereg/{preRegistrationId} + role: batch + restMethod: put + inputTemplate: preReg/UpdatePreregistration/updatePreregistration + outputTemplate: preReg/error + input: '{ + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "postalCode": "14022", + "phone": "8249742850", + "email": "goku@hogwarts.co.in", + "IDSchemaVersion": 0.7, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "2018-02-10T07:28:57.314Z", + "id": "mosip.pre-registration.demographic.update" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_013" + } + ] +}' + Prereg_UpdatePrereg_invalid_id_sid: + endPoint: /preregistration/v1/applications/prereg/{preRegistrationId} + role: batch + restMethod: put + inputTemplate: preReg/UpdatePreregistration/updatePreregistration + outputTemplate: preReg/error + input: '{ + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "postalCode": "14022", + "phone": "8249742850", + "email": "goku@hogwarts.co.in", + "IDSchemaVersion": 0.7, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre43DD4@GGGgistration.demographic.update" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_CORE_001" + } + ] +}' + Prereg_UpdatePrereg_missing_id_sid: + endPoint: /preregistration/v1/applications/prereg/{preRegistrationId} + role: batch + restMethod: put + inputTemplate: preReg/UpdatePreregistration/updatePreregistration + outputTemplate: preReg/error + input: '{ + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "postalCode": "14022", + "phone": "8249742850", + "email": "goku@hogwarts.co.in", + "IDSchemaVersion": 0.7, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "$REMOVE$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_CORE_001" + } + ] +}' + Prereg_UpdatePrereg_blank_id_sid: + endPoint: /preregistration/v1/applications/prereg/{preRegistrationId} + role: batch + restMethod: put + inputTemplate: preReg/UpdatePreregistration/updatePreregistration + outputTemplate: preReg/error + input: '{ + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "postalCode": "14022", + "phone": "8249742850", + "email": "goku@hogwarts.co.in", + "IDSchemaVersion": 0.7, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_CORE_001" + } + ] +}' + Prereg_UpdatePrereg_update_date_without_Status_change_sid: + endPoint: /preregistration/v1/applications/prereg/{preRegistrationId} + role: batch + restMethod: put + inputTemplate: preReg/UpdatePreregistration/updatePreregistration + outputTemplate: preReg/UpdatePreregistration/updatePreregistrationResult + input: '{ + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_date_verification_sid_preRegistrationId$", + "postalCode": "14022", + "phone": "8249742850", + "email": "goku@hogwarts.co.in", + "IDSchemaVersion": 0.7, + "dateOfBirth": "1998/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.update" +}' + output: '{ + "langCode": "$1STLANG$" +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/UpdatePreregistration/updatePreregistrationResult.hbs b/apitest/src/main/resources/preReg/UpdatePreregistration/updatePreregistrationResult.hbs new file mode 100644 index 00000000000..00a7c85075b --- /dev/null +++ b/apitest/src/main/resources/preReg/UpdatePreregistration/updatePreregistrationResult.hbs @@ -0,0 +1,10 @@ +{ + "response": { + "statusCode": "Application_Incomplete", + "demographicDetails": { + "identity": { + + } + } + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/UpdatePridStatus/UpdatePridStatus.yml b/apitest/src/main/resources/preReg/UpdatePridStatus/UpdatePridStatus.yml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/apitest/src/main/resources/preReg/UpdatePridStatus/updatePridStatus.hbs b/apitest/src/main/resources/preReg/UpdatePridStatus/updatePridStatus.hbs new file mode 100644 index 00000000000..e69de29bb2d diff --git a/apitest/src/main/resources/preReg/UpdatePridStatus/updatePridStatusResult.hbs b/apitest/src/main/resources/preReg/UpdatePridStatus/updatePridStatusResult.hbs new file mode 100644 index 00000000000..e69de29bb2d diff --git a/apitest/src/main/resources/preReg/ValidateOtp/ValidateOtp.yml b/apitest/src/main/resources/preReg/ValidateOtp/ValidateOtp.yml new file mode 100644 index 00000000000..9303967830c --- /dev/null +++ b/apitest/src/main/resources/preReg/ValidateOtp/ValidateOtp.yml @@ -0,0 +1,121 @@ +ValidateOtp: + Prereg_ValidateOtp_All_Valid_Smoke_Phone_sid: + endPoint: /preregistration/v1/login/validateOtp + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/ValidateOtp/validateOtp + outputTemplate: preReg/ValidateOtp/validateOtpResult + input: '{ + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "userId": "9090872300", + "otp": "111111", + "id": "mosip.pre-registration.login.useridotp" +}' + output: '{ +}' + + Prereg_ValidateOtp_Invalid_Phone_Neg: + endPoint: /preregistration/v1/login/validateOtp + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/ValidateOtp/validateOtp + outputTemplate: preReg/error + input: '{ + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "userId": "909", + "otp": "111111", + "id": "mosip.pre-registration.login.useridotp" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_LGN_013" + } + ] +}' + + Prereg_ValidateOtp_SpacialCharacters_Phone_Neg: + endPoint: /preregistration/v1/login/validateOtp + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/ValidateOtp/validateOtp + outputTemplate: preReg/error + input: '{ + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "userId": "$!(", + "otp": "111111", + "id": "mosip.pre-registration.login.useridotp" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_LGN_013" + } + ] +}' + + Prereg_SendOtp_All_Valid_Smoke_email_sid: + endPoint: /preregistration/v1/login/validateOtp + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/ValidateOtp/validateOtp + outputTemplate: preReg/ValidateOtp/validateOtpResult + input: '{ + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "userId": "john.doe@mailinator.com", + "otp": "111111", + "id": "mosip.pre-registration.login.useridotp" +}' + output: '{ +}' + + Prereg_ValidateOtp_SpacialCharacters_Email_Neg: + endPoint: /preregistration/v1/login/validateOtp + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/ValidateOtp/validateOtp + outputTemplate: preReg/error + input: '{ + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "userId": "john.doe@mail$!inator.com", + "otp": "111111", + "id": "mosip.pre-registration.login.useridotp" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_LGN_013" + } + ] +}' + Prereg_ValidateOtp_Invalid_Email_Neg: + endPoint: /preregistration/v1/login/validateOtp + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/ValidateOtp/validateOtp + outputTemplate: preReg/error + input: '{ + "version": "1.0", + "requesttime": "$TIMESTAMP$", + "userId": "joh23", + "otp": "111111", + "id": "mosip.pre-registration.login.useridotp" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_LGN_013" + } + ] +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/ValidateOtp/validateOtp.hbs b/apitest/src/main/resources/preReg/ValidateOtp/validateOtp.hbs new file mode 100644 index 00000000000..2e1a7c5820f --- /dev/null +++ b/apitest/src/main/resources/preReg/ValidateOtp/validateOtp.hbs @@ -0,0 +1,9 @@ +{ + "id": "{{id}}", + "version": "{{version}}", + "requesttime": "{{requesttime}}", + "request": { + "otp": "{{otp}}", + "userId": "{{userId}}" + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/ValidateOtp/validateOtpResult.hbs b/apitest/src/main/resources/preReg/ValidateOtp/validateOtpResult.hbs new file mode 100644 index 00000000000..7a73a41bfdf --- /dev/null +++ b/apitest/src/main/resources/preReg/ValidateOtp/validateOtpResult.hbs @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/autoGeneratedId.properties b/apitest/src/main/resources/preReg/autoGeneratedId.properties new file mode 100644 index 00000000000..e10844ac374 --- /dev/null +++ b/apitest/src/main/resources/preReg/autoGeneratedId.properties @@ -0,0 +1 @@ +CreatePrereg_All_Valid_Smoke_sid=1234567890 \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/bookAppointment/bookAppointment.hbs b/apitest/src/main/resources/preReg/bookAppointment/bookAppointment.hbs new file mode 100644 index 00000000000..02d2fc3ee40 --- /dev/null +++ b/apitest/src/main/resources/preReg/bookAppointment/bookAppointment.hbs @@ -0,0 +1,12 @@ +{ + "id": "{{id}}", + "version": "{{version}}", + "requesttime": "{{requesttime}}", + "preRegistrationId":"{{preRegistrationId}}", + "request": { + "registration_center_id": "{{registration_center_id}}", + "appointment_date": "{{appointment_date}}", + "time_slot_from": "{{time_slot_from}}", + "time_slot_to": "{{time_slot_to}}" + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/bookAppointment/bookAppointment.yml b/apitest/src/main/resources/preReg/bookAppointment/bookAppointment.yml new file mode 100644 index 00000000000..1a8daa292fa --- /dev/null +++ b/apitest/src/main/resources/preReg/bookAppointment/bookAppointment.yml @@ -0,0 +1,671 @@ +BookAppointment: + Prereg_BookAppointment_All_Valid_Smoke: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/bookAppointment/bookAppointment + outputTemplate: preReg/bookAppointment/bookAppointmentResult + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ +}' + Prereg_BookAppointment_CA_Smoke: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/bookAppointment/bookAppointment + outputTemplate: preReg/bookAppointment/bookAppointmentResult + input: '{ + "preRegistrationId":"$ID:CreatePrereg_Smoke_CancellAppointment_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ +}' + Prereg_BookAppointment_CancelApplicationsAppointment_Smoke: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/bookAppointment/bookAppointment + outputTemplate: preReg/bookAppointment/bookAppointmentResult + input: '{ + "preRegistrationId":"$ID:CreatePrereg_Smoke_CancelApplicationsAppointment_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ +}' + Prereg_BookAppointment_inValid_preRegistrationId: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/bookAppointment/bookAppointment + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"1234fgfgdb", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_APP_013" + } + ] +}' + Prereg_BookAppointment_blank_preRegistrationId: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/bookAppointment/bookAppointment + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_015" + + } + ] +}' + Prereg_BookAppointment_Invalid_Id: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/bookAppointment/bookAppointment + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "moe-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_CORE_001" + } + ] +}' + Prereg_BookAppointment_Blank_Id: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/bookAppointment/bookAppointment + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_CORE_001", + "message": "Request id is invalid" + } + ] +}' + Prereg_BookAppointment_Blank_version: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/bookAppointment/bookAppointment + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_002" + } + ] +}' + Prereg_BookAppointment_Missing_version: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/bookAppointment/bookAppointment + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "$REMOVE$", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_002" + } + ] +}' + Prereg_BookAppointment_Invalid_version: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/bookAppointment/bookAppointment + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "snsjd73t33ybyh2334@FDh", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_002" + } + ] +}' + Prereg_BookAppointment_Invalid_registration_center_id: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/bookAppointment/bookAppointment + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "registration_center_id": "363wgbsion_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "KER-MSD-215", + "message": "Registration Center not found" + } + ] +}' + Prereg_BookAppointment_Missing_registration_center_id: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/bookAppointment/bookAppointment + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "registration_center_id": "$REMOVE$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_BOOK_RCI_007", + "message": "Registration center id not entered" + } + ] +}' + Prereg_BookAppointment_Blank_registration_center_id: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/bookAppointment/bookAppointment + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "registration_center_id": "", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_BOOK_RCI_007", + "message": "Registration center id not entered" + } + ] +}' + Prereg_BookAppointment_Blank_appointment_date: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/bookAppointment/bookAppointment + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_BOOK_RCI_008", + "message": "Booking date time not selected" + } + ] +}' + Prereg_BookAppointment_Missing_appointment_date: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/bookAppointment/bookAppointment + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$REMOVE$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_BOOK_RCI_008" + } + ] +}' + Prereg_BookAppointment_Invalid_appointment_date: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/bookAppointment/bookAppointment + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "njdus6w22ybsh", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_BOOK_RCI_031" + + } + ] +}' + Prereg_BookAppointment_Invalid_time_slot_to: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/bookAppointment/bookAppointment + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "dndj36gsbsb", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_BOOK_RCI_003" + } + ] +}' + Prereg_BookAppointment_Missing_time_slot_to: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/bookAppointment/bookAppointment + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$REMOVE$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_BOOK_RCI_003" + } + ] +}' + Prereg_BookAppointment_Invalid_time_slot_from: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/bookAppointment/bookAppointment + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "sbshbs653tgv", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_BOOK_RCI_003" + } + ] +}' + Prereg_BookAppointment_Blank_time_slot_to: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/bookAppointment/bookAppointment + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_BOOK_RCI_003" + } + ] +}' + Prereg_BookAppointment_Blank_time_slot_from: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/bookAppointment/bookAppointment + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_BOOK_RCI_003" + } + ] +}' + Prereg_BookAppointment_missing_time_slot_from: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/bookAppointment/bookAppointment + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$REMOVE$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_BOOK_RCI_003" + } + ] +}' + Prereg_BookAppointment_missing_requesttime: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/bookAppointment/bookAppointment + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$REMOVE$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_003" + } + ] +}' + Prereg_BookAppointment_Invalid_requesttime: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/bookAppointment/bookAppointment + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "snnsjnsjn65" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_015" + + } + ] +}' + Prereg_BookAppointment_Blank_requesttime: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/bookAppointment/bookAppointment + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_003" + } + ] +}' + Prereg_BookAppointment_previous_date: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/bookAppointment/bookAppointment + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "2017-02-15T04:31:23.613Z" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_013" + } + ] +}' + + Prereg_BookAppointment_On_holiday: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/bookAppointment/bookAppointment + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_013" + + } + ] +}' + + Prereg_BookAppointment_with_expired_status: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/bookAppointment/bookAppointment + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_for_expiry_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "2023-05-16", + "time_slot_from": "09:00:00", + "time_slot_to": "09:15:00", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_013" + + } + ] +}' + Prereg_BookAppointment_with_All_InValid_data: + endPoint: /preregistration/v1/applications/appointment/{preRegistrationId} + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/bookAppointment/bookAppointment + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$nId$", + "registration_center_id": "$333on_center_id$", + "id": "mosip.pre-regooking.book", + "version": "1.0.3fhffu", + "appointment_date": "$233ntment_date$", + "time_slot_from": "$time_2y6373gdg_from$", + "time_slot_to": "$time_slo373$", + "requesttime": "$TIMEST33dd" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_013" + + } + ] +}' diff --git a/apitest/src/main/resources/preReg/bookAppointment/bookAppointmentResult.hbs b/apitest/src/main/resources/preReg/bookAppointment/bookAppointmentResult.hbs new file mode 100644 index 00000000000..7a73a41bfdf --- /dev/null +++ b/apitest/src/main/resources/preReg/bookAppointment/bookAppointmentResult.hbs @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/bookAppointmentByPRID/bookAppointmentByPRID.hbs b/apitest/src/main/resources/preReg/bookAppointmentByPRID/bookAppointmentByPRID.hbs new file mode 100644 index 00000000000..ced99e0091e --- /dev/null +++ b/apitest/src/main/resources/preReg/bookAppointmentByPRID/bookAppointmentByPRID.hbs @@ -0,0 +1,16 @@ +{ + "id": "{{id}}", + "version": "{{version}}", + "requesttime": "{{requesttime}}", + "request": { + "bookingRequest": [ + { + "preRegistrationId": "{{preRegistrationId}}", + "registration_center_id": "{{registration_center_id}}", + "appointment_date": "{{appointment_date}}", + "time_slot_from": "{{time_slot_from}}", + "time_slot_to": "{{time_slot_to}}" + } + ] + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/bookAppointmentByPRID/bookAppointmentByPRID.yml b/apitest/src/main/resources/preReg/bookAppointmentByPRID/bookAppointmentByPRID.yml new file mode 100644 index 00000000000..1816a11e5e6 --- /dev/null +++ b/apitest/src/main/resources/preReg/bookAppointmentByPRID/bookAppointmentByPRID.yml @@ -0,0 +1,528 @@ +BookAppointmentByPRID: + Prereg_BookAppointmentByPRID_All_Valid_Smoke: + endPoint: /preregistration/v1/applications/appointment + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/bookAppointmentByPRID/bookAppointmentByPRID + outputTemplate: preReg/bookAppointmentByPRID/bookAppointmentByPRIDResult + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ +}' + Prereg_BookAppointmentByPRID_inValid_preRegistrationId: + endPoint: /preregistration/v1/applications/appointment + role: batch + restMethod: post + inputTemplate: preReg/bookAppointmentByPRID/bookAppointmentByPRID + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"1234fgfgdb", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_APP_013" + } + ] +}' + Prereg_BookAppointmentByPRID_blank_preRegistrationId: + endPoint: /preregistration/v1/applications/appointment + role: batch + restMethod: post + inputTemplate: preReg/bookAppointmentByPRID/bookAppointmentByPRID + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_APP_013" + } + ] +}' + Prereg_BookAppointmentByPRID_missing_preRegistrationId: + endPoint: /preregistration/v1/applications/appointment + role: batch + restMethod: post + inputTemplate: preReg/bookAppointmentByPRID/bookAppointmentByPRID + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$REMOVE$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_APP_013" + } + ] +}' + Prereg_BookAppointmentByPRID_inValid_Id: + endPoint: /preregistration/v1/applications/appointment + role: batch + restMethod: post + inputTemplate: preReg/bookAppointmentByPRID/bookAppointmentByPRID + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "moe.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_CORE_001" + } + ] +}' + Prereg_BookAppointmentByPRID_Blank_Id: + endPoint: /preregistration/v1/applications/appointment + role: batch + restMethod: post + inputTemplate: preReg/bookAppointmentByPRID/bookAppointmentByPRID + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_CORE_001" + } + ] +}' + Prereg_BookAppointmentByPRID_Blank_version: + endPoint: /preregistration/v1/applications/appointment + role: batch + restMethod: post + inputTemplate: preReg/bookAppointmentByPRID/bookAppointmentByPRID + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_002" + } + ] +}' + Prereg_BookAppointmentByPRID_Missing_version: + endPoint: /preregistration/v1/applications/appointment + role: batch + restMethod: post + inputTemplate: preReg/bookAppointmentByPRID/bookAppointmentByPRID + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "$REMOVE$", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_002" + } + ] +}' + Prereg_BookAppointmentByPRID_Invalid_version: + endPoint: /preregistration/v1/applications/appointment + role: batch + restMethod: post + inputTemplate: preReg/bookAppointmentByPRID/bookAppointmentByPRID + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "snsjd73t33ybyh2334@FDh", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_002" + } + ] +}' + Prereg_BookAppointmentByPRID_Invalid_registration_center_id: + endPoint: /preregistration/v1/applications/appointment + role: batch + restMethod: post + inputTemplate: preReg/bookAppointmentByPRID/bookAppointmentByPRID + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$", + "registration_center_id": "363wgbsion_center_id", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "KER-MSD-215" + } + ] +}' + Prereg_BookAppointmentByPRID_Missing_registration_center_id: + endPoint: /preregistration/v1/applications/appointment + role: batch + restMethod: post + inputTemplate: preReg/bookAppointmentByPRID/bookAppointmentByPRID + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$", + "registration_center_id": "$REMOVE$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_BOOK_RCI_007" + } + ] +}' + Prereg_BookAppointmentByPRID_Blank_registration_center_id: + endPoint: /preregistration/v1/applications/appointment + role: batch + restMethod: post + inputTemplate: preReg/bookAppointmentByPRID/bookAppointmentByPRID + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$", + "registration_center_id": "", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_BOOK_RCI_007" + } + ] +}' + Prereg_BookAppointmentByPRID_Blank_appointment_date: + endPoint: /preregistration/v1/applications/appointment + role: batch + restMethod: post + inputTemplate: preReg/bookAppointmentByPRID/bookAppointmentByPRID + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_BOOK_RCI_008" + } + ] +}' + Prereg_BookAppointmentByPRID_Missing_appointment_date: + endPoint: /preregistration/v1/applications/appointment + role: batch + restMethod: post + inputTemplate: preReg/bookAppointmentByPRID/bookAppointmentByPRID + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$REMOVE$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_BOOK_RCI_008" + } + ] +}' + Prereg_BookAppointmentByPRID_Invalid_appointment_date: + endPoint: /preregistration/v1/applications/appointment + role: batch + restMethod: post + inputTemplate: preReg/bookAppointmentByPRID/bookAppointmentByPRID + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "njdus6w22ybsh", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_BOOK_RCI_031" + + } + ] +}' + Prereg_BookAppointmentByPRID_blank_time_slot_to: + endPoint: /preregistration/v1/applications/appointment + role: batch + restMethod: post + inputTemplate: preReg/bookAppointmentByPRID/bookAppointmentByPRID + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_BOOK_RCI_003" + } + ] +}' + Prereg_BookAppointmentByPRID_blank_time_slot_from: + endPoint: /preregistration/v1/applications/appointment + role: batch + restMethod: post + inputTemplate: preReg/bookAppointmentByPRID/bookAppointmentByPRID + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_BOOK_RCI_003" + } + ] +}' + Prereg_BookAppointmentByPRID_Missing_time_slot_to: + endPoint: /preregistration/v1/applications/appointment + role: batch + restMethod: post + inputTemplate: preReg/bookAppointmentByPRID/bookAppointmentByPRID + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$REMOVE$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_BOOK_RCI_003" + } + ] +}' + Prereg_BookAppointmentByPRID_Missing_time_slot_from: + endPoint: /preregistration/v1/applications/appointment + role: batch + restMethod: post + inputTemplate: preReg/bookAppointmentByPRID/bookAppointmentByPRID + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$REMOVE$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$TIMESTAMP$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_BOOK_RCI_003" + } + ] +}' + Prereg_BookAppointmentByPRID_missing_requesttime: + endPoint: /preregistration/v1/applications/appointment + role: batch + restMethod: post + inputTemplate: preReg/bookAppointmentByPRID/bookAppointmentByPRID + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "$REMOVE$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_003" + } + ] +}' + Prereg_BookAppointmentByPRID_Invalid_requesttime: + endPoint: /preregistration/v1/applications/appointment + role: batch + restMethod: post + inputTemplate: preReg/bookAppointmentByPRID/bookAppointmentByPRID + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "qerwgtgf" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_015" + + } + ] +}' + Prereg_BookAppointmentByPRID_Blank_requesttime: + endPoint: /preregistration/v1/applications/appointment + role: batch + restMethod: post + inputTemplate: preReg/bookAppointmentByPRID/bookAppointmentByPRID + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_003" + } + ] +}' + Prereg_BookAppointmentByPRID_previous_requesttime: + endPoint: /preregistration/v1/applications/appointment + role: batch + restMethod: post + inputTemplate: preReg/bookAppointmentByPRID/bookAppointmentByPRID + outputTemplate: preReg/error + input: '{ + "preRegistrationId":"$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$", + "registration_center_id": "$registration_center_id$", + "id": "mosip.pre-registration.booking.book", + "version": "1.0", + "appointment_date": "$appointment_date$", + "time_slot_from": "$time_slot_from$", + "time_slot_to": "$time_slot_to$", + "requesttime": "2017-02-15T04:31:23.613Z" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_013" + } + ] +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/bookAppointmentByPRID/bookAppointmentByPRIDResult.hbs b/apitest/src/main/resources/preReg/bookAppointmentByPRID/bookAppointmentByPRIDResult.hbs new file mode 100644 index 00000000000..7a73a41bfdf --- /dev/null +++ b/apitest/src/main/resources/preReg/bookAppointmentByPRID/bookAppointmentByPRIDResult.hbs @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/config/preRegistrationResourceURL.properties b/apitest/src/main/resources/preReg/config/preRegistrationResourceURL.properties new file mode 100644 index 00000000000..2bc7b838e18 --- /dev/null +++ b/apitest/src/main/resources/preReg/config/preRegistrationResourceURL.properties @@ -0,0 +1,31 @@ +# PreRegistration resource URL Configuration + +#Document Service API's resource uris + +preReg_DocumentURI = /preregistration/v1/documents/ +preReg_DeleteDocumentByPreregistrationIdURI = /preregistration/v1/documents/preregistration/ +preReg_DeleteDocumentByDocumentIdURI = /preregistration/v1/documents/ +preReg_GetDocByPreId = /preregistration/v1/documents/preregistration/ +preReg_GetDocByDocId = /preregistration/v1/documents/ +preReg_CopyDocumentsURI = /preregistration/v1/documents/ + + +#Booking Appointment Service API's resource uris +preReg_MultipleBooking=/preregistration/v1/appointment +preReg_CancelAppointmentURI = /preregistration/v1/appointment/ +preReg_FecthAppointmentDetailsURI=/preregistration/v1/appointment/ +#Batch Job Service API's resource uris + +#QR Code Service API's resource uris +preReg_QRCodeURI=/preregistration/v1/qrCode/generate + + +#Notification Service API's resource uris +preReg_NotifyURI=/preregistration/v1/notification/notify + +#Sync Master Data Service API's resource uris +preReg_SyncMasterDataURI=/preregistration/v1/appointment/availability/sync + +#Booking Service API's resource uris +preReg_RetriveBookedPreIdsByRegId=/preregistration/v1/appointment/preRegistrationId/ +preReg_FetchCenterIDURI = /preregistration/v1/appointment/availability/ \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/config/preregistrationConfig.properties b/apitest/src/main/resources/preReg/config/preregistrationConfig.properties new file mode 100644 index 00000000000..122b1cedccc --- /dev/null +++ b/apitest/src/main/resources/preReg/config/preregistrationConfig.properties @@ -0,0 +1,55 @@ +createPreregRequestPath = "Create_PreRegistration/createPreRegistration_smoke"; +getTokenRequestPath = "generateOTP/generateOTP_smoke"; +documentUploadRequestPath = "DocumentUpload/DocumentUpload_smoke"; +discardAppRequestPath = "Discard_Individual/Discard Individual Applicant By using Pre Registration ID_smoke"; +fetchAllPreRegistrationCreatedByUserRequestPath ="Fetch_all_application_created_by_user/Fetch all application created User By using User ID_smoke"; +reverseDataSyncRequestPath ="ReverseDataSync/ReverseDataSync_smoke"; +retrivePreRegistrationDataRequestPath ="Retrive_PreRegistration/Retrive Pre registration data of an applicant after booking an appointment_smoke"; +bookExpiredAppointmentRequestPath ="BookingAppointment/BookingAppointment_smoke"; +bookGetPreRegistrationStatusRequestPath ="Fetch_the_status_of_a_application/Fetch Status of the application_smoke"; +documentUploadRequestPath="DocumentUpload/DocumentUpload_smoke"; + +preRegAdminTokenFilePath="preRegAdminToken/preRegAdminToken_smoke"; +regClientAdminTokenFilePath="regClientAdminToken/regClientAdminToken_smoke"; +getPreRegistrationDataFilePath="Get_Pre_Registartion_data/Get Pre Pregistration Data of the application_smoke"; +updatePreRegFilePath="Pre_Registration/smokePreReg1"; +getAllDocumentForPreIdFilePath="GetAllDocumentForPreDocumentUploadUtil.java +PreRegistrationUtil.javaRegId/GetAllDocumentForPreRegId_smoke"; +deleteAllDocumentByPreIdFilePath="DeleteAllDocumentsByPreRegID/DeleteAllDocumentForPreRegId_smoke"; +deleteAllDocumentByDocIdFilePath="DeleteDocumentByDocId/DeleteDocumentByDocmentId_smoke"; +FetchCentreFilePath="FetchAvailabilityDataOfRegCenters/FetchAvailabilityDataOfRegCenters_smoke"; +copyUploadedDocumentsFilePath="CopyUploadedDocument/CopyUploadedDocument_smoke"; +FetchCentreFilePath="FetchAvailabilityDataOfRegCenters/FetchAvailabilityDataOfRegCenters_smoke"; +BookAppointmentFilePath="BookingAppointment/BookingAppointment_smoke"; +bookAppointmentInvalidDateFilePath="BookingAppointment/BookingAppointment_smoke"; +FetchAppointmentDetailsFilePath="FetchAppointmentDetails/FetchAppointmentDetails_smoke"; +CancelBookingAppointmentFilePath="CancelAnBookedAppointment/CancelAnBookedAppointment_smoke"; + + +#QRCode Service filepath +qrCodeFilePath=QRCode/preReg_QRCode_smoke + +#Notification Service filepath +notificationFilePath=TriggerNotification/ +notificationSmokeTestFilePath=preReg_TriggerNotification_emailId_outlookAccount_smoke + +#DocumentFilePath +validDocFilePath=preReg/Documents/validDocument +inValidDocFilePath=preReg/Documents/invalidDocument +fileName=/IDProof.pdf +fileNameGreaterThanMax=/docSizeGreaterThan5MB.pdf +documentFilePath=/doc_POA.pdf +docFilePath=preReg/Documents/validDocument/IDProof.pdf + +req.Documentrequest=Document request +req.notify=NotificationRequestDTO +langCode.key=langCode +req.fileName=attachment +req.fileKey=file +req.id=mosip.pre-registration.notification.notify +req.ver=1.0 +key=value + +#Test CaseName +smoke=smoke +reqTime=requesttime \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/createPrereg/createPrereg.yml b/apitest/src/main/resources/preReg/createPrereg/createPrereg.yml new file mode 100644 index 00000000000..fe8af7aa305 --- /dev/null +++ b/apitest/src/main/resources/preReg/createPrereg/createPrereg.yml @@ -0,0 +1,648 @@ +CreatePrereg: + Prereg_CreatePrereg_All_Valid_Smoke_sid: + endPoint: /preregistration/v1/applications/prereg + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/createPrereg/createPrereg + outputTemplate: preReg/createPrereg/createPreregResult + input: '{ + "postalCode": "14022", + "phone": "8249742850", + "email": "goku@technoforte.co.in", + "IDSchemaVersion": $SCHEMAVERSION$, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.create" +}' + output: '{ +}' + Prereg_CreatePrereg_book_appoinment_without_update_prereg_status_sid: + endPoint: /preregistration/v1/applications/prereg + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/createPrereg/createPrereg + outputTemplate: preReg/createPrereg/createPreregResult + input: '{ + "postalCode": "14022", + "phone": "8249742850", + "email": "goku@technoforte.co.in", + "IDSchemaVersion": $SCHEMAVERSION$, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.create" +}' + output: '{ +}' + Prereg_CreatePrereg_All_Valid_Smoke_UpdateDocRefID_sid: + endPoint: /preregistration/v1/applications/prereg + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/createPrereg/createPrereg + outputTemplate: preReg/createPrereg/createPreregResult + input: '{ + "postalCode": "14022", + "phone": "9876543210", + "mobileno": "9876543210", + "email": "goku@technoforte.co.in", + "IDSchemaVersion": $SCHEMAVERSION$, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.create" +}' + output: '{ +}' + Prereg_CreatePrereg_All_Valid_Smoke_BookByPRID_sid: + endPoint: /preregistration/v1/applications/prereg + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/createPrereg/createPrereg + outputTemplate: preReg/createPrereg/createPreregResult + input: '{ + "postalCode": "14022", + "phone": "8249742850", + "mobileno": "8249742850", + "email": "goku@technoforte.co.in", + "IDSchemaVersion": $SCHEMAVERSION$, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.create" +}' + output: '{ + "langCode": "$1STLANG$" +}' + Prereg_CreatePrereg_Valid_Smoke_sid: + endPoint: /preregistration/v1/applications/prereg + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/createPrereg/createPrereg + outputTemplate: preReg/createPrereg/createPreregResult + input: '{ + "postalCode": "14022", + "phone": "8249742850", + "mobileno": "8249742850", + "email": "goku@technoforte.co.in", + "IDSchemaVersion": $SCHEMAVERSION$, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.create" +}' + output: '{ +}' + Prereg_CreatePrereg_Smoke_alldel_sid: + endPoint: /preregistration/v1/applications/prereg + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/createPrereg/createPrereg + outputTemplate: preReg/createPrereg/createPreregResult + input: '{ + "postalCode": "14022", + "phone": "8249742850", + "mobileno": "8249742850", + "email": "goku@technoforte.co.in", + "IDSchemaVersion": $SCHEMAVERSION$, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.create" +}' + output: '{ +}' + Prereg_CreatePrereg_Smoke_CancellAppointment_sid: + endPoint: /preregistration/v1/applications/prereg + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/createPrereg/createPrereg + outputTemplate: preReg/createPrereg/createPreregResult + input: '{ + "postalCode": "14022", + "phone": "8249742850", + "mobileno": "8249742850", + "email": "goku@hogwarts.co.in", + "IDSchemaVersion": $SCHEMAVERSION$, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.create" +}' + output: '{ +}' + Prereg_CreatePrereg_Smoke_CancelApplicationsAppointment_sid: + endPoint: /preregistration/v1/applications/prereg + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/createPrereg/createPrereg + outputTemplate: preReg/createPrereg/createPreregResult + input: '{ + "postalCode": "14022", + "phone": "8249742850", + "mobileno": "8249742850", + "email": "goku@hogwarts.co.in", + "IDSchemaVersion": $SCHEMAVERSION$, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.create" +}' + output: '{ +}' + Prereg_CreatePrereg_All_Valid_Smoke_for_expiry_sid: + endPoint: /preregistration/v1/applications/prereg + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/createPrereg/createPrereg + outputTemplate: preReg/createPrereg/createPreregResult + input: '{ + "postalCode": "14022", + "phone": "8249742850", + "email": "goku@technoforte.co.in", + "IDSchemaVersion": $SCHEMAVERSION$, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.create" +}' + output: '{ +}' + Prereg_CreatePrereg_in_Valid_id_sid: + endPoint: /preregistration/v1/applications/prereg + role: batch + restMethod: post + inputTemplate: preReg/createPrereg/createPrereg + outputTemplate: preReg/error + input: '{ + "postalCode": "14022", + "phone": "8249742850", + "mobileno": "8249742850", + "email": "goku@hogwarts.co.in", + "IDSchemaVersion": $SCHEMAVERSION$, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.prtion.demographic.create" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_CORE_001" + } + ] +}' + Prereg_CreatePrereg_missing_id_sid: + endPoint: /preregistration/v1/applications/prereg + role: batch + restMethod: post + inputTemplate: preReg/createPrereg/createPrereg + outputTemplate: preReg/error + input: '{ + "postalCode": "14022", + "phone": "8249742850", + "mobileno": "8249742850", + "email": "goku@hogwarts.co.in", + "IDSchemaVersion": $SCHEMAVERSION$, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "$REMOVE$" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_CORE_001" + } + ] +}' + Prereg_CreatePrereg_blank_id_sid: + endPoint: /preregistration/v1/applications/prereg + role: batch + restMethod: post + inputTemplate: preReg/createPrereg/createPrereg + outputTemplate: preReg/error + input: '{ + "postalCode": "14022", + "phone": "8249742850", + "mobileno": "8249742850", + "email": "goku@hogwarts.co.in", + "IDSchemaVersion": $SCHEMAVERSION$, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_CORE_001" + } + ] +}' + Prereg_CreatePrereg_missing_langCode_sid: + endPoint: /preregistration/v1/applications/prereg + role: batch + restMethod: post + inputTemplate: preReg/createPrereg/createPrereg + outputTemplate: preReg/error + input: '{ + "postalCode": "14022", + "phone": "8249742850", + "mobileno": "8249742850", + "email": "goku@hogwarts.co.in", + "IDSchemaVersion": $SCHEMAVERSION$, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$REMOVE$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.create" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_014" + } + ] +}' + Prereg_CreatePrereg_invalid_langCode_sid: + endPoint: /preregistration/v1/applications/prereg + role: batch + restMethod: post + inputTemplate: preReg/createPrereg/createPrereg + outputTemplate: preReg/error + input: '{ + "postalCode": "14022", + "phone": "8249742850", + "mobileno": "8249742850", + "email": "goku@hogwarts.co.in", + "IDSchemaVersion": $SCHEMAVERSION$, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$363738$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.create" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_014" + } + ] +}' + Prereg_CreatePrereg_invalid_email_sid: + endPoint: /preregistration/v1/applications/prereg + role: batch + restMethod: post + inputTemplate: preReg/createPrereg/createPrereg + outputTemplate: preReg/error + input: '{ + "postalCode": "14022", + "phone": "8249742850", + "mobileno": "8249742850", + "email": "so.in", + "IDSchemaVersion": $SCHEMAVERSION$, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.create" +}' + output: '{ + "errors": [ + { + "errorCode": "KER-IOV-004" + } + ] +}' + Prereg_CreatePrereg_invalid_requesttime_format_sid: + endPoint: /preregistration/v1/applications/prereg + role: batch + restMethod: post + inputTemplate: preReg/createPrereg/createPrereg + outputTemplate: preReg/error + input: '{ + "postalCode": "14022", + "phone": "8249742850", + "mobileno": "8249742850", + "email": "goku@hogwarts.co.in", + "IDSchemaVersion": $SCHEMAVERSION$, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$2233STAMP$", + "id": "mosip.pre-registration.demographic.create" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_015" + } + ] +}' + Prereg_CreatePrereg_missing_requesttime_sid: + endPoint: /preregistration/v1/applications/prereg + role: batch + restMethod: post + inputTemplate: preReg/createPrereg/createPrereg + outputTemplate: preReg/error + input: '{ + "postalCode": "14022", + "phone": "8249742850", + "mobileno": "8249742850", + "email": "goku@hogwarts.co.in", + "IDSchemaVersion": $SCHEMAVERSION$, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$REMOVE$", + "id": "mosip.pre-registration.demographic.create" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_003" + } + ] +}' + Prereg_CreatePrereg_previous_date_sid: + endPoint: /preregistration/v1/applications/prereg + role: batch + restMethod: post + inputTemplate: preReg/createPrereg/createPrereg + outputTemplate: preReg/error + input: '{ + "postalCode": "14022", + "phone": "8249742850", + "mobileno": "8249742850", + "email": "goku@hogwarts.co.in", + "IDSchemaVersion": $SCHEMAVERSION$, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "2019-08-23T05:28:27.570Z", + "id": "mosip.pre-registration.demographic.create" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_013" + } + ] +}' + Prereg_CreatePrereg_invalid_version_sid: + endPoint: /preregistration/v1/applications/prereg + role: batch + restMethod: post + inputTemplate: preReg/createPrereg/createPrereg + outputTemplate: preReg/error + input: '{ + "postalCode": "14022", + "phone": "8249742850", + "mobileno": "8249742850", + "email": "goku@hogwarts.co.in", + "IDSchemaVersion": $SCHEMAVERSION$, + "dateOfBirth": "1996/01/01", + "version": "13YU2U2", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.create" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_002" + } + ] +}' + Prereg_CreatePrereg_missing_version_sid: + endPoint: /preregistration/v1/applications/prereg + role: batch + restMethod: post + inputTemplate: preReg/createPrereg/createPrereg + outputTemplate: preReg/error + input: '{ + "postalCode": "14022", + "phone": "8249742850", + "mobileno": "8249742850", + "email": "goku@hogwarts.co.in", + "IDSchemaVersion": $SCHEMAVERSION$, + "dateOfBirth": "1996/01/01", + "version": "$REMOVE$", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.create" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_002" + } + ] +}' + + Prereg_CreatePrereg_Invalid_PostalCode_Neg: + endPoint: /preregistration/v1/applications/prereg + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/createPrereg/createPrereg + outputTemplate: preReg/error + input: '{ + "postalCode": "14", + "phone": "8249742850", + "mobileno": "8249742850", + "email": "goku@technoforte.co.in", + "IDSchemaVersion": $SCHEMAVERSION$, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.create" +}' + output: '{ + "errors": [ + { + "errorCode": "KER-IOV-004" + } + ] +}' + + Prereg_CreatePrereg_SpacialCharacter_PostalCode_Neg: + endPoint: /preregistration/v1/applications/prereg + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/createPrereg/createPrereg + outputTemplate: preReg/error + input: '{ + "postalCode": "$34!", + "phone": "8249742850", + "mobileno": "8249742850", + "email": "goku@technoforte.co.in", + "IDSchemaVersion": $SCHEMAVERSION$, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.create" +}' + output: '{ + "errors": [ + { + "errorCode": "KER-IOV-004" + } + ] +}' + Prereg_CreatePrereg_Invalid_OTP_Neg: + endPoint: /preregistration/v1/applications/prereg + role: invalidBatch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/createPrereg/createPrereg + outputTemplate: preReg/error + input: '{ + "postalCode": "14022", + "phone": "8249742850", + "mobileno": "8249742850", + "email": "goku@technoforte.co.in", + "IDSchemaVersion": $SCHEMAVERSION$, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.create" +}' + output: '{ + "errors": [ + { + "errorCode": "KER-IOV-004" + } + ] +}' + Prereg_CreatePrereg_All_Valid_Smoke_date_verification_sid: + endPoint: /preregistration/v1/applications/prereg + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/createPrereg/createPrereg + outputTemplate: preReg/createPrereg/createPreregResult + input: '{ + "postalCode": "14022", + "phone": "8249742850", + "email": "goku@technoforte.co.in", + "IDSchemaVersion": $SCHEMAVERSION$, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.create" +}' + output: '{ +}' + Prereg_CreatePrereg_with_special_characters_date: + endPoint: /preregistration/v1/applications/prereg + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/createPrereg/createPrereg + outputTemplate: preReg/error + input: '{ + "postalCode": "14022", + "phone": "8249742850", + "email": "goku@technoforte.co.in", + "IDSchemaVersion": $SCHEMAVERSION$, + "dateOfBirth": "19@@@@9$$6/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.create" +}' + output: '{ + "errors": [ + { + "errorCode": "KER-IOV-004" + } + ] +}' + Prereg_CreatePrereg_with_future_date: + endPoint: /preregistration/v1/applications/prereg + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/createPrereg/createPrereg + outputTemplate: preReg/createPrereg/createPreregResult + input: '{ + "postalCode": "14022", + "phone": "8249742850", + "email": "goku@technoforte.co.in", + "IDSchemaVersion": $SCHEMAVERSION$, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.create" +}' + output: '{ +}' + Prereg_CreatePrereg_cancell_incomplete_prid_sid: + endPoint: /preregistration/v1/applications/prereg + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/createPrereg/createPrereg + outputTemplate: preReg/createPrereg/createPreregResult + input: '{ + "postalCode": "14022", + "phone": "8249742850", + "email": "goku@technoforte.co.in", + "IDSchemaVersion": $SCHEMAVERSION$, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.create" +}' + output: '{ +}' + Prereg_CreatePrereg_cancell_pending_appoinment_prid_sid: + endPoint: /preregistration/v1/applications/prereg + role: batch + checkErrorsOnlyInResponse: true + restMethod: post + inputTemplate: preReg/createPrereg/createPrereg + outputTemplate: preReg/createPrereg/createPreregResult + input: '{ + "postalCode": "14022", + "phone": "8249742850", + "email": "goku@technoforte.co.in", + "IDSchemaVersion": $SCHEMAVERSION$, + "dateOfBirth": "1996/01/01", + "version": "1.0", + "langCode": "$1STLANG$", + "requesttime": "$TIMESTAMP$", + "id": "mosip.pre-registration.demographic.create" +}' + output: '{ +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/createPrereg/createPreregResult.hbs b/apitest/src/main/resources/preReg/createPrereg/createPreregResult.hbs new file mode 100644 index 00000000000..7a73a41bfdf --- /dev/null +++ b/apitest/src/main/resources/preReg/createPrereg/createPreregResult.hbs @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/error.hbs b/apitest/src/main/resources/preReg/error.hbs new file mode 100644 index 00000000000..f4bcb6bee67 --- /dev/null +++ b/apitest/src/main/resources/preReg/error.hbs @@ -0,0 +1,10 @@ +{ + "errors": [ + {{#each errors}} + { + "errorCode": "{{errorCode}}" + } + {{#unless @last}},{{/unless}} + {{/each}} + ] +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/file/moethan3mb.pdf b/apitest/src/main/resources/preReg/file/moethan3mb.pdf new file mode 100644 index 00000000000..a410b9145ef Binary files /dev/null and b/apitest/src/main/resources/preReg/file/moethan3mb.pdf differ diff --git a/apitest/src/main/resources/preReg/file/morethan10mbpdf.pdf b/apitest/src/main/resources/preReg/file/morethan10mbpdf.pdf new file mode 100644 index 00000000000..00b1eeac2d7 Binary files /dev/null and b/apitest/src/main/resources/preReg/file/morethan10mbpdf.pdf differ diff --git a/apitest/src/main/resources/preReg/file/morethan1mb.PDF b/apitest/src/main/resources/preReg/file/morethan1mb.PDF new file mode 100644 index 00000000000..af7279bbb61 Binary files /dev/null and b/apitest/src/main/resources/preReg/file/morethan1mb.PDF differ diff --git a/apitest/src/main/resources/preReg/file/morethan2mb.pdf b/apitest/src/main/resources/preReg/file/morethan2mb.pdf new file mode 100644 index 00000000000..f1b4a8c4273 Binary files /dev/null and b/apitest/src/main/resources/preReg/file/morethan2mb.pdf differ diff --git a/apitest/src/main/resources/preReg/file/morethan4mb.pdf b/apitest/src/main/resources/preReg/file/morethan4mb.pdf new file mode 100644 index 00000000000..eb94fd2c683 Binary files /dev/null and b/apitest/src/main/resources/preReg/file/morethan4mb.pdf differ diff --git a/apitest/src/main/resources/preReg/file/morethan5mb.pdf b/apitest/src/main/resources/preReg/file/morethan5mb.pdf new file mode 100644 index 00000000000..dcb7d516b67 Binary files /dev/null and b/apitest/src/main/resources/preReg/file/morethan5mb.pdf differ diff --git a/apitest/src/main/resources/preReg/uploadDocument/doc_POA.pdf b/apitest/src/main/resources/preReg/uploadDocument/doc_POA.pdf new file mode 100644 index 00000000000..7fdb4cac39a Binary files /dev/null and b/apitest/src/main/resources/preReg/uploadDocument/doc_POA.pdf differ diff --git a/apitest/src/main/resources/preReg/uploadDocument/doc_POB.pdf b/apitest/src/main/resources/preReg/uploadDocument/doc_POB.pdf new file mode 100644 index 00000000000..efdbc294498 Binary files /dev/null and b/apitest/src/main/resources/preReg/uploadDocument/doc_POB.pdf differ diff --git a/apitest/src/main/resources/preReg/uploadDocument/doc_POI.pdf b/apitest/src/main/resources/preReg/uploadDocument/doc_POI.pdf new file mode 100644 index 00000000000..b76e5118b73 Binary files /dev/null and b/apitest/src/main/resources/preReg/uploadDocument/doc_POI.pdf differ diff --git a/apitest/src/main/resources/preReg/uploadDocument/doc_POR.pdf b/apitest/src/main/resources/preReg/uploadDocument/doc_POR.pdf new file mode 100644 index 00000000000..efdbc294498 Binary files /dev/null and b/apitest/src/main/resources/preReg/uploadDocument/doc_POR.pdf differ diff --git a/apitest/src/main/resources/preReg/uploadDocument/morethan1mbsmoke.pdf b/apitest/src/main/resources/preReg/uploadDocument/morethan1mbsmoke.pdf new file mode 100644 index 00000000000..005f1600c8c Binary files /dev/null and b/apitest/src/main/resources/preReg/uploadDocument/morethan1mbsmoke.pdf differ diff --git a/apitest/src/main/resources/preReg/uploadDocument/uploadDocument.hbs b/apitest/src/main/resources/preReg/uploadDocument/uploadDocument.hbs new file mode 100644 index 00000000000..e395a206965 --- /dev/null +++ b/apitest/src/main/resources/preReg/uploadDocument/uploadDocument.hbs @@ -0,0 +1,13 @@ +{ + "id": "{{id}}", + "version" : "1.0", + "requesttime" : "{{requesttime}}", + "request" : { + "docCatCode" : "{{docCatCode}}", + "docTypCode" : "{{docTypCode}}", + "langCode" : "{{langCode}}" + }, + "preRegistrationId": "{{preRegistrationId}}", + "filePath": "{{filePath}}", + "fileKeyName": "{{fileKeyName}}" +} \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/uploadDocument/uploadDocument.yml b/apitest/src/main/resources/preReg/uploadDocument/uploadDocument.yml new file mode 100644 index 00000000000..be0b4e6cfd4 --- /dev/null +++ b/apitest/src/main/resources/preReg/uploadDocument/uploadDocument.yml @@ -0,0 +1,1090 @@ +UploadDocument: + Prereg_UploadDocument_All_Valid_Smoke_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POA", + "docTypCode" : "RNC", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POA.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POA.pdf", +"docCatCode":"POA", +"docTypCode":"RNC", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_Rebook_the_booked_appoinment_Smoke_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POA", + "docTypCode" : "RNC", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POA.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POA.pdf", +"docCatCode":"POA", +"docTypCode":"RNC", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_All_Valid_Smoke_POI_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POI", + "docTypCode" : "CIN", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POI.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POI.pdf", +"docCatCode":"POI", +"docTypCode":"CIN", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_All_Valid_Smoke_POB_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POB", + "docTypCode" : "COB", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POB.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POB.pdf", +"docCatCode":"POB", +"docTypCode":"COB", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_All_Valid_Smoke_POR_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POR", + "docTypCode" : "CRN", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POR.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POR.pdf", +"docCatCode":"POR", +"docTypCode":"CRN", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_All_Valid_Smoke_UpdateDocRefID_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POA", + "docTypCode" : "RNC", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_UpdateDocRefID_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POA.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POA.pdf", +"docCatCode":"POA", +"docTypCode":"RNC", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_All_Valid_Smoke_POI_UpdateDocRefID_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POI", + "docTypCode" : "CIN", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_UpdateDocRefID_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POI.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POI.pdf", +"docCatCode":"POI", +"docTypCode":"CIN", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_All_Valid_Smoke_POB_UpdateDocRefID_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POB", + "docTypCode" : "COB", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_UpdateDocRefID_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POB.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POB.pdf", +"docCatCode":"POB", +"docTypCode":"COB", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_All_Valid_Smoke_POR_UpdateDocRefID_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POR", + "docTypCode" : "CRN", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_UpdateDocRefID_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POR.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POR.pdf", +"docCatCode":"POR", +"docTypCode":"CRN", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_All_Valid_Smoke_BookByPRID_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POA", + "docTypCode" : "RNC", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POA.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POA.pdf", +"docCatCode":"POA", +"docTypCode":"RNC", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_All_Valid_Smoke_POI_BookByPRID_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POI", + "docTypCode" : "CIN", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POI.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POI.pdf", +"docCatCode":"POI", +"docTypCode":"CIN", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_All_Valid_Smoke_POB_BookByPRID_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POB", + "docTypCode" : "COB", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POB.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POB.pdf", +"docCatCode":"POB", +"docTypCode":"COB", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_All_Valid_Smoke_POR_BookByPRID_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POR", + "docTypCode" : "CRN", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_BookByPRID_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POR.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POR.pdf", +"docCatCode":"POR", +"docTypCode":"CRN", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_Valid_Smoke_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POA", + "docTypCode" : "RNC", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_Valid_Smoke_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POA.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POA.pdf", +"docCatCode":"POA", +"docTypCode":"RNC", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_Valid_Smoke_POI_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POI", + "docTypCode" : "CIN", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_Valid_Smoke_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POI.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POI.pdf", +"docCatCode":"POI", +"docTypCode":"CIN", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_Valid_POB_Smoke_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POB", + "docTypCode" : "COB", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_Valid_Smoke_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POB.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POB.pdf", +"docCatCode":"POB", +"docTypCode":"COB", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_Valid_POR_Smoke_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POR", + "docTypCode" : "CRN", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_Valid_Smoke_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POR.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POR.pdf", +"docCatCode":"POR", +"docTypCode":"CRN", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_Smoke_alldel_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POA", + "docTypCode" : "RNC", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_Smoke_alldel_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POA.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POA.pdf", +"docCatCode":"POA", +"docTypCode":"RNC", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_Smoke_POI_alldel_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POI", + "docTypCode" : "CIN", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_Smoke_alldel_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POI.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POI.pdf", +"docCatCode":"POI", +"docTypCode":"CIN", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_Smoke_POB_alldel_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POB", + "docTypCode" : "COB", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_Smoke_alldel_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POB.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POB.pdf", +"docCatCode":"POB", +"docTypCode":"COB", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_Smoke_POR_alldel_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POR", + "docTypCode" : "CRN", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_Smoke_alldel_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POR.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POR.pdf", +"docCatCode":"POR", +"docTypCode":"CRN", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_Smoke_cancellappointment_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POA", + "docTypCode" : "RNC", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_Smoke_CancellAppointment_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POA.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POA.pdf", +"docCatCode":"POA", +"docTypCode":"RNC", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_Smoke_cancellappointment_POI_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POI", + "docTypCode" : "CIN", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_Smoke_CancellAppointment_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POI.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POI.pdf", +"docCatCode":"POI", +"docTypCode":"CIN", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_Smoke_cancellappointment_POB_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POB", + "docTypCode" : "COB", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_Smoke_CancellAppointment_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POB.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POB.pdf", +"docCatCode":"POB", +"docTypCode":"COB", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_Smoke_cancellappointment_POR_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POR", + "docTypCode" : "CRN", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_Smoke_CancellAppointment_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POR.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POR.pdf", +"docCatCode":"POR", +"docTypCode":"CRN", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_Smoke_CancelApplicationsAppointment_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POA", + "docTypCode" : "RNC", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_Smoke_CancelApplicationsAppointment_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POA.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POA.pdf", +"docCatCode":"POA", +"docTypCode":"RNC", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_Smoke_CancelApplicationsAppointment_POI_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POI", + "docTypCode" : "CIN", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_Smoke_CancelApplicationsAppointment_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POI.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POI.pdf", +"docCatCode":"POI", +"docTypCode":"CIN", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_Smoke_CancelApplicationsAppointment_POB_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POB", + "docTypCode" : "COB", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_Smoke_CancelApplicationsAppointment_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POB.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POB.pdf", +"docCatCode":"POB", +"docTypCode":"COB", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_Smoke_CancelApplicationsAppointment_POR_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POR", + "docTypCode" : "CRN", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_Smoke_CancelApplicationsAppointment_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POR.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POR.pdf", +"docCatCode":"POR", +"docTypCode":"CRN", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_inValid_docTypCode_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/error + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POA", + "docTypCode" : "address", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POA.pdf", + "fileKeyName": "file" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_017" + } + ] +}' + Prereg_UploadDocument_blank_docTypCode_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/error + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POA", + "docTypCode" : "", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POA.pdf", + "fileKeyName": "file" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_017" + + ] +}' + Prereg_UploadDocument_missing_docTypCode_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/error + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POA", + "docTypCode" : "$REMOVE$", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POA.pdf", + "fileKeyName": "file" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_017" + } + ] +}' + Prereg_UploadDocument_blank_doccatCode_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/error + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "", + "docTypCode" : "RNC", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POA.pdf", + "fileKeyName": "file" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_018" + } + ] +}' + Prereg_UploadDocument_missing_doccatCode_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/error + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "$REMOVE$", + "docTypCode" : "RNC", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POA.pdf", + "fileKeyName": "file" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_018" + } + ] +}' + Prereg_UploadDocument_Invalid_doccatCode_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/error + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "shsu434@3", + "docTypCode" : "RNC", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POA.pdf", + "fileKeyName": "file" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_018" + } + ] +}' + Prereg_UploadDocument_Invalid_langCode_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/error + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POA", + "docTypCode" : "RNC", + "langCode" : "fdjdikdjda", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POA.pdf", + "fileKeyName": "file" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_014", + "message": "Lang code is invalid" + } + ] +}' + Prereg_UploadDocument_missing_langCode_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/error + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POA", + "docTypCode" : "RNC", + "langCode" : "$REMOVE$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POA.pdf", + "fileKeyName": "file" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_CORE_REQ_014", + "message": "Lang code is invalid" + } + ] +}' + Prereg_UploadDocument_inValid_id_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/error + input: '{ + "id": "mossjsnam54ent.upload", + "docCatCode" : "POA", + "docTypCode" : "RNC", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POA.pdf", + "fileKeyName": "file" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_CORE_001", + "message": "Request id is invalid" + } + ] +}' + Prereg_UploadDocument_Blank_id_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/error + input: '{ + "id": "", + "docCatCode" : "POA", + "docTypCode" : "RNC", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POA.pdf", + "fileKeyName": "file" +}' + output: '{ + "errors": [ + { + "errorCode": "PRG_PAM_CORE_001", + "message": "Request id is invalid" + } + ] +}' + + + + Prereg_UploadDocument_All_Valid_Smoke_expiry_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POA", + "docTypCode" : "RNC", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_for_expiry_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POA.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POA.pdf", +"docCatCode":"POA", +"docTypCode":"RNC", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_All_Valid_Smoke_POI_expired_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POI", + "docTypCode" : "CIN", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_for_expiry_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POI.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POI.pdf", +"docCatCode":"POI", +"docTypCode":"CIN", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_All_Valid_Smoke_POB_expired_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POB", + "docTypCode" : "COB", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_for_expiry_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POB.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POB.pdf", +"docCatCode":"POB", +"docTypCode":"COB", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_All_Valid_Smoke_POR_expired_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POR", + "docTypCode" : "CRN", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_All_Valid_Smoke_for_expiry_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POR.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POR.pdf", +"docCatCode":"POR", +"docTypCode":"CRN", +"docFileFormat":"pdf" +}' + + Prereg_UploadDocument_All_Valid_Smoke_cancell_pending_appoinment_prid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POA", + "docTypCode" : "RNC", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_cancell_pending_appoinment_prid_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POA.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POA.pdf", +"docCatCode":"POA", +"docTypCode":"RNC", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_All_Valid_Smoke_POI_cancell_pending_appoinment_prid_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POI", + "docTypCode" : "CIN", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_cancell_pending_appoinment_prid_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POI.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POI.pdf", +"docCatCode":"POI", +"docTypCode":"CIN", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_All_Valid_Smoke_POB_cancell_pending_appoinment_prid_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POB", + "docTypCode" : "COB", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_cancell_pending_appoinment_prid_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POB.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POB.pdf", +"docCatCode":"POB", +"docTypCode":"COB", +"docFileFormat":"pdf" +}' + Prereg_UploadDocument_All_Valid_Smoke_POR_cancell_pending_appoinment_prid_sid: + endPoint: /preregistration/v1/documents/{preRegistrationId} + role: batch + restMethod: post + inputTemplate: preReg/uploadDocument/uploadDocument + outputTemplate: preReg/uploadDocument/uploadDocumentResult + input: '{ + "id": "mosip.pre-registration.document.upload", + "docCatCode" : "POR", + "docTypCode" : "CRN", + "langCode" : "$1STLANG$", + "requesttime" : "$TIMESTAMP$", + "preRegistrationId": "$ID:CreatePrereg_cancell_pending_appoinment_prid_sid_preRegistrationId$", + "filePath": "preReg/uploadDocument/doc_POR.pdf", + "fileKeyName": "file" +}' + output: '{ +"id":"mosip.pre-registration.document.upload", +"docName":"doc_POR.pdf", +"docCatCode":"POR", +"docTypCode":"CRN", +"docFileFormat":"pdf" +}' \ No newline at end of file diff --git a/apitest/src/main/resources/preReg/uploadDocument/uploadDocumentResult.hbs b/apitest/src/main/resources/preReg/uploadDocument/uploadDocumentResult.hbs new file mode 100644 index 00000000000..9f6fc5e082b --- /dev/null +++ b/apitest/src/main/resources/preReg/uploadDocument/uploadDocumentResult.hbs @@ -0,0 +1,8 @@ +{ +"response":{ + "docName":"{{docName}}", + "docCatCode":"{{docCatCode}}", + "docTypCode":"{{docTypCode}}", + "docFileFormat":"{{docFileFormat}}" + } +} \ No newline at end of file diff --git a/apitest/src/main/resources/spring.properties b/apitest/src/main/resources/spring.properties new file mode 100644 index 00000000000..21fdcd3ec79 --- /dev/null +++ b/apitest/src/main/resources/spring.properties @@ -0,0 +1,329 @@ +#Please change only required values +logging.level.io.mosip.registrtaion=DEBUG + +hibernate.hbm2ddl.auto=none +hibernate.dialect=org.hibernate.dialect.DerbyTenSevenDialect +hibernate.show_sql=false +hibernate.format_sql=false +hibernate.connection.charSet=utf8 +hibernate.cache.use_second_level_cache=false +hibernate.cache.use_query_cache=false +hibernate.cache.use_structured_entries=false +hibernate.generate_statistics=false + +#otp validation time details +otp_validity_in_mins=2 + + +#Timeout Configuration +HTTP_API_READ_TIMEOUT = 60000 +HTTP_API_WRITE_TIMEOUT = 60000 + +#Biometric Device +PROVIDER_NAME = Mantra +WEBCAM_LIBRARY_NAME = sarxos + +#document scanner properties +DOCUMENT_SCANNER_DEPTH=10 +DOCUMENT_SCANNER_HOST=192.168.43.253 +DOCUMENT_SCANNER_PORT=6566 +DOCUMENT_SCANNER_TIMEOUT=5000 + +#Client ID and Secret Key +AUTH_CLIENT_ID=registration-client +AUTH_SECRET_KEY=c6f69439-f811-4415-8ebc-4c9e447c901e + +spring.cloud.config.uri=LOCAL +spring.application.name= +spring.profiles.active= +spring.cloud.config.label= + +#AUTH_SDK +mosip.registration.face.provider=com.identy.IdentyBioSDK +mosip.registration.iris.provider=com.identy.IdentyBioSDK +mosip.registration.finger.provider=com.identy.IdentyBioSDK + + +#MDM +#host has to be clarified whether nedd to be in config or hardcoded +mdm.host=127.0.0.1 +#portRangeFrom and portRangeTo are mandate,portRangeTo can be same are greater than then portRangeFrom +mdm.portRangeFrom=4500 +mdm.portRangeTo=4510 +mdm.contextPath= +mdm.hostProtocol=http + +mdm.deviceInfo.service.path=deviceInfo +mdm.deviceInfo.service.headers=Content-Type:APPLICATION/JSON +mdm.deviceInfo.service.httpmethod=GET +mdm.deviceInfo.service.responseType=java.lang.Object + +mdm.capture.service.path=capture +mdm.capture.service.headers=Content-Type:APPLICATION/JSON +mdm.capture.service.httpmethod=POST +mdm.deviceInfo.service.responseType=java.lang.Object + +mdm.deviceDiscovery.service.path=deviceDiscovery +mdm.deviceDiscovery.service.headers=Content-Type:APPLICATION/JSON +mdm.deviceDiscovery.service.httpmethod=POST +mdm.deviceDiscovery.service.responseType=java.lang.Object + +mosip.kernel.idobjectvalidator.file-storage-uri=LOCAL +mosip.kernel.idobjectvalidator.schema-name=mosip-identity-json-schema.json +mosip.kernel.idobjectvalidator.property-source=LOCAL +mosip.kernel.keymanager-service-sign-url= + +mosip.country.code=MOR + +#onboarded_user details +user_machine_mapping.service.url=https://qa.mosip.io/v1/masterdata/registrationmachineusermappings +user_machine_mapping.service.httpmethod=PUT +user_machine_mapping.service.requestType=java.lang.Object +user_machine_mapping.service.headers=Content-Type:APPLICATION/JSON +user_machine_mapping.service.authrequired=true +user_machine_mapping.service.signrequired=false +user_machine_mapping.service.authheader=Authorization:OAUTH +user_machine_mapping.service.requestsignrequired=true + +#packet_status details +packet_status.service.url=https://qa.mosip.io/registrationprocessor/v1/registrationstatus/search +packet_status.service.httpmethod=POST +packet_status.service.responseType=java.util.LinkedHashMap +packet_status.service.headers=Content-Type:APPLICATION/JSON +packet_status.service.authrequired=true +packet_status.service.signrequired=false +packet_status.service.authheader=Authorization:OAUTH +packet_status.service.requestsignrequired=true + +#sms +sms.service.url=https://qa.mosip.io/v1/smsnotifier/sms/send +sms.service.httpmethod=POST +sms.service.requestType=java.lang.Object +sms.service.headers=Content-Type:APPLICATION/JSON +sms.service.authrequired=true +sms.service.signrequired=false +sms.service.authheader=Authorization:OAUTH +sms.service.requestsignrequired=true + +#email +email.service.url=https://qa.mosip.io/v1/emailnotifier/email/send +email.service.httpmethod=POST +email.service.requestType=java.lang.Object +email.service.headers=Content-Type:multipart/form-data +email.service.authrequired=true +email.service.signrequired=false +email.service.authheader=Authorization:OAUTH +email.service.requestsignrequired=true + +#Upload +packet_upload.service.url=https://qa.mosip.io/registrationprocessor/v1/packetreceiver/registrationpackets +packet_upload.service.httpmethod=POST +packet_upload.service.requestType=java.lang.String +packet_upload.service.headers=Content-Type:multipart/form-data +packet_upload.service.authrequired=true +packet_upload.service.signrequired=false +packet_upload.service.authheader=Authorization:OAUTH +packet_upload.service.service.requestsignrequired=true + +#Packet Sync +packet_sync.service.url=https://qa.mosip.io/registrationprocessor/v1/registrationstatus/sync +packet_sync.service.httpmethod=POST +packet_sync.service.requestType=java.lang.Object +packet_sync.service.headers=Content-Type:APPLICATION/JSON,timestamp:timestamp,Center-Machine-RefId:centerId +packet_sync.service.authrequired=true +packet_sync.service.signrequired=false +packet_sync.service.authheader=Authorization:OAUTH +packet_sync.service.service.requestsignrequired=true + +#policy sync +policysync.service.url= https://qa.mosip.io/v1/syncdata/publickey/REGISTRATION +policysync.service.httpmethod=GET +policysync.service.responseType=java.util.LinkedHashMap +policysync.service.headers=Content-Type:APPLICATION/JSON +policysync.service.authrequired=true +policysync.service.signrequired=false +policysync.service.authheader=Authorization:OAUTH +policysync.service.service.requestsignrequired=true + +#Pre-Registration Get Pre-Reg Id's +get_pre_registration_Ids.service.url=https://qa.mosip.io/preregistration/v1/sync +get_pre_registration_Ids.service.httpmethod=POST +get_pre_registration_Ids.service.requestType=java.lang.Object +get_pre_registration_Ids.service.headers=Content-Type:APPLICATION/JSON +get_pre_registration_Ids.service.authrequired=true +get_pre_registration_Ids.service.signrequired=false +get_pre_registration_Ids.service.authheader=Authorization:OAUTH +get_pre_registration_Ids.service.requestsignrequired=true + +#Pre-Registration Get Pre-Reg packet +get_pre_registration.service.url=https://qa.mosip.io/preregistration/v1/sync/{pre_registration_id} +get_pre_registration.service.httpmethod=GET +get_pre_registration.service.responseType=java.lang.Object +get_pre_registration.service.headers=Content-Type:APPLICATION/JSON +get_pre_registration.service.authrequired=true +get_pre_registration.service.signrequired=false +get_pre_registration.service.authheader=Authorization:OAUTH +get_pre_registration.service.requestsignrequired=true + +#master_sync details +master_sync.service.url=https://qa.mosip.io/v1/syncdata/masterdata +master_sync.service.httpmethod=GET +master_sync.service.responseType=java.lang.Object +master_sync.service.headers=Content-Type:application/json;charset=UTF-8 +master_sync.service.authrequired=true +master_sync.service.signrequired=false +master_sync.service.authheader=Authorization:OAUTH +master_sync.service.requestsignrequired=true + +#Get Global-Config Details +get_registration_center_config.service.url=https://qa.mosip.io/v1/syncdata/configs +get_registration_center_config.service.httpmethod=GET +get_registration_center_config.service.responseType=java.util.LinkedHashMap +get_registration_center_config.service.headers=Content-Type:APPLICATION/JSON +get_registration_center_config.service.authrequired=true +get_registration_center_config.service.signrequired=false +get_registration_center_config.service.authheader=Authorization:OAUTH +get_registration_center_config.service.requestsignrequired=true + +#Send OTP +send_otp.service.url=https://qa.mosip.io/v1/authmanager/authenticate/sendotp +send_otp.service.httpmethod=POST +send_otp.service.requestType=java.lang.Object +send_otp.service.headers=Content-Type:APPLICATION/JSON +send_otp.service.authrequired=true +send_otp.service.signrequired=false +send_otp.service.authheader=Authorization:OAUTH +send_otp.service.requestsignrequired=false + +#Validate Authorization Token +validate_auth_token.service.url=https://qa.mosip.io/v1/authmanager/authorize/admin/validateToken +validate_auth_token.service.httpmethod=POST +validate_auth_token.service.requestType=java.lang.Object +validate_auth_token.service.headers=Content-Type:APPLICATION/JSON +validate_auth_token.service.authrequired=true +validate_auth_token.service.signrequired=false +validate_auth_token.service.authheader=Authorization:OAUTH +validate_auth_token.service.requestsignrequired=false + +#Authentication API +auth_by_password.service.url=https://qa.mosip.io/v1/authmanager/authenticate/useridPwd +auth_by_otp.service.url=https://qa.mosip.io/v1/authmanager/authenticate/useridOTP +auth_by_clientid_secretkey.service.url=https://qa.mosip.io/v1/authmanager/authenticate/clientidsecretkey + +#user details +user_details.service.url=https://qa.mosip.io/v1/syncdata/userdetails/{regid} +user_details.service.httpmethod=GET +user_details.service.responseType=java.lang.Object +user_details.service.headers=Content-Type:APPLICATION/JSON +user_details.service.authrequired=true +user_details.service.signrequired=false +user_details.service.authheader=Authorization:OAUTH +user_details.service.requestsignrequired=true + +#Invalidate Authorization Token +invalidate_auth_token.service.url=https://qa.mosip.io/v1/authmanager/authorize/invalidateToken +invalidate_auth_token.service.httpmethod=POST +invalidate_auth_token.service.requestType=java.lang.Object +invalidate_auth_token.service.headers=Content-Type:APPLICATION/JSON +invalidate_auth_token.service.authrequired=true +invalidate_auth_token.service.signrequired=false +invalidate_auth_token.service.authheader=Authorization:OAUTH +invalidate_auth_token.service.requestsignrequired=false + +#public_key details +public_key.service.url=https://qa.mosip.io/v1/keymanager/publickey/KERNEL +public_key.service.httpmethod=GET +public_key.service.responseType=java.lang.Object +public_key.service.headers=Content-Type:APPLICATION/JSON +public_key.service.authrequired=true +public_key.service.signrequired=false +public_key.service.authheader=Authorization:OAUTH +public_key.service.requestsignrequired=true + +#public_key details +public_key.service.url=https://qa.mosip.io/v1/keymanager/publickey/KERNEL +public_key.service.httpmethod=GET +public_key.service.responseType=java.lang.Object +public_key.service.headers=Content-Type:APPLICATION/JSON +public_key.service.authrequired=true +public_key.service.signrequired=false +public_key.service.authheader=Authorization:OAUTH +public_key.service.requestsignrequired=true + +#user_salt_details details +user_salt_details.service.url=https://qa.mosip.io/v1/authmanager/usersaltdetails/registrationclient +user_salt_details.service.httpmethod=GET +user_salt_details.service.responseType=java.lang.Object +user_salt_details.service.headers=Content-Type:APPLICATION/JSON +user_salt_details.service.authrequired=true +user_salt_details.service.signrequired=false +user_salt_details.service.authheader=Authorization:OAUTH +user_salt_details.service.requestsignrequired=true + +#SignatureResponseUrl's +mosip.kernel.signature.cryptomanager-encrypt-url=https://qa.mosip.io/v1/cryptomanager/private/encrypt +mosip.kernel.keymanager-service-publickey-url=https://qa.mosip.io/v1/keymanager/publickey/{applicationId} +auth.server.validate.url=https://qa.mosip.io/v1/authmanager/authorize/validateToken +auth.server.refreshToken.url=https://qa.mosip.io/v1/authmanager/authorize/refreshToken + +#master_sync details +center_remap_sync.service.url=https://qa.mosip.io/v1/syncdata/masterdata/{regcenterId} +center_remap_sync.service.httpmethod=GET +center_remap_sync.service.responseType=java.lang.Object +center_remap_sync.service.headers=Content-Type:application/json;charset=UTF-8 +center_remap_sync.service.authrequired=true +center_remap_sync.service.signrequired=false +center_remap_sync.service.authheader=Authorization:OAUTH +center_remap_sync.service.requestsignrequired=true + +#ida_key details +ida_key.service.url=https://qa.mosip.io/v1/keymanager/publickey/IDA +ida_key.service.httpmethod=GET +ida_key.service.responseType=java.util.LinkedHashMap +ida_key.service.headers=Content-Type:APPLICATION/JSON +ida_key.service.authrequired=true +ida_key.service.signrequired=false +ida_key.service.authheader=Authorization:OAUTH +ida_key.service.requestsignrequired=true + +#ida_auth details +ida_auth.service.url=https://qa.mosip.io/idauthentication/v1/internal/auth +ida_auth.service.httpmethod=POST +ida_auth.service.responseType=java.util.LinkedHashMap +ida_auth.service.headers=Content-Type:APPLICATION/JSON +ida_auth.service.authrequired=true +ida_auth.service.signrequired=false +ida_auth.service.authheader=Authorization:OAUTH +ida_auth.service.requestsignrequired=true + +#TPM Public Key Upload +tpm_public_key.service.url=https://qa.mosip.io/v1/syncdata/tpm/publickey +tpm_public_key.service.httpmethod=POST +tpm_public_key.service.responseType=java.lang.Object +tpm_public_key.service.headers=Content-Type:APPLICATION/JSON +tpm_public_key.service.authrequired=true +tpm_public_key.service.signrequired=false +tpm_public_key.service.authheader=Authorization:OAUTH +ida_auth.service.requestsignrequired=false + +#Main Properties +mosip.reg.client.url=https://devops.mosip.io/artifactory/libs-release/io/mosip/registration/registration-client/ +mosip.reg.logpath=../logs +mosip.reg.packetstorepath=../PacketStore +mosip.reg.healthcheck.url=https://qa.mosip.io/v1/authmanager/actuator/health +mosip.reg.rollback.path=../BackUp +mosip.reg.db.key=bW9zaXAxMjM0NQ\=\= +mosip.reg.cerpath=/cer//mosip_cer.cer +mosip.reg.xml.file.url=https://devops.mosip.io/artifactory/libs-release/io/mosip/registration/registration-client/maven-metadata.xml +mosip.reg.dbpath=db/reg +mosip.reg.client.tpm.availability=N + +#Cryptomanger +session_key.service.url=https://qa.mosip.io/v1/cryptomanager/encrypt +session_key.service.httpmethod=POST +session_key.service.requestType=java.lang.Object +session_key.service.headers=Content-Type:APPLICATION/JSON +session_key.service.authrequired=true +session_key.service.signrequired=false +session_key.service.authheader=Authorization:OAUTH +session_key.service.service.requestsignrequired=true diff --git a/apitest/src/main/resources/validations.properties b/apitest/src/main/resources/validations.properties new file mode 100644 index 00000000000..18ecaa8bf2a --- /dev/null +++ b/apitest/src/main/resources/validations.properties @@ -0,0 +1,34 @@ +#field = regex ,isMandatory +preRegistrationId=\\d{0,30} ,true +parentName=(.){0,50} ,true +parentName_ontype=(.){0,50} ,true +parentRegId=\\d{0,} ,true +parentRegId_ontype=\\d{0,} ,true +parentUinId=\\d{0,} ,true +parentUinId_ontype=\\d{0,} ,true +parentNameLocalLanguage=(.){0,50} ,true +parentNameLocalLanguage_ontype=(.){0,50} ,true +ageField=\\d{0,3} ,true +ageField_ontype=\\d{0,3} ,true +ageFieldLocalLanguage=\\d{0,3} ,true +parentRegIdLocalLanguage=\\d{0,} ,true +parentRegIdLocalLanguage_ontype=\\d{0,} ,true +parentUinIdLocalLanguage=\\d{0,} ,true +parentUinIdLocalLanguage_ontype=\\d{0,} ,true +ddLocalLanguage=\\d{0,2} ,true +mmLocalLanguage=\\d{0,2} ,true +yyyyLocalLanguage=\\d{4} ,true +dd=\\d{0,2} ,true +mm=\\d{0,2} ,true +yyyy=\\d{4} ,true +dd_ontype=\\d{0,2} ,true +mm_ontype=\\d{0,2} ,true +yyyy_ontype=\\d{0,4} ,true +ddLocalLanguage_ontype=\\d{0,2} ,true +mmLocalLanguage_ontype=\\d{0,2} ,true +yyyyLocalLanguage_ontype=\\d{0,4} ,true +otp=(.){0,10} ,true +cniOrPinNumber=\\d{10,30} ,true +cniOrPinNumberLocalLanguage=\\d{10,30} ,true +cniOrPinNumber_ontype=\\d{10,30} ,true +cniOrPinNumberLocalLanguage_ontype=\\d{10,30} ,true diff --git a/apitest/testNgXmlFiles/preregApi.xml b/apitest/testNgXmlFiles/preregApi.xml new file mode 100644 index 00000000000..ced08364d9b --- /dev/null +++ b/apitest/testNgXmlFiles/preregApi.xml @@ -0,0 +1,335 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/db_release_scripts/mosip_prereg/ddl/prereg-anonymous_profile.sql b/db_release_scripts/mosip_prereg/ddl/prereg-anonymous_profile.sql deleted file mode 100644 index 1dbfb0b3572..00000000000 --- a/db_release_scripts/mosip_prereg/ddl/prereg-anonymous_profile.sql +++ /dev/null @@ -1,30 +0,0 @@ --- ------------------------------------------------------------------------------------------------- --- Database Name: mosip_prereg --- Table Name : prereg.anonymous_profile --- Purpose : Anonymous profile: --- --- Create By : Ram --- Created Date : Sept-2021 --- ------------------------------------------------------------------------------------------ --- --- ------------------------------------------------------------------------------------------ - --- object: prereg.prereg.anonymous_profile | type: TABLE -- --- DROP TABLE IF EXISTS prereg.prereg.anonymous_profile CASCADE; - - - -CREATE TABLE IF NOT EXISTS prereg.anonymous_profile -( - id character varying(36) NOT NULL, - profile character varying NOT NULL, - cr_by character varying(256) NOT NULL, - cr_dtimes timestamp without time zone NOT NULL, - upd_by character varying(256), - upd_dtimes timestamp without time zone, - is_deleted boolean, - del_dtimes timestamp without time zone, - CONSTRAINT anonymous_profile_pkey PRIMARY KEY (id) -); - --- ddl-end -- diff --git a/db_release_scripts/mosip_prereg/ddl/prereg-applications.sql b/db_release_scripts/mosip_prereg/ddl/prereg-applications.sql deleted file mode 100644 index 1044cb6b6aa..00000000000 --- a/db_release_scripts/mosip_prereg/ddl/prereg-applications.sql +++ /dev/null @@ -1,33 +0,0 @@ --- ------------------------------------------------------------------------------------------------- --- Database Name: mosip_prereg --- Table Name : prereg.applications --- Purpose : Applications: --- --- Create By : Ram Bhatt --- Created Date : Aug-2021 --- --- Modified Date Modified By Comments / Remarks --- ------------------------------------------------------------------------------------------ --- --- ------------------------------------------------------------------------------------------ --- object: prereg.applications | type: TABLE -- --- DROP TABLE IF EXISTS prereg.applications CASCADE; -CREATE TABLE prereg.applications( - application_id character varying(36) NOT NULL, - booking_type character varying(256) NOT NULL, - booking_status_code character varying(256), - application_status_code character varying(256), - registration_center_id character varying(10), - appointment_date date, - booking_date date, - slot_from_time timestamp without time zone, - slot_to_time timestamp without time zone, - contact_info character varying(256), - cr_by character varying(256) NOT NULL, - cr_dtimes timestamp without time zone NOT NULL, - upd_by character varying(256), - upd_dtimes timestamp without time zone, - CONSTRAINT appid_pk PRIMARY KEY (application_id) - -); --- ddl-end -- diff --git a/db_release_scripts/mosip_prereg/ddl/prereg-otp_transaction.sql b/db_release_scripts/mosip_prereg/ddl/prereg-otp_transaction.sql deleted file mode 100644 index d6d8d544b6f..00000000000 --- a/db_release_scripts/mosip_prereg/ddl/prereg-otp_transaction.sql +++ /dev/null @@ -1,63 +0,0 @@ --- ------------------------------------------------------------------------------------------------- --- Database Name: mosip_prereg --- Table Name : prereg.otp_transaction --- Purpose : OTP Transaction: All OTP related data and validation details are maintained here for Pre Registration module. --- --- Create By : Sadanandegowda DM --- Created Date : Dec-2020 --- --- Modified Date Modified By Comments / Remarks --- ------------------------------------------------------------------------------------------ --- --- ------------------------------------------------------------------------------------------ --- object: prereg.otp_transaction | type: TABLE -- --- DROP TABLE IF EXISTS prereg.otp_transaction CASCADE; -CREATE TABLE prereg.otp_transaction( - id character varying(36) NOT NULL, - ref_id character varying(64) NOT NULL, - otp_hash character varying(512) NOT NULL, - generated_dtimes timestamp, - expiry_dtimes timestamp, - validation_retry_count smallint, - status_code character varying(36), - lang_code character varying(3), - cr_by character varying(256) NOT NULL, - cr_dtimes timestamp NOT NULL, - upd_by character varying(256), - upd_dtimes timestamp, - is_deleted boolean, - del_dtimes timestamp, - CONSTRAINT pk_otpt_id PRIMARY KEY (id) - -); --- ddl-end -- -COMMENT ON TABLE prereg.otp_transaction IS 'OTP Transaction: All OTP related data and validation details are maintained here for Pre Registration module.'; --- ddl-end -- -COMMENT ON COLUMN prereg.otp_transaction.id IS 'ID: OTP id is a unique identifier (UUID) used as an unique key to identify the OTP transaction'; --- ddl-end -- -COMMENT ON COLUMN prereg.otp_transaction.ref_id IS 'Reference ID: Reference ID is a reference information received from OTP requester which can be used while validating the OTP. AM: please give examples of ref_id'; --- ddl-end -- -COMMENT ON COLUMN prereg.otp_transaction.otp_hash IS 'OTP Hash: Hash of id, ref_id and otp which is generated based on the configuration setup and sent to the requester application / module.'; --- ddl-end -- -COMMENT ON COLUMN prereg.otp_transaction.generated_dtimes IS 'Generated Date Time: Date and Time when the OTP was generated'; --- ddl-end -- -COMMENT ON COLUMN prereg.otp_transaction.expiry_dtimes IS 'Expiry Date Time: Date Time when the OTP will be expired'; --- ddl-end -- -COMMENT ON COLUMN prereg.otp_transaction.validation_retry_count IS 'Validation Retry Count: Validation retry counts of this OTP request. If the validation retry crosses the threshold limit, then the OTP will be de-activated.'; --- ddl-end -- -COMMENT ON COLUMN prereg.otp_transaction.status_code IS 'Status Code: Current status of the transaction. Refers to code field of master.status_list table.'; --- ddl-end -- -COMMENT ON COLUMN prereg.otp_transaction.lang_code IS 'Language Code : For multilanguage implementation this attribute Refers master.language.code. The value of some of the attributes in current record is stored in this respective language.'; --- ddl-end -- -COMMENT ON COLUMN prereg.otp_transaction.cr_by IS 'Created By : ID or name of the user who create / insert record.'; --- ddl-end -- -COMMENT ON COLUMN prereg.otp_transaction.cr_dtimes IS 'Created DateTimestamp : Date and Timestamp when the record is created/inserted'; --- ddl-end -- -COMMENT ON COLUMN prereg.otp_transaction.upd_by IS 'Updated By : ID or name of the user who update the record with new values'; --- ddl-end -- -COMMENT ON COLUMN prereg.otp_transaction.upd_dtimes IS 'Updated DateTimestamp : Date and Timestamp when any of the fields in the record is updated with new values.'; --- ddl-end -- -COMMENT ON COLUMN prereg.otp_transaction.is_deleted IS 'IS_Deleted : Flag to mark whether the record is Soft deleted.'; --- ddl-end -- -COMMENT ON COLUMN prereg.otp_transaction.del_dtimes IS 'Deleted DateTimestamp : Date and Timestamp when the record is soft deleted with is_deleted=TRUE'; --- ddl-end -- \ No newline at end of file diff --git a/db_release_scripts/mosip_prereg/prereg_release_db_deploy.sh b/db_release_scripts/mosip_prereg/prereg_release_db_deploy.sh deleted file mode 100644 index 39c2a1fe802..00000000000 --- a/db_release_scripts/mosip_prereg/prereg_release_db_deploy.sh +++ /dev/null @@ -1,92 +0,0 @@ -### -- --------------------------------------------------------------------------------------------------------- -### -- Script Name : Prereg Release DB deploy -### -- Deploy Module : MOSIP Prereg -### -- Purpose : To deploy Prereg Database alter scripts for the release. -### -- Create By : Sadanandegowda -### -- Created Date : 25-Oct-2019 -### -- -### -- Modified Date Modified By Comments / Remarks -### -- ----------------------------------------------------------------------------------------------------------- - -### -- ----------------------------------------------------------------------------------------------------------- - -#########Properties file ############# -set -e -properties_file="$1" -release_version="$2" - echo `date "+%m/%d/%Y %H:%M:%S"` ": Properties File Name - $properties_file" - echo `date "+%m/%d/%Y %H:%M:%S"` ": DB Deploymnet Version - $release_version" -#properties_file="./app.properties" -if [ -f "$properties_file" ] -then - echo `date "+%m/%d/%Y %H:%M:%S"` ": Property file \"$properties_file\" found." - while IFS='=' read -r key value - do - key=$(echo $key | tr '.' '_') - eval ${key}=\${value} - done < "$properties_file" -else - echo `date "+%m/%d/%Y %H:%M:%S"` ": Property file not found, Pass property file name as argument." -fi -echo `date "+%m/%d/%Y %H:%M:%S"` ": ------------------ Database server and service status check for ${MOSIP_DB_NAME}------------------------" - -today=`date '+%d%m%Y_%H%M%S'`; -LOG="${LOG_PATH}${MOSIP_DB_NAME}-release-${release_version}-${today}.log" -touch $LOG - -SERVICE=$(PGPASSWORD=$SU_USER_PWD psql --username=$SU_USER --host=$DB_SERVERIP --port=$DB_PORT --dbname=$DEFAULT_DB_NAME -t -c "select count(1) from pg_roles where rolname IN('sysadmin')";exit; > /dev/null) - -if [ "$SERVICE" -eq 0 ] || [ "$SERVICE" -eq 1 ] -then -echo `date "+%m/%d/%Y %H:%M:%S"` ": Postgres database server and service is up and running" | tee -a $LOG 2>&1 -else -echo `date "+%m/%d/%Y %H:%M:%S"` ": Postgres database server or service is not running" | tee -a $LOG 2>&1 -fi - -echo `date "+%m/%d/%Y %H:%M:%S"` ": ----------------------------------------------------------------------------------------" - -echo `date "+%m/%d/%Y %H:%M:%S"` ": Started sourcing the $MOSIP_DB_NAME Database Alter scripts" | tee -a $LOG 2>&1 - -echo `date "+%m/%d/%Y %H:%M:%S"` ": Database Alter scripts are sourcing from :$BASEPATH/$MOSIP_DB_NAME/" | tee -a $LOG 2>&1 - -#========================================DB Alter Scripts deployment process begins on IDMAP DB SERVER================================== - -echo `date "+%m/%d/%Y %H:%M:%S"` ": Alter scripts deployment on $MOSIP_DB_NAME database is started....Deployment Version...$release_version" | tee -a $LOG 2>&1 - -ALTER_SCRIPT_FILENAME_VERSION="sql/${release_version}_${ALTER_SCRIPT_FILENAME}" - -echo `date "+%m/%d/%Y %H:%M:%S"` ": Alter scripts file which is considered for release deployment - $ALTER_SCRIPT_FILENAME_VERSION" | tee -a $LOG 2>&1 - -cd /$BASEPATH/$MOSIP_DB_NAME/ - -pwd | tee -a $LOG 2>&1 - -CONN=$(PGPASSWORD=$SYSADMIN_PWD psql --username=$SYSADMIN_USER --host=$DB_SERVERIP --port=$DB_PORT --dbname=$DEFAULT_DB_NAME -t -c "SELECT count(pg_terminate_backend(pg_stat_activity.pid)) FROM pg_stat_activity WHERE datname = '$MOSIP_DB_NAME' AND pid <> pg_backend_pid()";exit; >> $LOG 2>&1) - -if [ ${CONN} == 0 ] -then - echo `date "+%m/%d/%Y %H:%M:%S"` ": No active database connections exist on ${MOSIP_DB_NAME}" | tee -a $LOG 2>&1 -else - echo `date "+%m/%d/%Y %H:%M:%S"` ": Active connections exist on the database server and active connection will be terminated for DB deployment." | tee -a $LOG 2>&1 -fi - -if [ ${ALTER_SCRIPT_FLAG} == 1 ] -then - echo `date "+%m/%d/%Y %H:%M:%S"` ": Deploying Alter scripts for ${MOSIP_DB_NAME} database" | tee -a $LOG 2>&1 - PGPASSWORD=$SYSADMIN_PWD psql --username=$SYSADMIN_USER --host=$DB_SERVERIP --port=$DB_PORT --dbname=$DEFAULT_DB_NAME -a -b -f $ALTER_SCRIPT_FILENAME_VERSION >> $LOG 2>&1 -else - echo `date "+%m/%d/%Y %H:%M:%S"` ": There are no alter scripts available for this deployment at ${MOSIP_DB_NAME}" | tee -a $LOG 2>&1 -fi - -if [ $(grep -c ERROR $LOG) -ne 0 ] -then - echo `date "+%m/%d/%Y %H:%M:%S"` ": Database Alter scripts deployment version $release_version is completed with ERRORS, Please check the logs for more information" | tee -a $LOG 2>&1 - echo `date "+%m/%d/%Y %H:%M:%S"` ": END of Alter scripts MOSIP database deployment" | tee -a $LOG 2>&1 -else - echo `date "+%m/%d/%Y %H:%M:%S"` ": Database Alter scripts deployment version $release_version completed successfully, Please check the logs for more information" | tee -a $LOG 2>&1 - echo `date "+%m/%d/%Y %H:%M:%S"` ": END of MOSIP \"${MOSIP_DB_NAME}\" database alter scripts deployment" | tee -a $LOG 2>&1 -fi - -echo "******************************************"`date "+%m/%d/%Y %H:%M:%S"` "*****************************************************" >> $LOG 2>&1 - - diff --git a/db_release_scripts/mosip_prereg/prereg_release_deploy.properties b/db_release_scripts/mosip_prereg/prereg_release_deploy.properties deleted file mode 100644 index cd6939798ef..00000000000 --- a/db_release_scripts/mosip_prereg/prereg_release_deploy.properties +++ /dev/null @@ -1,14 +0,0 @@ -DB_SERVERIP= -DB_PORT=9001 -SU_USER=postgres -SU_USER_PWD= -DEFAULT_DB_NAME=postgres -MOSIP_DB_NAME=mosip_prereg -SYSADMIN_USER=sysadmin -SYSADMIN_PWD= -BASEPATH=/home/madmin/database_release -LOG_PATH=/home/madmin/logs/ -ALTER_SCRIPT_FLAG=1 -ALTER_SCRIPT_FILENAME=prereg-scripts_release.sql -REVOKE_SCRIPT_FLAG=1 -REVOKE_SCRIPT_FILENAME=prereg-scripts_revoke.sql diff --git a/db_release_scripts/mosip_prereg/prereg_revoke_db_deploy.sh b/db_release_scripts/mosip_prereg/prereg_revoke_db_deploy.sh deleted file mode 100644 index edc5ad2cb74..00000000000 --- a/db_release_scripts/mosip_prereg/prereg_revoke_db_deploy.sh +++ /dev/null @@ -1,92 +0,0 @@ -### -- --------------------------------------------------------------------------------------------------------- -### -- Script Name : Prereg Revoke DB deploy -### -- Deploy Module : MOSIP Prereg -### -- Purpose : To revoke Prereg Database alter scripts for the release. -### -- Create By : Sadanandegowda -### -- Created Date : 25-Oct-2019 -### -- -### -- Modified Date Modified By Comments / Remarks -### -- ----------------------------------------------------------------------------------------------------------- - -### -- ----------------------------------------------------------------------------------------------------------- - -#########Properties file ############# -set -e -properties_file="$1" -revoke_version="$2" - echo `date "+%m/%d/%Y %H:%M:%S"` ": $properties_file" - echo `date "+%m/%d/%Y %H:%M:%S"` ": DB Revoke Version - $revoke_version" -#properties_file="./app.properties" -if [ -f "$properties_file" ] -then - echo `date "+%m/%d/%Y %H:%M:%S"` ": Property file \"$properties_file\" found." - while IFS='=' read -r key value - do - key=$(echo $key | tr '.' '_') - eval ${key}=\${value} - done < "$properties_file" -else - echo `date "+%m/%d/%Y %H:%M:%S"` ": Property file not found, Pass property file name as argument." -fi -echo `date "+%m/%d/%Y %H:%M:%S"` ": ------------------ Database server and service status check for ${MOSIP_DB_NAME}------------------------" - -today=`date '+%d%m%Y_%H%M%S'`; -LOG="${LOG_PATH}${MOSIP_DB_NAME}-revoke-${today}.log" -touch $LOG - -SERVICE=$(PGPASSWORD=$SU_USER_PWD psql --username=$SU_USER --host=$DB_SERVERIP --port=$DB_PORT --dbname=$DEFAULT_DB_NAME -t -c "select count(1) from pg_roles where rolname IN('sysadmin')";exit; > /dev/null) - -if [ "$SERVICE" -eq 0 ] || [ "$SERVICE" -eq 1 ] -then -echo `date "+%m/%d/%Y %H:%M:%S"` ": Postgres database server and service is up and running" | tee -a $LOG 2>&1 -else -echo `date "+%m/%d/%Y %H:%M:%S"` ": Postgres database server or service is not running" | tee -a $LOG 2>&1 -fi - -echo `date "+%m/%d/%Y %H:%M:%S"` ": ----------------------------------------------------------------------------------------" - -echo `date "+%m/%d/%Y %H:%M:%S"` ": Started sourcing the $MOSIP_DB_NAME Database Deployment Revoke scripts" | tee -a $LOG 2>&1 - -echo `date "+%m/%d/%Y %H:%M:%S"` ": Database revoke scripts are sourcing from :$BASEPATH/$MOSIP_DB_NAME/alter-scripts" | tee -a $LOG 2>&1 - -#========================================DB Alter Scripts deployment process begins on IDMAP DB SERVER================================== - -echo `date "+%m/%d/%Y %H:%M:%S"` ": Revoke scripts for DB deployment on $MOSIP_DB_NAME database is started....Revoke Version...$revoke_version" | tee -a $LOG 2>&1 - -REVOKE_SCRIPT_FILENAME_VERSION="sql/${revoke_version}_${REVOKE_SCRIPT_FILENAME}" - -echo `date "+%m/%d/%Y %H:%M:%S"` ": Alter scripts file which is considered for deployment revoke - $REVOKE_SCRIPT_FILENAME_VERSION" | tee -a $LOG 2>&1 - -cd /$BASEPATH/$MOSIP_DB_NAME/ - -pwd | tee -a $LOG 2>&1 - -CONN=$(PGPASSWORD=$SYSADMIN_PWD psql --username=$SYSADMIN_USER --host=$DB_SERVERIP --port=$DB_PORT --dbname=$DEFAULT_DB_NAME -t -c "SELECT count(pg_terminate_backend(pg_stat_activity.pid)) FROM pg_stat_activity WHERE datname = '$MOSIP_DB_NAME' AND pid <> pg_backend_pid()";exit; >> $LOG 2>&1) - -if [ ${CONN} == 0 ] -then - echo `date "+%m/%d/%Y %H:%M:%S"` ": No active database connections exist on ${MOSIP_DB_NAME}" | tee -a $LOG 2>&1 -else - echo `date "+%m/%d/%Y %H:%M:%S"` ": Active connections exist on the database server and active connection will be terminated for DB deployment." | tee -a $LOG 2>&1 -fi - -if [ ${REVOKE_SCRIPT_FLAG} == 1 ] -then - echo `date "+%m/%d/%Y %H:%M:%S"` ": Executing revoke scripts for ${MOSIP_DB_NAME} database" | tee -a $LOG 2>&1 - PGPASSWORD=$SYSADMIN_PWD psql --username=$SYSADMIN_USER --host=$DB_SERVERIP --port=$DB_PORT --dbname=$DEFAULT_DB_NAME -a -b -f $REVOKE_SCRIPT_FILENAME_VERSION >> $LOG 2>&1 -else - echo `date "+%m/%d/%Y %H:%M:%S"` ": There are no revoke scripts available for this deployment at ${MOSIP_DB_NAME}" | tee -a $LOG 2>&1 -fi - -if [ $(grep -c ERROR $LOG) -ne 0 ] -then - echo `date "+%m/%d/%Y %H:%M:%S"` ": Database deployment revoke version $revoke_version is completed with ERRORS, Please check the logs for more information" | tee -a $LOG 2>&1 - echo `date "+%m/%d/%Y %H:%M:%S"` ": END of Alter scripts MOSIP database deployment" | tee -a $LOG 2>&1 -else - echo `date "+%m/%d/%Y %H:%M:%S"` ": Database deployment revoke version $revoke_version completed successfully, Please check the logs for more information" | tee -a $LOG 2>&1 - echo `date "+%m/%d/%Y %H:%M:%S"` ": END of MOSIP \"${MOSIP_DB_NAME}\" database deployment revoke" | tee -a $LOG 2>&1 -fi - -echo "******************************************"`date "+%m/%d/%Y %H:%M:%S"` "*****************************************************" >> $LOG 2>&1 - - diff --git a/db_release_scripts/mosip_prereg/sql/1.1.4_prereg-scripts_release.sql b/db_release_scripts/mosip_prereg/sql/1.1.4_prereg-scripts_release.sql deleted file mode 100644 index 4b2cda143eb..00000000000 --- a/db_release_scripts/mosip_prereg/sql/1.1.4_prereg-scripts_release.sql +++ /dev/null @@ -1,21 +0,0 @@ --- ------------------------------------------------------------------------------------------------- --- Database Name: mosip_prereg --- Release Version : 1.1.4 --- Purpose : Database Alter scripts for the release for Pre Registration DB. --- Create By : Sadanandegowda DM --- Created Date : Dec-2020 --- --- Modified Date Modified By Comments / Remarks --- ------------------------------------------------------------------------------------------------- - -\c mosip_prereg sysadmin - -ALTER TABLE prereg.applicant_document ADD COLUMN IF NOT EXISTS doc_ref_id character varying; - - - - -ALTER TABLE prereg.applicant_document_consumed ADD COLUMN IF NOT EXISTS doc_ref_id character varying; - -\ir ../ddl/prereg-otp_transaction.sql - diff --git a/db_release_scripts/mosip_prereg/sql/1.1.4_prereg-scripts_revoke.sql b/db_release_scripts/mosip_prereg/sql/1.1.4_prereg-scripts_revoke.sql deleted file mode 100644 index b3214e93408..00000000000 --- a/db_release_scripts/mosip_prereg/sql/1.1.4_prereg-scripts_revoke.sql +++ /dev/null @@ -1,11 +0,0 @@ --- ------------------------------------------------------------------------------------------------- --- Database Name: mosip_prereg --- Release Version : 1.1.4 --- Purpose : Revoking Database Alter deployement done for release in Pre registration DB. --- Create By : Sadanandegowda DM --- Created Date : Dec-2020 --- --- Modified Date Modified By Comments / Remarks --- ------------------------------------------------------------------------------------------------- - -\c mosip_prereg sysadmin \ No newline at end of file diff --git a/db_release_scripts/mosip_prereg/sql/1.2.0_revoke.sql b/db_release_scripts/mosip_prereg/sql/1.2.0_revoke.sql new file mode 100644 index 00000000000..28328e92fde --- /dev/null +++ b/db_release_scripts/mosip_prereg/sql/1.2.0_revoke.sql @@ -0,0 +1,18 @@ +-- ------------------------------------------------------------------------------------------------- +-- Database Name: mosip_prereg +-- Release Version : 1.2.0 +-- Purpose : Revoking Database Alter deployment done for release in Pre registration DB. +-- Create By : Kamesh Shekhar Prasad +-- Created Date : Aug-2022 +-- +-- Modified Date Modified By Comments / Remarks +-- ------------------------------------------------------------------------------------------------- + +\c mosip_prereg sysadmin + +DROP TABLE IF EXISTS prereg-applications; +DROP TABLE IF EXISTS prereg-anonymous_profile; + +ALTER TABLE prereg.reg_appointment ADD CONSTRAINT fk_rappmnt_id FOREIGN KEY (prereg_id) +REFERENCES prereg.applicant_demographic(prereg_id) MATCH SIMPLE +ON DELETE NO ACTION ON UPDATE NO ACTION; \ No newline at end of file diff --git a/db_release_scripts/mosip_prereg/sql/1.2_prereg-scripts_release.sql b/db_release_scripts/mosip_prereg/sql/1.2_prereg-scripts_release.sql deleted file mode 100644 index b0e5eb06fe6..00000000000 --- a/db_release_scripts/mosip_prereg/sql/1.2_prereg-scripts_release.sql +++ /dev/null @@ -1,22 +0,0 @@ --- ------------------------------------------------------------------------------------------------- --- Database Name: mosip_prereg --- Release Version : 1.2 --- Purpose : Database Alter scripts for the release for Pre Registration DB. --- Create By : Ram Bhatt --- Created Date : Aug-2021 --- --- Modified Date Modified By Comments / Remarks --- ------------------------------------------------------------------------------------------------- --- Sept-2021 Ram Bhatt Creation of Anonymous Profile Table ----------------------------------------------------------------------------------------------------- - -\c mosip_prereg sysadmin - - -\ir ../ddl/prereg-applications.sql - -\ir ../ddl/prereg-anonymous_profile.sql - -ALTER TABLE prereg.reg_appointment DROP CONSTRAINT IF EXISTS fk_rappmnt_id CASCADE; - ------------------------------------------------------------------------------------------------------ diff --git a/db_scripts/README.MD b/db_scripts/README.MD index 4974d791cd1..90735ba5c19 100644 --- a/db_scripts/README.MD +++ b/db_scripts/README.MD @@ -1,178 +1,8 @@ -## MOSIP Pre Registration Module Database scripts inventory and deployment guidelines on postgresql database. +# Pre-regstration Database -#### The details disclosed below gives a clear information on complete database script structure with the instructions for database scripts deployments. +## Overview +This folder containers various SQL scripts to create database and tables in postgres. The tables are described under `/ddl/`. Default data that's populated in the tables is present under `/dml` folder -## Prerequisities +This folder containers various SQL scripts to create database and tables in postgres. These scripts are automatically run with as part of DB initialisation in [Sandbox Deployment](https://docs.mosip.io/1.2.0/deployment/sandbox-deployment) -* DB Server and access details - -* Postgres client (psql) has to be installed on the deployment servers. - -* Copy latest database scripts(DDL, DML, .SH ... etc) from git/repository on to the DB deployment server. - -* Necessary details to be updated in peoperties file against to the releavnt variables being used (details listed below). - -* Database objects related to MOSIP modules are placed in "**mosip_base_directory**>>db_scripts>>mosip_ folder on git/repository - -**Example:** the pre-registration module script folder is /**mosip_base_directory**>>db_scripts>>mosip_prereg where all the database scripts related to pre-registration are available. - -* Create a log file directory on DB deployment server before updating the properties file. Please follow the steps to create the same: - - bash-4.2$mkdir /mosip_base_directory/ - -* If we wish to place the log files under different directory other than the above mentioned then we need to create directory and specify the path of the directory in the properties file. - -* Pull the DB deployment scripts from Git repository to the deployment server and start deploying OR - -* If are pulling to local system from Git repository and pushing them back to deployment server using WinSCP then make a note to modify the following encoding settings in WinSCP before pushing the files to deployment server --> Open WinSCP --> Options --> Preferences --> Transfer --> Edit --> In "Transfer mode" section --> select "Text" --> Click Ok --> Click Ok - -## Each database folder has the following files / folders - -* **ddl folder:** This folder contains all the database data definition language (DDL) scripts to create or alter a database object of this module. - -* **dml folder:** This folder contains the scripts (insert/update/delete scripts) to create seed data / metadata needed to run this module. - -* **mosip__db.sql:** This file contains the database creation script of this module - -* **mosip__grants.sql:** The needed privilege / grants scripts assigned to database user / role to access database objects are described in this file. - -* **mosip_role_user.sql:** The role creation script that will be used by the application to perform DML operations is defined here. - -* **mosip_role_common.sql:** This file contains the common roles creation script that are needed to manage the database. - -* **mosip__ddl_deploy.sql:** This is a wrapper script used to **deploy the DDL scripts available in ddl folder**. This will also be used to prepare the script run sequence to manage all the needed dependency across DB objects being created. - -* **mosip__dml_deploy.sql:** This is a wrapper script used to **deploy the DML scripts available in dml folder**. This will also used to prepare the script run sequence to manage all the needed dependency across DB objects. - -* **mosip__db_deploy.sh:** This is the shell script available and present in each database folders/directories. - -* **mosip__deploy.properties:** This is the properties file name and present in each database. - -* **mosip_pre-registration_db_deployment.sh:** This is the .sh file which is present in /home/madmin/database directory and which will be executed for all database deployment in single command execution. - -**Note :** Not all Modules will have dml scripts. Make necessary changes in the properties file with dml variables for the modules where dml exists. - -**Note :** No need to change anything in the shell script unless it is really causing any problem or any further implementation is being introduced. - -Once we complete with sourcing the database files, we need to follow the below DB deployment process with the modifying the properties file according the requirement. - -## Deployment can be performed in two ways based on the requirement and they are as follows: -1) DB Deployment for all Pre Registration Module databases -2) DB Deployment for single or selected databases - -### Properties file variable details and description: Properties file has to be updated with the required details before proceeding with deployment steps for each databases. - -**DB_SERVERIP:** Contains details of Destination DB SERVER_IP(Ex:10.0.0.1) where the deployment is targeted - -**DB_PORT:** Contains the postgres server port details where the postgres is allowed to connect. Ex: 5433 - -**SU_USER:** Contains the postgres super user name to connect to the postgres database i.e. postgres - -**SU_USER_PWD:** Contains the password for postgres super user - -**DEFAULT_DB_NAME:** Default database name to connect with respective postgres server i.e. ex: postgres - -**MOSIP_DB_NAME:** MOSIP Database name for which the deployment is scheduled. - -**SYSADMIN_USER:** This variable contains the mosip_common_role which indeed is going to be the super user for the remaining actions going to be performed by shell script. - -**SYSADMIN_PWD:** Contains the credential details for SYSADMIN_USER. - -**DBADMIN_PWD:** Contains the credential details for DBADMIN_USER. - -**APPADMIN_PWD:** Contains the credential details for APPADMIN_USER. - -**DBUSER_PWD:** Contains the credential details for dbuserpwd. - -**BASE_PATH:** Path for DB scrips which are kept in the Deployment server. - -**LOG_PATH:** Path where deployment log file will be created - -**COMMON_ROLE_FILENAME:** Contains the common roles creation filename, ex: mosip_role_common.sql - -**APP_ROLE_FILENAME:** Contains specific DB user role creation filename, ex: mosip_role_databaseuser.sql - -**DB_CREATION_FILENAME:** Contains specific DB creation script name, ex: mosip_database_db.sql. - -**ACCESS_GRANT_FILENAME:** This variable contains file name of access provisioning script details for the above created users, ex: mosip__grants.sql. - -**DDL_FILENAME:** DDL script file name, ex:mosip__ddl_deploy.sql. - -**DML_FLAG:** Its a flag variable which contains value as 0 or 1 for any DML existance for the particular DB. if flag=0 then no DML else flag=1. - -**DML_FILENAME:** DML cript file name only if the flag=1, else it will be empty or null, ex: mosip__dml_deploy.sql. - -**Note - Make sure, There is a single empty line at end of the .properties files content and No spaces in beggining and end of the parameter values** - -## DB Deployment for all Pre registration Module databases with single click deployment: - -**Step 1** -> Make prior modification to all the respective database properties files **(mosip__deploy.properties)** in the respective database directories. Path of properties file and variables list remains same as explained above. Once the properties files are ready then access the directory where the deployment script is kept. - -**Step 2** -> Deployment on all databases, run the **"mosip_pre-registration_db_deployment.sh"** script which is avialble in the /database directory. To access **"mosip_pre-registration_db_deployment.sh"** script, follow the below given commands: - - **Enter:-bash-4.2$** cd /home/madmin/database/ - - **Enter:-bash-4.2$** bash mosip_pre-registration_db_deployment.sh - -**Step 3** -> Please observe Post Deployment Validation steps below - -**No modification required to be done on any of the <>.sql files in the database folder. If it is required to be modified then please reach out to database team and have it modified.** - -## DB_Deployment for single or selected databases - -**Step 1:** update the properties(.properties) file with the required parameter values for single or selected databases. - -All these .sh and properties files are kept in each database directories. Please follow the below steps: - -**Step 2** -> Login into Deployment server/VM - -**Step 3** -> check the pwd(present working directory). Make sure we are inside the right database folder/directory to run the deployment for that specific database. - -**Enter:-bash-4.2$** pwd -This should be the path if we are performing deployment for the database name **mosip_schema_name** : /home/madmin/database/mosip_ - -**Step 4** -> Please move all the necessary files from local directory to the deployment server directory under respective databases. - -**Step 5** -> After prior modifications to the properties file, run the below deployment shell script as given: - -**Enter:-bash-4.2$** bash mosip__db_deploy.sh mosip__deploy.properties - -**Step 6** -> Please observe Post Deployment Validation steps below - -**No modification required to be done on any of the <>.sql files in the database folder. If it is required to be modified then please reach out to database team and have it modified.** - -### Post Deployment Validation - -**Note:** If you encounter the following messages then please recheck the details(ip address, port number, database name, password) entered in the properties file, the message would be as follows: - -. - - - - - -**Key points during or after the script execution:** - - * Properties file found message - - * Server status - - * Accessing the right path for DB deploy - - * Creates respective roles - - * Check for any active connections - - * Creates roles, creating Database, schemas, granting access, creating respective tables. - - * Loading data or DML operations valid only for those DB's which carries DML actions. - - * End of sourcing or deployment process. - -**Post deployment process, look out for database deployment log file which captures all stages of deployment. Log file path is defined in the properties file of the databases.** - -**During all the above stages please watch out for any errors which will be capture in the log file.** - -Kindly ignore **NOTICE** or **SKIPPING** messages. As these messages states that particular action is already in place hence sql script ignore performing again. - -### Post deployment process, look out for each database deployment log files which captures all stages of deployment. Log file path is defined in the properties file of the respective databases. +Developers may run the SQLs using `/deploy.sh` script. diff --git a/db_scripts/mosip_pre-registration_db_deployment.sh b/db_scripts/mosip_pre-registration_db_deployment.sh deleted file mode 100644 index 916e43312e1..00000000000 --- a/db_scripts/mosip_pre-registration_db_deployment.sh +++ /dev/null @@ -1,21 +0,0 @@ -### -- --------------------------------------------------------------------------------------------------------- -### -- Script Name : MOSIP ALL DB Artifacts deployment script -### -- Deploy Module : MOSIP PRE-REG Module -### -- Purpose : To deploy MOSIP All Modules Database DB Artifacts. -### -- Create By : Sadanandegowda DM -### -- Created Date : 07-Jan-2020 -### -- -### -- Modified Date Modified By Comments / Remarks -### -- ----------------------------------------------------------------------------------------------------------- - -#! bin/bash -echo "`date` : You logged on to DB deplyment server as : `whoami`" -echo "`date` : MOSIP Database objects deployment started...." - -echo "==============================================================================================================" -bash ./mosip_prereg/mosip_prereg_db_deploy.sh ./mosip_prereg/mosip_prereg_deploy.properties -echo "==============================================================================================================" - - -echo "`date` : MOSIP DB Deployment for pre-reg databases is completed, Please check the logs at respective logs directory for more information" - diff --git a/db_scripts/mosip_prereg/mosip_prereg_db.sql b/db_scripts/mosip_prereg/db.sql similarity index 52% rename from db_scripts/mosip_prereg/mosip_prereg_db.sql rename to db_scripts/mosip_prereg/db.sql index d01caaff1ec..5e5daa81712 100644 --- a/db_scripts/mosip_prereg/mosip_prereg_db.sql +++ b/db_scripts/mosip_prereg/db.sql @@ -1,27 +1,15 @@ -DROP DATABASE IF EXISTS mosip_prereg; CREATE DATABASE mosip_prereg ENCODING = 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' TABLESPACE = pg_default - OWNER = sysadmin + OWNER = postgres TEMPLATE = template0; --- ddl-end -- COMMENT ON DATABASE mosip_prereg IS 'Pre-registration database to store the data that is captured as part of pre-registration process'; --- ddl-end -- -\c mosip_prereg sysadmin +\c mosip_prereg --- object: prereg | type: SCHEMA -- DROP SCHEMA IF EXISTS prereg CASCADE; CREATE SCHEMA prereg; --- ddl-end -- -ALTER SCHEMA prereg OWNER TO sysadmin; --- ddl-end -- - +ALTER SCHEMA prereg OWNER TO postgres; ALTER DATABASE mosip_prereg SET search_path TO prereg,pg_catalog,public; --- ddl-end -- - --- REVOKECONNECT ON DATABASE mosip_prereg FROM PUBLIC; --- REVOKEALL ON SCHEMA prereg FROM PUBLIC; --- REVOKEALL ON ALL TABLES IN SCHEMA prereg FROM PUBLIC ; diff --git a/db_scripts/mosip_prereg/ddl.sql b/db_scripts/mosip_prereg/ddl.sql new file mode 100644 index 00000000000..04a942163d3 --- /dev/null +++ b/db_scripts/mosip_prereg/ddl.sql @@ -0,0 +1,22 @@ +\c mosip_prereg + +\ir ddl/applicant_demographic.sql +\ir ddl/applicant_demographic_consumed.sql +\ir ddl/applicant_document.sql +\ir ddl/applicant_document_consumed.sql +\ir ddl/batch_job_instance.sql +\ir ddl/batch_job_execution.sql +\ir ddl/batch_job_execution_context.sql +\ir ddl/batch_job_execution_param.sql +\ir ddl/batch_step_execution.sql +\ir ddl/batch_step_execution_context.sql +\ir ddl/intf_processed_prereg_list.sql +\ir ddl/processed_prereg_list.sql +\ir ddl/reg_appointment.sql +\ir ddl/reg_appointment_consumed.sql +\ir ddl/reg_available_slot.sql +\ir ddl/otp_transaction.sql +\ir ddl/applications.sql +\ir ddl/fk.sql +\ir ddl/batch-fk.sql +\ir ddl/anonymous_profile.sql diff --git a/db_scripts/mosip_prereg/ddl/anonymous_profile.sql b/db_scripts/mosip_prereg/ddl/anonymous_profile.sql new file mode 100644 index 00000000000..fbc56267db2 --- /dev/null +++ b/db_scripts/mosip_prereg/ddl/anonymous_profile.sql @@ -0,0 +1,14 @@ +--- This table saves anonymous details about the user like year of birth, gender, documents uploaded etc. for each pre-registration application created by the end user. This information is to be used for analytics. +CREATE TABLE IF NOT EXISTS prereg.anonymous_profile +( + id character varying(36) COLLATE pg_catalog."default" NOT NULL, + profile character varying COLLATE pg_catalog."default" NOT NULL, + cr_by character varying(256) COLLATE pg_catalog."default" NOT NULL, + cr_dtimes timestamp without time zone NOT NULL, + upd_by character varying(256) COLLATE pg_catalog."default", + upd_dtimes timestamp without time zone, + is_deleted boolean, + del_dtimes timestamp without time zone, + CONSTRAINT anonymous_profile_pkey PRIMARY KEY (id) +); + diff --git a/db_scripts/mosip_prereg/ddl/prereg-applicant_demographic.sql b/db_scripts/mosip_prereg/ddl/applicant_demographic.sql similarity index 74% rename from db_scripts/mosip_prereg/ddl/prereg-applicant_demographic.sql rename to db_scripts/mosip_prereg/ddl/applicant_demographic.sql index 01b09a208b2..a846f129d93 100644 --- a/db_scripts/mosip_prereg/ddl/prereg-applicant_demographic.sql +++ b/db_scripts/mosip_prereg/ddl/applicant_demographic.sql @@ -1,19 +1,4 @@ - --- ------------------------------------------------------------------------------------------------- --- Database Name: mosip_prereg --- Table Name : prereg.applicant_demographic --- Purpose : Applicant Demographic: Stores demographic details of an applicant. The demographic information is stored in json format. --- --- Create By : Nasir Khan / Sadanandegowda --- Created Date : 15-Jul-2019 --- --- Modified Date Modified By Comments / Remarks --- ------------------------------------------------------------------------------------------ --- --- ------------------------------------------------------------------------------------------ - --- object: prereg.applicant_demographic | type: TABLE -- --- DROP TABLE IF EXISTS prereg.applicant_demographic CASCADE; +-- This table saves all the demographic details in the user’s application in an encrypted JSON format. CREATE TABLE prereg.applicant_demographic( prereg_id character varying(36) NOT NULL, @@ -28,31 +13,20 @@ CREATE TABLE prereg.applicant_demographic( upd_by character varying(256), upd_dtimes timestamp, CONSTRAINT pk_appldem_prereg_id PRIMARY KEY (prereg_id) - ); --- ddl-end -- + +CREATE INDEX IF NOT EXISTS idx_app_demo_cr_by ON prereg.applicant_demographic USING btree (cr_by); +CREATE INDEX IF NOT EXISTS idx_app_demo_prid ON prereg.applicant_demographic USING btree (prereg_id); COMMENT ON TABLE prereg.applicant_demographic IS 'Applicant Demographic: Stores demographic details of an applicant. The demographic information is stored in json format.'; --- ddl-end -- COMMENT ON COLUMN prereg.applicant_demographic.prereg_id IS 'Pre Registration ID: Unique Id generated for an individual during the pre-registration process which will be referenced during registration process at a registration center.'; --- ddl-end -- COMMENT ON COLUMN prereg.applicant_demographic.demog_detail IS 'Demographic Detail: Demographic details of an individual, stored in json format.'; --- ddl-end -- COMMENT ON COLUMN prereg.applicant_demographic.demog_detail_hash IS 'Demographic Detail Hash: Hash value of the demographic details stored in json format in a separate column. This will be used to make sure that nobody has tampered the data.'; --- ddl-end -- COMMENT ON COLUMN prereg.applicant_demographic.encrypted_dtimes IS 'Encrypted Data Time: Date and time when the data was encrypted. This will also be used get the key for decrypting the data.'; --- ddl-end -- COMMENT ON COLUMN prereg.applicant_demographic.status_code IS 'Status Code: Status of the pre-registration application. The application can be in draft / pending state or submitted state'; --- ddl-end -- COMMENT ON COLUMN prereg.applicant_demographic.lang_code IS 'Language Code : For multilanguage implementation this attribute Refers master.language.code. The value of some of the attributes in current record is stored in this respective language.'; --- ddl-end -- COMMENT ON COLUMN prereg.applicant_demographic.cr_appuser_id IS 'Applciation Created User Id: User ID of the individual who is submitting the pre-registration application. It can be for self or for others like family members.'; --- ddl-end -- COMMENT ON COLUMN prereg.applicant_demographic.cr_by IS 'Created By : ID or name of the user who create / insert record.'; --- ddl-end -- COMMENT ON COLUMN prereg.applicant_demographic.cr_dtimes IS 'Created DateTimestamp : Date and Timestamp when the record is created/inserted'; --- ddl-end -- COMMENT ON COLUMN prereg.applicant_demographic.upd_by IS 'Updated By : ID or name of the user who update the record with new values'; --- ddl-end -- COMMENT ON COLUMN prereg.applicant_demographic.upd_dtimes IS 'Updated DateTimestamp : Date and Timestamp when any of the fields in the record is updated with new values.'; --- ddl-end -- diff --git a/db_scripts/mosip_prereg/ddl/prereg-applicant_demographic_consumed.sql b/db_scripts/mosip_prereg/ddl/applicant_demographic_consumed.sql similarity index 74% rename from db_scripts/mosip_prereg/ddl/prereg-applicant_demographic_consumed.sql rename to db_scripts/mosip_prereg/ddl/applicant_demographic_consumed.sql index 353051b5bd6..e52a55bf03f 100644 --- a/db_scripts/mosip_prereg/ddl/prereg-applicant_demographic_consumed.sql +++ b/db_scripts/mosip_prereg/ddl/applicant_demographic_consumed.sql @@ -1,18 +1,5 @@ +-- Once the user’s application is processed in MOSIP, then the application’s demographic details are archived and saved in this table by the Batch Job. --- ------------------------------------------------------------------------------------------------- --- Database Name: mosip_prereg --- Table Name : prereg.applicant_demographic_consumed --- Purpose : Applicant Demographic Consumed: Stores demographic details of an applicant that was comsumed. --- --- Create By : Nasir Khan / Sadanandegowda --- Created Date : 15-Jul-2019 --- --- Modified Date Modified By Comments / Remarks --- ------------------------------------------------------------------------------------------ --- --- ------------------------------------------------------------------------------------------ --- object: prereg.applicant_demographic_consumed | type: TABLE -- --- DROP TABLE IF EXISTS prereg.applicant_demographic_consumed CASCADE; CREATE TABLE prereg.applicant_demographic_consumed( prereg_id character varying(36) NOT NULL, demog_detail bytea NOT NULL, @@ -26,31 +13,18 @@ CREATE TABLE prereg.applicant_demographic_consumed( upd_by character varying(256), upd_dtimes timestamp, CONSTRAINT pk_appldemc_prereg_id PRIMARY KEY (prereg_id) - ); --- ddl-end -- + COMMENT ON TABLE prereg.applicant_demographic_consumed IS 'Applicant Demographic Consumed: Stores demographic details of an applicant that was comsumed.'; --- ddl-end -- COMMENT ON COLUMN prereg.applicant_demographic_consumed.prereg_id IS 'Pre Registration ID: Unique Id generated for an individual during the pre-registration process which will be referenced during registration process at a registration center.'; --- ddl-end -- COMMENT ON COLUMN prereg.applicant_demographic_consumed.demog_detail IS 'Demographic Detail: Demographic details of an individual, stored in json format.'; --- ddl-end -- COMMENT ON COLUMN prereg.applicant_demographic_consumed.demog_detail_hash IS 'Demographic Detail Hash: Hash value of the demographic details stored in json format in a separate column. This will be used to make sure that nobody has tampered the data.'; --- ddl-end -- COMMENT ON COLUMN prereg.applicant_demographic_consumed.encrypted_dtimes IS 'Encrypted Data Time: Date and time when the data was encrypted. This will also be used get the key for decrypting the data.'; --- ddl-end -- COMMENT ON COLUMN prereg.applicant_demographic_consumed.status_code IS 'Status Code: Status of the pre-registration application. The application can be in draft / pending state or submitted state'; --- ddl-end -- COMMENT ON COLUMN prereg.applicant_demographic_consumed.lang_code IS 'Language Code : For multilanguage implementation this attribute Refers master.language.code. The value of some of the attributes in current record is stored in this respective language.'; --- ddl-end -- COMMENT ON COLUMN prereg.applicant_demographic_consumed.cr_appuser_id IS 'Applciation Created User Id: User ID of the individual who is submitting the pre-registration application. It can be for self or for others like family members.'; --- ddl-end -- COMMENT ON COLUMN prereg.applicant_demographic_consumed.cr_by IS 'Created By : ID or name of the user who create / insert record.'; --- ddl-end -- COMMENT ON COLUMN prereg.applicant_demographic_consumed.cr_dtimes IS 'Created DateTimestamp : Date and Timestamp when the record is created/inserted'; --- ddl-end -- COMMENT ON COLUMN prereg.applicant_demographic_consumed.upd_by IS 'Updated By : ID or name of the user who update the record with new values'; --- ddl-end -- COMMENT ON COLUMN prereg.applicant_demographic_consumed.upd_dtimes IS 'Updated DateTimestamp : Date and Timestamp when any of the fields in the record is updated with new values.'; --- ddl-end -- diff --git a/db_scripts/mosip_prereg/ddl/applicant_document.sql b/db_scripts/mosip_prereg/ddl/applicant_document.sql new file mode 100644 index 00000000000..254357e6e1f --- /dev/null +++ b/db_scripts/mosip_prereg/ddl/applicant_document.sql @@ -0,0 +1,41 @@ +-- This table saves all the details about documents uploaded by the user in the application. Actual document is not saved in this table. It is saved in Object Store. + +CREATE TABLE prereg.applicant_document( + id character varying(36) NOT NULL, + prereg_id character varying(36) NOT NULL, + doc_name character varying(128) NOT NULL, + doc_cat_code character varying(36) NOT NULL, + doc_typ_code character varying(36) NOT NULL, + doc_file_format character varying(36) NOT NULL, + doc_id character varying(128) NOT NULL, + doc_hash character varying(64) NOT NULL, + doc_ref_id character varying, + encrypted_dtimes timestamp NOT NULL, + status_code character varying(36) NOT NULL, + lang_code character varying(3) NOT NULL, + cr_by character varying(256), + cr_dtimes timestamp, + upd_by character varying(256), + upd_dtimes timestamp, + CONSTRAINT pk_appldoc_prereg_id PRIMARY KEY (id) +); + +create unique index idx_appldoc_prereg_id on prereg.applicant_document (prereg_id, doc_cat_code, doc_typ_code) ; + +COMMENT ON COLUMN prereg.applicant_document.id IS 'Id: Unique id generated for the documents being uploaded as part of pre-registration process.'; +COMMENT ON COLUMN prereg.applicant_document.prereg_id IS 'Id of the pre-registration application for which the documents are being uploaded.'; +COMMENT ON COLUMN prereg.applicant_document.doc_name IS 'Name of the document that is uploaded'; +COMMENT ON COLUMN prereg.applicant_document.doc_cat_code IS 'Document category code under which the document is being uploaded. Refers to master.document_category.code'; +COMMENT ON COLUMN prereg.applicant_document.doc_typ_code IS 'Document type code under which the document is being uploaded. Refers to master.document_type.code'; +COMMENT ON COLUMN prereg.applicant_document.doc_file_format IS 'Format in which the document is being uploaded. Refers to master.document_file_format.code'; +COMMENT ON COLUMN prereg.applicant_document.doc_id IS 'ID of the document being uploaded'; +COMMENT ON COLUMN prereg.applicant_document.doc_hash IS 'Hash value of the document being uploaded in document store. Useful to check any tampering of documents'; +COMMENT ON COLUMN prereg.applicant_document.doc_ref_id IS 'This is entered by the end-user or it is populating using OCR of the document.'; +COMMENT ON COLUMN prereg.applicant_document.encrypted_dtimes IS 'Date and time when the document was encrypted before uploading it on document store. This will also be used get the key for decrypting the data.'; +COMMENT ON COLUMN prereg.applicant_document.status_code IS 'Status of the document that is being uploaded.'; +COMMENT ON COLUMN prereg.applicant_document.lang_code IS 'For multilanguage implementation this attribute Refers master.language.code. The value of some of the attributes in current record is stored in this respective language.'; +COMMENT ON COLUMN prereg.applicant_document.cr_by IS 'ID or name of the user who create / insert record.'; +COMMENT ON COLUMN prereg.applicant_document.cr_dtimes IS 'Date and Timestamp when the record is created/inserted'; +COMMENT ON COLUMN prereg.applicant_document.upd_by IS 'ID or name of the user who update the record with new values'; +COMMENT ON COLUMN prereg.applicant_document.upd_dtimes IS 'Date and Timestamp when any of the fields in the record is updated with new values.'; + diff --git a/db_scripts/mosip_prereg/ddl/applicant_document_consumed.sql b/db_scripts/mosip_prereg/ddl/applicant_document_consumed.sql new file mode 100644 index 00000000000..89b1af6ce91 --- /dev/null +++ b/db_scripts/mosip_prereg/ddl/applicant_document_consumed.sql @@ -0,0 +1,39 @@ +-- Once the user’s application is processed in MOSIP, then the application’s document details are archived and saved in this table by the Batch Job. +CREATE TABLE prereg.applicant_document_consumed( + id character varying(36) NOT NULL, + prereg_id character varying(36) NOT NULL, + doc_name character varying(128) NOT NULL, + doc_cat_code character varying(36) NOT NULL, + doc_typ_code character varying(36) NOT NULL, + doc_file_format character varying(36) NOT NULL, + doc_id character varying(128) NOT NULL, + doc_hash character varying(64) NOT NULL, + doc_ref_id character varying, + encrypted_dtimes timestamp NOT NULL, + status_code character varying(36) NOT NULL, + lang_code character varying(3) NOT NULL, + cr_by character varying(256), + cr_dtimes timestamp, + upd_by character varying(256), + upd_dtimes timestamp, + CONSTRAINT pk_appldocc_prereg_id PRIMARY KEY (id) +); +create unique index idx_appldocc_prereg_id on prereg.applicant_document_consumed (prereg_id, doc_cat_code, doc_typ_code) ; + +COMMENT ON TABLE prereg.applicant_document_consumed IS 'Documents that are uploaded as part of pre-registration process which was consumed is maintained here. '; +COMMENT ON COLUMN prereg.applicant_document_consumed.id IS 'Unique id generated for the documents being uploaded as part of pre-registration process.'; +COMMENT ON COLUMN prereg.applicant_document_consumed.prereg_id IS 'Id of the pre-registration application for which the documents are being uploaded.'; +COMMENT ON COLUMN prereg.applicant_document_consumed.doc_name IS 'Name of the document that is uploaded'; +COMMENT ON COLUMN prereg.applicant_document_consumed.doc_cat_code IS 'Document category code under which the document is being uploaded. Refers to master.document_category.code'; +COMMENT ON COLUMN prereg.applicant_document_consumed.doc_typ_code IS 'Document type code under which the document is being uploaded. Refers to master.document_type.code'; +COMMENT ON COLUMN prereg.applicant_document_consumed.doc_file_format IS 'Format in which the document is being uploaded. Refers to master.document_file_format.code'; +COMMENT ON COLUMN prereg.applicant_document_consumed.doc_id IS 'ID of the document being uploaded'; +COMMENT ON COLUMN prereg.applicant_document_consumed.doc_hash IS 'Hash value of the document being uploaded in document store. This will be used to make sure that nobody has tampered the document stored in a separate store. '; +COMMENT ON COLUMN prereg.applicant_document_consumed.doc_ref_id IS 'This is the ID to reference the document, This is entered by the end-user or it is populating using OCR of the document.'; +COMMENT ON COLUMN prereg.applicant_document_consumed.encrypted_dtimes IS 'Date and time when the document was encrypted before uploading it on document store. This will also be used get the key for decrypting the data.'; +COMMENT ON COLUMN prereg.applicant_document_consumed.status_code IS 'Status Code: Status of the document that is being uploaded.'; +COMMENT ON COLUMN prereg.applicant_document_consumed.lang_code IS 'For multilanguage implementation this attribute Refers master.language.code. The value of some of the attributes in current record is stored in this respective language.'; +COMMENT ON COLUMN prereg.applicant_document_consumed.cr_by IS 'ID or name of the user who create / insert record.'; +COMMENT ON COLUMN prereg.applicant_document_consumed.cr_dtimes IS 'Date and Timestamp when the record is created/inserted'; +COMMENT ON COLUMN prereg.applicant_document_consumed.upd_by IS 'ID or name of the user who update the record with new values'; +COMMENT ON COLUMN prereg.applicant_document_consumed.upd_dtimes IS 'Date and Timestamp when any of the fields in the record is updated with new values.'; diff --git a/db_scripts/mosip_prereg/ddl/applications.sql b/db_scripts/mosip_prereg/ddl/applications.sql new file mode 100644 index 00000000000..e3a2ff14ef0 --- /dev/null +++ b/db_scripts/mosip_prereg/ddl/applications.sql @@ -0,0 +1,19 @@ +-- All 3 types of application details are saved here including the corresponding booking details (if any). The 3 types of applications are NEW_PREREGISTRATION, UPDATE_REGISTRATION, LOST_FORGOTTEN_UIN + +CREATE TABLE prereg.applications( + application_id character varying(36) NOT NULL, + booking_type character varying(256) NOT NULL, + booking_status_code character varying(256), + application_status_code character varying(256), + regcntr_id character varying(10), + appointment_date date, + booking_date date, + slot_from_time time without time zone, + slot_to_time time without time zone, + contact_info character varying(256), + cr_by character varying(256) NOT NULL, + cr_dtimes timestamp without time zone NOT NULL, + upd_by character varying(256), + upd_dtimes timestamp without time zone, + CONSTRAINT appid_pk PRIMARY KEY (application_id) +); diff --git a/db_scripts/mosip_prereg/ddl/prereg-batch-fk.sql b/db_scripts/mosip_prereg/ddl/batch-fk.sql similarity index 84% rename from db_scripts/mosip_prereg/ddl/prereg-batch-fk.sql rename to db_scripts/mosip_prereg/ddl/batch-fk.sql index f035e803c82..48af927b743 100644 --- a/db_scripts/mosip_prereg/ddl/prereg-batch-fk.sql +++ b/db_scripts/mosip_prereg/ddl/batch-fk.sql @@ -25,9 +25,9 @@ ALTER TABLE prereg.batch_step_execution_context ADD CONSTRAINT step_exec_ctx_fk ON UPDATE NO ACTION ON DELETE NO ACTION; -CREATE SEQUENCE prereg.batch_step_execution_seq; -CREATE SEQUENCE prereg.batch_job_execution_seq; -CREATE SEQUENCE prereg.batch_job_seq; +CREATE SEQUENCE prereg.batch_step_execution_seq MAXVALUE 9223372036854775807 NO CYCLE; +CREATE SEQUENCE prereg.batch_job_execution_seq MAXVALUE 9223372036854775807 NO CYCLE; +CREATE SEQUENCE prereg.batch_job_seq MAXVALUE 9223372036854775807 NO CYCLE; -- grants to access all sequences GRANT usage, SELECT ON ALL SEQUENCES diff --git a/db_scripts/mosip_prereg/ddl/batch_job_execution.sql b/db_scripts/mosip_prereg/ddl/batch_job_execution.sql new file mode 100644 index 00000000000..59f59592271 --- /dev/null +++ b/db_scripts/mosip_prereg/ddl/batch_job_execution.sql @@ -0,0 +1,18 @@ +--- This is required by Spring Batch framework + +CREATE TABLE prereg.batch_job_execution +( + JOB_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY , + VERSION BIGINT , + JOB_INSTANCE_ID BIGINT NOT NULL, + CREATE_TIME TIMESTAMP NOT NULL, + START_TIME TIMESTAMP DEFAULT NULL , + END_TIME TIMESTAMP DEFAULT NULL , + STATUS VARCHAR(10) , + EXIT_CODE VARCHAR(2500) , + EXIT_MESSAGE VARCHAR(2500) , + LAST_UPDATED TIMESTAMP +) +WITH ( + OIDS = FALSE +); \ No newline at end of file diff --git a/db_scripts/mosip_prereg/ddl/batch_job_execution_context.sql b/db_scripts/mosip_prereg/ddl/batch_job_execution_context.sql new file mode 100644 index 00000000000..87d488840f3 --- /dev/null +++ b/db_scripts/mosip_prereg/ddl/batch_job_execution_context.sql @@ -0,0 +1,11 @@ +-- This is required by Spring Batch framework + +CREATE TABLE prereg.batch_job_execution_context +( + JOB_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY, + SHORT_CONTEXT VARCHAR(2500) NOT NULL, + SERIALIZED_CONTEXT TEXT +) +WITH ( + OIDS = FALSE +); diff --git a/db_scripts/mosip_prereg/ddl/batch_job_execution_param.sql b/db_scripts/mosip_prereg/ddl/batch_job_execution_param.sql new file mode 100644 index 00000000000..b77af86e3c7 --- /dev/null +++ b/db_scripts/mosip_prereg/ddl/batch_job_execution_param.sql @@ -0,0 +1,13 @@ +-- This is required by Spring Batch framework + +CREATE TABLE prereg.batch_job_execution_params +( + JOB_EXECUTION_ID BIGINT NOT NULL , + PARAMETER_NAME VARCHAR(100) NOT NULL , + PARAMETER_TYPE VARCHAR(100) NOT NULL , + PARAMETER_VALUE VARCHAR(2500) , + IDENTIFYING CHAR(1) NOT NULL +) +WITH ( + OIDS = FALSE +); \ No newline at end of file diff --git a/db_scripts/mosip_prereg/ddl/batch_job_instance.sql b/db_scripts/mosip_prereg/ddl/batch_job_instance.sql new file mode 100644 index 00000000000..edcf37e2cd8 --- /dev/null +++ b/db_scripts/mosip_prereg/ddl/batch_job_instance.sql @@ -0,0 +1,13 @@ +-- This is required by Spring Batch framework + +CREATE TABLE prereg.batch_job_instance +( + JOB_INSTANCE_ID BIGINT NOT NULL PRIMARY KEY , + VERSION BIGINT , + JOB_NAME VARCHAR(100) NOT NULL, + JOB_KEY VARCHAR(32) NOT NULL, + constraint JOB_INST_UN unique (JOB_NAME, JOB_KEY) +) +WITH ( + OIDS = FALSE +); \ No newline at end of file diff --git a/db_scripts/mosip_prereg/ddl/batch_step_execution.sql b/db_scripts/mosip_prereg/ddl/batch_step_execution.sql new file mode 100644 index 00000000000..88a9e4c32b5 --- /dev/null +++ b/db_scripts/mosip_prereg/ddl/batch_step_execution.sql @@ -0,0 +1,27 @@ +-- This is required by Spring Batch framework + +CREATE TABLE prereg.batch_step_execution +( + STEP_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY , + VERSION BIGINT NOT NULL, + STEP_NAME VARCHAR(100) NOT NULL, + JOB_EXECUTION_ID BIGINT NOT NULL, + CREATE_TIME TIMESTAMP NOT NULL, + START_TIME TIMESTAMP DEFAULT NULL , + END_TIME TIMESTAMP DEFAULT NULL , + STATUS VARCHAR(10) , + COMMIT_COUNT BIGINT , + READ_COUNT BIGINT , + FILTER_COUNT BIGINT , + WRITE_COUNT BIGINT , + READ_SKIP_COUNT BIGINT , + WRITE_SKIP_COUNT BIGINT , + PROCESS_SKIP_COUNT BIGINT , + ROLLBACK_COUNT BIGINT , + EXIT_CODE VARCHAR(2500) , + EXIT_MESSAGE VARCHAR(2500) , + LAST_UPDATED TIMESTAMP +) +WITH ( + OIDS = FALSE +); \ No newline at end of file diff --git a/db_scripts/mosip_prereg/ddl/batch_step_execution_context.sql b/db_scripts/mosip_prereg/ddl/batch_step_execution_context.sql new file mode 100644 index 00000000000..99cbe46c750 --- /dev/null +++ b/db_scripts/mosip_prereg/ddl/batch_step_execution_context.sql @@ -0,0 +1,11 @@ +-- This is required by Spring Batch framework + +CREATE TABLE prereg.batch_step_execution_context +( + STEP_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY, + SHORT_CONTEXT VARCHAR(2500) NOT NULL, + SERIALIZED_CONTEXT TEXT +) +WITH ( + OIDS = FALSE +); \ No newline at end of file diff --git a/db_scripts/mosip_prereg/ddl/prereg-fk.sql b/db_scripts/mosip_prereg/ddl/fk.sql similarity index 68% rename from db_scripts/mosip_prereg/ddl/prereg-fk.sql rename to db_scripts/mosip_prereg/ddl/fk.sql index c44f6605ebd..f6d1d2c2489 100644 --- a/db_scripts/mosip_prereg/ddl/prereg-fk.sql +++ b/db_scripts/mosip_prereg/ddl/fk.sql @@ -1,15 +1,4 @@ --- ------------------------------------------------------------------------------------------------- --- Database Name: mosip_prereg --- Table Name : All tables at mosip_prereg Database --- Purpose : To establish FOREIGN Constrations required for entity relationship --- --- Create By : Nasir Khan / Sadanandegowda --- Created Date : 15-Jul-2019 --- --- Modified Date Modified By Comments / Remarks --- ------------------------------------------------------------------------------------------ --- --- ------------------------------------------------------------------------------------------ + -- Foreign Key Constraints Same DB/Schema tables. -- FOREIGN KEY CONSTRAINTS : mosip_prereg database/schema. @@ -45,7 +34,7 @@ ON DELETE NO ACTION ON UPDATE NO ACTION; -- object: pprlst_pregtrn_fk | type: CONSTRAINT -- -- ALTER TABLE prereg.processed_prereg_list DROP CONSTRAINT IF EXISTS pprlst_pregtrn_fk CASCADE; -ALTER TABLE prereg.processed_prereg_list ADD CONSTRAINT pprlst_pregtrn_fk FOREIGN KEY (prereg_trn_id) -REFERENCES prereg.pre_registration_transaction (id) MATCH FULL -ON DELETE SET NULL ON UPDATE CASCADE; +-- ALTER TABLE prereg.processed_prereg_list ADD CONSTRAINT pprlst_pregtrn_fk FOREIGN KEY (prereg_trn_id) +-- REFERENCES prereg.pre_registration_transaction (id) MATCH FULL +-- ON DELETE SET NULL ON UPDATE CASCADE; -- ddl-end -- diff --git a/db_scripts/mosip_prereg/ddl/intf_processed_prereg_list.sql b/db_scripts/mosip_prereg/ddl/intf_processed_prereg_list.sql new file mode 100644 index 00000000000..cbf51f99f02 --- /dev/null +++ b/db_scripts/mosip_prereg/ddl/intf_processed_prereg_list.sql @@ -0,0 +1,25 @@ +-- This table saves details about the pre-registration ids which are processed by the MOSIP. + +CREATE TABLE prereg.intf_processed_prereg_list( + prereg_id character varying(36) NOT NULL, + received_dtimes timestamp NOT NULL, + lang_code character varying(3) NOT NULL, + cr_by character varying(256) NOT NULL, + cr_dtimes timestamp NOT NULL, + upd_by character varying(256), + upd_dtimes timestamp, + is_deleted boolean, + del_dtimes timestamp, + CONSTRAINT ipprlst_pk PRIMARY KEY (prereg_id,received_dtimes) + +); +COMMENT ON TABLE prereg.intf_processed_prereg_list IS 'Interface Processd Pre Registration List: Interface table to temporarily store the list of pre-registrations that were processed by registration processor application. The data can be removed once the data is updated in actual tables.'; +COMMENT ON COLUMN prereg.intf_processed_prereg_list.prereg_id IS 'Pre registration id that was consumed by registration processor to generate UIN.'; +COMMENT ON COLUMN prereg.intf_processed_prereg_list.received_dtimes IS 'Date time when the pre-registration id was recevied by pre-registrations application for marking it as comsumed/processed'; +COMMENT ON COLUMN prereg.intf_processed_prereg_list.lang_code IS 'For multilanguage implementation this attribute Refers master.language.code. The value of some of the attributes in current record is stored in this respective language.'; +COMMENT ON COLUMN prereg.intf_processed_prereg_list.cr_by IS 'ID or name of the user who create / insert record.'; +COMMENT ON COLUMN prereg.intf_processed_prereg_list.cr_dtimes IS 'Date and Timestamp when the record is created/inserted'; +COMMENT ON COLUMN prereg.intf_processed_prereg_list.upd_by IS 'ID or name of the user who update the record with new values'; +COMMENT ON COLUMN prereg.intf_processed_prereg_list.upd_dtimes IS 'Date and Timestamp when any of the fields in the record is updated with new values.'; +COMMENT ON COLUMN prereg.intf_processed_prereg_list.is_deleted IS 'Flag to mark whether the record is Soft deleted.'; +COMMENT ON COLUMN prereg.intf_processed_prereg_list.del_dtimes IS 'Date and Timestamp when the record is soft deleted with is_deleted=TRUE'; diff --git a/db_scripts/mosip_prereg/ddl/otp_transaction.sql b/db_scripts/mosip_prereg/ddl/otp_transaction.sql new file mode 100644 index 00000000000..ba14732a0a7 --- /dev/null +++ b/db_scripts/mosip_prereg/ddl/otp_transaction.sql @@ -0,0 +1,35 @@ +-- This is used to save the OTP for the user whenever user requests for one using the email id / phone number to log into the application. + +CREATE TABLE prereg.otp_transaction( + id character varying(36) NOT NULL, + ref_id character varying(64) NOT NULL, + otp_hash character varying(512) NOT NULL, + generated_dtimes timestamp, + expiry_dtimes timestamp, + validation_retry_count smallint, + status_code character varying(36), + lang_code character varying(3), + cr_by character varying(256) NOT NULL, + cr_dtimes timestamp NOT NULL, + upd_by character varying(256), + upd_dtimes timestamp, + is_deleted boolean, + del_dtimes timestamp, + CONSTRAINT pk_otpt_id PRIMARY KEY (id) +); + +COMMENT ON TABLE prereg.otp_transaction IS 'All OTP related data and validation details are maintained here for Pre Registration module.'; +COMMENT ON COLUMN prereg.otp_transaction.id IS 'OTP id is a unique identifier (UUID) used as an unique key to identify the OTP transaction'; +COMMENT ON COLUMN prereg.otp_transaction.ref_id IS 'Reference ID is a reference information received from OTP requester which can be used while validating the OTP. AM: please give examples of ref_id'; +COMMENT ON COLUMN prereg.otp_transaction.otp_hash IS 'Hash of id, ref_id and otp which is generated based on the configuration setup and sent to the requester application / module.'; +COMMENT ON COLUMN prereg.otp_transaction.generated_dtimes IS 'Date and Time when the OTP was generated'; +COMMENT ON COLUMN prereg.otp_transaction.expiry_dtimes IS 'Date Time when the OTP will be expired'; +COMMENT ON COLUMN prereg.otp_transaction.validation_retry_count IS 'Validation retry counts of this OTP request. If the validation retry crosses the threshold limit, then the OTP will be de-activated.'; +COMMENT ON COLUMN prereg.otp_transaction.status_code IS 'Current status of the transaction. Refers to code field of master.status_list table.'; +COMMENT ON COLUMN prereg.otp_transaction.lang_code IS 'For multilanguage implementation this attribute Refers master.language.code. The value of some of the attributes in current record is stored in this respective language.'; +COMMENT ON COLUMN prereg.otp_transaction.cr_by IS 'ID or name of the user who create / insert record.'; +COMMENT ON COLUMN prereg.otp_transaction.cr_dtimes IS 'Date and Timestamp when the record is created/inserted'; +COMMENT ON COLUMN prereg.otp_transaction.upd_by IS 'ID or name of the user who update the record with new values'; +COMMENT ON COLUMN prereg.otp_transaction.upd_dtimes IS 'Date and Timestamp when any of the fields in the record is updated with new values.'; +COMMENT ON COLUMN prereg.otp_transaction.is_deleted IS 'Flag to mark whether the record is Soft deleted.'; +COMMENT ON COLUMN prereg.otp_transaction.del_dtimes IS 'Date and Timestamp when the record is soft deleted with is_deleted=TRUE'; diff --git a/db_scripts/mosip_prereg/ddl/prereg-anonymous_profile.sql b/db_scripts/mosip_prereg/ddl/prereg-anonymous_profile.sql deleted file mode 100644 index 780d6b5e06a..00000000000 --- a/db_scripts/mosip_prereg/ddl/prereg-anonymous_profile.sql +++ /dev/null @@ -1,30 +0,0 @@ --- ------------------------------------------------------------------------------------------------- --- Database Name: mosip_prereg --- Table Name : prereg.anonymous_profile --- Purpose : Anonymous profile: --- --- Create By : Ajay --- Created Date : Sept-2021 --- ------------------------------------------------------------------------------------------ --- --- ------------------------------------------------------------------------------------------ - --- object: prereg.prereg.anonymous_profile | type: TABLE -- --- DROP TABLE IF EXISTS prereg.prereg.anonymous_profile CASCADE; - - - -CREATE TABLE IF NOT EXISTS prereg.anonymous_profile -( - id character varying(36) COLLATE pg_catalog."default" NOT NULL, - profile character varying COLLATE pg_catalog."default" NOT NULL, - cr_by character varying(256) COLLATE pg_catalog."default" NOT NULL, - cr_dtimes timestamp without time zone NOT NULL, - upd_by character varying(256) COLLATE pg_catalog."default", - upd_dtimes timestamp without time zone, - is_deleted boolean, - del_dtimes timestamp without time zone, - CONSTRAINT anonymous_profile_pkey PRIMARY KEY (id) -); - --- ddl-end -- diff --git a/db_scripts/mosip_prereg/ddl/prereg-applicant_document.sql b/db_scripts/mosip_prereg/ddl/prereg-applicant_document.sql deleted file mode 100644 index 29dcfea99b7..00000000000 --- a/db_scripts/mosip_prereg/ddl/prereg-applicant_document.sql +++ /dev/null @@ -1,78 +0,0 @@ - --- ------------------------------------------------------------------------------------------------- --- Database Name: mosip_prereg --- Table Name : prereg.applicant_document --- Purpose : Applicant Document: Documents that are uploaded as part of pre-registration process is maintained here. The documents are stored in document repository and only the hash value and its location details are stored. --- --- Create By : Nasir Khan / Sadanandegowda --- Created Date : 15-Jul-2019 --- --- Modified Date Modified By Comments / Remarks --- ------------------------------------------------------------------------------------------ --- --- ------------------------------------------------------------------------------------------ --- object: prereg.applicant_document | type: TABLE -- --- DROP TABLE IF EXISTS prereg.applicant_document CASCADE; -CREATE TABLE prereg.applicant_document( - id character varying(36) NOT NULL, - prereg_id character varying(36) NOT NULL, - doc_name character varying(128) NOT NULL, - doc_cat_code character varying(36) NOT NULL, - doc_typ_code character varying(36) NOT NULL, - doc_file_format character varying(36) NOT NULL, - doc_id character varying(128) NOT NULL, - doc_hash character varying(64) NOT NULL, - doc_ref_id character varying, - encrypted_dtimes timestamp NOT NULL, - status_code character varying(36) NOT NULL, - lang_code character varying(3) NOT NULL, - cr_by character varying(256), - cr_dtimes timestamp, - upd_by character varying(256), - upd_dtimes timestamp, - CONSTRAINT pk_appldoc_prereg_id PRIMARY KEY (id) - -); - --- indexes section ------------------------------------------------- -create unique index idx_appldoc_prereg_id on prereg.applicant_document (prereg_id, doc_cat_code, doc_typ_code) ; - --- ddl-end -- -COMMENT ON TABLE prereg.applicant_document IS 'Applicant Document: Documents that are uploaded as part of pre-registration process is maintained here. The documents are stored in document repository and only the hash value and its location details are stored.'; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document.id IS 'Id: Unique id generated for the documents being uploaded as part of pre-registration process.'; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document.prereg_id IS 'Pre Registration Id: Id of the pre-registration application for which the documents are being uploaded.'; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document.doc_name IS 'Document Name: Name of the document that is uploaded'; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document.doc_cat_code IS 'Document Category Code: Document category code under which the document is being uploaded. Refers to master.document_category.code'; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document.doc_typ_code IS 'Document Type Code: Document type code under which the document is being uploaded. Refers to master.document_type.code'; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document.doc_file_format IS 'Documenet File Format: Format in which the document is being uploaded. Refers to master.document_file_format.code'; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document.doc_id IS 'Document Id: ID of the document being uploaded'; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document.doc_hash IS 'Document Hash: Hash value of the document being uploaded in document store. This will be used to make sure that nobody has tampered the document stored in a separate store. '; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document.doc_ref_id IS 'Document Reference ID: This is the ID to reference the document, This is entered by the end-user or it is populating using OCR of the document.'; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document.encrypted_dtimes IS 'Encrypted Data Time: Date and time when the document was encrypted before uploading it on document store. This will also be used get the key for decrypting the data.'; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document.status_code IS 'Status Code: Status of the document that is being uploaded.'; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document.lang_code IS 'Language Code : For multilanguage implementation this attribute Refers master.language.code. The value of some of the attributes in current record is stored in this respective language.'; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document.cr_by IS 'Created By : ID or name of the user who create / insert record.'; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document.cr_dtimes IS 'Created DateTimestamp : Date and Timestamp when the record is created/inserted'; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document.upd_by IS 'Updated By : ID or name of the user who update the record with new values'; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document.upd_dtimes IS 'Updated DateTimestamp : Date and Timestamp when any of the fields in the record is updated with new values.'; --- ddl-end -- - - - - diff --git a/db_scripts/mosip_prereg/ddl/prereg-applicant_document_consumed.sql b/db_scripts/mosip_prereg/ddl/prereg-applicant_document_consumed.sql deleted file mode 100644 index acb78ab0ac0..00000000000 --- a/db_scripts/mosip_prereg/ddl/prereg-applicant_document_consumed.sql +++ /dev/null @@ -1,80 +0,0 @@ - --- ------------------------------------------------------------------------------------------------- --- Database Name: mosip_prereg --- Table Name : prereg.applicant_document_consumed --- Purpose : Applicant Document Consumed: Documents that are uploaded as part of pre-registration process which was consumed is maintained here. --- --- Create By : Nasir Khan / Sadanandegowda --- Created Date : 15-Jul-2019 --- --- Modified Date Modified By Comments / Remarks --- ------------------------------------------------------------------------------------------ --- --- ------------------------------------------------------------------------------------------ --- object: prereg.applicant_document_consumed | type: TABLE -- --- DROP TABLE IF EXISTS prereg.applicant_document_consumed CASCADE; -CREATE TABLE prereg.applicant_document_consumed( - id character varying(36) NOT NULL, - prereg_id character varying(36) NOT NULL, - doc_name character varying(128) NOT NULL, - doc_cat_code character varying(36) NOT NULL, - doc_typ_code character varying(36) NOT NULL, - doc_file_format character varying(36) NOT NULL, - doc_id character varying(128) NOT NULL, - doc_hash character varying(64) NOT NULL, - doc_ref_id character varying, - encrypted_dtimes timestamp NOT NULL, - status_code character varying(36) NOT NULL, - lang_code character varying(3) NOT NULL, - cr_by character varying(256), - cr_dtimes timestamp, - upd_by character varying(256), - upd_dtimes timestamp, - CONSTRAINT pk_appldocc_prereg_id PRIMARY KEY (id) - -); --- indexes section ------------------------------------------------- -create unique index idx_appldocc_prereg_id on prereg.applicant_document_consumed (prereg_id, doc_cat_code, doc_typ_code) ; - --- ddl-end -- -COMMENT ON TABLE prereg.applicant_document_consumed IS 'Applicant Document: Documents that are uploaded as part of pre-registration process which was consumed is maintained here. '; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document_consumed.id IS 'Id: Unique id generated for the documents being uploaded as part of pre-registration process.'; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document_consumed.prereg_id IS 'Pre Registration Id: Id of the pre-registration application for which the documents are being uploaded.'; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document_consumed.doc_name IS 'Document Name: Name of the document that is uploaded'; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document_consumed.doc_cat_code IS 'Document Category Code: Document category code under which the document is being uploaded. Refers to master.document_category.code'; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document_consumed.doc_typ_code IS 'Document Type Code: Document type code under which the document is being uploaded. Refers to master.document_type.code'; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document_consumed.doc_file_format IS 'Documenet File Format: Format in which the document is being uploaded. Refers to master.document_file_format.code'; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document_consumed.doc_id IS 'Document Id: ID of the document being uploaded'; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document_consumed.doc_hash IS 'Document Hash: Hash value of the document being uploaded in document store. This will be used to make sure that nobody has tampered the document stored in a separate store. '; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document_consumed.doc_ref_id IS 'Document Reference ID: This is the ID to reference the document, This is entered by the end-user or it is populating using OCR of the document.'; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document_consumed.encrypted_dtimes IS 'Encrypted Data Time: Date and time when the document was encrypted before uploading it on document store. This will also be used get the key for decrypting the data.'; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document_consumed.status_code IS 'Status Code: Status of the document that is being uploaded.'; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document_consumed.lang_code IS 'Language Code : For multilanguage implementation this attribute Refers master.language.code. The value of some of the attributes in current record is stored in this respective language.'; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document_consumed.cr_by IS 'Created By : ID or name of the user who create / insert record.'; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document_consumed.cr_dtimes IS 'Created DateTimestamp : Date and Timestamp when the record is created/inserted'; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document_consumed.upd_by IS 'Updated By : ID or name of the user who update the record with new values'; --- ddl-end -- -COMMENT ON COLUMN prereg.applicant_document_consumed.upd_dtimes IS 'Updated DateTimestamp : Date and Timestamp when any of the fields in the record is updated with new values.'; --- ddl-end -- - - - - - - - diff --git a/db_scripts/mosip_prereg/ddl/prereg-applications.sql b/db_scripts/mosip_prereg/ddl/prereg-applications.sql deleted file mode 100644 index 3871193fea0..00000000000 --- a/db_scripts/mosip_prereg/ddl/prereg-applications.sql +++ /dev/null @@ -1,33 +0,0 @@ --- ------------------------------------------------------------------------------------------------- --- Database Name: mosip_prereg --- Table Name : prereg.applications --- Purpose : Applications: --- --- Create By : Ram Bhatt --- Created Date : Aug-2021 --- --- Modified Date Modified By Comments / Remarks --- ------------------------------------------------------------------------------------------ --- --- ------------------------------------------------------------------------------------------ --- object: prereg.applications | type: TABLE -- --- DROP TABLE IF EXISTS prereg.applications CASCADE; -CREATE TABLE prereg.applications( - application_id character varying(36) NOT NULL, - booking_type character varying(256) NOT NULL, - booking_status_code character varying(256), - application_status_code character varying(256), - regcntr_id character varying(10), - appointment_date date, - booking_date date, - slot_from_time time without time zone, - slot_to_time time without time zone, - contact_info character varying(256), - cr_by character varying(256) NOT NULL, - cr_dtimes timestamp without time zone NOT NULL, - upd_by character varying(256), - upd_dtimes timestamp without time zone, - CONSTRAINT appid_pk PRIMARY KEY (application_id) - -); --- ddl-end -- diff --git a/db_scripts/mosip_prereg/ddl/prereg-batch_job_execution.sql b/db_scripts/mosip_prereg/ddl/prereg-batch_job_execution.sql deleted file mode 100644 index 4abbe3a2698..00000000000 --- a/db_scripts/mosip_prereg/ddl/prereg-batch_job_execution.sql +++ /dev/null @@ -1,23 +0,0 @@ --- Table: prereg.batch_job_execution - --- DROP TABLE prereg.batch_job_execution; - -CREATE TABLE prereg.batch_job_execution -( - job_execution_id bigint NOT NULL, - version bigint, - job_instance_id bigint NOT NULL, - create_time timestamp without time zone NOT NULL, - start_time timestamp without time zone, - end_time timestamp without time zone, - status character varying(10) COLLATE pg_catalog."default", - exit_code character varying(2500) COLLATE pg_catalog."default", - exit_message character varying(2500) COLLATE pg_catalog."default", - last_updated timestamp without time zone, - job_configuration_location character varying(2500) COLLATE pg_catalog."default", - CONSTRAINT batch_job_execution_pkey PRIMARY KEY (job_execution_id) -) -WITH ( - OIDS = FALSE -); - diff --git a/db_scripts/mosip_prereg/ddl/prereg-batch_job_execution_context.sql b/db_scripts/mosip_prereg/ddl/prereg-batch_job_execution_context.sql deleted file mode 100644 index 2c00b673f2b..00000000000 --- a/db_scripts/mosip_prereg/ddl/prereg-batch_job_execution_context.sql +++ /dev/null @@ -1,14 +0,0 @@ --- Table: prereg.batch_job_execution_context - --- DROP TABLE prereg.batch_job_execution_context; - -CREATE TABLE prereg.batch_job_execution_context -( - job_execution_id bigint NOT NULL, - short_context character varying(2500) COLLATE pg_catalog."default" NOT NULL, - serialized_context text COLLATE pg_catalog."default", - CONSTRAINT batch_job_execution_context_pkey PRIMARY KEY (job_execution_id) -) -WITH ( - OIDS = FALSE -); diff --git a/db_scripts/mosip_prereg/ddl/prereg-batch_job_execution_param.sql b/db_scripts/mosip_prereg/ddl/prereg-batch_job_execution_param.sql deleted file mode 100644 index 8bd925718c2..00000000000 --- a/db_scripts/mosip_prereg/ddl/prereg-batch_job_execution_param.sql +++ /dev/null @@ -1,20 +0,0 @@ --- Table: prereg.batch_job_execution_params - --- DROP TABLE prereg.batch_job_execution_params; - -CREATE TABLE prereg.batch_job_execution_params -( - job_execution_id bigint NOT NULL, - type_cd character varying(6) COLLATE pg_catalog."default" NOT NULL, - key_name character varying(100) COLLATE pg_catalog."default" NOT NULL, - string_val character varying(250) COLLATE pg_catalog."default", - date_val timestamp without time zone, - long_val bigint, - double_val double precision, - identifying character(1) COLLATE pg_catalog."default" NOT NULL -) -WITH ( - OIDS = FALSE -) -; - diff --git a/db_scripts/mosip_prereg/ddl/prereg-batch_job_instance.sql b/db_scripts/mosip_prereg/ddl/prereg-batch_job_instance.sql deleted file mode 100644 index 68cfcdeecf4..00000000000 --- a/db_scripts/mosip_prereg/ddl/prereg-batch_job_instance.sql +++ /dev/null @@ -1,19 +0,0 @@ --- Table: prereg.batch_job_instance - --- DROP TABLE prereg.batch_job_instance; - -CREATE TABLE prereg.batch_job_instance -( - job_instance_id bigint NOT NULL, - version bigint, - job_name character varying(100) COLLATE pg_catalog."default" NOT NULL, - job_key character varying(32) COLLATE pg_catalog."default" NOT NULL, - CONSTRAINT batch_job_instance_pkey PRIMARY KEY (job_instance_id), - CONSTRAINT job_inst_un UNIQUE (job_name, job_key) -) -WITH ( - OIDS = FALSE -) -; - - diff --git a/db_scripts/mosip_prereg/ddl/prereg-batch_step_execution.sql b/db_scripts/mosip_prereg/ddl/prereg-batch_step_execution.sql deleted file mode 100644 index 829fde69077..00000000000 --- a/db_scripts/mosip_prereg/ddl/prereg-batch_step_execution.sql +++ /dev/null @@ -1,29 +0,0 @@ --- Table: prereg.batch_step_execution - --- DROP TABLE prereg.batch_step_execution; - -CREATE TABLE prereg.batch_step_execution -( - step_execution_id bigint NOT NULL, - version bigint NOT NULL, - step_name character varying(100) COLLATE pg_catalog."default" NOT NULL, - job_execution_id bigint NOT NULL, - start_time timestamp without time zone NOT NULL, - end_time timestamp without time zone, - status character varying(10) COLLATE pg_catalog."default", - commit_count bigint, - read_count bigint, - filter_count bigint, - write_count bigint, - read_skip_count bigint, - write_skip_count bigint, - process_skip_count bigint, - rollback_count bigint, - exit_code character varying(2500) COLLATE pg_catalog."default", - exit_message character varying(2500) COLLATE pg_catalog."default", - last_updated timestamp without time zone, - CONSTRAINT batch_step_execution_pkey PRIMARY KEY (step_execution_id) -) -WITH ( - OIDS = FALSE -); \ No newline at end of file diff --git a/db_scripts/mosip_prereg/ddl/prereg-batch_step_execution_context.sql b/db_scripts/mosip_prereg/ddl/prereg-batch_step_execution_context.sql deleted file mode 100644 index 6f82a140667..00000000000 --- a/db_scripts/mosip_prereg/ddl/prereg-batch_step_execution_context.sql +++ /dev/null @@ -1,15 +0,0 @@ --- Table: prereg.batch_step_execution_context - --- DROP TABLE prereg.batch_step_execution_context; - -CREATE TABLE prereg.batch_step_execution_context -( - step_execution_id bigint NOT NULL, - short_context character varying(2500) COLLATE pg_catalog."default" NOT NULL, - serialized_context text COLLATE pg_catalog."default", - CONSTRAINT batch_step_execution_context_pkey PRIMARY KEY (step_execution_id) - -) -WITH ( - OIDS = FALSE -); \ No newline at end of file diff --git a/db_scripts/mosip_prereg/ddl/prereg-intf_processed_prereg_list.sql b/db_scripts/mosip_prereg/ddl/prereg-intf_processed_prereg_list.sql deleted file mode 100644 index 8a9ec916b94..00000000000 --- a/db_scripts/mosip_prereg/ddl/prereg-intf_processed_prereg_list.sql +++ /dev/null @@ -1,50 +0,0 @@ - --- ------------------------------------------------------------------------------------------------- --- Database Name: mosip_prereg --- Table Name : prereg.intf_processed_prereg_list --- Purpose : Interface Processd Pre Registration List: Interface table to temporarily store the list of pre-registrations that were processed by registration processor application. The data can be removed once the data is updated in actual tables. --- --- Create By : Nasir Khan / Sadanandegowda --- Created Date : 15-Jul-2019 --- --- Modified Date Modified By Comments / Remarks --- ------------------------------------------------------------------------------------------ --- --- ------------------------------------------------------------------------------------------ --- object: prereg.intf_processed_prereg_list | type: TABLE -- --- DROP TABLE IF EXISTS prereg.intf_processed_prereg_list CASCADE; -CREATE TABLE prereg.intf_processed_prereg_list( - prereg_id character varying(36) NOT NULL, - received_dtimes timestamp NOT NULL, - lang_code character varying(3) NOT NULL, - cr_by character varying(256) NOT NULL, - cr_dtimes timestamp NOT NULL, - upd_by character varying(256), - upd_dtimes timestamp, - is_deleted boolean, - del_dtimes timestamp, - CONSTRAINT ipprlst_pk PRIMARY KEY (prereg_id,received_dtimes) - -); --- ddl-end -- -COMMENT ON TABLE prereg.intf_processed_prereg_list IS 'Interface Processd Pre Registration List: Interface table to temporarily store the list of pre-registrations that were processed by registration processor application. The data can be removed once the data is updated in actual tables.'; --- ddl-end -- -COMMENT ON COLUMN prereg.intf_processed_prereg_list.prereg_id IS 'Pre-registration id: Pre registration id that was consumed by registration processor to generate UIN.'; --- ddl-end -- -COMMENT ON COLUMN prereg.intf_processed_prereg_list.received_dtimes IS 'Received Date Time: Date time when the pre-registration id was recevied by pre-registrations application for marking it as comsumed/processed'; --- ddl-end -- -COMMENT ON COLUMN prereg.intf_processed_prereg_list.lang_code IS 'Language Code : For multilanguage implementation this attribute Refers master.language.code. The value of some of the attributes in current record is stored in this respective language.'; --- ddl-end -- -COMMENT ON COLUMN prereg.intf_processed_prereg_list.cr_by IS 'Created By : ID or name of the user who create / insert record.'; --- ddl-end -- -COMMENT ON COLUMN prereg.intf_processed_prereg_list.cr_dtimes IS 'Created DateTimestamp : Date and Timestamp when the record is created/inserted'; --- ddl-end -- -COMMENT ON COLUMN prereg.intf_processed_prereg_list.upd_by IS 'Updated By : ID or name of the user who update the record with new values'; --- ddl-end -- -COMMENT ON COLUMN prereg.intf_processed_prereg_list.upd_dtimes IS 'Updated DateTimestamp : Date and Timestamp when any of the fields in the record is updated with new values.'; --- ddl-end -- -COMMENT ON COLUMN prereg.intf_processed_prereg_list.is_deleted IS 'IS_Deleted : Flag to mark whether the record is Soft deleted.'; --- ddl-end -- -COMMENT ON COLUMN prereg.intf_processed_prereg_list.del_dtimes IS 'Deleted DateTimestamp : Date and Timestamp when the record is soft deleted with is_deleted=TRUE'; --- ddl-end -- - diff --git a/db_scripts/mosip_prereg/ddl/prereg-language_transliteration.sql b/db_scripts/mosip_prereg/ddl/prereg-language_transliteration.sql deleted file mode 100644 index 15734f4539d..00000000000 --- a/db_scripts/mosip_prereg/ddl/prereg-language_transliteration.sql +++ /dev/null @@ -1,44 +0,0 @@ - --- ------------------------------------------------------------------------------------------------- --- Database Name: mosip_prereg --- Table Name : prereg.language_transliteration --- Purpose : Language Transliteration: Mapping table to store mapping between the language id, (defined by the utility) to support transliteration from one language to another. --- --- Create By : Nasir Khan / Sadanandegowda --- Created Date : 15-Jul-2019 --- --- Modified Date Modified By Comments / Remarks --- ------------------------------------------------------------------------------------------ --- --- ------------------------------------------------------------------------------------------ --- object: prereg.language_transliteration | type: TABLE -- --- DROP TABLE IF EXISTS prereg.language_transliteration CASCADE; -CREATE TABLE prereg.language_transliteration( - lang_from_code character varying(3) NOT NULL, - lang_to_code character varying(3) NOT NULL, - lang_id character varying(30) NOT NULL, - cr_by character varying(256) NOT NULL, - cr_dtimes timestamp NOT NULL, - upd_by character varying(256), - upd_dtimes timestamp, - CONSTRAINT pk_ltrnln PRIMARY KEY (lang_from_code,lang_to_code) - -); --- ddl-end -- -COMMENT ON TABLE prereg.language_transliteration IS 'Language Transliteration: Mapping table to store mapping between the language id, (defined by the utility) to support transliteration from one language to another. '; --- ddl-end -- -COMMENT ON COLUMN prereg.language_transliteration.lang_from_code IS 'Language From Code: Host language code from which the transliteration to be done '; --- ddl-end -- -COMMENT ON COLUMN prereg.language_transliteration.lang_to_code IS 'Language To Code: Target language code to which the transliteration to be done '; --- ddl-end -- -COMMENT ON COLUMN prereg.language_transliteration.lang_id IS 'Language Id: Unique language id which is used to transliterate from one language to other. This id should be part of the language ids supported by the transliterate utility.'; --- ddl-end -- -COMMENT ON COLUMN prereg.language_transliteration.cr_by IS 'Created By : ID or name of the user who create / insert record.'; --- ddl-end -- -COMMENT ON COLUMN prereg.language_transliteration.cr_dtimes IS 'Created DateTimestamp : Date and Timestamp when the record is created/inserted'; --- ddl-end -- -COMMENT ON COLUMN prereg.language_transliteration.upd_by IS 'Updated By : ID or name of the user who update the record with new values'; --- ddl-end -- -COMMENT ON COLUMN prereg.language_transliteration.upd_dtimes IS 'Updated DateTimestamp : Date and Timestamp when any of the fields in the record is updated with new values.'; --- ddl-end -- - diff --git a/db_scripts/mosip_prereg/ddl/prereg-otp_transaction.sql b/db_scripts/mosip_prereg/ddl/prereg-otp_transaction.sql deleted file mode 100644 index d6d8d544b6f..00000000000 --- a/db_scripts/mosip_prereg/ddl/prereg-otp_transaction.sql +++ /dev/null @@ -1,63 +0,0 @@ --- ------------------------------------------------------------------------------------------------- --- Database Name: mosip_prereg --- Table Name : prereg.otp_transaction --- Purpose : OTP Transaction: All OTP related data and validation details are maintained here for Pre Registration module. --- --- Create By : Sadanandegowda DM --- Created Date : Dec-2020 --- --- Modified Date Modified By Comments / Remarks --- ------------------------------------------------------------------------------------------ --- --- ------------------------------------------------------------------------------------------ --- object: prereg.otp_transaction | type: TABLE -- --- DROP TABLE IF EXISTS prereg.otp_transaction CASCADE; -CREATE TABLE prereg.otp_transaction( - id character varying(36) NOT NULL, - ref_id character varying(64) NOT NULL, - otp_hash character varying(512) NOT NULL, - generated_dtimes timestamp, - expiry_dtimes timestamp, - validation_retry_count smallint, - status_code character varying(36), - lang_code character varying(3), - cr_by character varying(256) NOT NULL, - cr_dtimes timestamp NOT NULL, - upd_by character varying(256), - upd_dtimes timestamp, - is_deleted boolean, - del_dtimes timestamp, - CONSTRAINT pk_otpt_id PRIMARY KEY (id) - -); --- ddl-end -- -COMMENT ON TABLE prereg.otp_transaction IS 'OTP Transaction: All OTP related data and validation details are maintained here for Pre Registration module.'; --- ddl-end -- -COMMENT ON COLUMN prereg.otp_transaction.id IS 'ID: OTP id is a unique identifier (UUID) used as an unique key to identify the OTP transaction'; --- ddl-end -- -COMMENT ON COLUMN prereg.otp_transaction.ref_id IS 'Reference ID: Reference ID is a reference information received from OTP requester which can be used while validating the OTP. AM: please give examples of ref_id'; --- ddl-end -- -COMMENT ON COLUMN prereg.otp_transaction.otp_hash IS 'OTP Hash: Hash of id, ref_id and otp which is generated based on the configuration setup and sent to the requester application / module.'; --- ddl-end -- -COMMENT ON COLUMN prereg.otp_transaction.generated_dtimes IS 'Generated Date Time: Date and Time when the OTP was generated'; --- ddl-end -- -COMMENT ON COLUMN prereg.otp_transaction.expiry_dtimes IS 'Expiry Date Time: Date Time when the OTP will be expired'; --- ddl-end -- -COMMENT ON COLUMN prereg.otp_transaction.validation_retry_count IS 'Validation Retry Count: Validation retry counts of this OTP request. If the validation retry crosses the threshold limit, then the OTP will be de-activated.'; --- ddl-end -- -COMMENT ON COLUMN prereg.otp_transaction.status_code IS 'Status Code: Current status of the transaction. Refers to code field of master.status_list table.'; --- ddl-end -- -COMMENT ON COLUMN prereg.otp_transaction.lang_code IS 'Language Code : For multilanguage implementation this attribute Refers master.language.code. The value of some of the attributes in current record is stored in this respective language.'; --- ddl-end -- -COMMENT ON COLUMN prereg.otp_transaction.cr_by IS 'Created By : ID or name of the user who create / insert record.'; --- ddl-end -- -COMMENT ON COLUMN prereg.otp_transaction.cr_dtimes IS 'Created DateTimestamp : Date and Timestamp when the record is created/inserted'; --- ddl-end -- -COMMENT ON COLUMN prereg.otp_transaction.upd_by IS 'Updated By : ID or name of the user who update the record with new values'; --- ddl-end -- -COMMENT ON COLUMN prereg.otp_transaction.upd_dtimes IS 'Updated DateTimestamp : Date and Timestamp when any of the fields in the record is updated with new values.'; --- ddl-end -- -COMMENT ON COLUMN prereg.otp_transaction.is_deleted IS 'IS_Deleted : Flag to mark whether the record is Soft deleted.'; --- ddl-end -- -COMMENT ON COLUMN prereg.otp_transaction.del_dtimes IS 'Deleted DateTimestamp : Date and Timestamp when the record is soft deleted with is_deleted=TRUE'; --- ddl-end -- \ No newline at end of file diff --git a/db_scripts/mosip_prereg/ddl/prereg-pre_registration_transaction.sql b/db_scripts/mosip_prereg/ddl/prereg-pre_registration_transaction.sql deleted file mode 100644 index 4842c23f461..00000000000 --- a/db_scripts/mosip_prereg/ddl/prereg-pre_registration_transaction.sql +++ /dev/null @@ -1,57 +0,0 @@ --- ------------------------------------------------------------------------------------------------- --- Database Name: mosip_prereg --- Table Name : prereg.pre_registration_transaction --- Purpose : Pre-Registration Transaction: Stores various transactions that are processd within pre-registration module/application. --- --- Create By : Nasir Khan / Sadanandegowda --- Created Date : 15-Jul-2019 --- --- Modified Date Modified By Comments / Remarks --- ------------------------------------------------------------------------------------------ --- --- ------------------------------------------------------------------------------------------ --- object: prereg.pre_registration_transaction | type: TABLE -- --- DROP TABLE IF EXISTS prereg.pre_registration_transaction CASCADE; -CREATE TABLE prereg.pre_registration_transaction( - id character varying(36) NOT NULL, - trn_type_code character varying(36) NOT NULL, - parent_prereg_trn_id character varying(36), - status_code character varying(36) NOT NULL, - status_comments character varying(1024), - lang_code character varying(3) NOT NULL, - cr_by character varying(256) NOT NULL, - cr_dtimes timestamp NOT NULL, - upd_by character varying(256), - upd_dtimes timestamp, - is_deleted boolean, - del_dtimes timestamp, - CONSTRAINT preg_trn_pk PRIMARY KEY (id) - -); --- ddl-end -- -COMMENT ON TABLE prereg.pre_registration_transaction IS 'Pre-Registration Transaction: Stores various transactions that are processd within pre-registration module/application.'; --- ddl-end -- -COMMENT ON COLUMN prereg.pre_registration_transaction.id IS 'Transaction id of the transactions that were recorded in pre-registration module/application'; --- ddl-end -- -COMMENT ON COLUMN prereg.pre_registration_transaction.trn_type_code IS 'Transaction type code: Type of transaction being processed.'; --- ddl-end -- -COMMENT ON COLUMN prereg.pre_registration_transaction.parent_prereg_trn_id IS 'Parent Pre-Registration Transaction Id: Parent transaction id that has triggered this transaction (if any)'; --- ddl-end -- -COMMENT ON COLUMN prereg.pre_registration_transaction.status_code IS 'Status Code: Current status of the transaction. Refers to code field of master.status_list table.'; --- ddl-end -- -COMMENT ON COLUMN prereg.pre_registration_transaction.status_comments IS 'Status Comments: Comments provided by the actor during the transaction processing.'; --- ddl-end -- -COMMENT ON COLUMN prereg.pre_registration_transaction.lang_code IS 'Language Code : For multilanguage implementation this attribute Refers master.language.code. The value of some of the attributes in current record is stored in this respective language.'; --- ddl-end -- -COMMENT ON COLUMN prereg.pre_registration_transaction.cr_by IS 'Created By : ID or name of the user who create / insert record.'; --- ddl-end -- -COMMENT ON COLUMN prereg.pre_registration_transaction.cr_dtimes IS 'Created DateTimestamp : Date and Timestamp when the record is created/inserted'; --- ddl-end -- -COMMENT ON COLUMN prereg.pre_registration_transaction.upd_by IS 'Updated By : ID or name of the user who update the record with new values'; --- ddl-end -- -COMMENT ON COLUMN prereg.pre_registration_transaction.upd_dtimes IS 'Updated DateTimestamp : Date and Timestamp when any of the fields in the record is updated with new values.'; --- ddl-end -- -COMMENT ON COLUMN prereg.pre_registration_transaction.is_deleted IS 'IS_Deleted : Flag to mark whether the record is Soft deleted.'; --- ddl-end -- -COMMENT ON COLUMN prereg.pre_registration_transaction.del_dtimes IS 'Deleted DateTimestamp : Date and Timestamp when the record is soft deleted with is_deleted=TRUE'; --- ddl-end -- diff --git a/db_scripts/mosip_prereg/ddl/prereg-prid_seed.sql b/db_scripts/mosip_prereg/ddl/prereg-prid_seed.sql deleted file mode 100644 index db343364720..00000000000 --- a/db_scripts/mosip_prereg/ddl/prereg-prid_seed.sql +++ /dev/null @@ -1,37 +0,0 @@ --- ------------------------------------------------------------------------------------------------- --- Database Name: mosip_prereg --- Table Name : prereg.prid_seed --- Purpose : Pre-Registration ID Seed: Stores a random number that will be used as seed in the algorithm to generate a PRID. This seed value is encrypted/hashed and used along with a counter in the algorithm to generate a unique random number. Only one seed value would be available for the generation of PRID and this will never change. --- --- Create By : Nasir Khan / Sadanandegowda --- Created Date : 15-Jul-2019 --- --- Modified Date Modified By Comments / Remarks --- ------------------------------------------------------------------------------------------ --- --- ------------------------------------------------------------------------------------------ --- object: prereg.prid_seed | type: TABLE -- --- DROP TABLE IF EXISTS prereg.prid_seed CASCADE; -CREATE TABLE prereg.prid_seed( - seed_no character varying(32) NOT NULL, - cr_by character varying(256) NOT NULL, - cr_dtimes timestamp NOT NULL, - is_deleted boolean, - del_dtimes timestamp, - CONSTRAINT pk_prsd PRIMARY KEY (seed_no) - -); --- ddl-end -- -COMMENT ON TABLE prereg.prid_seed IS 'Pre-Registration ID Seed: Stores a random number that will be used as seed in the algorithm to generate a PRID. This seed value is encrypted/hashed and used along with a counter in the algorithm to generate a unique random number. Only one seed value would be available for the generation of PRID and this will never change.'; --- ddl-end -- -COMMENT ON COLUMN prereg.prid_seed.seed_no IS 'Seed Number: Seed number is the random number generated which will be used as seed in the algorithm to generate PRID.'; --- ddl-end -- -COMMENT ON COLUMN prereg.prid_seed.cr_by IS 'Created By : ID or name of the user who create / insert record.'; --- ddl-end -- -COMMENT ON COLUMN prereg.prid_seed.cr_dtimes IS 'Created DateTimestamp : Date and Timestamp when the record is created/inserted'; --- ddl-end -- -COMMENT ON COLUMN prereg.prid_seed.is_deleted IS 'IS_Deleted : Flag to mark whether the record is Soft deleted.'; --- ddl-end -- -COMMENT ON COLUMN prereg.prid_seed.del_dtimes IS 'Deleted DateTimestamp : Date and Timestamp when the record is soft deleted with is_deleted=TRUE'; --- ddl-end -- - diff --git a/db_scripts/mosip_prereg/ddl/prereg-prid_seq.sql b/db_scripts/mosip_prereg/ddl/prereg-prid_seq.sql deleted file mode 100644 index 7c6ed41c06c..00000000000 --- a/db_scripts/mosip_prereg/ddl/prereg-prid_seq.sql +++ /dev/null @@ -1,37 +0,0 @@ --- ------------------------------------------------------------------------------------------------- --- Database Name: mosip_prereg --- Table Name : prereg.prid_seq --- Purpose : Pre-Registration ID Sequence: Stores sequence numbers that are used in the algorithm to generate PRID. Stores a incremental sequence number that will be used as salt in the algorithm to generate a PRID. This salt value is encrypted/hashed and used along with a seed number in the algorithm to generate a unique random number. --- --- Create By : Nasir Khan / Sadanandegowda --- Created Date : 15-Jul-2019 --- --- Modified Date Modified By Comments / Remarks --- ------------------------------------------------------------------------------------------ --- --- ------------------------------------------------------------------------------------------ --- object: prereg.prid_seq | type: TABLE -- --- DROP TABLE IF EXISTS prereg.prid_seq CASCADE; -CREATE TABLE prereg.prid_seq( - seq_no character varying(32) NOT NULL, - cr_by character varying(256) NOT NULL, - cr_dtimes timestamp NOT NULL, - is_deleted boolean, - del_dtimes timestamp, - CONSTRAINT pk_prseq PRIMARY KEY (seq_no) - -); --- ddl-end -- -COMMENT ON TABLE prereg.prid_seq IS 'Pre-Registration ID Sequence: Stores sequence numbers that are used in the algorithm to generate PRID. Stores a incremental sequence number that will be used as salt in the algorithm to generate a PRID. This salt value is encrypted/hashed and used along with a seed number in the algorithm to generate a unique random number.'; --- ddl-end -- -COMMENT ON COLUMN prereg.prid_seq.seq_no IS 'Sequence Number: Sequence number is the number generated which is used in the algorithm to generate PRID.'; --- ddl-end -- -COMMENT ON COLUMN prereg.prid_seq.cr_by IS 'Created By : ID or name of the user who create / insert record'; --- ddl-end -- -COMMENT ON COLUMN prereg.prid_seq.cr_dtimes IS 'Created DateTimestamp : Date and Timestamp when the record is created/inserted'; --- ddl-end -- -COMMENT ON COLUMN prereg.prid_seq.is_deleted IS 'IS_Deleted : Flag to mark whether the record is Soft deleted.'; --- ddl-end -- -COMMENT ON COLUMN prereg.prid_seq.del_dtimes IS 'Deleted DateTimestamp : Date and Timestamp when the record is soft deleted with is_deleted=TRUE'; --- ddl-end -- - diff --git a/db_scripts/mosip_prereg/ddl/prereg-reg_appointment.sql b/db_scripts/mosip_prereg/ddl/prereg-reg_appointment.sql deleted file mode 100644 index 371b1bd1d9a..00000000000 --- a/db_scripts/mosip_prereg/ddl/prereg-reg_appointment.sql +++ /dev/null @@ -1,58 +0,0 @@ --- ------------------------------------------------------------------------------------------------- --- Database Name: mosip_prereg --- Table Name : prereg.reg_appointment --- Purpose : Registration Appointment: Stores all the appointment requests booked by an individual at a registration center. --- --- Create By : Nasir Khan / Sadanandegowda --- Created Date : 15-Jul-2019 --- --- Modified Date Modified By Comments / Remarks --- ------------------------------------------------------------------------------------------ --- --- ------------------------------------------------------------------------------------------ --- object: prereg.reg_appointment | type: TABLE -- --- DROP TABLE IF EXISTS prereg.reg_appointment CASCADE; -CREATE TABLE prereg.reg_appointment( - id character varying(36) NOT NULL, - regcntr_id character varying(10) NOT NULL, - prereg_id character varying(36) NOT NULL, - booking_dtimes timestamp NOT NULL, - appointment_date date, - slot_from_time time, - slot_to_time time, - lang_code character varying(3) NOT NULL, - cr_by character varying(256) NOT NULL, - cr_dtimes timestamp NOT NULL, - upd_by character varying(256), - upd_dtimes timestamp, - CONSTRAINT pk_rappmnt_id PRIMARY KEY (id), - CONSTRAINT uk_rappmnt_id UNIQUE (prereg_id) - -); --- ddl-end -- -COMMENT ON TABLE prereg.reg_appointment IS 'Registration Appointment: Stores all the appointment requests booked by an individual at a registration center. '; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_appointment.id IS 'ID: Unique id generated for the registration appointment booking.'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_appointment.regcntr_id IS 'Registration Center ID: Id of the Registration Center where the appointment is taken. Refers to master.registration_center.id'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_appointment.prereg_id IS 'Pre-Registration Id: Pre-registration id for which registration appointment is taken.'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_appointment.booking_dtimes IS 'Booking Date Time: Date and Time when the appointment booking is done.'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_appointment.appointment_date IS 'Appointment Date: Date for which an individual has taken an aopointment for registration at a registration center'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_appointment.slot_from_time IS 'Slot From Time: Start time of the appointment slot.'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_appointment.slot_to_time IS 'Slot To Time: End time of the appointment slot.'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_appointment.lang_code IS 'Language Code : For multilanguage implementation this attribute Refers master.language.code. The value of some of the attributes in current record is stored in this respective language.'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_appointment.cr_by IS 'Created By : ID or name of the user who create / insert record.'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_appointment.cr_dtimes IS 'Created DateTimestamp : Date and Timestamp when the record is created/inserted'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_appointment.upd_by IS 'Updated By : ID or name of the user who update the record with new values'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_appointment.upd_dtimes IS 'Updated DateTimestamp : Date and Timestamp when any of the fields in the record is updated with new values.'; --- ddl-end -- diff --git a/db_scripts/mosip_prereg/ddl/prereg-reg_appointment_consumed.sql b/db_scripts/mosip_prereg/ddl/prereg-reg_appointment_consumed.sql deleted file mode 100644 index c8ec579c292..00000000000 --- a/db_scripts/mosip_prereg/ddl/prereg-reg_appointment_consumed.sql +++ /dev/null @@ -1,59 +0,0 @@ --- ------------------------------------------------------------------------------------------------- --- Database Name: mosip_prereg --- Table Name : prereg.reg_appointment_consumed --- Purpose : Registration Appointment Consumed: Stores all the appointment requests booked by an individual at a registration center that are consumed. --- --- Create By : Nasir Khan / Sadanandegowda --- Created Date : 15-Jul-2019 --- --- Modified Date Modified By Comments / Remarks --- ------------------------------------------------------------------------------------------ --- --- ------------------------------------------------------------------------------------------ --- object: prereg.reg_appointment_consumed | type: TABLE -- --- DROP TABLE IF EXISTS prereg.reg_appointment_consumed CASCADE; -CREATE TABLE prereg.reg_appointment_consumed( - id character varying(36) NOT NULL, - regcntr_id character varying(10) NOT NULL, - prereg_id character varying(36) NOT NULL, - booking_dtimes timestamp NOT NULL, - appointment_date date, - slot_from_time time, - slot_to_time time, - lang_code character varying(3) NOT NULL, - cr_by character varying(256) NOT NULL, - cr_dtimes timestamp NOT NULL, - upd_by character varying(256), - upd_dtimes timestamp, - CONSTRAINT pk_rappmntc_id PRIMARY KEY (id), - CONSTRAINT uk_rappmntc_id UNIQUE (prereg_id) - -); --- ddl-end -- -COMMENT ON TABLE prereg.reg_appointment_consumed IS 'Registration Appointment Consumed: Stores all the appointment requests booked by an individual at a registration center that are consumed. '; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_appointment_consumed.id IS 'ID: Unique id generated for the registration appointment booking.'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_appointment_consumed.regcntr_id IS 'Registration Center ID: Id of the Registration Center where the appointment is taken. Refers to master.registration_center.id'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_appointment_consumed.prereg_id IS 'Pre-Registration Id: Pre-registration id for which registration appointment is taken.'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_appointment_consumed.booking_dtimes IS 'Booking Date Time: Date and Time when the appointment booking is done.'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_appointment_consumed.appointment_date IS 'Appointment Date: Date for which an individual has taken an aopointment for registration at a registration center'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_appointment_consumed.slot_from_time IS 'Slot From Time: Start time of the appointment slot.'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_appointment_consumed.slot_to_time IS 'Slot To Time: End time of the appointment slot.'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_appointment_consumed.lang_code IS 'Language Code : For multilanguage implementation this attribute Refers master.language.code. The value of some of the attributes in current record is stored in this respective language.'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_appointment_consumed.cr_by IS 'Created By : ID or name of the user who create / insert record.'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_appointment_consumed.cr_dtimes IS 'Created DateTimestamp : Date and Timestamp when the record is created/inserted'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_appointment_consumed.upd_by IS 'Updated By : ID or name of the user who update the record with new values'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_appointment_consumed.upd_dtimes IS 'Updated DateTimestamp : Date and Timestamp when any of the fields in the record is updated with new values.'; --- ddl-end -- - diff --git a/db_scripts/mosip_prereg/ddl/prereg-reg_available_slot.sql b/db_scripts/mosip_prereg/ddl/prereg-reg_available_slot.sql deleted file mode 100644 index 15579efb645..00000000000 --- a/db_scripts/mosip_prereg/ddl/prereg-reg_available_slot.sql +++ /dev/null @@ -1,54 +0,0 @@ --- ------------------------------------------------------------------------------------------------- --- Database Name: mosip_prereg --- Table Name : prereg.reg_available_slot --- Purpose : Registration Available Slots: Slots available at a registration center for an individual to book for registrating themselves to get a UIN. --- --- Create By : Nasir Khan / Sadanandegowda --- Created Date : 15-Jul-2019 --- --- Modified Date Modified By Comments / Remarks --- ------------------------------------------------------------------------------------------ --- --- ------------------------------------------------------------------------------------------ --- object: prereg.reg_available_slot | type: TABLE -- --- DROP TABLE IF EXISTS prereg.reg_available_slot CASCADE; -CREATE TABLE prereg.reg_available_slot( - regcntr_id character varying(10) NOT NULL, - availability_date date NOT NULL, - slot_from_time time NOT NULL, - slot_to_time time, - available_kiosks smallint, - cr_by character varying(256) NOT NULL, - cr_dtimes timestamp NOT NULL, - upd_by character varying(256), - upd_dtimes timestamp, - is_deleted boolean, - del_dtimes timestamp, - CONSTRAINT pk_ravlslt_id PRIMARY KEY (regcntr_id,availability_date,slot_from_time) - -); --- ddl-end -- -COMMENT ON TABLE prereg.reg_available_slot IS 'Registration Available Slots: Slots available at a registration center for an individual to book for registrating themselves to get a UIN. '; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_available_slot.regcntr_id IS 'Registration Center ID: Id of the Registration Center where the appointment can be booded for registration process. Refers to master.registration_center.id'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_available_slot.availability_date IS 'Avalilability Date: Date when the registration center is available for registration process.'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_available_slot.slot_from_time IS 'Slot From Time: Start time of the appointment slot available for booking at a registration center.'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_available_slot.slot_to_time IS 'Slot To Time: End time of the appointment slot available for booking at a registration center.'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_available_slot.available_kiosks IS 'Available Kiosks: Number of kiosks available for booking at a registration center.'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_available_slot.cr_by IS 'Created By : ID or name of the user who create / insert record.'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_available_slot.cr_dtimes IS 'Created DateTimestamp : Date and Timestamp when the record is created/inserted'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_available_slot.upd_by IS 'Updated By : ID or name of the user who update the record with new values'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_available_slot.upd_dtimes IS 'Updated DateTimestamp : Date and Timestamp when any of the fields in the record is updated with new values.'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_available_slot.is_deleted IS 'IS_Deleted : Flag to mark whether the record is Soft deleted.'; --- ddl-end -- -COMMENT ON COLUMN prereg.reg_available_slot.del_dtimes IS 'Deleted DateTimestamp : Date and Timestamp when the record is soft deleted with is_deleted=TRUE'; --- ddl-end -- diff --git a/db_scripts/mosip_prereg/ddl/prereg-transaction_type.sql b/db_scripts/mosip_prereg/ddl/prereg-transaction_type.sql deleted file mode 100644 index 269ebdcb97e..00000000000 --- a/db_scripts/mosip_prereg/ddl/prereg-transaction_type.sql +++ /dev/null @@ -1,52 +0,0 @@ --- ------------------------------------------------------------------------------------------------- --- Database Name: mosip_prereg --- Table Name : prereg.transaction_type --- Purpose : Transaction Type: Defines various transaction types that are processd within pre-registration module/application. --- --- Create By : Nasir Khan / Sadanandegowda --- Created Date : 15-Jul-2019 --- --- Modified Date Modified By Comments / Remarks --- ------------------------------------------------------------------------------------------ --- --- ------------------------------------------------------------------------------------------ --- object: prereg.transaction_type | type: TABLE -- --- DROP TABLE IF EXISTS prereg.transaction_type CASCADE; -CREATE TABLE prereg.transaction_type( - code character varying(36) NOT NULL, - descr character varying(256) NOT NULL, - lang_code character varying(3) NOT NULL, - is_active boolean NOT NULL, - cr_by character varying(256) NOT NULL, - cr_dtimes timestamp NOT NULL, - upd_by character varying(256), - upd_dtimes timestamp, - is_deleted boolean, - del_dtimes timestamp, - CONSTRAINT ttype_pk PRIMARY KEY (code,lang_code) - -); --- ddl-end -- -COMMENT ON TABLE prereg.transaction_type IS 'Transaction Type: Defines various transaction types that are processd within pre-registration module/application.'; --- ddl-end -- -COMMENT ON COLUMN prereg.transaction_type.code IS 'Code: Code of the transaction types available in pre-registration module/application'; --- ddl-end -- -COMMENT ON COLUMN prereg.transaction_type.descr IS 'Desceription: Description of the transaction types of pre-registration module/application'; --- ddl-end -- -COMMENT ON COLUMN prereg.transaction_type.lang_code IS 'Language Code : For multilanguage implementation this attribute Refers master.language.code. The value of some of the attributes in current record is stored in this respective language.'; --- ddl-end -- -COMMENT ON COLUMN prereg.transaction_type.is_active IS 'IS_Active : Flag to mark whether the record is Active or In-active'; --- ddl-end -- -COMMENT ON COLUMN prereg.transaction_type.cr_by IS 'Created By : ID or name of the user who create / insert record.'; --- ddl-end -- -COMMENT ON COLUMN prereg.transaction_type.cr_dtimes IS 'Created DateTimestamp : Date and Timestamp when the record is created/inserted'; --- ddl-end -- -COMMENT ON COLUMN prereg.transaction_type.upd_by IS 'Updated By : ID or name of the user who update the record with new values'; --- ddl-end -- -COMMENT ON COLUMN prereg.transaction_type.upd_dtimes IS 'Updated DateTimestamp : Date and Timestamp when any of the fields in the record is updated with new values.'; --- ddl-end -- -COMMENT ON COLUMN prereg.transaction_type.is_deleted IS 'IS_Deleted : Flag to mark whether the record is Soft deleted.'; --- ddl-end -- -COMMENT ON COLUMN prereg.transaction_type.del_dtimes IS 'Deleted DateTimestamp : Date and Timestamp when the record is soft deleted with is_deleted=TRUE'; --- ddl-end -- - diff --git a/db_scripts/mosip_prereg/ddl/prereg-processed_prereg_list.sql b/db_scripts/mosip_prereg/ddl/processed_prereg_list.sql similarity index 58% rename from db_scripts/mosip_prereg/ddl/prereg-processed_prereg_list.sql rename to db_scripts/mosip_prereg/ddl/processed_prereg_list.sql index 9394eeabd40..51085e0bd44 100644 --- a/db_scripts/mosip_prereg/ddl/prereg-processed_prereg_list.sql +++ b/db_scripts/mosip_prereg/ddl/processed_prereg_list.sql @@ -1,17 +1,5 @@ --- ------------------------------------------------------------------------------------------------- --- Database Name: mosip_prereg --- Table Name : prereg.processed_prereg_list --- Purpose : Table to store all the pre-registration list received from registration processor within pre-registration module --- --- Create By : Nasir Khan / Sadanandegowda --- Created Date : 15-Jul-2019 --- --- Modified Date Modified By Comments / Remarks --- ------------------------------------------------------------------------------------------ --- --- ------------------------------------------------------------------------------------------ --- object: prereg.processed_prereg_list | type: TABLE -- --- DROP TABLE IF EXISTS prereg.processed_prereg_list CASCADE; +-- This table saves details about the pre-registration ids which are processed by the MOSIP. + CREATE TABLE prereg.processed_prereg_list( prereg_id character varying(36) NOT NULL, first_received_dtimes timestamp NOT NULL, @@ -26,17 +14,10 @@ CREATE TABLE prereg.processed_prereg_list( is_deleted boolean, del_dtimes timestamp, CONSTRAINT pprlst_pk PRIMARY KEY (prereg_id) - ); --- ddl-end -- COMMENT ON TABLE prereg.processed_prereg_list IS 'Table to store all the pre-registration list received from registration processor within pre-registration module'; --- ddl-end -- COMMENT ON COLUMN prereg.processed_prereg_list.prereg_id IS 'Pre-registration id that was consumed by registration processor to generate UIN'; --- ddl-end -- COMMENT ON COLUMN prereg.processed_prereg_list.first_received_dtimes IS 'Datetime when the pre-registration id was first recevied'; --- ddl-end -- COMMENT ON COLUMN prereg.processed_prereg_list.status_code IS 'status of the pre-registration status update into actual tables'; --- ddl-end -- COMMENT ON COLUMN prereg.processed_prereg_list.status_comments IS 'status comments of the pre-registration status update into actual tables'; --- ddl-end -- diff --git a/db_scripts/mosip_prereg/ddl/reg_appointment.sql b/db_scripts/mosip_prereg/ddl/reg_appointment.sql new file mode 100644 index 00000000000..79ac359cac1 --- /dev/null +++ b/db_scripts/mosip_prereg/ddl/reg_appointment.sql @@ -0,0 +1,30 @@ +-- This table saves the appointment details for the user’s application like the registration centre id, time slot etc.jddd +CREATE TABLE prereg.reg_appointment( + id character varying(36) NOT NULL, + regcntr_id character varying(10) NOT NULL, + prereg_id character varying(36) NOT NULL, + booking_dtimes timestamp NOT NULL, + appointment_date date, + slot_from_time time, + slot_to_time time, + lang_code character varying(3) NOT NULL, + cr_by character varying(256) NOT NULL, + cr_dtimes timestamp NOT NULL, + upd_by character varying(256), + upd_dtimes timestamp, + CONSTRAINT pk_rappmnt_id PRIMARY KEY (id), + CONSTRAINT uk_rappmnt_id UNIQUE (prereg_id) +); +COMMENT ON TABLE prereg.reg_appointment IS 'Stores all the appointment requests booked by an individual at a registration center. '; +COMMENT ON COLUMN prereg.reg_appointment.id IS 'Unique id generated for the registration appointment booking.'; +COMMENT ON COLUMN prereg.reg_appointment.regcntr_id IS 'Id of the Registration Center where the appointment is taken. Refers to master.registration_center.id'; +COMMENT ON COLUMN prereg.reg_appointment.prereg_id IS 'Pre-registration id for which registration appointment is taken.'; +COMMENT ON COLUMN prereg.reg_appointment.booking_dtimes IS 'Date and Time when the appointment booking is done.'; +COMMENT ON COLUMN prereg.reg_appointment.appointment_date IS 'Date for which an individual has taken an aopointment for registration at a registration center'; +COMMENT ON COLUMN prereg.reg_appointment.slot_from_time IS 'Start time of the appointment slot.'; +COMMENT ON COLUMN prereg.reg_appointment.slot_to_time IS 'End time of the appointment slot.'; +COMMENT ON COLUMN prereg.reg_appointment.lang_code IS 'For multilanguage implementation this attribute Refers master.language.code. The value of some of the attributes in current record is stored in this respective language.'; +COMMENT ON COLUMN prereg.reg_appointment.cr_by IS 'ID or name of the user who create / insert record.'; +COMMENT ON COLUMN prereg.reg_appointment.cr_dtimes IS 'Date and Timestamp when the record is created/inserted'; +COMMENT ON COLUMN prereg.reg_appointment.upd_by IS 'ID or name of the user who update the record with new values'; +COMMENT ON COLUMN prereg.reg_appointment.upd_dtimes IS 'Date and Timestamp when any of the fields in the record is updated with new values.'; diff --git a/db_scripts/mosip_prereg/ddl/reg_appointment_consumed.sql b/db_scripts/mosip_prereg/ddl/reg_appointment_consumed.sql new file mode 100644 index 00000000000..a52aef16a82 --- /dev/null +++ b/db_scripts/mosip_prereg/ddl/reg_appointment_consumed.sql @@ -0,0 +1,33 @@ +-- Once the user’s application is processed in MOSIP, then the application’s appointment details are archived and saved in this table by the Batch Job. + +CREATE TABLE prereg.reg_appointment_consumed( + id character varying(36) NOT NULL, + regcntr_id character varying(10) NOT NULL, + prereg_id character varying(36) NOT NULL, + booking_dtimes timestamp NOT NULL, + appointment_date date, + slot_from_time time, + slot_to_time time, + lang_code character varying(3) NOT NULL, + cr_by character varying(256) NOT NULL, + cr_dtimes timestamp NOT NULL, + upd_by character varying(256), + upd_dtimes timestamp, + CONSTRAINT pk_rappmntc_id PRIMARY KEY (id), + CONSTRAINT uk_rappmntc_id UNIQUE (prereg_id) + +); + +COMMENT ON TABLE prereg.reg_appointment_consumed IS 'Stores all the appointment requests booked by an individual at a registration center that are consumed. '; +COMMENT ON COLUMN prereg.reg_appointment_consumed.id IS 'Unique id generated for the registration appointment booking.'; +COMMENT ON COLUMN prereg.reg_appointment_consumed.regcntr_id IS 'Id of the Registration Center where the appointment is taken. Refers to master.registration_center.id'; +COMMENT ON COLUMN prereg.reg_appointment_consumed.prereg_id IS 'Pre-registration id for which registration appointment is taken.'; +COMMENT ON COLUMN prereg.reg_appointment_consumed.booking_dtimes IS 'Date and Time when the appointment booking is done.'; +COMMENT ON COLUMN prereg.reg_appointment_consumed.appointment_date IS 'Date for which an individual has taken an aopointment for registration at a registration center'; +COMMENT ON COLUMN prereg.reg_appointment_consumed.slot_from_time IS 'Start time of the appointment slot.'; +COMMENT ON COLUMN prereg.reg_appointment_consumed.slot_to_time IS 'End time of the appointment slot.'; +COMMENT ON COLUMN prereg.reg_appointment_consumed.lang_code IS 'For multilanguage implementation this attribute Refers master.language.code. The value of some of the attributes in current record is stored in this respective language.'; +COMMENT ON COLUMN prereg.reg_appointment_consumed.cr_by IS 'ID or name of the user who create / insert record.'; +COMMENT ON COLUMN prereg.reg_appointment_consumed.cr_dtimes IS 'Date and Timestamp when the record is created/inserted'; +COMMENT ON COLUMN prereg.reg_appointment_consumed.upd_by IS 'ID or name of the user who update the record with new values'; +COMMENT ON COLUMN prereg.reg_appointment_consumed.upd_dtimes IS 'Date and Timestamp when any of the fields in the record is updated with new values.'; diff --git a/db_scripts/mosip_prereg/ddl/reg_available_slot.sql b/db_scripts/mosip_prereg/ddl/reg_available_slot.sql new file mode 100644 index 00000000000..4baa34db51a --- /dev/null +++ b/db_scripts/mosip_prereg/ddl/reg_available_slot.sql @@ -0,0 +1,29 @@ +-- This table saves details about all time slots available for all the active registration centres. + +CREATE TABLE prereg.reg_available_slot( + regcntr_id character varying(10) NOT NULL, + availability_date date NOT NULL, + slot_from_time time NOT NULL, + slot_to_time time, + available_kiosks smallint, + cr_by character varying(256) NOT NULL, + cr_dtimes timestamp NOT NULL, + upd_by character varying(256), + upd_dtimes timestamp, + is_deleted boolean, + del_dtimes timestamp, + CONSTRAINT pk_ravlslt_id PRIMARY KEY (regcntr_id,availability_date,slot_from_time) +); + +COMMENT ON TABLE prereg.reg_available_slot IS 'Slots available at a registration center for an individual to book for registrating themselves to get a UIN. '; +COMMENT ON COLUMN prereg.reg_available_slot.regcntr_id IS 'Id of the Registration Center where the appointment can be booded for registration process. Refers to master.registration_center.id'; +COMMENT ON COLUMN prereg.reg_available_slot.availability_date IS 'Date when the registration center is available for registration process.'; +COMMENT ON COLUMN prereg.reg_available_slot.slot_from_time IS 'Start time of the appointment slot available for booking at a registration center.'; +COMMENT ON COLUMN prereg.reg_available_slot.slot_to_time IS 'End time of the appointment slot available for booking at a registration center.'; +COMMENT ON COLUMN prereg.reg_available_slot.available_kiosks IS 'Number of kiosks available for booking at a registration center.'; +COMMENT ON COLUMN prereg.reg_available_slot.cr_by IS 'ID or name of the user who create / insert record.'; +COMMENT ON COLUMN prereg.reg_available_slot.cr_dtimes IS 'Date and Timestamp when the record is created/inserted'; +COMMENT ON COLUMN prereg.reg_available_slot.upd_by IS 'ID or name of the user who update the record with new values'; +COMMENT ON COLUMN prereg.reg_available_slot.upd_dtimes IS 'Date and Timestamp when any of the fields in the record is updated with new values.'; +COMMENT ON COLUMN prereg.reg_available_slot.is_deleted IS 'Flag to mark whether the record is Soft deleted.'; +COMMENT ON COLUMN prereg.reg_available_slot.del_dtimes IS 'Date and Timestamp when the record is soft deleted with is_deleted=TRUE'; diff --git a/db_scripts/mosip_prereg/deploy.properties b/db_scripts/mosip_prereg/deploy.properties new file mode 100644 index 00000000000..5a080a2415d --- /dev/null +++ b/db_scripts/mosip_prereg/deploy.properties @@ -0,0 +1,6 @@ +DB_SERVERIP= +DB_PORT=5432 +SU_USER=postgres +DEFAULT_DB_NAME=postgres +MOSIP_DB_NAME=mosip_prereg +DML_FLAG=0 diff --git a/db_scripts/mosip_prereg/deploy.sh b/db_scripts/mosip_prereg/deploy.sh new file mode 100644 index 00000000000..b781c6f4d3e --- /dev/null +++ b/db_scripts/mosip_prereg/deploy.sh @@ -0,0 +1,48 @@ + +## Properties file +set -e +properties_file="$1" +echo `date "+%m/%d/%Y %H:%M:%S"` ": $properties_file" +if [ -f "$properties_file" ] +then + echo `date "+%m/%d/%Y %H:%M:%S"` ": Property file \"$properties_file\" found." + while IFS='=' read -r key value + do + key=$(echo $key | tr '.' '_') + eval ${key}=\${value} + done < "$properties_file" +else + echo `date "+%m/%d/%Y %H:%M:%S"` ": Property file not found, Pass property file name as argument." +fi + +## Terminate existing connections +echo "Terminating active connections" +CONN=$(PGPASSWORD=$SU_USER_PWD psql -v ON_ERROR_STOP=1 --username=$SU_USER --host=$DB_SERVERIP --port=$DB_PORT --dbname=$DEFAULT_DB_NAME -t -c "SELECT count(pg_terminate_backend(pg_stat_activity.pid)) FROM pg_stat_activity WHERE datname = '$MOSIP_DB_NAME' AND pid <> pg_backend_pid()";exit;) +echo "Terminated connections" + +## Drop db and role +echo "Dropping DB" +PGPASSWORD=$SU_USER_PWD psql -v ON_ERROR_STOP=1 --username=$SU_USER --host=$DB_SERVERIP --port=$DB_PORT --dbname=$DEFAULT_DB_NAME -f drop_db.sql + +echo "Dropping user" +PGPASSWORD=$SU_USER_PWD psql -v ON_ERROR_STOP=1 --username=$SU_USER --host=$DB_SERVERIP --port=$DB_PORT --dbname=$DEFAULT_DB_NAME -f drop_role.sql + +## Create users +echo `date "+%m/%d/%Y %H:%M:%S"` ": Creating database users" +PGPASSWORD=$SU_USER_PWD psql -v ON_ERROR_STOP=1 --username=$SU_USER --host=$DB_SERVERIP --port=$DB_PORT --dbname=$DEFAULT_DB_NAME -f role_dbuser.sql -v dbuserpwd=\'$DBUSER_PWD\' + +## Create DB +echo "Creating DB" +PGPASSWORD=$SU_USER_PWD psql -v ON_ERROR_STOP=1 --username=$SU_USER --host=$DB_SERVERIP --port=$DB_PORT --dbname=$DEFAULT_DB_NAME -f db.sql +PGPASSWORD=$SU_USER_PWD psql -v ON_ERROR_STOP=1 --username=$SU_USER --host=$DB_SERVERIP --port=$DB_PORT --dbname=$DEFAULT_DB_NAME -f ddl.sql + +## Grants +PGPASSWORD=$SU_USER_PWD psql -v ON_ERROR_STOP=1 --username=$SU_USER --host=$DB_SERVERIP --port=$DB_PORT --dbname=$DEFAULT_DB_NAME -f grants.sql + +## Populate tables +if [ ${DML_FLAG} == 1 ] +then + echo `date "+%m/%d/%Y %H:%M:%S"` ": Deploying DML for ${MOSIP_DB_NAME} database" + PGPASSWORD=$SU_USER_PWD psql -v ON_ERROR_STOP=1 --username=$SU_USER --host=$DB_SERVERIP --port=$DB_PORT --dbname=$DEFAULT_DB_NAME -a -b -f dml.sql +fi + diff --git a/db_scripts/mosip_prereg/dml/prereg-language_transliteration.csv b/db_scripts/mosip_prereg/dml/prereg-language_transliteration.csv deleted file mode 100644 index 737fbadbfc3..00000000000 --- a/db_scripts/mosip_prereg/dml/prereg-language_transliteration.csv +++ /dev/null @@ -1,5 +0,0 @@ -lang_from_code,lang_to_code,lang_id,cr_by,cr_dtimes -eng,ara,Latin-Arabic,MOSIP_SYSTEM,now() -fra,ara,Latin-Arabic,MOSIP_SYSTEM,now() -ara,fra,Arabic-Latin,MOSIP_SYSTEM,now() -ara,eng,Arabic-Latin,MOSIP_SYSTEM,now() diff --git a/db_scripts/mosip_prereg/drop_db.sql b/db_scripts/mosip_prereg/drop_db.sql new file mode 100644 index 00000000000..c41387fb527 --- /dev/null +++ b/db_scripts/mosip_prereg/drop_db.sql @@ -0,0 +1,2 @@ +DROP DATABASE IF EXISTS mosip_prereg; + diff --git a/db_scripts/mosip_prereg/drop_role.sql b/db_scripts/mosip_prereg/drop_role.sql new file mode 100644 index 00000000000..19d72f927bf --- /dev/null +++ b/db_scripts/mosip_prereg/drop_role.sql @@ -0,0 +1 @@ +drop role if exists prereguser; diff --git a/db_scripts/mosip_prereg/grants.sql b/db_scripts/mosip_prereg/grants.sql new file mode 100644 index 00000000000..9f09e86b947 --- /dev/null +++ b/db_scripts/mosip_prereg/grants.sql @@ -0,0 +1,17 @@ +\c mosip_prereg + +GRANT CONNECT + ON DATABASE mosip_prereg + TO prereguser; + +GRANT USAGE + ON SCHEMA prereg + TO prereguser; + +GRANT SELECT,INSERT,UPDATE,DELETE,TRUNCATE,REFERENCES + ON ALL TABLES IN SCHEMA prereg + TO prereguser; + +ALTER DEFAULT PRIVILEGES IN SCHEMA prereg + GRANT SELECT,INSERT,UPDATE,DELETE,REFERENCES ON TABLES TO prereguser; + diff --git a/db_scripts/mosip_prereg/mosip_prereg_db_deploy.sh b/db_scripts/mosip_prereg/mosip_prereg_db_deploy.sh deleted file mode 100644 index 8ed1429e145..00000000000 --- a/db_scripts/mosip_prereg/mosip_prereg_db_deploy.sh +++ /dev/null @@ -1,109 +0,0 @@ -### -- --------------------------------------------------------------------------------------------------------- -### -- Script Name : PRE-REG DB Artifacts deploy -### -- Deploy Module : MOSIP PRE-REG -### -- Purpose : To deploy MOSIP PRE-REG Database DB Artifacts. -### -- Create By : Sadanandegowda DM -### -- Created Date : 25-Oct-2019 -### -- -### -- Modified Date Modified By Comments / Remarks -### -- ----------------------------------------------------------------------------------------------------------- - -#########Properties file ############# -set -e -properties_file="$1" -echo `date "+%m/%d/%Y %H:%M:%S"` ": $properties_file" -#properties_file="./app.properties" -if [ -f "$properties_file" ] -then - echo `date "+%m/%d/%Y %H:%M:%S"` ": Property file \"$properties_file\" found." - while IFS='=' read -r key value - do - key=$(echo $key | tr '.' '_') - eval ${key}=\${value} - done < "$properties_file" -else - echo `date "+%m/%d/%Y %H:%M:%S"` ": Property file not found, Pass property file name as argument." -fi -echo `date "+%m/%d/%Y %H:%M:%S"` ": ------------------ Database server and service status check for ${MOSIP_DB_NAME}------------------------" - -today=`date '+%d%m%Y_%H%M%S'`; -LOG="${LOG_PATH}${MOSIP_DB_NAME}-${today}.log" -touch $LOG - -SERVICE=$(PGPASSWORD=$SU_USER_PWD psql --username=$SU_USER --host=$DB_SERVERIP --port=$DB_PORT --dbname=$DEFAULT_DB_NAME -t -c "select count(1) from pg_roles where rolname IN('sysadmin')";exit; > /dev/null) - -if [ "$SERVICE" -eq 0 ] || [ "$SERVICE" -eq 1 ] -then -echo `date "+%m/%d/%Y %H:%M:%S"` ": Postgres database server and service is up and running" | tee -a $LOG 2>&1 -else -echo `date "+%m/%d/%Y %H:%M:%S"` ": Postgres database server or service is not running" | tee -a $LOG 2>&1 -fi - -echo `date "+%m/%d/%Y %H:%M:%S"` ": ----------------------------------------------------------------------------------------" - -echo `date "+%m/%d/%Y %H:%M:%S"` ": Started sourcing the $MOSIP_DB_NAME Database scripts" | tee -a $LOG 2>&1 -#echo "date:" `date "+%m/%d/%Y %H:%M:%S"` -echo `date "+%m/%d/%Y %H:%M:%S"` ": Database scripts are sourcing from :$BASEPATH" | tee -a $LOG 2>&1 - -#========================================DB Deployment process begins on PREREG DB SERVER====================================== - -echo `date "+%m/%d/%Y %H:%M:%S"` ": Database deployment on $MOSIP_DB_NAME database is started...." | tee -a $LOG 2>&1 -cd /$BASEPATH/$MOSIP_DB_NAME/ -VALUE=$(PGPASSWORD=$SU_USER_PWD psql --username=$SU_USER --host=$DB_SERVERIP --port=$DB_PORT --dbname=$DEFAULT_DB_NAME -t -c "select count(1) from pg_roles where rolname IN('sysadmin','appadmin','dbadmin')";exit; >> $LOG 2>&1) - echo `date "+%m/%d/%Y %H:%M:%S"` ": Checking for existing users.... Count of existing users:"$VALUE | tee -a $LOG 2>&1 -if [ ${VALUE} == 0 ] -then - echo `date "+%m/%d/%Y %H:%M:%S"` ": Creating database users" | tee -a $LOG 2>&1 - PGPASSWORD=$SU_USER_PWD psql --username=$SU_USER --host=$DB_SERVERIP --port=$DB_PORT --dbname=$DEFAULT_DB_NAME -f $COMMON_ROLE_FILENAME -v sysadminpwd=\'$SYSADMIN_PWD\' -v dbadminpwd=\'$DBADMIN_PWD\' -v appadminpwd=\'$APPADMIN_PWD\' >> $LOG 2>&1 -elif [ ${VALUE} == 1 ] -then - echo `date "+%m/%d/%Y %H:%M:%S"` ": Creating database users" | tee -a $LOG 2>&1 - PGPASSWORD=$SU_USER_PWD psql --username=$SU_USER --host=$DB_SERVERIP --port=$DB_PORT --dbname=$DEFAULT_DB_NAME -f $COMMON_ROLE_FILENAME -v sysadminpwd=\'$SYSADMIN_PWD\' -v dbadminpwd=\'$DBADMIN_PWD\' -v appadminpwd=\'$APPADMIN_PWD\' >> $LOG 2>&1 -elif [ ${VALUE} == 2 ] -then - echo `date "+%m/%d/%Y %H:%M:%S"` ": Creating database users" | tee -a $LOG 2>&1 - PGPASSWORD=$SU_USER_PWD psql --username=$SU_USER --host=$DB_SERVERIP --port=$DB_PORT --dbname=$DEFAULT_DB_NAME -f $COMMON_ROLE_FILENAME -v sysadminpwd=\'$SYSADMIN_PWD\' -v dbadminpwd=\'$DBADMIN_PWD\' -v appadminpwd=\'$APPADMIN_PWD\' >> $LOG 2>&1 -else - echo `date "+%m/%d/%Y %H:%M:%S"` ": Database users already exist" | tee -a $LOG 2>&1 -fi - -CONN=$(PGPASSWORD=$SYSADMIN_PWD psql --username=$SYSADMIN_USER --host=$DB_SERVERIP --port=$DB_PORT --dbname=$DEFAULT_DB_NAME -t -c "SELECT count(pg_terminate_backend(pg_stat_activity.pid)) FROM pg_stat_activity WHERE datname = '$MOSIP_DB_NAME' AND pid <> pg_backend_pid()";exit; >> $LOG 2>&1) - -if [ ${CONN} == 0 ] -then - echo `date "+%m/%d/%Y %H:%M:%S"` ": No active database connections exist on ${MOSIP_DB_NAME}" | tee -a $LOG 2>&1 -else - echo `date "+%m/%d/%Y %H:%M:%S"` ": Active connections exist on the database server and active connection will be terminated for DB deployment." | tee -a $LOG 2>&1 -fi - -MASTERCONN=$(PGPASSWORD=$SU_USER_PWD psql --username=$SU_USER --host=$DB_SERVERIP --port=$DB_PORT --dbname=$DEFAULT_DB_NAME -t -c "select count(1) from pg_roles where rolname IN('prereguser')";exit; >> $LOG 2>&1) - -if [ ${MASTERCONN} == 0 ] -then - echo `date "+%m/%d/%Y %H:%M:%S"` ": Creating prereg database user" | tee -a $LOG 2>&1 - PGPASSWORD=$SYSADMIN_PWD psql --username=$SYSADMIN_USER --host=$DB_SERVERIP --port=$DB_PORT --dbname=$DEFAULT_DB_NAME -f $APP_ROLE_FILENAME -v dbuserpwd=\'$DBUSER_PWD\' >> $LOG 2>&1 -else - echo `date "+%m/%d/%Y %H:%M:%S"` ": Prereg user already exist" | tee -a $LOG 2>&1 -fi -PGPASSWORD=$SYSADMIN_PWD psql --username=$SYSADMIN_USER --host=$DB_SERVERIP --port=$DB_PORT --dbname=$DEFAULT_DB_NAME -f $DB_CREATION_FILENAME >> $LOG 2>&1 -PGPASSWORD=$SYSADMIN_PWD psql --username=$SYSADMIN_USER --host=$DB_SERVERIP --port=$DB_PORT --dbname=$DEFAULT_DB_NAME -f $ACCESS_GRANT_FILENAME >> $LOG 2>&1 -PGPASSWORD=$SYSADMIN_PWD psql --username=$SYSADMIN_USER --host=$DB_SERVERIP --port=$DB_PORT --dbname=$DEFAULT_DB_NAME -f $DDL_FILENAME >> $LOG 2>&1 - -if [ ${DML_FLAG} == 1 ] -then - echo `date "+%m/%d/%Y %H:%M:%S"` ": Deploying DML for ${MOSIP_DB_NAME} database" | tee -a $LOG 2>&1 - PGPASSWORD=$SYSADMIN_PWD psql --username=$SYSADMIN_USER --host=$DB_SERVERIP --port=$DB_PORT --dbname=$DEFAULT_DB_NAME -a -b -f $DML_FILENAME >> $LOG 2>&1 -else - echo `date "+%m/%d/%Y %H:%M:%S"` ": There are no DML deployment required for ${MOSIP_DB_NAME}" | tee -a $LOG 2>&1 -fi - -if [ $(grep -c ERROR $LOG) -ne 0 ] -then - echo `date "+%m/%d/%Y %H:%M:%S"` ": Database deployment is completed with ERRORS, Please check the logs for more information" | tee -a $LOG 2>&1 - echo `date "+%m/%d/%Y %H:%M:%S"` ": END of MOSIP database deployment" | tee -a $LOG 2>&1 -else - echo `date "+%m/%d/%Y %H:%M:%S"` ": Database deployment completed successfully, Please check the logs for more information" | tee -a $LOG 2>&1 - echo `date "+%m/%d/%Y %H:%M:%S"` ": END of MOSIP \"${MOSIP_DB_NAME}\" database deployment" | tee -a $LOG 2>&1 -fi - -echo "******************************************"`date "+%m/%d/%Y %H:%M:%S"` "*****************************************************" >> $LOG 2>&1 diff --git a/db_scripts/mosip_prereg/mosip_prereg_ddl_deploy.sql b/db_scripts/mosip_prereg/mosip_prereg_ddl_deploy.sql deleted file mode 100644 index 3414b4ea96b..00000000000 --- a/db_scripts/mosip_prereg/mosip_prereg_ddl_deploy.sql +++ /dev/null @@ -1,28 +0,0 @@ -\c mosip_prereg sysadmin - -\ir ddl/prereg-applicant_demographic.sql -\ir ddl/prereg-applicant_demographic_consumed.sql -\ir ddl/prereg-applicant_document.sql -\ir ddl/prereg-applicant_document_consumed.sql -\ir ddl/prereg-batch_job_execution.sql -\ir ddl/prereg-batch_job_execution_context.sql -\ir ddl/prereg-batch_job_execution_param.sql -\ir ddl/prereg-batch_job_instance.sql -\ir ddl/prereg-batch_step_execution.sql -\ir ddl/prereg-batch_step_execution_context.sql -\ir ddl/prereg-intf_processed_prereg_list.sql -\ir ddl/prereg-pre_registration_transaction.sql -\ir ddl/prereg-processed_prereg_list.sql -\ir ddl/prereg-reg_appointment.sql -\ir ddl/prereg-reg_appointment_consumed.sql -\ir ddl/prereg-reg_available_slot.sql -\ir ddl/prereg-transaction_type.sql -\ir ddl/prereg-language_transliteration.sql -\ir ddl/prereg-prid_seed.sql -\ir ddl/prereg-prid_seq.sql -\ir ddl/prereg-otp_transaction.sql -\ir ddl/prereg-applications.sql - - -\ir ddl/prereg-fk.sql -\ir ddl/prereg-batch-fk.sql diff --git a/db_scripts/mosip_prereg/mosip_prereg_deploy.properties b/db_scripts/mosip_prereg/mosip_prereg_deploy.properties deleted file mode 100644 index 8f2879d2bd4..00000000000 --- a/db_scripts/mosip_prereg/mosip_prereg_deploy.properties +++ /dev/null @@ -1,20 +0,0 @@ -DB_SERVERIP= -DB_PORT=9001 -SU_USER=postgres -SU_USER_PWD= -DEFAULT_DB_NAME=postgres -MOSIP_DB_NAME=mosip_prereg -SYSADMIN_USER=sysadmin -SYSADMIN_PWD=Mosipadm@dev123 -DBADMIN_PWD=Mosipadm@dev123 -APPADMIN_PWD=Mosipadm@dev123 -DBUSER_PWD=Mosip@dev123 -BASEPATH=/home/madmin/database/ -LOG_PATH=/home/madmin/logs/ -COMMON_ROLE_FILENAME=mosip_role_common.sql -APP_ROLE_FILENAME=mosip_role_prereguser.sql -DB_CREATION_FILENAME=mosip_prereg_db.sql -ACCESS_GRANT_FILENAME=mosip_prereg_grants.sql -DDL_FILENAME=mosip_prereg_ddl_deploy.sql -DML_FLAG=0 -DML_FILENAME=mosip_prereg_dml_deploy.sql diff --git a/db_scripts/mosip_prereg/mosip_prereg_dml_deploy.sql b/db_scripts/mosip_prereg/mosip_prereg_dml_deploy.sql deleted file mode 100644 index ec8d5861d8d..00000000000 --- a/db_scripts/mosip_prereg/mosip_prereg_dml_deploy.sql +++ /dev/null @@ -1,31 +0,0 @@ -\c mosip_prereg sysadmin - -\set CSVDataPath '\'/home/dbadmin/mosip_prereg/' - --------------- Level 1 data load scripts ------------------------ - ------ TRUNCATE prereg.language_transliteration TABLE Data and It's reference Data and COPY Data from CSV file ----- -TRUNCATE TABLE prereg.language_transliteration cascade ; - -\COPY prereg.language_transliteration (lang_from_code,lang_to_code,lang_id,cr_by,cr_dtimes) FROM './dml/prereg-language_transliteration.csv' delimiter ',' HEADER csv; - - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - - - - - - - - - - - - - - - - - - diff --git a/db_scripts/mosip_prereg/mosip_prereg_grants.sql b/db_scripts/mosip_prereg/mosip_prereg_grants.sql deleted file mode 100644 index eb7d8052c97..00000000000 --- a/db_scripts/mosip_prereg/mosip_prereg_grants.sql +++ /dev/null @@ -1,46 +0,0 @@ -\c mosip_prereg sysadmin - --- object: grant_b0ae4f0dce | type: PERMISSION -- -GRANT CREATE,CONNECT,TEMPORARY - ON DATABASE mosip_prereg - TO sysadmin; --- ddl-end -- - --- object: grant_99dd1cb062 | type: PERMISSION -- -GRANT CREATE,CONNECT,TEMPORARY - ON DATABASE mosip_prereg - TO appadmin; --- ddl-end -- - --- object: grant_18180691b7 | type: PERMISSION -- -GRANT CONNECT - ON DATABASE mosip_prereg - TO prereguser; --- ddl-end -- - --- object: grant_3543fb6cf7 | type: PERMISSION -- -GRANT CREATE,USAGE - ON SCHEMA prereg - TO sysadmin; --- ddl-end -- - --- object: grant_8e1a2559ed | type: PERMISSION -- -GRANT USAGE - ON SCHEMA prereg - TO prereguser; --- ddl-end -- - --- object: grant_8e1a2559ed | type: PERMISSION -- -GRANT SELECT,INSERT,UPDATE,DELETE,TRUNCATE,REFERENCES - ON ALL TABLES IN SCHEMA prereg - TO prereguser; --- ddl-end -- - -ALTER DEFAULT PRIVILEGES IN SCHEMA prereg - GRANT SELECT,INSERT,UPDATE,DELETE,REFERENCES ON TABLES TO prereguser; - --- object: grant_78ed2da4ee | type: PERMISSION -- -GRANT SELECT,INSERT,UPDATE,DELETE,TRUNCATE,REFERENCES - ON ALL TABLES IN SCHEMA prereg - TO appadmin; --- ddl-end -- diff --git a/db_scripts/mosip_prereg/mosip_role_common.sql b/db_scripts/mosip_prereg/mosip_role_common.sql deleted file mode 100644 index 4e4c083c468..00000000000 --- a/db_scripts/mosip_prereg/mosip_role_common.sql +++ /dev/null @@ -1,31 +0,0 @@ --- object: sysadmin | type: ROLE -- ---DROP ROLE IF EXISTS sysadmin; -CREATE ROLE sysadmin WITH - SUPERUSER - CREATEDB - CREATEROLE - INHERIT - LOGIN - REPLICATION - PASSWORD :sysadminpwd; --- ddl-end -- - --- object: dbadmin | type: ROLE -- ---DROP ROLE IF EXISTS dbadmin; -CREATE ROLE dbadmin WITH - CREATEDB - CREATEROLE - INHERIT - LOGIN - REPLICATION - PASSWORD :dbadminpwd; --- ddl-end -- - --- object: appadmin | type: ROLE -- ---DROP ROLE IF EXISTS appadmin; -CREATE ROLE appadmin WITH - INHERIT - LOGIN - PASSWORD :appadminpwd; --- ddl-end -- - diff --git a/db_scripts/mosip_prereg/mosip_role_prereguser.sql b/db_scripts/mosip_prereg/mosip_role_prereguser.sql deleted file mode 100644 index 1b165c43658..00000000000 --- a/db_scripts/mosip_prereg/mosip_role_prereguser.sql +++ /dev/null @@ -1,8 +0,0 @@ --- object: prereguser | type: ROLE -- --- DROP ROLE IF EXISTS prereguser; -CREATE ROLE prereguser WITH - INHERIT - LOGIN - PASSWORD :dbuserpwd; --- ddl-end -- - diff --git a/db_scripts/mosip_prereg/role_dbuser.sql b/db_scripts/mosip_prereg/role_dbuser.sql new file mode 100644 index 00000000000..60dff8f64f0 --- /dev/null +++ b/db_scripts/mosip_prereg/role_dbuser.sql @@ -0,0 +1,4 @@ +CREATE ROLE prereguser WITH + INHERIT + LOGIN + PASSWORD :dbuserpwd; diff --git a/db_release_scripts/README.MD b/db_upgrade_scripts/README.MD similarity index 92% rename from db_release_scripts/README.MD rename to db_upgrade_scripts/README.MD index bd1dbc624a6..fade53a3fa5 100644 --- a/db_release_scripts/README.MD +++ b/db_upgrade_scripts/README.MD @@ -85,11 +85,11 @@ Once completed with sourcing the database release files, Follow the DB release d **Step 1** -> Make modification to all the respective database properties files **(<>_release_deploy.properties)** in the respective database directories. Path of properties file and variables list explained above. Once the properties files are ready then access the directory where the deployment script is kept. -**Step 2** -> DB Release deployment for all databases, run the **"prereg_release_db_deploy.sh"** script with release version as parameter. To access and exeute **"prereg_release_db_deploy.sh"** script, follow the below given sample commands: +**Step 2** -> DB Release deployment for all databases, run the **"deploy.sh"** script with release version as parameter. To access and exeute **"deploy.sh"** script, follow the below given sample commands: **Enter:-bash-4.2$** cd /home/madmin/database_release/mosip_prereg - **Enter:-bash-4.2$** bash prereg_release_db_deploy.sh prereg_release_deploy.properties + **Enter:-bash-4.2$** bash deploy.sh deploy.properties **Step 3** -> Please observe Post Release Deployment Validation steps below @@ -98,11 +98,11 @@ Once completed with sourcing the database release files, Follow the DB release d ## DB deployment revoke: (Optional: Execute only if db version release deployment revoking required) -**Step 1** -> DB Revoke deployment for all databases, run the **"prereg_revoke_db_deploy.sh"** script with release version as parameter. To access and exeute **"prereg_revoke_db_deploy.sh "** script, follow the below given commands: +**Step 1** -> DB Revoke deployment for all databases, run the **"revoke.sh"** script with release version as parameter. To access and exeute **"revoke.sh "** script, follow the below given commands: **Enter:-bash-4.2$** cd /home/madmin/database_release/mosip_prereg - **Enter:-bash-4.2$** bash prereg_revoke_db_deploy.sh prereg_release_deploy.propertie + **Enter:-bash-4.2$** bash revoke.sh deploy.properties **Step 2** -> Please observe Post Release Deployment Validation steps below diff --git a/db_upgrade_scripts/mosip_prereg/sql/1.1.5.5_to_1.2.0.1-B1_rollback.sql b/db_upgrade_scripts/mosip_prereg/sql/1.1.5.5_to_1.2.0.1-B1_rollback.sql new file mode 100644 index 00000000000..a6bcaacffc1 --- /dev/null +++ b/db_upgrade_scripts/mosip_prereg/sql/1.1.5.5_to_1.2.0.1-B1_rollback.sql @@ -0,0 +1,12 @@ +\c mosip_prereg + +REASSIGN OWNED BY postgres TO sysadmin; + +GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA prereg TO sysadmin; + +DROP TABLE IF EXISTS prereg.applications; +DROP TABLE IF EXISTS prereg.anonymous_profile; + +ALTER TABLE prereg.reg_appointment ADD CONSTRAINT fk_rappmnt_id FOREIGN KEY (prereg_id) +REFERENCES prereg.applicant_demographic(prereg_id) MATCH SIMPLE +ON DELETE NO ACTION ON UPDATE NO ACTION; diff --git a/db_upgrade_scripts/mosip_prereg/sql/1.1.5.5_to_1.2.0.1-B1_upgrade.sql b/db_upgrade_scripts/mosip_prereg/sql/1.1.5.5_to_1.2.0.1-B1_upgrade.sql new file mode 100644 index 00000000000..f4a9502b913 --- /dev/null +++ b/db_upgrade_scripts/mosip_prereg/sql/1.1.5.5_to_1.2.0.1-B1_upgrade.sql @@ -0,0 +1,67 @@ +\c mosip_prereg + +REASSIGN OWNED BY sysadmin TO postgres; + +REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA prereg FROM prereguser; + +REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA prereg FROM sysadmin; + +GRANT SELECT, INSERT, TRUNCATE, REFERENCES, UPDATE, DELETE ON ALL TABLES IN SCHEMA prereg TO prereguser; + +GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA prereg TO postgres; + +CREATE TABLE IF NOT EXISTS prereg.applications( + application_id character varying(36) NOT NULL, + booking_type character varying(256) NOT NULL, + booking_status_code character varying(256), + application_status_code character varying(256), + regcntr_id character varying(10), + appointment_date date, + booking_date date, + slot_from_time time without time zone, + slot_to_time time without time zone, + contact_info character varying(256), + cr_by character varying(256) NOT NULL, + cr_dtimes timestamp without time zone NOT NULL, + upd_by character varying(256), + upd_dtimes timestamp without time zone, + CONSTRAINT appid_pk PRIMARY KEY (application_id) +); + +GRANT SELECT,INSERT,UPDATE,DELETE,REFERENCES ON prereg.applications TO prereguser; + +CREATE TABLE IF NOT EXISTS prereg.anonymous_profile +( + id character varying(36) NOT NULL, + profile character varying NOT NULL, + cr_by character varying(256) NOT NULL, + cr_dtimes timestamp without time zone NOT NULL, + upd_by character varying(256), + upd_dtimes timestamp without time zone, + is_deleted boolean, + del_dtimes timestamp without time zone, + CONSTRAINT anonymous_profile_pkey PRIMARY KEY (id) +); + +GRANT SELECT,INSERT,UPDATE,DELETE,REFERENCES ON prereg.anonymous_profile TO prereguser; + +ALTER TABLE prereg.reg_appointment DROP CONSTRAINT IF EXISTS fk_rappmnt_id CASCADE; + +CREATE INDEX IF NOT EXISTS idx_app_demo_cr_by ON prereg.applicant_demographic USING btree (cr_by COLLATE pg_catalog."default" ASC NULLS LAST) TABLESPACE pg_default; +CREATE INDEX IF NOT EXISTS idx_app_demo_prid ON prereg.applicant_demographic USING btree (prereg_id COLLATE pg_catalog."default" ASC NULLS LAST) TABLESPACE pg_default; + +ALTER TABLE prereg.prid_seq RENAME TO prid_seq_to_be_deleted; +ALTER TABLE prereg.transaction_type RENAME TO transaction_type_to_be_deleted; +ALTER TABLE prereg.language_transliteration RENAME TO language_transliteration_to_be_deleted; +ALTER TABLE prereg.prid_seed RENAME TO prid_seed_to_be_deleted; +ALTER TABLE prereg.pre_registration_transaction RENAME TO pre_registration_transaction_to_be_deleted; +ALTER TABLE prereg.processed_prereg_list DROP CONSTRAINT IF EXISTS pprlst_pregtrn_fk CASCADE; + +INSERT INTO prereg.applications(application_id, booking_type, booking_status_code, regcntr_id, appointment_date, booking_date, + slot_from_time, slot_to_time, contact_info, cr_by, cr_dtimes, upd_by, upd_dtimes, application_status_code) + Select t1.prereg_id, 'NEW_PREREGISTRATION', t1.status_code, t2.regcntr_id, t2.appointment_date, + t2.booking_dtimes, t2.slot_from_time, t2.slot_to_time, t1.cr_appuser_id, t1.cr_by, t1.cr_dtimes, t1.upd_by, t1.upd_dtimes, + Case When t1.status_code='Application_Incomplete' THEN 'DRAFT' Else 'SUBMITTED' End + From prereg.applicant_demographic t1 + LEFT Join prereg.reg_appointment t2 On t1.prereg_id=t2.prereg_id; + diff --git a/db_upgrade_scripts/mosip_prereg/sql/1.2.0.1-B1_to_1.2.0.1-B2_rollback.sql b/db_upgrade_scripts/mosip_prereg/sql/1.2.0.1-B1_to_1.2.0.1-B2_rollback.sql new file mode 100644 index 00000000000..5548b94e9cb --- /dev/null +++ b/db_upgrade_scripts/mosip_prereg/sql/1.2.0.1-B1_to_1.2.0.1-B2_rollback.sql @@ -0,0 +1 @@ +\echo 'Upgrade Queries not required for transition from $CURRENT_VERSION to $UPGRADE_VERSION' diff --git a/db_upgrade_scripts/mosip_prereg/sql/1.2.0.1-B1_to_1.2.0.1-B2_upgrade.sql b/db_upgrade_scripts/mosip_prereg/sql/1.2.0.1-B1_to_1.2.0.1-B2_upgrade.sql new file mode 100644 index 00000000000..5548b94e9cb --- /dev/null +++ b/db_upgrade_scripts/mosip_prereg/sql/1.2.0.1-B1_to_1.2.0.1-B2_upgrade.sql @@ -0,0 +1 @@ +\echo 'Upgrade Queries not required for transition from $CURRENT_VERSION to $UPGRADE_VERSION' diff --git a/db_upgrade_scripts/mosip_prereg/sql/1.2.0.1-B2_to_1.2.0.1_rollback.sql b/db_upgrade_scripts/mosip_prereg/sql/1.2.0.1-B2_to_1.2.0.1_rollback.sql new file mode 100644 index 00000000000..5548b94e9cb --- /dev/null +++ b/db_upgrade_scripts/mosip_prereg/sql/1.2.0.1-B2_to_1.2.0.1_rollback.sql @@ -0,0 +1 @@ +\echo 'Upgrade Queries not required for transition from $CURRENT_VERSION to $UPGRADE_VERSION' diff --git a/db_upgrade_scripts/mosip_prereg/sql/1.2.0.1-B2_to_1.2.0.1_upgrade.sql b/db_upgrade_scripts/mosip_prereg/sql/1.2.0.1-B2_to_1.2.0.1_upgrade.sql new file mode 100644 index 00000000000..5548b94e9cb --- /dev/null +++ b/db_upgrade_scripts/mosip_prereg/sql/1.2.0.1-B2_to_1.2.0.1_upgrade.sql @@ -0,0 +1 @@ +\echo 'Upgrade Queries not required for transition from $CURRENT_VERSION to $UPGRADE_VERSION' diff --git a/db_upgrade_scripts/mosip_prereg/sql/1.2.0.1_to_1_revoke.sql b/db_upgrade_scripts/mosip_prereg/sql/1.2.0.1_to_1_revoke.sql new file mode 100644 index 00000000000..04876d6c667 --- /dev/null +++ b/db_upgrade_scripts/mosip_prereg/sql/1.2.0.1_to_1_revoke.sql @@ -0,0 +1,22 @@ +-- ------------------------------------------------------------------------------------------ +-- Revoke script for Migrating Spring batch version to 5.0 as part of Java 21 Migration. +-- References: +-- 1. https://github.com/spring-projects/spring-batch/wiki/Spring-Batch-5.0-Migration-Guide#ms-sqlserver +-- 2. https://github.com/spring-projects/spring-batch/blob/main/spring-batch-core/src/main/resources/org/springframework/batch/core/migration/5.0/migration-postgresql.sql +-- ------------------------------------------------------------------------------------------ +ALTER TABLE BATCH_STEP_EXECUTION DROP CREATE_TIME TIMESTAMP NOT NULL DEFAULT '1970-01-01 00:00:00'; +ALTER TABLE BATCH_STEP_EXECUTION ALTER COLUMN START_TIME ADD NULL; +ALTER TABLE BATCH_JOB_EXECUTION_PARAMS ADD COLUMN DATE_VAL; +ALTER TABLE BATCH_JOB_EXECUTION_PARAMS ADD COLUMN LONG_VAL; +ALTER TABLE BATCH_JOB_EXECUTION_PARAMS ADD COLUMN DOUBLE_VAL; +ALTER TABLE BATCH_JOB_EXECUTION_PARAMS ALTER COLUMN TYPE_CD TYPE VARCHAR(6); +ALTER TABLE BATCH_JOB_EXECUTION_PARAMS RENAME PARAMETER_TYPE TO TYPE_CD; +ALTER TABLE BATCH_JOB_EXECUTION_PARAMS ALTER COLUMN KEY_NAME TYPE VARCHAR(100); +ALTER TABLE BATCH_JOB_EXECUTION_PARAMS RENAME PARAMETER_NAME TO KEY_NAME; +ALTER TABLE BATCH_JOB_EXECUTION_PARAMS ALTER COLUMN STRING_VAL TYPE VARCHAR(250); +ALTER TABLE BATCH_JOB_EXECUTION_PARAMS RENAME PARAMETER_VALUE TO STRING_VAL; +ALTER TABLE BATCH_JOB_EXECUTION ADD COLUMN JOB_CONFIGURATION_LOCATION; + +DROP SEQUENCE BATCH_STEP_EXECUTION_SEQ; +DROP SEQUENCE BATCH_JOB_EXECUTION_SEQ; +DROP SEQUENCE BATCH_JOB_SEQ; \ No newline at end of file diff --git a/db_upgrade_scripts/mosip_prereg/sql/1.2.0.1_to_1_upgrade.sql b/db_upgrade_scripts/mosip_prereg/sql/1.2.0.1_to_1_upgrade.sql new file mode 100644 index 00000000000..91ffdc28ab0 --- /dev/null +++ b/db_upgrade_scripts/mosip_prereg/sql/1.2.0.1_to_1_upgrade.sql @@ -0,0 +1,22 @@ +-- ------------------------------------------------------------------------------------------ +-- Upgrade script for Migrating Spring batch version to 5.0 as part of Java 21 Migration. +-- References: +-- 1. https://github.com/spring-projects/spring-batch/wiki/Spring-Batch-5.0-Migration-Guide#ms-sqlserver +-- 2. https://github.com/spring-projects/spring-batch/blob/main/spring-batch-core/src/main/resources/org/springframework/batch/core/migration/5.0/migration-postgresql.sql +-- ------------------------------------------------------------------------------------------ +ALTER TABLE BATCH_STEP_EXECUTION ADD CREATE_TIME TIMESTAMP NOT NULL DEFAULT '1970-01-01 00:00:00'; +ALTER TABLE BATCH_STEP_EXECUTION ALTER COLUMN START_TIME DROP NOT NULL; +ALTER TABLE BATCH_JOB_EXECUTION_PARAMS DROP COLUMN DATE_VAL; +ALTER TABLE BATCH_JOB_EXECUTION_PARAMS DROP COLUMN LONG_VAL; +ALTER TABLE BATCH_JOB_EXECUTION_PARAMS DROP COLUMN DOUBLE_VAL; +ALTER TABLE BATCH_JOB_EXECUTION_PARAMS ALTER COLUMN TYPE_CD TYPE VARCHAR(100); +ALTER TABLE BATCH_JOB_EXECUTION_PARAMS RENAME TYPE_CD TO PARAMETER_TYPE; +ALTER TABLE BATCH_JOB_EXECUTION_PARAMS ALTER COLUMN KEY_NAME TYPE VARCHAR(100); +ALTER TABLE BATCH_JOB_EXECUTION_PARAMS RENAME KEY_NAME TO PARAMETER_NAME; +ALTER TABLE BATCH_JOB_EXECUTION_PARAMS ALTER COLUMN STRING_VAL TYPE VARCHAR(2500); +ALTER TABLE BATCH_JOB_EXECUTION_PARAMS RENAME STRING_VAL TO PARAMETER_VALUE; +ALTER TABLE BATCH_JOB_EXECUTION DROP COLUMN JOB_CONFIGURATION_LOCATION; + +CREATE SEQUENCE BATCH_STEP_EXECUTION_SEQ START WITH 0 MINVALUE 0 MAXVALUE 9223372036854775807 NO CYCLE; +CREATE SEQUENCE BATCH_JOB_EXECUTION_SEQ START WITH 0 MINVALUE 0 MAXVALUE 9223372036854775807 NO CYCLE; +CREATE SEQUENCE BATCH_JOB_SEQ START WITH 0 MINVALUE 0 MAXVALUE 9223372036854775807 NO CYCLE; \ No newline at end of file diff --git a/db_upgrade_scripts/mosip_prereg/upgrade.properties b/db_upgrade_scripts/mosip_prereg/upgrade.properties new file mode 100644 index 00000000000..6226f1194f0 --- /dev/null +++ b/db_upgrade_scripts/mosip_prereg/upgrade.properties @@ -0,0 +1,12 @@ +MOSIP_DB_NAME= +DB_SERVERIP= +DB_PORT= +SU_USER=postgres +SU_USER_PWD= +SYS_ADMIN_USER= +SYS_ADMIN_PWD= +DEFAULT_DB_NAME=postgres +DBUSER_PWD= +ACTION= +CURRENT_VERSION= +UPGRADE_VERSION= diff --git a/db_upgrade_scripts/mosip_prereg/upgrade.sh b/db_upgrade_scripts/mosip_prereg/upgrade.sh new file mode 100644 index 00000000000..1e0619e00c6 --- /dev/null +++ b/db_upgrade_scripts/mosip_prereg/upgrade.sh @@ -0,0 +1,51 @@ +#!/bin/bash + +set -e +properties_file="$1" +echo `date "+%m/%d/%Y %H:%M:%S"` ": $properties_file" +if [ -f "$properties_file" ] +then + echo `date "+%m/%d/%Y %H:%M:%S"` ": Property file \"$properties_file\" found." + while IFS='=' read -r key value + do + key=$(echo $key | tr '.' '_') + eval ${key}=\${value} + done < "$properties_file" +else + echo `date "+%m/%d/%Y %H:%M:%S"` ": Property file not found, Pass property file name as argument." +fi + +echo "Current version: $CURRENT_VERSION" +echo "UPGRADE version: $UPGRADE_VERSION" +echo "Action: $ACTION" + +# Terminate existing connections +echo "Terminating active connections" +CONN=$(PGPASSWORD=$SU_USER_PWD psql -v ON_ERROR_STOP=1 --username=$SU_USER --host=$DB_SERVERIP --port=$DB_PORT --dbname=$DEFAULT_DB_NAME -t -c "SELECT count(pg_terminate_backend(pg_stat_activity.pid)) FROM pg_stat_activity WHERE datname = '$MOSIP_DB_NAME' AND pid <> pg_backend_pid()";exit;) +echo "Terminated connections" + +# Execute upgrade or rollback +if [ "$ACTION" == "upgrade" ]; then + echo "Upgrading database from $CURRENT_VERSION to $UPGRADE_VERSION" + UPGRADE_SCRIPT_FILE="sql/${CURRENT_VERSION}_to_${UPGRADE_VERSION}_upgrade.sql" + if [ -f "$UPGRADE_SCRIPT_FILE" ]; then + echo "Executing upgrade script $UPGRADE_SCRIPT_FILE" + PGPASSWORD=$SU_USER_PWD psql -v ON_ERROR_STOP=1 --username=$SU_USER --host=$DB_SERVERIP --port=$DB_PORT --dbname=$DEFAULT_DB_NAME -a -b -f $UPGRADE_SCRIPT_FILE + else + echo "Upgrade script not found, exiting." + exit 1 + fi +elif [ "$ACTION" == "rollback" ]; then + echo "Rolling back database for $CURRENT_VERSION to $UPGRADE_VERSION" + REVOKE_SCRIPT_FILE="sql/${CURRENT_VERSION}_to_${UPGRADE_VERSION}_rollback.sql" + if [ -f "$REVOKE_SCRIPT_FILE" ]; then + echo "Executing rollback script $REVOKE_SCRIPT_FILE" + PGPASSWORD=$SU_USER_PWD psql -v ON_ERROR_STOP=1 --username=$SU_USER --host=$DB_SERVERIP --port=$DB_PORT --dbname=$DEFAULT_DB_NAME -a -b -f $REVOKE_SCRIPT_FILE + else + echo "rollback script not found, exiting." + exit 1 + fi +else + echo "Unknown action: $ACTION, must be 'upgrade' or 'rollback'." + exit 1 +fi \ No newline at end of file diff --git a/design/README.md b/design/README.md deleted file mode 100644 index 743523de60c..00000000000 --- a/design/README.md +++ /dev/null @@ -1 +0,0 @@ -This section has detailed design of all MOSIP modules diff --git a/design/data_model/_images/mosip_prereg.png b/design/data_model/_images/mosip_prereg.png deleted file mode 100644 index 9c020692bf8..00000000000 Binary files a/design/data_model/_images/mosip_prereg.png and /dev/null differ diff --git a/design/data_model/_sources/mosip_prereg.dbm b/design/data_model/_sources/mosip_prereg.dbm deleted file mode 100644 index 943d6090fec..00000000000 --- a/design/data_model/_sources/mosip_prereg.dbm +++ /dev/null @@ -1,1451 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/design/data_model/mosip_prereg_dd.xlsx b/design/data_model/mosip_prereg_dd.xlsx deleted file mode 100644 index 2b92f26e391..00000000000 Binary files a/design/data_model/mosip_prereg_dd.xlsx and /dev/null differ diff --git a/design/pre-registration/_images/Batchjob/AvailabilityJob.jpg b/design/pre-registration/_images/Batchjob/AvailabilityJob.jpg deleted file mode 100644 index db492266ce1..00000000000 Binary files a/design/pre-registration/_images/Batchjob/AvailabilityJob.jpg and /dev/null differ diff --git a/design/pre-registration/_images/Batchjob/BatchClassDiagram.jpg b/design/pre-registration/_images/Batchjob/BatchClassDiagram.jpg deleted file mode 100644 index e788eec613f..00000000000 Binary files a/design/pre-registration/_images/Batchjob/BatchClassDiagram.jpg and /dev/null differ diff --git a/design/pre-registration/_images/Batchjob/ConsumedStatusJob.jpg b/design/pre-registration/_images/Batchjob/ConsumedStatusJob.jpg deleted file mode 100644 index 12c4d8fa27f..00000000000 Binary files a/design/pre-registration/_images/Batchjob/ConsumedStatusJob.jpg and /dev/null differ diff --git a/design/pre-registration/_images/Batchjob/ExpiredStatusJob.jpg b/design/pre-registration/_images/Batchjob/ExpiredStatusJob.jpg deleted file mode 100644 index 98b9b067856..00000000000 Binary files a/design/pre-registration/_images/Batchjob/ExpiredStatusJob.jpg and /dev/null differ diff --git a/design/pre-registration/_images/MOSIP_Pre-Registration.png b/design/pre-registration/_images/MOSIP_Pre-Registration.png deleted file mode 100644 index 86c34f63ebe..00000000000 Binary files a/design/pre-registration/_images/MOSIP_Pre-Registration.png and /dev/null differ diff --git a/design/pre-registration/_images/_class_diagram/booking-book.png b/design/pre-registration/_images/_class_diagram/booking-book.png deleted file mode 100644 index d68b34b03ed..00000000000 Binary files a/design/pre-registration/_images/_class_diagram/booking-book.png and /dev/null differ diff --git a/design/pre-registration/_images/_class_diagram/booking-cancel.png b/design/pre-registration/_images/_class_diagram/booking-cancel.png deleted file mode 100644 index 3886e04c662..00000000000 Binary files a/design/pre-registration/_images/_class_diagram/booking-cancel.png and /dev/null differ diff --git a/design/pre-registration/_images/_class_diagram/booking-rebook.png b/design/pre-registration/_images/_class_diagram/booking-rebook.png deleted file mode 100644 index 89966fa6315..00000000000 Binary files a/design/pre-registration/_images/_class_diagram/booking-rebook.png and /dev/null differ diff --git a/design/pre-registration/_images/_class_diagram/booking-regCenter-avilability.png b/design/pre-registration/_images/_class_diagram/booking-regCenter-avilability.png deleted file mode 100644 index 8398dfc8391..00000000000 Binary files a/design/pre-registration/_images/_class_diagram/booking-regCenter-avilability.png and /dev/null differ diff --git a/design/pre-registration/_images/_class_diagram/data-sync-service-consumed.png b/design/pre-registration/_images/_class_diagram/data-sync-service-consumed.png deleted file mode 100644 index 4377ba8fa68..00000000000 Binary files a/design/pre-registration/_images/_class_diagram/data-sync-service-consumed.png and /dev/null differ diff --git a/design/pre-registration/_images/_class_diagram/data-sync-service.png b/design/pre-registration/_images/_class_diagram/data-sync-service.png deleted file mode 100644 index fd01998a89f..00000000000 Binary files a/design/pre-registration/_images/_class_diagram/data-sync-service.png and /dev/null differ diff --git a/design/pre-registration/_images/_class_diagram/demographic-service.png b/design/pre-registration/_images/_class_diagram/demographic-service.png deleted file mode 100644 index 91caa443ce4..00000000000 Binary files a/design/pre-registration/_images/_class_diagram/demographic-service.png and /dev/null differ diff --git a/design/pre-registration/_images/_class_diagram/document-service.png b/design/pre-registration/_images/_class_diagram/document-service.png deleted file mode 100644 index 89e75d7b995..00000000000 Binary files a/design/pre-registration/_images/_class_diagram/document-service.png and /dev/null differ diff --git a/design/pre-registration/_images/_class_diagram/generateQRCode.png b/design/pre-registration/_images/_class_diagram/generateQRCode.png deleted file mode 100644 index cbf514bbc25..00000000000 Binary files a/design/pre-registration/_images/_class_diagram/generateQRCode.png and /dev/null differ diff --git a/design/pre-registration/_images/_class_diagram/login-config.png b/design/pre-registration/_images/_class_diagram/login-config.png deleted file mode 100644 index 400a46b9c70..00000000000 Binary files a/design/pre-registration/_images/_class_diagram/login-config.png and /dev/null differ diff --git a/design/pre-registration/_images/_class_diagram/login-invalidateToken.png b/design/pre-registration/_images/_class_diagram/login-invalidateToken.png deleted file mode 100644 index ca492556b34..00000000000 Binary files a/design/pre-registration/_images/_class_diagram/login-invalidateToken.png and /dev/null differ diff --git a/design/pre-registration/_images/_class_diagram/login-sendOtp.png b/design/pre-registration/_images/_class_diagram/login-sendOtp.png deleted file mode 100644 index 5a8408fc47b..00000000000 Binary files a/design/pre-registration/_images/_class_diagram/login-sendOtp.png and /dev/null differ diff --git a/design/pre-registration/_images/_class_diagram/login-validateOtp.png b/design/pre-registration/_images/_class_diagram/login-validateOtp.png deleted file mode 100644 index 6e1a49b7725..00000000000 Binary files a/design/pre-registration/_images/_class_diagram/login-validateOtp.png and /dev/null differ diff --git a/design/pre-registration/_images/_class_diagram/notification-notify.png b/design/pre-registration/_images/_class_diagram/notification-notify.png deleted file mode 100644 index f05255336cb..00000000000 Binary files a/design/pre-registration/_images/_class_diagram/notification-notify.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/QRcodeGenerate-generate.png b/design/pre-registration/_images/_sequence_diagram/QRcodeGenerate-generate.png deleted file mode 100644 index aeffa23504e..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/QRcodeGenerate-generate.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/batchjob-service-availability-sync.png b/design/pre-registration/_images/_sequence_diagram/batchjob-service-availability-sync.png deleted file mode 100644 index f7230bd409d..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/batchjob-service-availability-sync.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/batchjob-service-consumed.png b/design/pre-registration/_images/_sequence_diagram/batchjob-service-consumed.png deleted file mode 100644 index 6dbffe8fa7d..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/batchjob-service-consumed.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/batchjob-service-expired.png b/design/pre-registration/_images/_sequence_diagram/batchjob-service-expired.png deleted file mode 100644 index a7f0e101c09..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/batchjob-service-expired.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/booking-RC-availability.png b/design/pre-registration/_images/_sequence_diagram/booking-RC-availability.png deleted file mode 100644 index fa4c83e9677..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/booking-RC-availability.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/booking-book.png b/design/pre-registration/_images/_sequence_diagram/booking-book.png deleted file mode 100644 index ad2f1219946..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/booking-book.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/booking-cancel.png b/design/pre-registration/_images/_sequence_diagram/booking-cancel.png deleted file mode 100644 index 51e698f4d4e..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/booking-cancel.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/booking-rebook.png b/design/pre-registration/_images/_sequence_diagram/booking-rebook.png deleted file mode 100644 index 097d743a44a..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/booking-rebook.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/booking-reterive-preRegIds.png b/design/pre-registration/_images/_sequence_diagram/booking-reterive-preRegIds.png deleted file mode 100644 index b1754bd6ffd..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/booking-reterive-preRegIds.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/booking-retrieve-bookingDetails.png b/design/pre-registration/_images/_sequence_diagram/booking-retrieve-bookingDetails.png deleted file mode 100644 index bf883f4a47d..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/booking-retrieve-bookingDetails.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/dataSync-consumed-preRegId.png b/design/pre-registration/_images/_sequence_diagram/dataSync-consumed-preRegId.png deleted file mode 100644 index 6f02a2ec9ed..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/dataSync-consumed-preRegId.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/dataSync-retrieve-all-preRegIds.png b/design/pre-registration/_images/_sequence_diagram/dataSync-retrieve-all-preRegIds.png deleted file mode 100644 index 8d19bed3d78..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/dataSync-retrieve-all-preRegIds.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/dataSync-retrieve-data.png b/design/pre-registration/_images/_sequence_diagram/dataSync-retrieve-data.png deleted file mode 100644 index 2812c531743..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/dataSync-retrieve-data.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/demographic-create.png b/design/pre-registration/_images/_sequence_diagram/demographic-create.png deleted file mode 100644 index 7c78f749398..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/demographic-create.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/demographic-delete.png b/design/pre-registration/_images/_sequence_diagram/demographic-delete.png deleted file mode 100644 index 93de8259c02..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/demographic-delete.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/demographic-retrieve-by-preRegId.png b/design/pre-registration/_images/_sequence_diagram/demographic-retrieve-by-preRegId.png deleted file mode 100644 index f1979a39dae..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/demographic-retrieve-by-preRegId.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/demographic-retrieve-by-userId.png b/design/pre-registration/_images/_sequence_diagram/demographic-retrieve-by-userId.png deleted file mode 100644 index f7dd8af3061..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/demographic-retrieve-by-userId.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/demographic-retrieve-status.png b/design/pre-registration/_images/_sequence_diagram/demographic-retrieve-status.png deleted file mode 100644 index 484120d861a..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/demographic-retrieve-status.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/demographic-update-status.png b/design/pre-registration/_images/_sequence_diagram/demographic-update-status.png deleted file mode 100644 index 865a82194d3..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/demographic-update-status.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/demographic-update.png b/design/pre-registration/_images/_sequence_diagram/demographic-update.png deleted file mode 100644 index 1c0547dc450..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/demographic-update.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/document-copy.png b/design/pre-registration/_images/_sequence_diagram/document-copy.png deleted file mode 100644 index 2e8f93854ce..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/document-copy.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/document-delete-by-documentId.png b/design/pre-registration/_images/_sequence_diagram/document-delete-by-documentId.png deleted file mode 100644 index f41c8c86295..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/document-delete-by-documentId.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/document-delete-preRegId.png b/design/pre-registration/_images/_sequence_diagram/document-delete-preRegId.png deleted file mode 100644 index a149059cc0a..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/document-delete-preRegId.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/document-retrieve-by-documentId.png b/design/pre-registration/_images/_sequence_diagram/document-retrieve-by-documentId.png deleted file mode 100644 index a2ff4abb431..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/document-retrieve-by-documentId.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/document-retrieve-by-preRegId.png b/design/pre-registration/_images/_sequence_diagram/document-retrieve-by-preRegId.png deleted file mode 100644 index 24b0dd1388a..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/document-retrieve-by-preRegId.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/document-upload.png b/design/pre-registration/_images/_sequence_diagram/document-upload.png deleted file mode 100644 index a8d901ca89f..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/document-upload.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/login-config.png b/design/pre-registration/_images/_sequence_diagram/login-config.png deleted file mode 100644 index 2854e294209..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/login-config.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/login-invalidateToken.png b/design/pre-registration/_images/_sequence_diagram/login-invalidateToken.png deleted file mode 100644 index 1a0a909c311..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/login-invalidateToken.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/login-sendOtp.png b/design/pre-registration/_images/_sequence_diagram/login-sendOtp.png deleted file mode 100644 index 345f9945b35..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/login-sendOtp.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/login-validateOTP.png b/design/pre-registration/_images/_sequence_diagram/login-validateOTP.png deleted file mode 100644 index b3747601213..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/login-validateOTP.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/notification-notify.png b/design/pre-registration/_images/_sequence_diagram/notification-notify.png deleted file mode 100644 index 35d0b3c4eb9..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/notification-notify.png and /dev/null differ diff --git a/design/pre-registration/_images/_sequence_diagram/transliteration-transliterate.png b/design/pre-registration/_images/_sequence_diagram/transliteration-transliterate.png deleted file mode 100644 index df5b292456d..00000000000 Binary files a/design/pre-registration/_images/_sequence_diagram/transliteration-transliterate.png and /dev/null differ diff --git a/design/pre-registration/_images/deployment_arch.jpg b/design/pre-registration/_images/deployment_arch.jpg deleted file mode 100644 index e06cef3a48f..00000000000 Binary files a/design/pre-registration/_images/deployment_arch.jpg and /dev/null differ diff --git a/design/pre-registration/_images/preregd_booking_component.png b/design/pre-registration/_images/preregd_booking_component.png deleted file mode 100644 index 643d90093c5..00000000000 Binary files a/design/pre-registration/_images/preregd_booking_component.png and /dev/null differ diff --git a/design/pre-registration/_images/preregd_datasyncch.png b/design/pre-registration/_images/preregd_datasyncch.png deleted file mode 100644 index bd7ac8a452d..00000000000 Binary files a/design/pre-registration/_images/preregd_datasyncch.png and /dev/null differ diff --git a/design/pre-registration/_images/preregd_sec_arch.png b/design/pre-registration/_images/preregd_sec_arch.png deleted file mode 100644 index ffee0907fde..00000000000 Binary files a/design/pre-registration/_images/preregd_sec_arch.png and /dev/null differ diff --git a/design/pre-registration/_images/preregd_tech_flow.png b/design/pre-registration/_images/preregd_tech_flow.png deleted file mode 100644 index 16a0f331b9d..00000000000 Binary files a/design/pre-registration/_images/preregd_tech_flow.png and /dev/null differ diff --git a/design/pre-registration/_images/usecase_preregistration.jpg b/design/pre-registration/_images/usecase_preregistration.jpg deleted file mode 100644 index 75de8180980..00000000000 Binary files a/design/pre-registration/_images/usecase_preregistration.jpg and /dev/null differ diff --git a/design/pre-registration/_sources/GenerateQRCode-Service.xml b/design/pre-registration/_sources/GenerateQRCode-Service.xml deleted file mode 100644 index 400d2a73686..00000000000 --- a/design/pre-registration/_sources/GenerateQRCode-Service.xml +++ /dev/null @@ -1 +0,0 @@ -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 \ No newline at end of file diff --git a/design/pre-registration/_sources/_vd/MOSIP_Pre_Reg_For Morroco.xd b/design/pre-registration/_sources/_vd/MOSIP_Pre_Reg_For Morroco.xd deleted file mode 100644 index 4e474c4d20e..00000000000 Binary files a/design/pre-registration/_sources/_vd/MOSIP_Pre_Reg_For Morroco.xd and /dev/null differ diff --git a/design/pre-registration/_sources/_vd/MOSIP_Pre_Reg_Full.xd b/design/pre-registration/_sources/_vd/MOSIP_Pre_Reg_Full.xd deleted file mode 100644 index 58059054777..00000000000 Binary files a/design/pre-registration/_sources/_vd/MOSIP_Pre_Reg_Full.xd and /dev/null differ diff --git a/design/pre-registration/_sources/batchjob-service.xml b/design/pre-registration/_sources/batchjob-service.xml deleted file mode 100644 index b5d483ce358..00000000000 --- a/design/pre-registration/_sources/batchjob-service.xml +++ /dev/null @@ -1 +0,0 @@ -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 \ No newline at end of file diff --git a/design/pre-registration/_sources/booking-service.xml b/design/pre-registration/_sources/booking-service.xml deleted file mode 100644 index 05636e65a20..00000000000 --- a/design/pre-registration/_sources/booking-service.xml +++ /dev/null @@ -1 +0,0 @@ -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 \ No newline at end of file diff --git a/design/pre-registration/_sources/dataSync-service.xml b/design/pre-registration/_sources/dataSync-service.xml deleted file mode 100644 index b35bc2bad77..00000000000 --- a/design/pre-registration/_sources/dataSync-service.xml +++ /dev/null @@ -1 +0,0 @@ -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 \ No newline at end of file diff --git a/design/pre-registration/_sources/demographic-service-class.xml b/design/pre-registration/_sources/demographic-service-class.xml deleted file mode 100644 index 7f3c063be2a..00000000000 --- a/design/pre-registration/_sources/demographic-service-class.xml +++ /dev/null @@ -1 +0,0 @@ -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 \ No newline at end of file diff --git a/design/pre-registration/_sources/demographic-service-sequence.xml b/design/pre-registration/_sources/demographic-service-sequence.xml deleted file mode 100644 index 693cffb8ea3..00000000000 --- a/design/pre-registration/_sources/demographic-service-sequence.xml +++ /dev/null @@ -1 +0,0 @@ -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 \ No newline at end of file diff --git a/design/pre-registration/_sources/document-service.xml b/design/pre-registration/_sources/document-service.xml deleted file mode 100644 index 39f61226303..00000000000 --- a/design/pre-registration/_sources/document-service.xml +++ /dev/null @@ -1 +0,0 @@ -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 \ No newline at end of file diff --git a/design/pre-registration/_sources/login-service.xml b/design/pre-registration/_sources/login-service.xml deleted file mode 100644 index c44c2bcdb56..00000000000 --- a/design/pre-registration/_sources/login-service.xml +++ /dev/null @@ -1 +0,0 @@ -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 \ No newline at end of file diff --git a/design/pre-registration/_sources/notification-service.xml b/design/pre-registration/_sources/notification-service.xml deleted file mode 100644 index 400d2a73686..00000000000 --- a/design/pre-registration/_sources/notification-service.xml +++ /dev/null @@ -1 +0,0 @@ -7Vxbc6M2FP41nmkflgFduDwmTrLttNvuNL0+dYhRbGYx8oKcS399BUgGCWHAxtlk13nIwkE3dL5z9PFJmxmcr5/eZ+Fm9YFGJJkBO3qawasZAIFv89+F4bkyIGlYZnFUmRqG2/g/Uhkdad3GEcmFrTIxShMWb1TjgqYpWTDFFmYZfVSL3dMkUgybcElahttFmLStf8URW1VWH9u1/QcSL1eyZ8cWT+7CxadlRrep6G8G4H35Uz1eh7ItUT5fhRF9bJjg9QzOM0pZdbV+mpOkmFp12m46nu7GnZGUDakAqgoPYbIVrz6DF79QFt/Hi5DFNJ3TlGU0SUgmBsye5STxsW+Ky+06+Tm+J0mc8rvLDcniNWG8PLxKhPljbbt8XMWM3G7CRVH1kaOH21ZsnfA7h19yj7KQV8l290kSbvL4ruzV5paMLLZZHj+Q30heAaew0i0reprvAFEWLRxBItHUbq7tst11vBDXSXhHksud5+Y0oUX3KS1fKOfv/4lII3eoXf7snkiAFF3cx0nSKHlT/hR2/lY34TpOinj4k2RRmIbCLMDvAHFv6ihM4mXKbQvu1XIS224Wnn8gGSNPDZNw+3tCuQOyZ15EPpUhKUJU3j7WeHdcYVs1sO66WMSZiLHlrukaZ/xCQM0MO9iGnY6uBiY2NE5Z2Ru+nOErDWQ0Yyu6pGmYNGFWu97+2l0Pxrrew4rnd8mr6XqD55ELjvc86ks4tyR7iHlyOGebVwy50dkG4f5sA43Zxj0ec/icbaZzPRrrelf1vAMGZhs4wTrjmrLN7YdbbqtyzpnWvG60jU40rtefaIAp0SB0PNy8c6KZzvXuWNdjldaAgbTGncDx0DF43k2YmAEFAu7nLZUP3lWhfsELOGjzVD/kV8vq3xvZEL+s2qqepEX+ev7uYv7Tv1e//zoD84gutms+e9+3MMfnj6npSEWAgEXT1cLUclPhDU7UkgvxYB1HUdGNMf+pYJ3Aw44a20iu7IqHDS6WAX+Mi/2Wh//48bx2vOYEMn7t6F05TOBy0QQUNTivHNM53h/reHTgB7E/AUWVDSuuvxHZ/TfyeUtyxhN8O6s38KBn5TvKGF3zBySNLgo5tLAldPGpNPEB/i28Xd78M8j1A91GoiW5FYMkyR19vK4Nl6WBP5Dj3Re2Od1mC6JEBwuzJRGlhIJUdLfXwxlJQsYzo9K2yV+i6scitBorjvbd6gTaUlINU9RqCq2yIVmQ3t/nhLWQsRvqMLB084x8E6aSG+Tc701NpUEhmsXO8FKw1IQXfhl4QVuF146z9sDrEOi0NdeMsG3G0WBz2rChaU6uUxaz52OhQDeEP7qMwny1Ixr8sXCj/6WgQJ5iVgLTsiEU9wU2Hcu2HXHfWDA7OGs3fE6NFfmd8ixvNTW2gm8LKtwr4XOjmOAOnd3wlGfsp5XY5NqJNFKO7f3lA7V5VynOL6oBd8SLo9ZGzunixaBU64GhcqoeGt+JpRFfuJpvgElLQ22i4qA9aBtMVAbIqM2YzMmy+BxVorJOEoskzPOCdTanaLd4OMriYfF0vGf+mnlbvn1vMDZmDBuonbQdGbMYaPl9IF7bDUGtIaQ1NFH0Y2wecOe49PJChDGG8yFR2FZwFyvCmUaxqZ/x35WYu1iF/CM3kTznLqv1kzeihYzPBS1Pee1ccCoxxBmgdA4O9ne2pcQ7v7dtX1r0JVku43zZ5itivYzbFjpqFZeZo5lNvNeVTKDKAIAXHJZMPE1H223R9CSTQ+K3LZu1WGcpX37VlLNAuMI5bSsI/LFoPTXB1NcYiPAgWIxdY1zHsbDWE7LwXsj6uFXH76uDXFurgwOtTg/d9EBgeT72HATK30gbNbS0GZqQfpoUwZfcUXg72wjjl07XN+e/l1g6TWef4MX1OoyLUudd6bcgMI9GnI+ggrjhu9LeBIgb8CV73lwYfNoOjnW+ti+NkGnX0uD7KVxvOADz2kQM5BrmwyhiTLBRP+SIxhcXMaTXXst3h8NZkI19H0AMAuQA1X2Yc6rC7Hg8W/Fi2m7ooQpHa3PtRAoHwvtZpF4e2043gzyA6BkOFqgKBxHU4Kxx1CeQe4kanCBVDNiTH6Vx+EBNCJygv7TIITOLkm1emWSqqRwYaGl/sMoBkFVnJR+0mrVgI29pi+10CohMa9+mAtKJypcWM7C+cX8yMQP7wWgxwwV9ddpihg+DUWJGYIPOkZ5AwIDgW8Z9vdmMNdnPm1z2E/7lC4on8/uRwQNcTWvzNFI3UfBADxr76QoC6GvCTc/ulAu08j1703wAGt8YszmNHfPbfKGzQvB84GPCAx8vfLoDBhqDnep0hxyZ1s/Q0x0A7o9Q7XQHQkrxngDSlRI+OKvmbxDDYfF0SKyYJLLzIczTszT1yDUCnuU2PT6W+ncnUAPY9P9MsL/vCb8ITAdpzoc4TwHPmhrZ8nP+aGqELF3P9Y8DrYwFO7C8ho7mj+qlA56n4hZtGfVM7t8MuVcFXBc4+lfgZPTe7uipm+BrsYVxTw0XaDWCvhpAE5h4QI36jsZO11u9DNHnt/Xfh6mK13+DB17/Dw==7Vpdk7I2GP01zrQXdYAA4uXqfrQz7fTtaz8vI0TMbCQ2xFX765tAgiSgwuruu7OjFzvJySec8xyfxB2A6Wr3xOB6+QtNEBl4TrIbgPuB540jR/yVwL4EfA2kDCclVANm+D9Ugq5GNzhBucJKiFNKOF6bYEyzDMXcwCBjdGt2W1CSGMAapqgBzGJImuhfOOHLEo0C54D/iHC61Cu7jmqZw/g5ZXSTqfUGHlgUn7J5BfVcqn++hAnd1iDwMABTRikvS6vdFBH5as3X9niktdo3QxnvMsArB7xAslGPPgB3v32dCkKfUIYY5JSJ9inNOKOEIKa2zff6VYknWMviZkV+xgtEcCZqkzVieIW46A/uiYK/HLDJdok5mq1hLIduhYYEtuQrImquKApeORRDWFUnBK5zPC9WdQTCULxhOX5BX1FeykeidMPlStNKFkVXSQdK1FTVG3eKeVc4VmUC54hMKv6mlFC5fEaLB8rF8z8jDQpaneJTtWiZyCUWmJBaz8fiI3HxVI9whYmMij8RS2AGFaxCwPVUvW0hSHCaCSwW3BYvsUm24v8FMY52NUiR/4SoIIDtRRfdqgNTBaqubg+qd0OFLWuKB46ONhVpaTX1QW2ioATXLj7QFJ+trpom1hRnvFgtmAyCe0tklPElTWkGSV1mB+qdz06915f6UWAwX1lYnfoW5l3/Csz7nWwnJGLNyVyWUlmaIfaChWPcLOgD67C3BfnBeQsCLUL0xuHlQgxuFnQ96v2+1Icm867X0YK0VV3CfNhuQbGwoKbz1Ezp5j0fV4C9vSccnfcer9V7wOUKHN2853rUh32pD6z0xwedvCf0Lyc+ahD/x083Y/nI6upvLGdtxWm1ldHl6hrfbOV6xEd9ifdfeaoKrnCq0hMb1D+mZe6CyuPVdzPOcJZ+f0oT8mlxDMmdej9zyjldiQaUJXfydk1ihMbPBSQ2+bdivKj804n+jtShJEUztUlE5nT7cAAmBSAa9H5PhW5ONyxGRoRwyFKk7zNKSC53kmWGCOTCHY252zhTQ7/I8Kpdt1hnHXdsZbLlNtWo+r2dnkh3pItFjnhDHdVWuwnGbQjmphZbLaCpluB91AIcUy2efe45opbXKKF5EcwQ37BMYCITWNMsR/e//3qpDugaiaZJAvNllTiIZsVh9K10gHaYS1X+4AxdABRQKHM4HkeqXvsGLBTbSTzvpBQvNL92gK2UUr0NpQhe4L7WTWUDxxU5Hreu07Cpqr+pYP9M/xBY/f3T/cUCRv8wMPqLQvmE7aNH9u7A28VX8667EV8PGcd8/8lDzBk6RoS5Q8dxL4mwd/rm1uc+LXx7hisFmOe0r3MsAHSAVBIOTgeMb8VL2CdegGuO9t23i5cOlyM10ccE5rk8eNQPu1WyIW29nm+IuuNEGumsunoGMOqoulraH7Sk/Rq7UJyBfjs6UdD1zmmldkTXzjise64jMn8Nw81bkMoR53uOVOR8ajO8Tr5xVoSKXKl617QX90rys1QTRW9ijqHrDgNrpZFCjik6CuwxwDs3xg8da0wArDHnMgtvPBxFwcj1veKvb+061PN/m3Nfy89e/zLjx9ejBz+Odty0WfMiRwdO7cZGQY3bFjuAVzhJiohpu8Q075yOxkKP+98ware6s5d0/X98EtXDv/SUfB3+bQo8/A8=dZHBEoIgEIafhrtJzdjZrC6dPHQmWYEJXQdxtJ4+DckYiwOz++2/+zMLoWk1nAxr5AU5aBJHfCD0QOJ4n0TjPYGHA1sPhFHcoc0CcvWEGXpZpzi0gdAiaquaEBZY11DYgDFjsA9lJerQtWECViAvmF7Tq+JWOprsooWfQQnpnTfRXLmx4i4MdvXsR2Javo8rV8zPmvWtZBz7L0QzQlODaF1UDSnoabV+ba7v+Kf6ebeB2v5oGINl9pgE/0ezFw== \ No newline at end of file diff --git a/design/pre-registration/_sources/transliteration-service.xml b/design/pre-registration/_sources/transliteration-service.xml deleted file mode 100644 index 9221ed8860d..00000000000 --- a/design/pre-registration/_sources/transliteration-service.xml +++ /dev/null @@ -1 +0,0 @@ -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 \ No newline at end of file diff --git a/design/pre-registration/pre-registration-architecture.md b/design/pre-registration/pre-registration-architecture.md deleted file mode 100644 index 3f1cff3a193..00000000000 --- a/design/pre-registration/pre-registration-architecture.md +++ /dev/null @@ -1,7 +0,0 @@ - -# Technical flow for pre-registration - -**Introduction** -This is the technical flow including UI and server. - -![pre-registration-technical-flow](_images/preregd_tech_flow.png) diff --git a/design/pre-registration/pre-registration-batch-job.md b/design/pre-registration/pre-registration-batch-job.md deleted file mode 100644 index 23293a60dd4..00000000000 --- a/design/pre-registration/pre-registration-batch-job.md +++ /dev/null @@ -1,62 +0,0 @@ -# Approach for Pre-Registration Batch Job - -**Background** -- The Pre-Registration system should support Batch job for the following Activities. - - Updating the status of applications from **Booked** to **Expired** when the application has expiered. - - Updating the status of applications to **Consumed** after it is consumed by Registration Processor (Reverse Data Sync). - - Syncing appointment availability per Registration Center from Master Data. - -**Class Diagram** -![Class Diagram](_images/Batchjob/BatchClassDiagram.jpg) - - -**Solution** - -**Updating the status from Booked to Expired:** - -1. ExpiredStatus job has the expiredStatus step, which has expiredStatusTasklet. -2. ExpiredStatusTasklet implement tasklet Interface and on completion give status like COMPETED, FAILED status in DB. -3. ConsumedStatusTasklet calls ConsumedStatusUtil which first get auth token from AuthTokenUtil. -4. Then it will take all preIds from reg_appointment table with appointment date between date before current date and last date on which expiredStatus job ran. And update the status to Expired in applicant_demographic. -7. After completion availabilityUtil tasklet will update status in table, on success it will update COMPLETED in batch_job_execution table. -5. If found error, it will update FAILED status with exit code (which will be custom error code and message). - - -**Sequence Diagram** -![pre-registration-Expired-batch-job](_images/Batchjob/ExpiredStatusJob.jpg) - - - -**Updating the status to Consumed after Reverse Data sync:** - -1. ConsumedStatus job has the consumedStatus step, which has consumedStatusTasklet. -2. ConsumedStatusTasklet implement task let Interface and on completion give status like COMPETED, FAILED status in DB. -3. ConsumedStatusTasklet calls ConsumedStatusUtil which first get auth token from AuthTokenUtil. -4. Then it will take all pre-registration id from processed_prereg_list table based on status comment (Processed by registration processor). It will get all consumed preIds and move all details from applicant_demographic, applicant_document & reg_appointment to applicant_demographic_consumed, applicant_document_consumed & reg_appointment_consumed respectively with consumed status. -5. After completion availabilityUtil tasklet will update status in table, on success it will update COMPLETED in batch_job_execution table. -6. If found error, it will update FAILED status with exit code (which will be custom error code and message). - - -**Sequence Diagram** -![pre-registration-Consumed-batch-job](_images/Batchjob/ConsumedStatusJob.jpg) - - - - -**Syncing appointment availability per Registration center from Master Data:** - -1. AvailabilitySync job has the availabilitySync step, which has availabilityTasklet. -2. AvailabilityTasklet implement tasklet Interface and on completion give status like COMPETED, FAILED status in DB. -3. AvailabilityTasklet invokes AuthTokenUtil to get the auth token from kernel authmanager. -4. With HttpHeaders containing token will pass this object to availabilityUtil. -5. After completion availabilityUtil tasklet will update status in table, on success it will update COMPLETED in batch_job_execution table. -6. If found error, it will update FAILED status with exit code (which will be custom error code and message). -7. The System will run a Batch Job at a certain dateTime from configuration to syncing appointment availability per registration center. -8. Call the master data service to retrieve all the registration centers. In the response system will receive the Registration center Id, working hours, processing time, holiday code, number of kiosks. Insert into the **registartion_center_details** table. -9. Call the master data service for holiday details by providing the holiday code. system will receive all holiday date associated with that holiday code. -10. Calculate the time slots based on the processing time for the day and insert in the **registartion_center_time_slots** table. -11. link the **registartion_center_details** and **registartion_center_time_slots** tables with the registration center id. - -**Sequence Diagram** -![pre-registration-Sync-batch-job](_images/Batchjob/AvailabilityJob.jpg) - diff --git a/design/pre-registration/pre-registration-booking-service.md b/design/pre-registration/pre-registration-booking-service.md deleted file mode 100644 index 47c8640117b..00000000000 --- a/design/pre-registration/pre-registration-booking-service.md +++ /dev/null @@ -1,185 +0,0 @@ -# Approach for Pre-Registration Booking Service - -**Background** -- Exposing the REST API to book/cancel/modify a appointment for a citizen. - -The key requirements are: -- Create Booking APIs to book an appointment for the selected Registration center and the availability time slot for the Registration center, rebook an appointment, cancel an appointment, retrieve appointment details, retrieve availability for the registration center. -- This above details need to store in a pre-registration database. Once storing the data is completed then system need to update the availability time slots for the particular registration center. -- Once the availability time slots for the particular registration center get updated successfully then an status need to update the pre-registration status as "Booked". - -The key non-functional requirements are: -- Log the each state of the pre-registration creation: - - As a security measures the Pre-Id or applicant information should not be logged. -- Audit : - - Each state of the Pre-Registration appointment booking should be stored into the Database for audit purpose. - - Pre-reg Id and important detail of the applicant should not be audited. -- Exception : - - Any exception occurred during the registration booking, the same will be reported to the user with the user understandable exception. - -**NFRs -** -1. Availability should be consistently updated and viewed. -2. NFR for the response time should be 3 seconds. -3. Availability server side transaction should be 200ms. - - -**Solution** - -**Booking an appointment :** - -1. Create a REST API as '/appointment/{preRegistrationId}' POST method, which accept the PreRegistrationId as path parameter and in request body json object contains registration center id, booking date, from slot and to slot. -2. Check for the pre-registration whether it is existing or not and check for availability slot for the requested details. -3. Update the availability by decrementing the value by 1. -4. Save the booking data in the pre-registration booking table. after inserting the booking data system need to update the main table (applicant_demographic) with the status code "Booked" -5. Audit the exception/start/exit of the each stages of the Pre-registration create mechanism using AuditManager component. - -**Class Diagram** - -![pre-registration-booking-service](_images/_class_diagram/booking-book.png) - -**Sequence Diagram** - -![pre-registration-booking-service](_images/_sequence_diagram/booking-book.png) - - - -**Booking an multiple appointment :** - -1. Create a REST API as '/appointment/' POST method, which accept the json object from request body which contains PreRegistrationId, registration center id, booking date, from slot and to slot. -2. Iterate the booking request and check for the pre-registration whether it is existing or not. -3. Check for the pre-registration whether it is existing or not and check for availability slot for the requested details. -4. Update the availability by decrementing the value by 1. -5. Save the booking data in the pre-registration booking table. after inserting the booking data system need to update the main table (applicant_demographic) with the status code "Booked" -6. Audit the exception/start/exit of the each stages of the Pre-registration create mechanism using AuditManager component. - -**Class Diagram** - -![pre-registration booking service](_images/_class_diagram/booking-book.png) - -**Sequence Diagram** - -![pre-registration booking service](_images/_sequence_diagram/booking-book.png) - - - -**Cancel an appointment :** - -1. Create a REST API as '/appointment/{preRegistrationId}' PUT method, which accept the Pre-Registration Id as path parameter. -2. Update the availability by incrementing the value by 1. -3. Delete the booking data in the pre-registration booking table. after deletion of booking data, system need to update the main table (applicant_demographic) with the status code "Pending_Appointment" -4. Audit the exception/start/exit of the each stages of the Pre-registration Cancel Booking mechanism using AuditManager component. - -**Class Diagram** - -![pre-registration-cancel-booking-service](_images/_class_diagram/booking-cancel.png) - -**Sequence Diagram** - -![pre-registration-cancel-booking-service](_images/_sequence_diagram/booking-cancel.png) - - - - -**Re-Booking an appointment :** - -1. Create a REST API as '/appointment/{preRegistrationId}' POST method, which accept the PreRegistrationId as path parameter and in request body json object contains registration center id, booking date, from slot and to slot. -2. Retrieve the existing booking details and update the availability by incrementing the value by 1. -3. Delete the booking data in the pre-registration booking table. after deletion of booking data, system need to update the main table (applicant_demographic) with the status code "Pending_Appointment" -4. Update the availability by decrementing the value by 1 for the requested registration center id, booking date, from slot and to slot. -5. Save the booking data in the pre-registration booking table. after inserting the booking data system need to update the main table (applicant_demographic) with the status code "Booked" -6. Audit the exception/start/exit of the each stages of the Pre-registration Re Booking mechanism using AuditManager component. - -**Class Diagram** - -![pre-registration-re-booking-service](_images/_class_diagram/booking-rebook.png) - -**Sequence Diagram** - -![pre-registration-re-booking-service](_images/_sequence_diagram/booking-rebook.png) - - - - -**Get appointment details :** - -1. Create a REST API as '/appointment/{preRegistrationId}' GET method, which accept the Pre-Registration Id as path parameter -2. Retrieve the booking details from database based on the requested Pre-Registration Id. -3. Prepare an response with the fetched values and send this response to this API call. -4. Audit the exception/start/exit of the each stages of the Registration center availability mechanism using AuditManager component. - -**Class Diagram** - -![pre-registration-registration-center-availability-service ](_images/_class_diagram/booking-book.png) - -**Sequence Diagram** - -![pre-registration-registration-center-availability-service](_images/_sequence_diagram/booking-retrieve-bookingDetails.png) - - - - -**Get Registration center availability :** - -1. Create a REST API as '/appointment/availability/{registrationCenterId}' accept the Registration center id in the request path parameter. -2. Get the configured offset from the properties file and prepare the date range -3. Retrieve the availability time slots from database based on the requested registration center id and the date range. -4. Prepare an response with the fetched values and send this response to this API call. -5. Audit the exception/start/exit of the each stages of the Registration center availability mechanism using AuditManager component. - -**Class Diagram** - -![pre-registration-registration-center-availability -service](_images/_class_diagram/booking-regCenter-avilability.png) - -**Sequence Diagram** - -![pre-registration, registration center availability service](_images/_sequence_diagram/booking-RC-availability.png) - - - - -**Get Pre-Registration IDs by Appointment date range :** - -1. Create a REST API as '/appointment/preRegistrationId/{registrationCenterId}' accept the Registration center id -2. Get the current system date time from the pre-registration application portal. -3. Need to calculate "To Date" from the configuration and the requested Date. -4. Retrieve the pre-registration IDs from database based on the requested registration center id and the date. -5. Prepare an response with the fetched values and send this response to this API call. -6. Audit the exception/start/exit of the each stages of the Registration center availability mechanism using AuditManager component. - -**Class Diagram** - -![pre-registration-Get-Pre-Registration-IDs ](_images/_class_diagram/booking-book.png) - -**Sequence Diagram** - -![pre-registration-Get-Pre-Registration-IDs](_images/_sequence_diagram/booking-reterive-preRegIds.png) - - - - -**Component Diagram** - -![booking-component-diagram](_images/preregd_booking_component.png) - -**Success / Error Code** - - While processing the Registration center booking if there is any error or successfully then send the respective success or error code to the UI from API layer as Response object. - - Code | Type | Message| ------|----------|-------------| - PRG_PAM_RCI-001 | Error | User has not been selected any time slot. - PRG_PAM_RCI_002 | Error | Appointment time slot is already booked. - PRG_PAM_RCI_003 | Error | Appointment time slot is already canceled. - PRG_PAM_RCI_004 | Error | Appointment can not be canceled. - PRG_PAM_RCI_005 | Error | Appointment Re-booking cannot be done. - PRG_PAM_RCI_006 | Error | Registration Center data not found. - -**Dependency Modules** - -Component Name | Module Name | Description | ------|----------|-------------| - Audit Manager | Kernel | To audit the process while creating the pre-registration. - Exception Manager | Kernel | To prepare the user defined exception and render to the user. - Log | Kernel | To log the process. - Database Access | Kernel | To get the database connectivity - diff --git a/design/pre-registration/pre-registration-data-sync-service.md b/design/pre-registration/pre-registration-data-sync-service.md deleted file mode 100644 index 151882cc2ac..00000000000 --- a/design/pre-registration/pre-registration-data-sync-service.md +++ /dev/null @@ -1,115 +0,0 @@ -# Approach for Data Sync Service - -**Background** -- Exposing the API to Registration client will provide with the list of Pre-Registration IDs for which they wants to get Pre-Registration Data. -- Expose the API to Registration Processor will provide with the list of Pre-Registration IDs for which it wants to update Pre-Registration status. - -The key requirements are -- Create the REST API to Registration client, list of Pre-Registration IDs for which it wants to get Pre-Registration Data. -- Another REST API to Registration client, they will provide Pre-Registration Id to get the pre-registration data in zipped format. which consisting of ID.json and Documents. -- Create the REST API to Registration Processor will provide with the list of Pre-Registration IDs for which they consumed. - -The key non-functional requirements are -- Security : - - The Pre-Registration securely share the pre-registration data to registration client. - - Response signature. -- Log the each state of the data sync: - - As a security measures the PII information should not be logged. -- Audit : - - User ID, RC ID, Transaction ID, Time-stamp should be stored into the DB for audit purpose. - - Pre-reg Id and important detail of the applicant should not be audited. - - Registration processor ID, Transaction ID, Time-stamp should be stored into the DB for audit purpose. -- Exception : - - Any exception occurred during the pre-registration data sync, the same will be reported to the registration client in a understandable exception. - - -**NFRs -** - -1. Pre registration would expose Data-sync service, this is REST over HTTPS. -2. Registration client would call the service -3. the result would be fetched from DB and zipped information delivered. -4. security architecture would depict the security scenarios other than HTTPS. -5. multiple clients and pre registration is source of data. -6. registration client should be on-line to get the data. -7. No intermediate server to support mobility of registration client. -8. HTTPS provides end point security. - -  - -**Solution** - -**Reterive all pre-registration Ids :** - -1. Create a REST API as '/sync' POST Method, which accept the Data Sync JSON object from the request body. -2. The JSON object contains Registration Center ID, Appointment Date Range(Start Date, End Date). -3. The System will generate a Transaction ID and fetch all the Pre-Registrations within the Date Range(Start Range, End Date) and for the Registration Center ID received. -4. The System will calculate the count of the Pre-Registration IDs being sent. -5. The System will send the List of Pre-Registration Ids, count of Pre-Registrations and transaction id in response entity . -6. Audit the exception/start/exit of the each stages of the data sync mechanism using AuditManager component. - -**Class Diagram** - -![pre-registration-data-sync-service-sync-all](_images/_class_diagram/data-sync-service.png) - -**Sequence Diagram** - -![pre-registration-data-sync-service-sync -all](_images/_sequence_diagram/dataSync-retrieve-all-preRegIds.png) - - - - -**Reterive Pre-Registrations:** - -1. Create a REST API as '/sync' GET Method, which accept the pre-registration id from the request path parameter. -2. The System will generate a Transaction ID and do the following operation need to be happens: - Step1: fetch the demographic JSON object and appointment date time and decrypt JSON object, if successful go to next step otherwise throw an exception. - Step2: fetch all the document metadata and prepare the JSON structure and append it to the ID JSON object. fetch the perticular document, if successful go to next step otherwise throw an exception. - Step3: prepare a zip file and ResponseDTO.{zip file structure need to discuss} -3. Audit the exception/start/exit of the each stages of the data sync mechanism using AuditManager component. - -**Class Diagram** - -![pre-registration-data-sync-service-sync-data](_images/_class_diagram/data-sync-service.png) - -**Sequence Diagram** - -![pre-registration-data-sync-service-sync-data](_images/_sequence_diagram/dataSync-retrieve-data.png) - - - - -**Store all pre-registration Ids :** - -1. Create a REST API as '/sync/consumedPreRegIds' POST method accept the JSON object from the registration-processor. -2. The Registration Processor will provide the List of Pre-Registration IDs received by it(from Registration Client). -3. The System will generate a Transaction ID and store all the Pre-Registration ids in "prereg-i_processed_prereg_list" table and update in "prereg-processed_prereg_list" table. -4. The "prereg-i_processed_prereg_list" table is not permanent, for maintenance purpose database team can truncate this table. -5. A batch job need to be running to update the application.demographic table with "Processed" status. -6. Once Pre-Registration successfully processed. System will send an Acknowledgment of the Receipt ("need to be check BA(Vyas)") -7. Audit the exception/start/exit of the each stages of the reverse data sync mechanism using AuditManager component. - -**Class Diagram** - -![pre-registration-data-sync-service-sync -consumed](_images/_class_diagram/data-sync-service-consumed.png) - -**Sequence Diagram** - -![pre-registration-data-sync-service-sync -consumed](_images/_sequence_diagram/dataSync-consumed-preRegId.png) - - -**Success / Error Code** - - While processing the Pre-Registration if there is any error or successfully then send the respective success or error code to the UI from API layer as Response object. - - Code | Type | Message| ------|----------|-------------| - 0000 | Success | Packet Successfully created - - -**Dependency Modules** - -Component Name | Module Name | Description | ------|----------|-------------| - Audit Manager | Kernel | To audit the process while data sync. - Exception Manager | Kernel | To prepare the user defined exception and render to the user. - Log | Kernel | To log the process. - Database Access | Kernel | To get the database connectivity diff --git a/design/pre-registration/pre-registration-demographic-service.md b/design/pre-registration/pre-registration-demographic-service.md deleted file mode 100644 index de36bf05b10..00000000000 --- a/design/pre-registration/pre-registration-demographic-service.md +++ /dev/null @@ -1,168 +0,0 @@ -# Approach for pre-registration demographic service - -**Background** -- Exposing the REST API to create pre-registration for a citizen, where the data captured in the pre-registration portal should be stored. - -The target users are - - - Pre-Registration portal - -The key requirements are - - -1. Create the API to store the demographic details of the citizen for a pre-registration, where the data captured in the pre-registration portal should be stored. -2. Pre-Registration Id should get generated and assigned to demographic details and it should be stored in encrypted JSON in database. -3. Once the pre-registration form is stored in database then it should be in "Pending Appointment" status. -4. The API should return the success / failure status code along with the respective message. - - -The key non-functional requirements are - -- Security : - - The Pre-Registration JSON form should be encrypted. - - Generate hash out of encrypted JSON. - - Compare hash while retrieving the data. -- Log the each state of the pre-registration creation: - - As a security measures the Pre-Id or applicant information should not be logged. -- Audit : - - Each state of the Pre-Registration creation should be stored into the DB for audit purpose. - - Pre-reg Id and important detail of the applicant should not be audited. -- Exception : - - Any exception occurred during the pre-registration, the same will be reported to the user with the user understandable exception. - - -**Solution** - -**Class Diagram** - -![Pre-Registration-Demographic-Service](_images/_class_diagram/demographic-service.png) - -**Create a new pre-registration :** - -1. Create a REST API as '/applications' with POST method which accept the ID Definition JSON object (#id-definition-structure) from the request body. -2. Validate the request object against the ID Definition schema, If the provided request ID JSON object is valid then continue with the rest of the process otherwise throw an respective error message. -3. Generate the pre-registration id and assign to the requested ID JSON object and set it to the database entity. -4. Encrypt the ID JSON with current time-stamp and set it to the database entity. If the encryption is successful continue otherwise throw an respective error message. -5. Generate hash out of encrypted ID JSON and set it to the database entity. If the hash function is successful continue otherwise throw an respective error message. -6. Save the per-registration entity in the database. If data save successful in database render the successful response otherwise any database exception occurs then rollback the current transaction and throw the respective exception otherwise. -7. Audit the exception/start/exit of the each stages of the Pre-registration save mechanism using AuditManager component. - - -**Sequence Diagram** -![Pre-Registration-Demographic-Create](_images/_sequence_diagram/demographic-create.png) - - - - -**Update existing pre-registration :** - -1. Create a REST API as '/applications' with PUT method which accept the ID Definition JSON object (#id-definition-structure) from the request body and pre-registration id from request parameter. -2. Get the existing per-registration entity from database by pre-reg id. If data is not present in the database throw an respective exception. -3. Validate the requested ID JSON against the ID Definition schema, If the requested ID JSON is valid then continue otherwise throw an respective error message. -4. Encrypt the ID JSON with current time-stamp and set it to the database entity. If the encryption is successful continue otherwise throw an respective error message. -5. Generate hash out of encrypted ID JSON and sand set it to the database entity. If the hash function is successful continue otherwise throw an respective error message. -6. Update the per-registration entity in the database. If data update successful in database render the successful response otherwise any database exception occurs then rollback the current transaction and throw the respective exception otherwise. -7. Audit the exception/start/exit of the each stages of the Pre-registration update mechanism using AuditManager component. - -**Sequence Diagram** - -![Pre-Registration-Demographic-Update](_images/_sequence_diagram/demographic-update.png) - - - - -**Update existing pre-registration status:** - -1. Create a REST API as '/applications/status' with PUT method which accept the pre-registration id from request parameter and status in query parameter. -2. Get the existing per-registration entity from database by pre-reg id. If data is not present in the database throw an respective exception. -3. Set the per-registration entity with new status. -4. Update the per-registration entity in the database. If data update successful in database render the successful response otherwise any database exception occurs then rollback the current transaction and throw the respective exception otherwise. -5. Audit the exception/start/exit of the each stages of the Pre-registration update status mechanism using AuditManager component. - -**Sequence Diagram** - -![Pre-Registration-Demographic-Update-Status](_images/_sequence_diagram/demographic-update-status.png) - - - -**Retrieve existing pre-registration :** - -1. Create a REST API as '/applications' with GET method which accept the pre-registration id from request parameter. -2. Get the existing per-registration entity from database by pre-reg id. If data is not present in the database throw an respective exception. -3. Retrieve the user-id from the authorization token and compare with user-id present in entity, if it success then proceed with next operation otherwise throw an respective exception. -4. Generate hash out of encrypted ID JSON and compare with the existing hash from the entity, if it success then proceed with next operation otherwise throw an respective exception. -5. Then decrypt ID JSON using time-stamp of encryption by using KERNEL API, send a successful response with ID JSON otherwise throw an respective exception. -6. Audit the exception/start/exit of the each stages of the Pre-registration retrieve mechanism using AuditManager component. - -**Sequence Diagram** - -![Pre-Registration-Demographic-Retrieve](_images/_sequence_diagram/demographic-retrieve-by-preRegId.png) - - - - -**Retrieve existing pre-registration status:** - -1. Create a REST API as '/applications/status' with GET method which accept the pre-registration id from request parameter. -2. Get the existing per-registration entity from database by pre-reg id. If data is not present in the database throw an respective exception. -3. Then status of the pre-registration given into the response. -4. Audit the exception/start/exit of the each stages of the Pre-registration retrieve mechanism using AuditManager component. - - -**Sequence Diagram** - -![Pre-Registration-Demographic-Retrieve-Status](_images/_sequence_diagram/demographic-retrieve-status.png) - - -**Retrieve All existing pre-registration for the User:** - -1. Create a REST API as '/applications' with GET method. -2. Retrieve the user-id from the authorization token. -3. Get the all per-registration entity from database by user-id. If data is not present in the database throw an respective exception. -4. Loop all per-registration entities and generate hash out of encrypted ID JSON and compare with the existing hash from the entity, if it success then proceed with next operation otherwise throw an respective exception. -5. Then decrypt ID JSON using time-stamp of encryption by using KERNEL API, Get the required field values from the entity and construct an object and assign to the list with ID JSON otherwise throw an respective exception. -6. Send the list of object into the response. -7. Audit the exception/start/exit of the each stages of the Pre-registration retrieve all mechanism using AuditManager component. - -**Sequence Diagram** - -![Pre-Registration-Demographic-Retrieve-All](_images/_sequence_diagram/demographic-retrieve-by-userId.png) - - - - -**Discard Pre-Registration:** -1. Create a REST API as '/applications' with DELETE method which accept the pre-registration id from request parameter. -2. Retrieve the user-id from the authorization token. -3. Get the existing per-registration entity from database by pre-reg id. If data is not present in the database throw an respective exception. -4. Compare user-id with entity's user-id. if it matches then delete the record from the database and send the success response otherwise throw an respective exception. -5. Audit the exception/start/exit of the each stages of the Pre-registration delete mechanism using AuditManager component. - -**Sequence Diagram** - -![Pre-Registration-Demographic-Delete](_images/_sequence_diagram/demographic-delete.png) - - - -**Success / Error Code** - - While processing the Pre-Registration if there is any error or successfully - then send the respective success or error code to the UI from API layer as Response object. - - Code | Type | Message| ------|----------|-------------| - 0000 | Success | Packet Successfully created - PRG_PAM_APP_001 | Error | Unable create the pre-registration. - PRG_PAM_APP_002 | Error | Pre-Registration table not accessible - PRG_PAM_APP_003 | Error | Delete operation not allowed - PRG_PAM_APP_004 | Error | Failed to delete the registration - PRG_PAM_APP_005 | Error | Unable to fetch the registrations - -**Dependency Modules** - -Component Name | Module Name | Description | ------|----------|-------------| - Audit Manager | Kernel | To audit the process while creating the pre-registration. - Exception Manager | Kernel | To prepare the user defined exception and render to the user. - Log | Kernel | To log the process. - JOSN Utility | Kernel | To validate the ID definition JSON object over ID Definition Schema - Pre-Id Generator | Kernel | To get the generated Pre-Registration Id - Database Access | Kernel | To get the database connectivity \ No newline at end of file diff --git a/design/pre-registration/pre-registration-document-service.md b/design/pre-registration/pre-registration-document-service.md deleted file mode 100644 index 550d6b58bc5..00000000000 --- a/design/pre-registration/pre-registration-document-service.md +++ /dev/null @@ -1,173 +0,0 @@ -# Approach for pre-registration document service - -**Background** -- Exposing the REST API to store the supporting documents of the citizen for a pre-registration. - -The key requirements are - - -1. Create the APIs to store, modify, delete and retrieve the supporting document of the citizen for a pre-registration. -2. For each document upload it should hit the rest api to store the document in database. -3. There should be a copy document option in the UI prospective, Once it get checked then an REST API call should happen with source pre-registration id, destination pre-registration id and document category type, with this parameter document get copied to the destination pre-registration id in database. -4. Get all the documents associated with pre-registration id. -5. Get particular document associated with document id. -6. Delete particular document by providing the document id and pre-registration id. - - -The key non-functional requirements are - -- Security : - - Document should be encrypted. - - Generate hash out of encrypted document. - - Store the encrypted document in HDFS. - - Compare hash while retrieving the data. - -- Log the each state of the pre-registration creation: - - As a security measures the Pre-Id or applicant information should not be logged. - -- Audit : - - Each state of the document service should be stored into the DB for audit purpose. - - Pre-reg Id and important detail of the applicant should not be audited. - -- Exception : - - Any exception occurred during the pre-registration, the same will be reported to the user with the user understandable exception. - - -**Solution** - -**Class Diagram** - -![Document-Service](_images/_class_diagram/document-service.png) - -**Document Upload:** - -- Create a REST API as '/documents' with POST method which accept the pre-registration id from the request path parameter, document and document's JSON object from the request part parameter. - -- Encrypt the document with current time stamp and set the time stamp to the document entity. If the encryption is successful continue otherwise throw an respective error message. - -- Generate hash out of encrypted document and set it to the document entity. If the hash function is successful continue otherwise throw an respective error message. - -- Save the encrypted document into the file system using KERNEL API. If file system store is successful continue otherwise throw an respective error message. - -- Save new per-registration document entity in the database. If data save successful in database render the successful response otherwise any database exception occurs then rollback the current transaction and throw the respective exception otherwise. - -- Audit the exception/start/exit of the each stages of the document save mechanism using AuditManager component. - -**Sequence Diagram** - -![Pre-Registration-Document-Upload](_images/_sequence_diagram/document-upload.png) - - -**Document Copy:** - -- Create a REST API as '/documents' with PUT method which accept the pre-registration id from the request path parameter, document category code and source pre-registration id from the request query parameter. - -- Get the existing source per-registration document entity from database by source pre-registration id and category code. If data is not present in the database throw an respective exception. - -- Create an document entity for the specified pre-registration id and set the values from the source per-registration document entity. - -- Save new per-registration document entity in the database. If data save successful in database render the successful response otherwise any database exception occurs then rollback the current transaction and throw the respective exception otherwise. - -- Audit the exception/start/exit of the each stages of the document copy mechanism using AuditManager component. - -**Sequence Diagram** - -![Pre-Registration-document-Copy](_images/_sequence_diagram/document-copy.png) - -**Retrieve All documents metadata for the pre-registration:** - -- Create a REST API as '/documents' with GET method which accept the pre-registration id from request parameter. - -- Get the all document entity from database by pre-registration-id. If data is not present in the database throw an respective exception. - -- Loop all document entities and retrieve the required field values from the entity and construct an object and assign to the list otherwise throw an respective exception. - -- Send the list of object into the response. - -- Audit the exception/start/exit of the each stages of the Pre-registration retrieve all documents metadata mechanism using AuditManager component. - -**Sequence Diagram** - -![Pre-Registration-Document-Retrieve-All-Metadata](_images/_sequence_diagram/document-retrieve-by-preRegId.png) - -**Retrieve document :** - -- Create a REST API as '/documents' with GET method which accept the document id from request parameter and pre-registration-id from query parameter. - -- Get the existing document entity from database by document id. If data is not present in the database throw an respective exception. - -- Get the pre-registration-id from the query parameter and compare with pre-registration-id present in entity, if it success then proceed with next operation otherwise throw an respective exception. - -- Retrieve the encrypted document from the FileSystemManager, if it success then proceed with next operation otherwise throw an respective exception. - -- Generate hash out of encrypted document and compare with the existing hash from the entity, if it success then proceed with next operation otherwise throw an respective exception. - -- Then decrypt document using time stamp of encryption by using KERNEL API, send a successful response with document bytearray otherwise throw an respective exception. - -- Audit the exception/start/exit of the each stages of the Pre-registration retrieve document mechanism using AuditManager component. - -**Sequence Diagram** - -![Pre-Registration-Document-Retrieve](_images/_sequence_diagram/document-retrieve-by-documentId.png) - - -**Discard Document:** - -- Create a REST API as '/documents' with DELETE method which accept the document id from request parameter. - -- Get the existing document entity from database by document id. If data is not present in the database throw an respective exception. - -- Delete the record from the database and delete the encrypted document from the file system and send the success response otherwise throw an respective exception. - -- Audit the exception/start/exit of the each stages of the Pre-registration document delete mechanism using AuditManager component. - - -**Sequence Diagram** - -![Pre-Registration-Document-Delete](_images/_sequence_diagram/document-delete-by-documentId.png) - - -**Discard All Document:** - -- Create a REST API as '/documents/preRegistration' with DELETE method which accept the pre-registration id from request parameter. - -- Get the all document entities from database by pre-reg id. If data is not present in the database throw an respective exception. - -- Loop the document entities and delete the record from the database and delete the encrypted document from the file system and send the success response otherwise throw an respective exception. - -- Audit the exception/start/exit of the each stages of the Pre-registration delete all mechanism using AuditManager component. - - -**Sequence Diagram** - -![Pre-Registration-Document-Delete-All](_images/_sequence_diagram/document-delete-preRegId.png) - - -**Success / Error Code** - - While processing the Pre-Registration if there is any error or successfully - then send the respective success or error code to the UI from API layer as Response object. - - Code | Type | Message| ------|----------|-------------| - 0000 | Success | Packet Successfully created - PRG_PAM_DOC_001 | Error | Document failed to upload - PRG_PAM_DOC_002 | Error | Document exceeding premitted size - PRG_PAM_DOC_003 | Error | Document type not supported - PRG_PAM_DOC_004 | Error | Document invalid format - PRG_PAM_DOC_005 | Error | Document failed in virus scan - PRG_PAM_DOC_006 | Error | Document failed in quality check - PRG_PAM_DOC_007 | Error | Document failed in encryption - PRG_PAM_DOC_008 | Error | Document failed in decryption - PRG_PAM_DOC_009 | Error | Document not present - PRG_PAM_DOC_010 | Error | Document failed to delete - PRG_PAM_DOC_011 | Error | Document failed to copy - -**Dependency Modules** - -Component Name | Module Name | Description | ------|----------|-------------| - FileSystemManager | Kernel | To store the documents in file system - Audit Manager | Kernel | To audit the process while creating the pre-registation. - Exception Manager | Kernel | To prepare the user defined exception and render to the user. - Log | Kernel | To log the process. - Database Access | Kernel | To get the database connectivity diff --git a/design/pre-registration/pre-registration-generate-qr-code-service.md b/design/pre-registration/pre-registration-generate-qr-code-service.md deleted file mode 100644 index 42c1c9e88af..00000000000 --- a/design/pre-registration/pre-registration-generate-qr-code-service.md +++ /dev/null @@ -1,39 +0,0 @@ -# Approach for Generate QR Code Service - -**Background** -- Exposing the REST API to generate QR code based on pre-registration data. - -The key requirements - -- Create the REST API to generate QR code to the pre-registration data. which internally call the kernel qr code generate API. - -The key non-functional requirements are -- Log the each state while generate QR code to the pre-registration data: -- Exception : - - Any exception occurred during generating QR code, the same will be reported to the user with the user understandable exception. - -**Solution** - -** Generate QR Code:** -- Create a REST API as '/generateQRCode' with POST method, which accept the pre-registration data in string format. -- Internally call an KERNEL API to generate QR code which return byte-array. If it generate successfully send the response otherwise throw an respective exception. - -**Class Diagram** -![pre-registration generateQRCode](_images/_class_diagram/generateQRCode.png) - -**Sequence Diagram** -![pre-registration generateQRCode](_images/_sequence_diagram/QRcodeGenerate-generate.png) - -**Error Code** - -Code|Type| Message ------|----------|------------- -PRG_ACK-006|Error| QRCODE_FAILED_TO_GENERATE. - -**Dependency Modules** - -Component Name | Module Name | Description | ------|----------|-------------| -QRGenerator | Kernel | To generate an QR code. -Exception Manager | Kernel | To prepare the user defined exception and render to the user. -Log | Kernel | To log the process. - diff --git a/design/pre-registration/pre-registration-login-service.md b/design/pre-registration/pre-registration-login-service.md deleted file mode 100644 index 3281f5feeeb..00000000000 --- a/design/pre-registration/pre-registration-login-service.md +++ /dev/null @@ -1,112 +0,0 @@ -# Approach for Pre-Registration Login Service - -**Background** -- Exposing the REST API to authenticate citizen and login to pre-registration portal. - -The key requirements - -- Create the REST API to authenticate citizen by user-id and OTP while login and invalidate the token for logout. which internally call the KERNEL authentication service. - -The key non-functional requirements are -- Log the each state of the pre-registration citizen login: - - As a security measures the citizen OTP should not be logged. -- Exception : - - Any exception occurred during the login, the same will be reported to the user with the user understandable exception. - -**Solution** - -**Login - sendOTP :** - -- Create a REST API as '/login/sendOtp' POST method, which accept the login JSON object in request body. -- Get the app-id value defined in global configuration and prepare the request object. -- Then do the REST call to send OTP from Authentication service. -refer : https://github.com/mosip/mosip-docs/wiki/AuthN-&-AuthZ-APIs - -**Class Diagram** -![pre-registration login service sendOTP ](_images/_class_diagram/login-sendOtp.png) - -**Sequence Diagram** -![pre-registration login service sendOTP](_images/_sequence_diagram/login-sendOtp.png) - - -**Error Code** - - While sending the OTP if there is any error then send the respective error code to the UI from API layer as Response object. - - Code | Type | Message| ------|----------|-------------| -PRG_AUTH-001 | Error | Failed to send the OTP. - - - -**Login - validateOTP :** - -- Create a REST API as '/login/validateOtp' POST method, which accept the login validate JSON object in request body. -- Then do the REST call to validate OTP from Authentication service. -refer : https://github.com/mosip/mosip-docs/wiki/AuthN-&-AuthZ-APIs - -**Class Diagram** -![pre-registration login service - validateOTP](_images/_class_diagram/login-validateOtp.png) - -**Sequence Diagram** -![pre-registration login service - validateOTP](_images/_sequence_diagram/login-validateOTP.png) - -**Error Code** - - While validating the OTP if there is any error then send the respective error code to the UI from API layer as Response object. - - Code | Type | Message| ------|----------|-------------| - PRG_AUTH-002 | Error | Failed to validate the OTP. - - - -**Logout - invalidate :** - -- Create a REST API as '/login/invalidateToken' POST method, which accept the AuthToken from the request header. -- Then do the REST call to invalidate the authentication token from Authentication service. -refer : https://github.com/mosip/mosip-docs/wiki/AuthN-&-AuthZ-APIs - -**Class Diagram** -![pre-registration login service logout](_images/_class_diagram/login-invalidateToken.png) -**Sequence Diagram** -![pre-registration login service logout](_images/_sequence_diagram/login-invalidateToken.png) - -**Error Code** - - While invalidating AuthToken if there is any error then send the respective error code to the UI from API layer as Response object. - - Code | Type | Message| ------|----------|-------------| - PRG_AUTH-003 | Error | Failed to invalidate token. - - - -**Retrieve Configuration Parameters :** - -- Create a REST API as 'login/config' GET Method. -- It will fetch from global properties from application.properties file and module related properties from pre-registration.properties file. -- To fetch values of global properties we need to have the required key configured in pre-registration.properties file and do the REST call to the config server to get the application.properties file and do the operation to get the values. - -**Class Diagram** - -![pre-registration login service config](_images/_class_diagram/login-config.png) - -**Sequence Diagram** - -![pre-registration login service config](_images/_sequence_diagram/login-config.png) - -**Error Code** - While invalidating AuthToken if there is any error then send the respective error code to the UI from API layer as Response object. - - Code | Type | Message| ------|----------|-------------| -PRG_AUTH_004 | Error | Config files not found. - - -**Dependency Modules** - -Component Name | Module Name | Description | ------|----------|-------------| - Authentication Service | Kernel | To send/validate OTP and invalidate token. - Exception Manager | Kernel | To prepare the user defined exception and render to the user. - Log | Kernel | To log the process. diff --git a/design/pre-registration/pre-registration-notification-service.md b/design/pre-registration/pre-registration-notification-service.md deleted file mode 100644 index 8e8c2bb3ed7..00000000000 --- a/design/pre-registration/pre-registration-notification-service.md +++ /dev/null @@ -1,49 +0,0 @@ -# Approach for Notification Service - -**Background** -- Exposing a REST API to send notifications to citizen via SMS or Email. - -The key requirements are - -- Create a REST API to send notifications to citizen via SMS or Email, which internally calls the kernel notification service. - -The key non-functional requirements are - -- Log : - - Log the each state while sending notification to a citizen: - -- Exception : - - Any exception occurred during sending notification, the same will be reported to the user with the user understandable exception. - -**Solution** - -**Notify :** - -- Create a REST API as '/notify' POST method which accept the notification details, lang code, document for attachment as a request part parameters. -- notification details contains : name, pre-registration id, appointment date, appointment time, mobile number, email address and additionalRecipient. -- If the additionalRecipient is false then based on the pre-registration id do the REST call to retrieve the pre-registration data, parse the ID JSON object to get the mobile number and email address out of it. -- Do the REST call to retrieve the corresponding language notification templet based on requestd and lang code. -- DO the REST call to the KERNEL notification service based on SMS and Email. If it is successful send the success response otherwise throw an exception. - -**Class Diagram** -![pre-registration-notification-service](_images/_class_diagram/notification-notify.png) - -**Sequence Diagram** -![pre-registration-notification-service](_images/_sequence_diagram/notification-notify.png) - -**Error Code** - While notify the OTP if there is any error then send the respective error code to the UI from API layer as Response object. - - Code | Type | Message| ------|----------|-------------| -PRG_ACK_001 | Error | MOBILE_NUMBER_OR_EMAIL_ADDRESS_NOT_FILLED. -PRG_ACK_002 | Error | INCORRECT_MANDATORY_FIELDS. - -**Dependency Modules** - -Component Name | Module Name | Description | ------|----------|-------------| - SMS Notifier | Kernel | To notify via SMS. - Email Notifier | Kernel | To notify via email. - Exception Manager | Kernel | To prepare the user defined exception and render to the user. - Log | Kernel | To log the process. diff --git a/design/pre-registration/pre-registration-sec-arch.md b/design/pre-registration/pre-registration-sec-arch.md deleted file mode 100644 index 6c23839ca8e..00000000000 --- a/design/pre-registration/pre-registration-sec-arch.md +++ /dev/null @@ -1,8 +0,0 @@ - -# Security flow for pre-registration - -**Introduction** -This is the technical security flow for pre registration API access. - -![pre-registration-technical-flow](_images/preregd_sec_arch.png) - diff --git a/design/pre-registration/pre-registration-transliteration-service.md b/design/pre-registration/pre-registration-transliteration-service.md deleted file mode 100644 index 15acf1c0d94..00000000000 --- a/design/pre-registration/pre-registration-transliteration-service.md +++ /dev/null @@ -1,41 +0,0 @@ -# Multi-Language Support & Transliteration Service - -**Background** -- Mosip Support multi-language feature. - -**Solution** -1. Id object mapping would be changed to support translation. -2. User could select primary language at first time log in. -3. From second time onward it would be the same language. -4. All error messages and information messages would be shown in primary language. -5. Secondary language would be one time and could not be changed. -6. Primary and secondary language would be persisted in DB -7. Multiple language translation file would be generated at design time. -8. Run time new languages could not be added. - -**Transliteration** - -- We would use virtual keyboard provided by angular to capture user preferred language input. - -- We are Exposing the REST API to transliterate based on language code and value. - -- Create the REST API to transliterate the value based on language, which internally call the ICU4j library. - -- Internally call an ICU4j API to generate transliterated value, If it transliterated successfully send the response otherwise throw an respective exception. - -**Sequence Diagram** -![pre-registration transliterate](_images/_sequence_diagram/transliteration-transliterate.png) -**Error Code** - - Code | Type | Message ------|----------|------------- -PRG-TRA-001 | Error | Failed to transliterate - - -**Dependency Modules** - -Component Name | Module Name | Description | ------|----------|-------------| -ICU4j | Library | To transliterate. -Exception Manager | Kernel | To prepare the user defined exception and render to the user. -Log | Kernel | To log the process. diff --git a/docs/configuration.md b/docs/configuration.md new file mode 100644 index 00000000000..72b1c3048cf --- /dev/null +++ b/docs/configuration.md @@ -0,0 +1,25 @@ +# Pre-registration Configuration Guide + +## Property files +The configuration of the services is controlled by the following property files: +* `application-default.propertes` +* `pre-registration-default.propertes` + +See [Module Configuration](https://docs.mosip.io/1.2.0/modules/module-configuration) for location of these files. + +## Few important configurations +|Property|Description| +|---|---| +|`preregistration.document.extention`|Document formats| +|`max.file.size`|Document max upload size| +|`mosip.preregistration.document.scan`|To enable Virus Scan for document being uploaded| +|`preregistration.availability.sync`|Number of days for which sync is done on the Booking Slots generated for a registration centre| +|`preregistration.availability.noOfDays`|Number of days for which booking slots will be available.| +|`preregistration.booking.offset`|Gap between the date of booking and the first appointment date to be shown| +|`preregistration.config.identityjson`|Mapping file for Pre-registration & ID Object| +|`preregistration.identity.name`|The field name from ID Schema which indicates user's name.| +|`preregistration.notification.nameFormat`|The field name from ID Schema which indicates user's name. Used in notifications.| +|`preregistration.recommended.centers.locCode`|The value depicts the location hierarchy code of the hierarchy based on which the recommended centers is loaded| +|`preregistration.contact.email`|Contact details of the Support for Pre-registration portal.| +|`preregistration.contact.phone`|Contact details of the Support for Pre-registration portal.| + diff --git a/pre-registration/pom.xml b/pre-registration/pom.xml index 3c11d0ee156..5744cb99868 100644 --- a/pre-registration/pom.xml +++ b/pre-registration/pom.xml @@ -6,85 +6,47 @@ io.mosip.preregistration pre-registration-parent - 1.2.0-SNAPSHOT + 1.2.1-java21-SNAPSHOT pom pre-registration Parent project of MOSIP Pre-Registration https://github.com/mosip/pre-registration - - - MPL 2.0 - https://www.mozilla.org/en-US/MPL/2.0/ - - - - - scm:git:git://github.com/mosip/pre-registration.git - scm:git:ssh://github.com:mosip/pre-registration.git - https://github.com/mosip/pre-registration - HEAD - - - - - Mosip - mosip.emailnotifier@gmail.com - io.mosip - https://github.com/mosip/pre-registration - - - - - - ossrh - CentralRepository - https://oss.sonatype.org/content/repositories/snapshots - default - - true - - - - central - MavenCentral - default - https://repo1.maven.org/maven2 - - false - - - - - - - ossrh - https://oss.sonatype.org/content/repositories/snapshots - - - ossrh - https://oss.sonatype.org/service/local/staging/deploy/maven2/ - - - - 1.2.0-SNAPSHOT - 1.2.0-SNAPSHOT UTF-8 - 11 - 11 - 3.8.0 + UTF-8 + 21 + + + ${java.version} + ${java.version} + 3.11.0 3.0.2 3.1.0 - 2.22.0 - 0.8.5 + 3.2.0 + 2.3 + 0.8.11 + 3.1.1 + 3.3.1 + 3.2.3 + 3.0.2 + 3.1.0 + 3.3.0 + 3.1.2 + 3.2.5 + 1.6.7 3.7.0.1746 - 3.2.0 + + 3.0.1 + 0.2 + + + 2.5.0 5.0.4.RELEASE - 2.0.2.RELEASE + 3.2.3 2.0.9.RELEASE 2.0.0.RELEASE @@ -92,9 +54,6 @@ 2.0.1.Final 2.9.5 - - 2.9.2 - 2.5.0 5.1.46 @@ -112,24 +71,25 @@ 2.2 4.3 - 4.12 1.1.6 1.7.19 - 1.10.19 + 3.4.3 - 1.18.8 + 1.18.30 - 1.1 + 1.1.1 + 3.1.4 20080701 0.7.4 1.2 63.1 + 1.4.2 **/code/**, @@ -155,10 +115,12 @@ **/dto/**,**/entity/**,**/config/** - 3.0.2 - 3.1.0 - + + 1.2.1-java21-SNAPSHOT + 1.2.1-java21-SNAPSHOT + 1.2.1-java21-SNAPSHOT + pre-registration-core pre-registration-application-service @@ -166,52 +128,74 @@ pre-registration-batchjob pre-registration-captcha-service + + + + + io.mosip.kernel + kernel-bom + ${kernel.bom.version} + pom + import + + + org.projectlombok + lombok + ${lombok.version} + provided + + + javax.xml.bind jaxb-api - 2.3.1 javax.activation activation - 1.1 org.glassfish.jaxb jaxb-runtime - 2.3.1 org.mockito mockito-core - 2.22.0 test org.javassist javassist - 3.27.0-GA com.fasterxml.jackson.core jackson-databind - 2.12.0 com.fasterxml.jackson.core jackson-annotations - 2.12.0 com.fasterxml.jackson.core jackson-core - 2.12.0 com.fasterxml.jackson.datatype jackson-datatype-jsr310 - 2.12.0 + + + org.junit.vintage + junit-vintage-engine + + + junit + junit + test + + + org.springframework.boot + spring-boot-starter-data-jpa @@ -271,14 +255,19 @@ ${skipTests} false - ${argLine} --add-opens java.xml/jdk.xml.internal=ALL-UNNAMED --illegal-access=permit + ${argLine} + --add-opens java.xml/jdk.xml.internal=ALL-UNNAMED + --add-opens java.base/java.lang=ALL-UNNAMED + --add-opens java.base/java.io=ALL-UNNAMED + --illegal-access=debug + --enable-preview org.jacoco jacoco-maven-plugin - ${maven.jacoco.version} + ${jacoco.maven.plugin.version} @@ -297,7 +286,7 @@ org.apache.maven.plugins maven-javadoc-plugin - ${maven.javadoc.version} + ${maven.javadoc.plugin.version} attach-javadocs @@ -313,7 +302,7 @@ org.sonatype.plugins nexus-staging-maven-plugin - 1.6.7 + ${nexus.staging.maven.plugin.version} true ossrh @@ -325,7 +314,7 @@ org.apache.maven.plugins maven-source-plugin - 2.2.1 + ${maven.source.plugin.version} attach-sources @@ -339,7 +328,7 @@ org.apache.maven.plugins maven-gpg-plugin - 1.5 + ${maven.gpg.plugin.version} sign-artifacts @@ -394,7 +383,7 @@ pl.project13.maven git-commit-id-plugin - 3.0.1 + ${git.commit.id.plugin.version} get-the-git-infos @@ -406,14 +395,14 @@ true - ${project.build.outputDirectory}/git.properties + + ${project.build.outputDirectory}/git.properties ^git.build.(time|version)$ ^git.commit.id.(abbrev|full)$ full ${project.basedir}/.git - @@ -449,4 +438,58 @@ + + + + ossrh + CentralRepository + https://oss.sonatype.org/content/repositories/snapshots + default + + true + + + + central + MavenCentral + default + https://repo1.maven.org/maven2 + + false + + + + + + + ossrh + https://oss.sonatype.org/content/repositories/snapshots + + + ossrh + https://oss.sonatype.org/service/local/staging/deploy/maven2/ + + + + + + MPL 2.0 + https://www.mozilla.org/en-US/MPL/2.0/ + + + + scm:git:git://github.com/mosip/pre-registration.git + scm:git:ssh://github.com:mosip/pre-registration.git + https://github.com/mosip/pre-registration + HEAD + + + + + Mosip + mosip.emailnotifier@gmail.com + io.mosip + https://github.com/mosip/pre-registration + + diff --git a/pre-registration/pre-registration-application-service/Dockerfile b/pre-registration/pre-registration-application-service/Dockerfile index d45eed3cf36..e9ffd1ebca5 100644 --- a/pre-registration/pre-registration-application-service/Dockerfile +++ b/pre-registration/pre-registration-application-service/Dockerfile @@ -1,4 +1,4 @@ -FROM openjdk:11 +FROM eclipse-temurin:21-jre-alpine ARG SOURCE ARG COMMIT_HASH @@ -49,16 +49,16 @@ ARG container_user=mosip ARG container_user_group=mosip # can be passed during Docker build as build time environment for github branch to pickup configuration from. -ARG container_user_uid=1001 +ARG container_user_uid=1002 # can be passed during Docker build as build time environment for github branch to pickup configuration from. ARG container_user_gid=1001 # install packages and create user -RUN apt-get -y update \ -&& apt-get install -y unzip \ -&& groupadd -g ${container_user_gid} ${container_user_group} \ -&& useradd -u ${container_user_uid} -g ${container_user_group} -s /bin/sh -m ${container_user} +RUN apk -q update \ +&& apk add -q unzip wget \ +&& addgroup -g ${container_user_gid} ${container_user_group} \ +&& adduser -s /bin/sh -u ${container_user_uid} -G ${container_user_group} -h /home/${container_user} --disabled-password ${container_user} # set working directory for the user WORKDIR /home/${container_user} @@ -81,8 +81,8 @@ USER ${container_user_uid}:${container_user_gid} EXPOSE 9090 CMD if [ "$is_glowroot_env" = "present" ]; then \ - #wget -q --show-progress "${artifactory_url_env}"/artifactory/libs-snapshot-local/io/mosip/kernel/kernel-ref-idobjectvalidator/kernel-ref-idobjectvalidator.jar "${loader_path_env}"/kernel-ref-idobjectvalidator.jar ; \ - wget -q --show-progress "${artifactory_url_env}"/artifactory/libs-snapshot-local/io/mosip/kernel/kernel-ref-idobjectvalidator/kernel-ref-idobjectvalidator.jar -O "${loader_path_env}"/kernel-ref-idobjectvalidator.jar ; \ + #wget -q --show-progress "${artifactory_url_env}"/artifactory/libs-release-local/io/mosip/kernel/kernel-ref-idobjectvalidator/kernel-ref-idobjectvalidator.jar "${loader_path_env}"/kernel-ref-idobjectvalidator.jar ; \ + wget -q --show-progress "${artifactory_url_env}"/artifactory/libs-release-local/io/mosip/kernel/kernel-ref-idobjectvalidator/kernel-ref-idobjectvalidator.jar -O "${loader_path_env}"/kernel-ref-idobjectvalidator.jar ; \ wget -q --show-progress "${artifactory_url_env}"/artifactory/libs-release-local/icu4j/icu4j.jar -O "${loader_path_env}"/icu4j.jar ; \ wget -q --show-progress "${artifactory_url_env}"/artifactory/libs-release-local/icu4j/kernel-transliteration-icu4j.jar -O "${loader_path_env}"/kernel-transliteration-icu4j.jar ; \ wget -q --show-progress "${artifactory_url_env}"/artifactory/libs-release-local/io/mosip/testing/glowroot.zip ; \ @@ -92,10 +92,11 @@ CMD if [ "$is_glowroot_env" = "present" ]; then \ wget -q --show-progress "${iam_adapter_url_env}" -O "${loader_path_env}"/kernel-auth-adapter.jar; \ java -jar -Dloader.path="${loader_path_env}" -javaagent:glowroot/glowroot.jar -Dspring.cloud.config.label="${spring_config_label_env}" -Dspring.profiles.active="${active_profile_env}" -Dspring.cloud.config.uri="${spring_config_url_env}" pre-registration-application-service.jar ; \ else \ - wget -q --show-progress "${artifactory_url_env}"/artifactory/libs-snapshot-local/io/mosip/kernel/kernel-ref-idobjectvalidator/kernel-ref-idobjectvalidator.jar -O "${loader_path_env}"/kernel-ref-idobjectvalidator.jar ; \ + wget -q --show-progress "${artifactory_url_env}"/artifactory/libs-release-local/io/mosip/kernel/kernel-ref-idobjectvalidator/kernel-ref-idobjectvalidator.jar -O "${loader_path_env}"/kernel-ref-idobjectvalidator.jar ; \ wget -q --show-progress "${artifactory_url_env}"/artifactory/libs-release-local/icu4j/icu4j.jar -O "${loader_path_env}"/icu4j.jar ; \ wget -q --show-progress "${artifactory_url_env}"/artifactory/libs-release-local/icu4j/kernel-transliteration-icu4j.jar -O "${loader_path_env}"/kernel-transliteration-icu4j.jar ; \ wget -q --show-progress "${iam_adapter_url_env}" -O "${loader_path_env}"/kernel-auth-adapter.jar; \ + wget -q --show-progress "${virusscanner_url_env}" -O "${loader_path_env}"/kernel-virusscanner-clamav.jar; \ java -jar -Dloader.path="${loader_path_env}" -Dspring.cloud.config.label="${spring_config_label_env}" -Dspring.profiles.active="${active_profile_env}" -Dspring.cloud.config.uri="${spring_config_url_env}" pre-registration-application-service.jar ; \ #java -jar -Dloader.path="${loader_path_env}" -Dspring.cloud.config.label="${spring_config_label_env}" -Dspring.profiles.active="${active_profile_env}" -Dspring.cloud.config.uri="${spring_config_url_env}" pre-registration-application-service.jar ; \ fi diff --git a/pre-registration/pre-registration-application-service/README.md b/pre-registration/pre-registration-application-service/README.md index 328a5ea9eee..e9250ee2c9a 100644 --- a/pre-registration/pre-registration-application-service/README.md +++ b/pre-registration/pre-registration-application-service/README.md @@ -5,32 +5,17 @@ This service manages to provide the following service to the Pre-registration ap * Demographic - This service details used by Pre-Registration portal to maintain the demographic data by providing his/her basic details. * Document- This service enables Pre-Registration portal to request for uploading the document for a particular pre-registration. * QrCodeGenerator- This service details used by Pre-Registration portal to generate QR Code. - * Transliteration- This service details used by Pre-Registration portal to provide transliteration from primary to secondary language. + * Transliteration- This service details used by Pre-Registration portal to provide transliteration from one language to another language. * Notification- This service details used by Pre-Registration portal to trigger notification via SMS or email. - * Login - This service details used by Pre-Registration portal to authenticate user by sending OTP to the user, validating with userid and OTP. - - -## Design - -[Design](https://github.com/mosip/pre-registration/blob/master/design/pre-registration/pre-registration-application-service.md) - - + * Login - This service details used by Pre-Registration portal to authenticate user by sending OTP to the user, validating with userid and OTP. ## Default Port and Context Path * server.port=9092 * server.servlet.context-path=/preregistration/v1 - - -## URL - -* https://{dns-name}:9092/preregistration/v1/applications/swagger-ui.html -* https://{dns-name}:9092/preregistration/v1/appointment/swagger-ui.html -* https://{dns-name}:9092/preregistration/v1/transliteration/swagger-ui.html -* https://{dns-name}:9092/preregistration/v1/login/swagger-ui.html -* https://{dns-name}:9092/preregistration/v1/notification/swagger-ui.html -* https://{dns-name}:9092/preregistration/v1/qrCode/swagger-ui.html +## Swagger URL +* https://{dns-name}:9092/preregistration/v1/application-service/swagger-ui.html ## Roles to Access the URL @@ -39,21 +24,25 @@ This service manages to provide the following service to the Pre-registration ap * REGISTRATION_SUPERVISOR * REGISTRATION_ADMIN - - ## API Dependencies -|Dependent Module | Dependent Services | API | -| ------------- | ------------- | ------------- | -| commons/kernel | kernel-auth-service| /authorize/validateToken | -| commons/kernel | kernel-pridgenerator-service | /pridgenerator/prid | -| commons/kernel | kernel-masterdata-service | /documenttypes/{documentcategorycode}/{langcode}| -| | /validdocuments/{languagecode} | -| | /{langcode}/{templatetypecode} | -| commons/kernel | kernel-emailnotification-service | /email/send | -| commons/kernel | kernel-smsnotification-service | /sms/send | -| commons/kernel | kernel-cryptomanager-service | /encrypt | -| | /decrypt | +* kernel-auditmanager-service + +* kernel-syncdata-service + +* kernel-otpmanager-service + +* kernel-notification-service + +* kernel-masterdata-service + +* kernel-keymanager-service + +* kernel-pridgenerator-service + +* kernel-auth-service + +* keycloak diff --git a/pre-registration/pre-registration-application-service/pom.xml b/pre-registration/pre-registration-application-service/pom.xml index 911f4de2594..ae011a12052 100644 --- a/pre-registration/pre-registration-application-service/pom.xml +++ b/pre-registration/pre-registration-application-service/pom.xml @@ -6,52 +6,36 @@ io.mosip.preregistration pre-registration-parent - 1.2.0-SNAPSHOT + 1.2.1-java21-SNAPSHOT - + pre-registration-application-service + 1.2.1-java21-SNAPSHOT Pre-Registration Application Service Project Maven project of MOSIP Pre-Registration Service - 1.2.0-SNAPSHOT + - UTF-8 - 1.2.0-SNAPSHOT - 1.2.0-SNAPSHOT - 1.2.0-SNAPSHOT - 1.2.0-SNAPSHOT - 1.2.0-SNAPSHOT - 1.2.0-SNAPSHOT - 1.2.0-SNAPSHOT - 1.4.2 + + 2.1 + 3.10.8 + + + 1.2.1-java21-SNAPSHOT + 1.2.1-java21-SNAPSHOT + 1.2.1-java21-SNAPSHOT + 1.2.1-java21-SNAPSHOT + 1.2.1-java21-SNAPSHOT + 1.2.1-java21-SNAPSHOT - - - - org.springframework.boot - spring-boot-dependencies - ${spring.boot.version} - pom - import - - - org.projectlombok - lombok - ${lombok.version} - compile - - - io.jsonwebtoken jjwt - 0.6.0 org.hamcrest hamcrest - 2.1 test @@ -61,12 +45,15 @@ org.springframework.cloud spring-cloud-starter-config - ${spring-cloud-config.version} org.springframework.boot spring-boot-starter-cache + + org.ehcache + ehcache + org.springframework.boot spring-boot-devtools @@ -77,17 +64,6 @@ pre-registration-core ${pre.registration.core.version} - - io.mosip.kernel - kernel-virusscanner-clamav - ${kernel.virusscanner.clamav.version} - - - com.fasterxml.jackson.datatype - jackson-datatype-jsr310 - - - io.mosip.kernel kernel-core @@ -131,22 +107,18 @@ org.apache.httpcomponents httpclient - ${apache.httpclient.version} org.json json - ${org.json.version} io.micrometer micrometer-core - ${io.micrometer.prometheus.version} io.micrometer micrometer-registry-prometheus - ${io.micrometer.prometheus.version} org.springframework.boot @@ -154,12 +126,49 @@ ${spring.boot.version} true + + org.springframework.cloud + spring-cloud-starter-bootstrap + + + org.springframework.boot + spring-boot-starter-data-jpa + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven.compiler.version} + + + -parameters + + + + + + maven-jar-plugin + + + package + + jar + + + + **/*.properties + + lib + + + + org.springframework.boot spring-boot-maven-plugin + ${spring.boot.maven.plugin.version} ZIP true @@ -173,6 +182,23 @@ + + maven-jar-plugin + + + package + + jar + + + + **/*.properties + + lib + + + + @@ -187,12 +213,21 @@ io.mosip.kernel kernel-ref-idobjectvalidator - 1.2.0-rc1 + ${kernel.idobjectvalidator.version} io.mosip.kernel kernel-transliteration-icu4j - 1.2.0-rc1 + ${kernel.transliteration.icu4j.version} + + + org.junit.vintage + junit-vintage-engine + + + junit + junit + test @@ -200,7 +235,7 @@ org.springframework.boot spring-boot-maven-plugin - ${spring.boot.version} + ${spring.boot.maven.plugin.version} true ZIP @@ -237,7 +272,7 @@ org.springdoc springdoc-openapi-maven-plugin - 0.2 + ${springdoc.openapi.maven.plugin} integration-test @@ -247,8 +282,9 @@ - http://localhost:9090/preregistration/v1/application-service/v3/api-docs/Pre-Registration - openapi.json + + http://localhost:9090/preregistration/v1/application-service/v3/api-docs/Pre-Registration + ${artifactId}-openapi.json ${project.build.directory} false @@ -257,4 +293,4 @@ - + \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/config/ApplicationEventListerner.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/config/ApplicationEventListerner.java index 246bdd480d8..3d462920795 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/config/ApplicationEventListerner.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/config/ApplicationEventListerner.java @@ -28,7 +28,6 @@ public class ApplicationEventListerner { @EventListener(ApplicationStartedEvent.class) public void applicationStartedEvent() { log.info("sessionId", "idType", "id", "In applicationStartedEvent method of ApplicationEventListerner"); - loginService.setupLoginService(); log.info("sessionId", "idType", "id", "In applicationStartedEvent method of ApplicationEventListerner login service setupLoginService method called"); demographicService.setup(); diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/config/Config.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/config/Config.java index 843f358a4e2..9d244ab3584 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/config/Config.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/config/Config.java @@ -3,16 +3,13 @@ import java.security.KeyManagementException; import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; -import java.security.cert.X509Certificate; import java.util.Collections; import java.util.Map; -import javax.net.ssl.SSLContext; - -import org.apache.http.conn.ssl.SSLConnectionSocketFactory; -import org.apache.http.conn.ssl.TrustStrategy; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClients; +import org.apache.hc.client5.http.impl.classic.HttpClientBuilder; +import org.apache.hc.client5.http.impl.classic.HttpClients; +import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManagerBuilder; +import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -29,6 +26,12 @@ @ConfigurationProperties("mosip") public class Config { + @Value("${preregistration.appservice.httpclient.connections.max.per.host:20}") + private int maxConnectionPerRoute; + + @Value("${preregistration.appservice.httpclient.connections.max:100}") + private int totalMaxConnection; + /** The id. */ private Map id; @@ -55,19 +58,15 @@ public Map ic() { @Bean public RestTemplate restTemplateConfig() throws KeyManagementException, NoSuchAlgorithmException, KeyStoreException { - - TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true; - - SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom() - .loadTrustMaterial(null, acceptingTrustStrategy).build(); - - SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext); - - CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(csf).build(); - HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); - - requestFactory.setHttpClient(httpClient); - return new RestTemplate(requestFactory); + var connnectionManagerBuilder = PoolingHttpClientConnectionManagerBuilder.create() + .setMaxConnPerRoute(maxConnectionPerRoute) + .setMaxConnTotal(totalMaxConnection); + var connectionManager = connnectionManagerBuilder.build(); + HttpClientBuilder httpClientBuilder = HttpClients.custom() + .setConnectionManager(connectionManager) + .disableCookieManagement(); + HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); + requestFactory.setHttpClient(httpClientBuilder.build()); + return new RestTemplate(requestFactory); } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/config/CorsFilter.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/config/CorsFilter.java deleted file mode 100644 index 9e5160428b4..00000000000 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/config/CorsFilter.java +++ /dev/null @@ -1,53 +0,0 @@ -package io.mosip.preregistration.application.config; - -import java.io.IOException; -import java.util.Arrays; -import java.util.List; - -import javax.servlet.FilterChain; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.web.filter.OncePerRequestFilter; - -/** - * This class is a filter for giving Access Headers to solve CORS - * - * @author Mindtree Ltd. - * - */ -public class CorsFilter extends OncePerRequestFilter { - - private static final Logger LOGGER = LoggerFactory.getLogger(CorsFilter.class); - - private List origins; - - public CorsFilter(String origins) { - this.origins = Arrays.asList(origins.split("( )*,( )*")); - } - - @Override - protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) - throws ServletException, IOException { - String origin = request.getHeader("Origin"); - LOGGER.info("origins {} ", origins); - if (origin == null || origin.isEmpty()) { - LOGGER.info("origin {}", origin); - LOGGER.info("requesturl {}", request.getRequestURL().toString()); - } else if (origins != null && !origins.isEmpty() && origins.contains(origin)) { - response.setHeader("Access-Control-Allow-Origin", origin); - } - response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, PUT, PATCH"); - response.setHeader("Access-Control-Allow-Headers", - "Origin,Date, Content-Type, Accept, X-Requested-With, Authorization, From, X-Auth-Token, Request-Id"); - response.setHeader("Access-Control-Expose-Headers", "Set-Cookie"); - response.setHeader("Access-Control-Allow-Credentials", "true"); - if (!"OPTIONS".equalsIgnoreCase(request.getMethod())) { - filterChain.doFilter(request, response); - } - } - -} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/config/LoginConfig.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/config/LoginConfig.java index 43aa7ca8d5c..acca7446bfb 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/config/LoginConfig.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/config/LoginConfig.java @@ -1,8 +1,5 @@ package io.mosip.preregistration.application.config; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springdoc.core.GroupedOpenApi; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -15,36 +12,17 @@ @Configuration public class LoginConfig { - - private static final Logger logger = LoggerFactory.getLogger(LoginConfig.class); - - @Autowired - private OpenApiProperties openApiProperties; - @Bean - public OpenAPI openApi() { - OpenAPI api = new OpenAPI() - .components(new Components()) - .info(new Info() - .title(openApiProperties.getInfo().getTitle()) + public OpenAPI openApi(@Autowired OpenApiProperties openApiProperties) { + OpenAPI api = new OpenAPI().components(new Components()) + .info(new Info().title(openApiProperties.getInfo().getTitle()) .version(openApiProperties.getInfo().getVersion()) .description(openApiProperties.getInfo().getDescription()) - .license(new License() - .name(openApiProperties.getInfo().getLicense().getName()) + .license(new License().name(openApiProperties.getInfo().getLicense().getName()) .url(openApiProperties.getInfo().getLicense().getUrl()))); - openApiProperties.getService().getServers().forEach(server -> { - api.addServersItem(new Server().description(server.getDescription()).url(server.getUrl())); - }); - logger.info("swagger open api bean is ready"); + openApiProperties.getService().getServers().forEach( + server -> api.addServersItem(new Server().description(server.getDescription()).url(server.getUrl()))); return api; } - - @Bean - public GroupedOpenApi groupedOpenApi() { - return GroupedOpenApi.builder().group(openApiProperties.getGroup().getName()) - .pathsToMatch(openApiProperties.getGroup().getPaths().stream().toArray(String[]::new)) - .build(); - } - } \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/constant/PreRegLoginErrorConstants.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/constant/PreRegLoginErrorConstants.java index aab8079c50d..dfbc4724f71 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/constant/PreRegLoginErrorConstants.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/constant/PreRegLoginErrorConstants.java @@ -16,7 +16,8 @@ public enum PreRegLoginErrorConstants { UNABLE_TO_PROCESS("PRE-REG-OTP-405", "Missing Input Parameter - %s"), SERVER_ERROR("PRE-REG-OTP-405", "Missing Input Parameter - %s"), CAPTCHA_SEVER_ERROR("PRE-REG-CAP-102", "Captcha could not be validated"), - CAPTCHA_ERROR("PRE-REG-CAP-101", "Captcha token is empty"); + CAPTCHA_ERROR("PRE-REG-CAP-101", "Captcha token is empty"), + OTP_ATTEMPT_EXCEEDED("PRE-REG-OTP-409", "Otp validation attempt exceeded"); final String errorCode; diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/ApplicationController.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/ApplicationController.java index 3f2000f3657..c1e9e0d6513 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/ApplicationController.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/ApplicationController.java @@ -2,7 +2,7 @@ import java.util.List; -import javax.validation.Valid; +import jakarta.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -10,7 +10,6 @@ import org.springframework.http.ResponseEntity; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.WebDataBinder; -import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.PathVariable; @@ -37,7 +36,6 @@ import io.swagger.v3.oas.annotations.tags.Tag; @RestController -@CrossOrigin("*") @Tag(name = "application-controller", description = "Application Controller") public class ApplicationController { @@ -85,21 +83,20 @@ public ResponseEntity> getApplication( @PathVariable("applicationId") String applicationId) { return ResponseEntity.status(HttpStatus.OK).body(applicationService.getApplicationInfo(applicationId)); } - + @PreAuthorize("hasAnyRole(@authorizedRoles.getGetapplicationsstatus())") @GetMapping(path = "/applications/status/{applicationId}", produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "getApplicationStatus", description = "Fetch the status of a application", tags = "application-controller") @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "All applications status fetched successfully"), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity> getApplicationStatus( @PathVariable("applicationId") String applicationId) { return ResponseEntity.status(HttpStatus.OK).body(applicationService.getApplicationStatus(applicationId)); } - @PreAuthorize("hasAnyRole(@authorizedRoles.getGetappointmentregistrationcenterid())") @GetMapping(path = "/applications/bookings/{regCenterId}") @Operation(summary = "getBookingsForRegCenter", description = "Fetch all bookings for regCenterId on the given appointmentDate", tags = "application-controller") @@ -108,9 +105,11 @@ public ResponseEntity> getApplicationStatus( @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity>> getBookingsForRegCenter( - @PathVariable("regCenterId") String regCenterId, @RequestParam("appointmentDate") String appointmentDate) { + @PathVariable("regCenterId") String regCenterId, + @RequestParam("appointmentDate") String appointmentFromDate, + @RequestParam(required = false) String appointmentToDate) { return ResponseEntity.status(HttpStatus.OK) - .body(applicationService.getBookingsForRegCenter(regCenterId, appointmentDate)); + .body(applicationService.getBookingsForRegCenter(regCenterId, appointmentFromDate, appointmentToDate)); } @PreAuthorize("hasAnyRole(@authorizedRoles.getGetapplicationsall())") @@ -120,12 +119,12 @@ public ResponseEntity>> getBo @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) - public ResponseEntity> getAllApplications(@RequestParam(required = false) String type) { + public ResponseEntity> getAllApplications( + @RequestParam(required = false) String type) { if (type != null) { return ResponseEntity.status(HttpStatus.OK) .body(applicationService.getAllApplicationsForUserForBookingType(type)); } return ResponseEntity.status(HttpStatus.OK).body(applicationService.getAllApplicationsForUser()); } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/AppointmentController.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/AppointmentController.java index fc567da3f66..f2381e0e659 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/AppointmentController.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/AppointmentController.java @@ -30,13 +30,13 @@ import io.mosip.preregistration.core.common.dto.MainRequestDTO; import io.mosip.preregistration.core.common.dto.MainResponseDTO; import io.mosip.preregistration.core.config.LoggerConfiguration; +import io.swagger.annotations.ApiParam; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; import io.swagger.v3.oas.annotations.tags.Tag; -import springfox.documentation.annotations.ApiIgnore; @RestController @Tag(name = "appointment-controller", description = "Appointment Controller") @@ -52,9 +52,9 @@ public class AppointmentController { @Operation(summary = "Fetch availability Data", description = "Fetch availability Data", tags = "appointment-controller") @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Availablity details fetched successfully"), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity> getAvailability( @PathVariable("registrationCenterId") String registrationCenterId) { log.info("fetch availablity for regID: {}", registrationCenterId); @@ -64,17 +64,15 @@ public ResponseEntity> getAvailability( @PreAuthorize("hasAnyRole(@authorizedRoles.getPostappointmentpregid())") @PostMapping(path = "/applications/appointment/{preRegistrationId}", produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Booking Appointment", description = "Booking Appointment", tags = "appointment-controller") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "Appointment Booked Successfully"), - @ApiResponse(responseCode = "201", description = "Created" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) + @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Appointment Booked Successfully"), + @ApiResponse(responseCode = "201", description = "Created", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity> bookAppoinment( @PathVariable("preRegistrationId") String preRegistrationId, @Validated @RequestBody(required = true) MainRequestDTO bookingDTO, - @ApiIgnore Errors errors, - @RequestHeader(value = "User-Agent") String userAgent) { + @ApiParam(hidden = true) Errors errors, @RequestHeader(value = "User-Agent") String userAgent) { log.info("Book an appointment for preRegId: {}", preRegistrationId); return ResponseEntity.status(HttpStatus.OK) .body(appointmentService.makeAppointment(bookingDTO, preRegistrationId, userAgent)); @@ -85,41 +83,37 @@ public ResponseEntity> bookAppoinment( @Operation(summary = "Fetch Appointment details", description = "Fetch Appointment details", tags = "appointment-controller") @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Appointment details fetched Successfully"), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity> getAppointments( @PathVariable("preRegistrationId") String preRegistrationId) { log.info("To fetch appointment details for preRegID: {}", preRegistrationId); return ResponseEntity.status(HttpStatus.OK).body(appointmentService.getAppointmentDetails(preRegistrationId)); - } @PreAuthorize("hasAnyRole(@authorizedRoles.getCancelappointmentpreregid())") @PutMapping(path = "/applications/appointment/{preRegistrationId}", produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Cancel an booked appointment", description = "Cancel an booked appointment", tags = "appointment-controller") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "Appointment cancelled successfully"), - @ApiResponse(responseCode = "201", description = "Created" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) + @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Appointment cancelled successfully"), + @ApiResponse(responseCode = "201", description = "Created", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity> cancelBook( @PathVariable("preRegistrationId") String preRegistrationId) { log.info("Cancel the appointment for preRegId :{} ", preRegistrationId); return ResponseEntity.status(HttpStatus.OK).body(appointmentService.cancelAppointment(preRegistrationId)); } - + @PreAuthorize("hasAnyRole(@authorizedRoles.getCancelappointmentpreregid())") @PutMapping(path = "/internal/applications/appointment/{preRegistrationId}", produces = MediaType.APPLICATION_JSON_VALUE) - @Operation(summary = "Cancel an booked appointment. Used internally by batch job", description = "Cancel an booked appointment. Used internally by batch job,", - tags = "appointment-controller") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "Appointment cancelled successfully"), - @ApiResponse(responseCode = "201", description = "Created" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) + @Operation(summary = "Cancel an booked appointment. Used internally by batch job", description = "Cancel an booked appointment. Used internally by batch job,", tags = "appointment-controller") + @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Appointment cancelled successfully"), + @ApiResponse(responseCode = "201", description = "Created", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity> internalCancelBook( @PathVariable("preRegistrationId") String preRegistrationId) { log.info("Cancel the appointment for preRegId called internally :{} ", preRegistrationId); @@ -129,31 +123,29 @@ public ResponseEntity> internalCancelB @PreAuthorize("hasAnyRole(@authorizedRoles.getDeleteappointmentpreregid())") @DeleteMapping(path = "/applications/appointment", produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Discard Booking", description = "CDiscard Booking", tags = "appointment-controller") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "Deletion of Booking is successfully"), + @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Deletion of Booking is successfully"), @ApiResponse(responseCode = "204", description = "No Content"), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - }) + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), }) public ResponseEntity> discardIndividual( @RequestParam(value = "preRegistrationId") String preId) { log.info("Delete booking with preId: {}", preId); - return ResponseEntity.status(HttpStatus.OK).body(appointmentService.deleteBookingAndUpdateApplicationStatus(preId)); + return ResponseEntity.status(HttpStatus.OK) + .body(appointmentService.deleteBookingAndUpdateApplicationStatus(preId)); } @PreAuthorize("hasAnyRole(@authorizedRoles.getPostappointmentmulti())") @PostMapping(path = "/applications/appointment", produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Booking Appointment", description = "Booking Appointment", tags = "appointment-controller") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "Appointment Booked Successfully"), - @ApiResponse(responseCode = "201", description = "Created" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) + @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Appointment Booked Successfully"), + @ApiResponse(responseCode = "201", description = "Created", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity> bookMultiAppoinment( @Validated @RequestBody(required = true) MainRequestDTO bookingRequest, @RequestHeader(value = "User-Agent") String userAgent) { - return ResponseEntity.status(HttpStatus.OK).body(appointmentService.makeMultiAppointment(bookingRequest, userAgent)); + return ResponseEntity.status(HttpStatus.OK) + .body(appointmentService.makeMultiAppointment(bookingRequest, userAgent)); } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/DemographicController.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/DemographicController.java index ffd7776a26b..b2a76adb82c 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/DemographicController.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/DemographicController.java @@ -6,8 +6,6 @@ import java.util.Map; -import javax.servlet.http.HttpServletRequest; - import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; @@ -16,7 +14,6 @@ import org.springframework.validation.Errors; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.WebDataBinder; -import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.InitBinder; @@ -34,7 +31,6 @@ import io.mosip.preregistration.application.dto.DemographicMetadataDTO; import io.mosip.preregistration.application.dto.DemographicRequestDTO; import io.mosip.preregistration.application.dto.DemographicUpdateResponseDTO; -import io.mosip.preregistration.application.dto.SchemaResponseDto; import io.mosip.preregistration.application.service.DemographicServiceIntf; import io.mosip.preregistration.core.common.dto.DemographicResponseDTO; import io.mosip.preregistration.core.common.dto.MainRequestDTO; @@ -44,13 +40,14 @@ import io.mosip.preregistration.core.config.LoggerConfiguration; import io.mosip.preregistration.core.util.DataValidationUtil; import io.mosip.preregistration.core.util.RequestValidator; +import io.swagger.annotations.ApiParam; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; import io.swagger.v3.oas.annotations.tags.Tag; -import springfox.documentation.annotations.ApiIgnore; +import jakarta.servlet.http.HttpServletRequest; /** * This class provides different API's to perform operations on @@ -67,7 +64,6 @@ @RestController @RequestMapping("/") @Tag(name = "demographic-controller", description = "Demographic Controller") -@CrossOrigin("*") public class DemographicController { /** Autowired reference for {@link #DemographicService}. */ @@ -89,8 +85,7 @@ public class DemographicController { /** * Inits the binder. * - * @param binder - * the binder + * @param binder the binder */ @InitBinder public void initBinder(WebDataBinder binder) { @@ -103,26 +98,23 @@ public void initBinder(WebDataBinder binder) { * This Post API is use to create a pre-registation application for * registration. * - * @param jsonObject - * the json object - * @param errors - * Errors + * @param jsonObject the json object + * @param errors Errors * @return List of response dto containing pre-id and group-id */ - //@PreAuthorize("hasAnyRole('INDIVIDUAL','REGISTRATION_OFFICER','REGISTRATION_SUPERVISOR','REGISTRATION_ADMIN')") + // @PreAuthorize("hasAnyRole('INDIVIDUAL','REGISTRATION_OFFICER','REGISTRATION_SUPERVISOR','REGISTRATION_ADMIN')") @PreAuthorize("hasAnyRole(@authorizedRoles.getPostapplications())") @PostMapping(path = "/applications/prereg", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "addPreRegDemographicData", description = "Add demographic data for a new preregistration application", tags = "demographic-controller") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "Pre-Registration successfully Created"), - @ApiResponse(responseCode = "201", description = "Created" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) + @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Pre-Registration successfully Created"), + @ApiResponse(responseCode = "201", description = "Created", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity> addPreRegDemographicData( @Validated @RequestBody(required = true) MainRequestDTO jsonObject, - @ApiIgnore Errors errors) { + @ApiParam(hidden = true) Errors errors) { log.info("sessionId", "idType", "id", "In pre-registration controller for add preregistration with json object" + jsonObject); requestValidator.validateId(CREATE, jsonObject.getId(), errors); @@ -133,29 +125,25 @@ public ResponseEntity> addPreRegDe /** * This Put API use to update a pre-registation application. * - * @param preRegistrationId - * preRegistrationId - * @param jsonObject - * The json object - * @param errors - * Errors + * @param preRegistrationId preRegistrationId + * @param jsonObject The json object + * @param errors Errors * @return List of response dto containing pre-id and group-id */ - //@PreAuthorize("hasAnyRole('INDIVIDUAL','REGISTRATION_OFFICER','REGISTRATION_SUPERVISOR','REGISTRATION_ADMIN')") + // @PreAuthorize("hasAnyRole('INDIVIDUAL','REGISTRATION_OFFICER','REGISTRATION_SUPERVISOR','REGISTRATION_ADMIN')") @PreAuthorize("hasAnyRole(@authorizedRoles.getPutapplications())") @PutMapping(path = "/applications/prereg/{preRegistrationId}", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "updatePreRegDemographicData", description = "Update demographic data for a new preregistration application", tags = "demographic-controller") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "Demographic data successfully Updated"), - @ApiResponse(responseCode = "201", description = "Created" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) + @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Demographic data successfully Updated"), + @ApiResponse(responseCode = "201", description = "Created", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity> updatePreRegDemographicData( @PathVariable("preRegistrationId") String preRegistrationId, @Validated @RequestBody(required = true) MainRequestDTO jsonObject, - @ApiIgnore Errors errors) { + @ApiParam(hidden = true) Errors errors) { String userId = preRegistrationService.authUserDetails().getUserId(); log.info("sessionId", "idType", "id", "In pre-registration controller for Update preregistration with json object" + jsonObject); @@ -168,48 +156,44 @@ public ResponseEntity> updatePreRe /** * Get API to fetch all the Pre-registration data for a pre-id. * - * @param preRegistraionId - * the pre reg id + * @param preRegistraionId the pre reg id * @return the application data for a pre-id */ - //@PreAuthorize("hasAnyRole('INDIVIDUAL','REGISTRATION_OFFICER','REGISTRATION_SUPERVISOR','REGISTRATION_ADMIN','PRE_REGISTRATION_ADMIN')") + // @PreAuthorize("hasAnyRole('INDIVIDUAL','REGISTRATION_OFFICER','REGISTRATION_SUPERVISOR','REGISTRATION_ADMIN','PRE_REGISTRATION_ADMIN')") @PreAuthorize("hasAnyRole(@authorizedRoles.getGetapplications())") @GetMapping(path = "/applications/prereg/{preRegistrationId}", produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "getPreRegDemographicData", description = "Get demographic data for a new preregistration application", tags = "demographic-controller") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "Demographic data successfully retrieved"), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) + @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Demographic data successfully retrieved"), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity> getPreRegDemographicData( @PathVariable("preRegistrationId") String preRegistraionId) { log.info("sessionId", "idType", "id", "In pre-registration controller for fetching all demographic data with preregistrationId" + preRegistraionId); - return ResponseEntity.status(HttpStatus.OK).body(preRegistrationService.getDemographicData(preRegistraionId, false)); + return ResponseEntity.status(HttpStatus.OK).body(preRegistrationService.getDemographicData(preRegistraionId)); } /** * Put API to update the status of the application. * - * @param preRegId - * the pre reg id - * @param status - * the status + * @param preRegId the pre reg id + * @param status the status * @return the updation status of application for a pre-id */ - //@PreAuthorize("hasAnyRole('INDIVIDUAL','PRE_REGISTRATION_ADMIN','REGISTRATION_OFFICER','REGISTRATION_SUPERVISOR','REGISTRATION_ADMIN')") + // @PreAuthorize("hasAnyRole('INDIVIDUAL','PRE_REGISTRATION_ADMIN','REGISTRATION_OFFICER','REGISTRATION_SUPERVISOR','REGISTRATION_ADMIN')") @PreAuthorize("hasAnyRole(@authorizedRoles.getPutapplicationsstatus())") @PutMapping(path = "/applications/prereg/status/{preRegistrationId}", produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "updatePreRegApplicationStatus", description = "Update Pre-Registartion status", tags = "demographic-controller") @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Pre-Registration Status successfully updated"), - @ApiResponse(responseCode = "201", description = "Created" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) + @ApiResponse(responseCode = "201", description = "Created", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity> updatePreRegApplicationStatus( @PathVariable("preRegistrationId") String preRegId, @RequestParam(value = "statusCode", required = true) String status) { @@ -230,15 +214,14 @@ public ResponseEntity> updatePreRegApplicationStatus( * @return List of applications created by User */ - //@PreAuthorize("hasAnyRole('INDIVIDUAL','REGISTRATION_OFFICER','REGISTRATION_SUPERVISOR','REGISTRATION_ADMIN')") + // @PreAuthorize("hasAnyRole('INDIVIDUAL','REGISTRATION_OFFICER','REGISTRATION_SUPERVISOR','REGISTRATION_ADMIN')") @PreAuthorize("hasAnyRole(@authorizedRoles.getGetapplicationsall())") @GetMapping(path = "/applications/prereg", produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "getAllPreRegApplications", description = "Fetch all the prereg applications created by user", tags = "demographic-controller") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "All applications fetched successfully"), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) + @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "All applications fetched successfully"), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity> getAllPreRegApplications(HttpServletRequest res, @RequestParam(value = "pageIndex", required = false) String pageIdx) { String userId = preRegistrationService.authUserDetails().getUserId(); @@ -251,20 +234,19 @@ public ResponseEntity> getAllPreRegAppli /** * Get API to fetch the status of a application. * - * @param preId - * the pre id + * @param preId the pre id * @return status of application */ - //@PreAuthorize("hasAnyRole('INDIVIDUAL','PRE_REGISTRATION_ADMIN','REGISTRATION_OFFICER','REGISTRATION_SUPERVISOR','REGISTRATION_ADMIN')") + // @PreAuthorize("hasAnyRole('INDIVIDUAL','PRE_REGISTRATION_ADMIN','REGISTRATION_OFFICER','REGISTRATION_SUPERVISOR','REGISTRATION_ADMIN')") @PreAuthorize("hasAnyRole(@authorizedRoles.getGetapplicationsstatus())") @GetMapping(path = "/applications/prereg/status/{preRegistrationId}", produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "getPreRegApplicationStatus", description = "Fetch the status of a application", tags = "demographic-controller") @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "All applications status fetched successfully"), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity> getPreRegApplicationStatus( @PathVariable("preRegistrationId") String preId) { String userId = preRegistrationService.authUserDetails().getUserId(); @@ -277,21 +259,18 @@ public ResponseEntity> getPreRegApplic * Delete API to delete the Individual applicant and documents associated with * the PreId. * - * @param preId - * the pre id + * @param preId the pre id * @return the deletion status of application for a pre-id */ - //@PreAuthorize("hasAnyRole('INDIVIDUAL','REGISTRATION_OFFICER','REGISTRATION_SUPERVISOR','REGISTRATION_ADMIN')") + // @PreAuthorize("hasAnyRole('INDIVIDUAL','REGISTRATION_OFFICER','REGISTRATION_SUPERVISOR','REGISTRATION_ADMIN')") @PreAuthorize("hasAnyRole(@authorizedRoles.getDeleteapplications())") @DeleteMapping(path = "/applications/prereg/{preRegistrationId}", produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "deletePreRegApplication", description = "Discard prereg application", tags = "demographic-controller") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "Deletion of individual is successfully"), + @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Deletion of individual is successfully"), @ApiResponse(responseCode = "204", description = "No Content"), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - }) + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), }) public ResponseEntity> deletePreRegApplication( @PathVariable("preRegistrationId") String preId) { String userId = preRegistrationService.authUserDetails().getUserId(); @@ -301,28 +280,25 @@ public ResponseEntity> deletePreRegApp return ResponseEntity.status(HttpStatus.OK).body(preRegistrationService.deleteIndividual(preId, userId)); } - - //@PreAuthorize("hasAnyRole('INDIVIDUAL','REGISTRATION_OFFICER','REGISTRATION_SUPERVISOR','REGISTRATION_ADMIN','REGISTRATION_PROCESSOR')") + // @PreAuthorize("hasAnyRole('INDIVIDUAL','REGISTRATION_OFFICER','REGISTRATION_SUPERVISOR','REGISTRATION_ADMIN','REGISTRATION_PROCESSOR')") @PreAuthorize("hasAnyRole(@authorizedRoles.getPostapplicationsupdatedtime())") @PostMapping(path = "/applications/prereg/updatedTime", produces = MediaType.APPLICATION_JSON_VALUE) - @Operation(summary = "getUpdatedDateTimeByPreIds", description = "Get Updated Date Time for List of Pre-Registration Id", - tags = "demographic-controller") + @Operation(summary = "getUpdatedDateTimeByPreIds", description = "Get Updated Date Time for List of Pre-Registration Id", tags = "demographic-controller") @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Updated Date Time successfully fetched for list of pre-registration ids"), - @ApiResponse(responseCode = "201", description = "Created" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) + @ApiResponse(responseCode = "201", description = "Created", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity>> getUpdatedDateTimeByPreIds( @Validated @RequestBody MainRequestDTO mainRequestDTO, - @ApiIgnore Errors errors) { + @ApiParam(hidden = true) Errors errors) { requestValidator.validateId(UPDATEDTIME, mainRequestDTO.getId(), errors); DataValidationUtil.validate(errors, UPDATEDTIME); return ResponseEntity.status(HttpStatus.OK) .body(preRegistrationService.getUpdatedDateTimeForPreIds(mainRequestDTO.getRequest())); } - - + @PreAuthorize("hasAnyRole(@authorizedRoles.getGetapplicationsinfo())") @GetMapping(path = "/applications/prereg/info/{preregistrationId}") @Operation(summary = "getPreRegDemographicAndDocumentData", description = "Retrive Application demographic and document info for given prid", tags = "application-controller") @@ -334,8 +310,8 @@ public ResponseEntity>> getUpdatedDateTimeBy public ResponseEntity> getPreRegDemographicAndDocumentData( @PathVariable("preregistrationId") String preregistrationId) { log.info("In demographic controller to getFullPreRegApplication {}", preregistrationId); - return ResponseEntity.status(HttpStatus.OK).body(preRegistrationService.getPregistrationInfo(preregistrationId)); + return ResponseEntity.status(HttpStatus.OK) + .body(preRegistrationService.getPregistrationInfo(preregistrationId)); } - } diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/DocumentController.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/DocumentController.java index edf5b9e0c97..5f3edc9f229 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/DocumentController.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/DocumentController.java @@ -4,6 +4,22 @@ */ package io.mosip.preregistration.application.controller; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RequestPart; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + import io.mosip.kernel.core.logger.spi.Logger; import io.mosip.preregistration.application.dto.DocumentResponseDTO; import io.mosip.preregistration.application.service.DocumentServiceIntf; @@ -18,15 +34,7 @@ import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; import io.swagger.v3.oas.annotations.tags.Tag; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; - -import javax.validation.Valid; +import jakarta.validation.Valid; /** * This class provides different API's to perform operations on Document upload. @@ -38,7 +46,6 @@ @RestController @RequestMapping("/") @Tag(name = "document-controller", description = "Document Controller") -@CrossOrigin("*") public class DocumentController { /** @@ -61,16 +68,15 @@ public class DocumentController { * @return response in a format specified in API document * */ - //@PreAuthorize("hasAnyRole('INDIVIDUAL')") + // @PreAuthorize("hasAnyRole('INDIVIDUAL')") @PreAuthorize("hasAnyRole(@authorizedRoles.getPostdocumentspreregistrationid())") @PostMapping(path = "/documents/{preRegistrationId}", consumes = { "multipart/form-data" }) @Operation(summary = "fileUpload", description = "Document Upload", tags = "document-controller") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "Document uploaded successfully"), - @ApiResponse(responseCode = "201", description = "Created" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) + @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Document uploaded successfully"), + @ApiResponse(responseCode = "201", description = "Created", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity> fileUpload( @PathVariable(value = "preRegistrationId") String preRegistrationId, @RequestPart(value = "Document request", required = true) String reqDto, @@ -96,16 +102,15 @@ public ResponseEntity> fileUpload( * * @return response in a format specified in API document */ - //@PreAuthorize("hasAnyRole('INDIVIDUAL')") + // @PreAuthorize("hasAnyRole('INDIVIDUAL')") @PreAuthorize("hasAnyRole(@authorizedRoles.getPutdocumentspreregistrationid())") @PutMapping(path = "/documents/{preRegistrationId}", produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "copyDocument", description = "Copy uploaded document", tags = "document-controller") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "Document successfully copied"), - @ApiResponse(responseCode = "201", description = "Created" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) + @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Document successfully copied"), + @ApiResponse(responseCode = "201", description = "Created", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity> copyDocument( @Valid @PathVariable(required = true, value = "preRegistrationId") String preRegistrationId, @Valid @RequestParam(required = true) String catCode, @@ -124,15 +129,15 @@ public ResponseEntity> copyDocument( * @param pre_registration_id pass preRegistrationId * @return response in a format specified in API document */ - //@PreAuthorize("hasAnyRole('INDIVIDUAL','REGISTRATION_OFFICER','REGISTRATION_SUPERVISOR','REGISTRATION_ ADMIN')") + // @PreAuthorize("hasAnyRole('INDIVIDUAL','REGISTRATION_OFFICER','REGISTRATION_SUPERVISOR','REGISTRATION_ + // ADMIN')") @PreAuthorize("hasAnyRole(@authorizedRoles.getGetdocumentspreregistrationid())") @GetMapping(path = "/documents/preregistration/{preRegistrationId}", produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "getDocumentforDocId", description = "Get All Document for Pre-Registration Id", tags = "document-controller") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "Documents reterived successfully"), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) + @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Documents reterived successfully"), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity> getAllDocumentforPreid( @Valid @PathVariable(required = true) String preRegistrationId) { log.info("sessionId", "idType", "id", @@ -149,15 +154,15 @@ public ResponseEntity> getAllDocumentforPreid * @param preRegistrationId pass preRegistrationId as request param * @return response in a format specified in API document */ - //@PreAuthorize("hasAnyRole('INDIVIDUAL','REGISTRATION_OFFICER','REGISTRATION_SUPERVISOR','REGISTRATION_ ADMIN')") + // @PreAuthorize("hasAnyRole('INDIVIDUAL','REGISTRATION_OFFICER','REGISTRATION_SUPERVISOR','REGISTRATION_ + // ADMIN')") @PreAuthorize("hasAnyRole(@authorizedRoles.getGetdocumentsdocumentid())") @GetMapping(path = "/documents/{documentId}", produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "getDocumentforDocId", description = "Get All Document for Document Id", tags = "document-controller") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "Documents reterived successfully"), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) + @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Documents reterived successfully"), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity> getDocumentforDocId( @Valid @PathVariable(required = true) String documentId, @Valid @RequestParam(required = true, value = "preRegistrationId") String preRegistrationId) { @@ -177,16 +182,14 @@ public ResponseEntity> getDocumentforDocId( * @return response in a format specified in API document */ - //@PreAuthorize("hasAnyRole('INDIVIDUAL')") + // @PreAuthorize("hasAnyRole('INDIVIDUAL')") @PreAuthorize("hasAnyRole(@authorizedRoles.getDeletedocumentsdocumentid())") @DeleteMapping(path = "/documents/{documentId}", produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "deleteDocument", description = "Delete document by document Id", tags = "document-controller") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "Document successfully deleted"), - @ApiResponse(responseCode = "204", description = "No Content" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - }) + @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Document successfully deleted"), + @ApiResponse(responseCode = "204", description = "No Content", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), }) public ResponseEntity> deleteDocument( @Valid @PathVariable(required = true) String documentId, @Valid @RequestParam(required = true, value = "preRegistrationId") String preRegistrationId) { @@ -194,7 +197,6 @@ public ResponseEntity> deleteDocument "In deleteDocument method of document controller to delete the document for documentId " + documentId); return ResponseEntity.status(HttpStatus.OK) .body(documentUploadService.deleteDocument(documentId, preRegistrationId)); - } /** @@ -204,16 +206,14 @@ public ResponseEntity> deleteDocument * @return response in a format specified in API document */ - //@PreAuthorize("hasAnyRole('INDIVIDUAL')") + // @PreAuthorize("hasAnyRole('INDIVIDUAL')") @PreAuthorize("hasAnyRole(@authorizedRoles.getDeletedocumentspreregistrationid())") @DeleteMapping(path = "/documents/preregistration/{preRegistrationId}", produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "deleteAllByPreId", description = "Delete all documents by pre-registration Id", tags = "document-controller") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "Documents successfully deleted"), - @ApiResponse(responseCode = "204", description = "No Content" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - }) + @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Documents successfully deleted"), + @ApiResponse(responseCode = "204", description = "No Content", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), }) public ResponseEntity> deleteAllByPreId( @Valid @PathVariable(required = true) String preRegistrationId) { log.info("sessionId", "idType", "id", @@ -222,16 +222,17 @@ public ResponseEntity> deleteAllByPre return ResponseEntity.status(HttpStatus.OK).body(documentUploadService.deleteAllByPreId(preRegistrationId)); } - //@PreAuthorize("hasAnyRole('INDIVIDUAL','REGISTRATION_OFFICER','REGISTRATION_SUPERVISOR','REGISTRATION_ ADMIN')") + // @PreAuthorize("hasAnyRole('INDIVIDUAL','REGISTRATION_OFFICER','REGISTRATION_SUPERVISOR','REGISTRATION_ + // ADMIN')") @PreAuthorize("hasAnyRole(@authorizedRoles.getPutdocumentsdocumentid())") @PutMapping(path = "/documents/document/{documentId}", produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "updateDocRefId", description = "update document reference Id", tags = "document-controller") @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Document Reference Id successfully updated"), - @ApiResponse(responseCode = "201", description = "Created" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) + @ApiResponse(responseCode = "201", description = "Created", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity> updateDocRefId( @Valid @PathVariable(required = true) String documentId, @Valid @RequestParam(required = true, value = "preRegistrationId") String preRegistrationId, @@ -241,6 +242,5 @@ public ResponseEntity> updateDocRefId( + "preregistrationId " + preRegistrationId + "DocRefId " + refNumebr); return ResponseEntity.status(HttpStatus.OK) .body(documentUploadService.updateDocRefId(documentId, preRegistrationId, refNumebr)); - } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/GenerateQRcodeController.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/GenerateQRcodeController.java index 6593917e5f8..32add8bc81b 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/GenerateQRcodeController.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/GenerateQRcodeController.java @@ -1,10 +1,5 @@ package io.mosip.preregistration.application.controller; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.media.Content; -import io.swagger.v3.oas.annotations.media.Schema; -import io.swagger.v3.oas.annotations.responses.ApiResponse; -import io.swagger.v3.oas.annotations.responses.ApiResponses; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; @@ -13,7 +8,6 @@ import org.springframework.validation.Errors; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.WebDataBinder; -import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -21,36 +15,41 @@ import org.springframework.web.bind.annotation.RestController; import io.mosip.kernel.core.logger.spi.Logger; +import io.mosip.preregistration.application.dto.QRCodeResponseDTO; +import io.mosip.preregistration.application.service.GenerateQRcodeService; import io.mosip.preregistration.core.common.dto.MainRequestDTO; import io.mosip.preregistration.core.common.dto.MainResponseDTO; import io.mosip.preregistration.core.config.LoggerConfiguration; import io.mosip.preregistration.core.util.DataValidationUtil; import io.mosip.preregistration.core.util.RequestValidator; +import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; import io.swagger.v3.oas.annotations.tags.Tag; -import io.mosip.preregistration.application.dto.QRCodeResponseDTO; -import io.mosip.preregistration.application.service.GenerateQRcodeService; -import springfox.documentation.annotations.ApiIgnore; /** - * This class provides API's to generate the QR code operations on + * This class provides API's to generate the QR code operations on * pre-registration. + * * @author Sanober Noor * @since 1.0.0 */ @RestController @RequestMapping("/qrCode") -@CrossOrigin("*") @Tag(name = "generate-q-rcode-controller", description = "Generate Q Rcode Controller") public class GenerateQRcodeController { private Logger log = LoggerConfiguration.logConfig(GenerateQRcodeController.class); - + @Autowired private RequestValidator requestValidator; - + /** The Constant for GET UPDATED DATE TIME application. */ private static final String QRCODE = "pre-registration.qrcode.generate"; - + /** * Inits the binder. * @@ -60,30 +59,30 @@ public class GenerateQRcodeController { public void initBinder(WebDataBinder binder) { binder.addValidators(requestValidator); } - + @Autowired private GenerateQRcodeService service; - + /** - * @param data pass the data for generating qr code - * @param errors + * @param data pass the data for generating qr code + * @param errors * @return QRCodeResponseDTO the response entity */ - //@PreAuthorize("hasAnyRole('INDIVIDUAL')") + // @PreAuthorize("hasAnyRole('INDIVIDUAL')") @PreAuthorize("hasAnyRole(@authorizedRoles.getPostqrcodegenerate())") - @PostMapping(path="/generate" ,consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - @Operation(summary = "Generate QR Code", description = "Generate QR Code", tags = "generate-q-rcode-controller") + @PostMapping(path = "/generate", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) + @Operation(summary = "Generate QR Code", description = "Generate QR Code", tags = "generate-q-rcode-controller") @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "OK"), - @ApiResponse(responseCode = "201", description = "Created" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) - public ResponseEntity> generateQRCode(@Validated @RequestBody MainRequestDTO data,@ApiIgnore Errors errors) { + @ApiResponse(responseCode = "201", description = "Created", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) + public ResponseEntity> generateQRCode( + @Validated @RequestBody MainRequestDTO data, @ApiParam(hidden = true) Errors errors) { log.info("sessionId", "idType", "id", "In generateQRCode controller for generateQRCode generation with request " + data); requestValidator.validateId(QRCODE, data.getId(), errors); - DataValidationUtil.validate(errors,QRCODE); - return new ResponseEntity<>(service.generateQRCode(data),HttpStatus.OK); - + DataValidationUtil.validate(errors, QRCODE); + return new ResponseEntity<>(service.generateQRCode(data), HttpStatus.OK); } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/LoginController.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/LoginController.java index c15e323b089..c2cdb1501af 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/LoginController.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/LoginController.java @@ -3,23 +3,15 @@ import java.util.Map; import java.util.Objects; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.validation.Valid; - -import io.swagger.v3.oas.annotations.media.Schema; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.env.Environment; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; -import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.Errors; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.WebDataBinder; -import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.PostMapping; @@ -44,12 +36,17 @@ import io.mosip.preregistration.core.config.LoggerConfiguration; import io.mosip.preregistration.core.util.DataValidationUtil; import io.mosip.preregistration.core.util.RequestValidator; -import io.swagger.v3.oas.annotations.responses.ApiResponses; -import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.annotations.ApiParam; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; import io.swagger.v3.oas.annotations.tags.Tag; -import springfox.documentation.annotations.ApiIgnore; +import jakarta.servlet.http.Cookie; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; /** * This class provides different api to perform operation for login @@ -59,9 +56,8 @@ * */ @RestController -@RequestMapping("/login") +@RequestMapping("/login") @Tag(name = "login-controller", description = "Login Controller") -@CrossOrigin("*") public class LoginController { /** Autowired reference for {@link #authService}. */ @@ -76,7 +72,7 @@ public class LoginController { @Value("${mosip.preregistration.sendotp.allowapi:false}") private boolean allowSendOtpApi; - + @Value("${preregistration.cookie.contextpath}") private String cookieContextPath; @@ -112,15 +108,15 @@ public void initBinder(WebDataBinder binder) { @Deprecated(since = "1.2.0", forRemoval = true) @PostMapping(value = "/sendOtp", produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "sendOTP", description = "Send Otp to UserId", tags = "login-controller") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "OK"), - @ApiResponse(responseCode = "201", description = "Created" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) + @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "OK"), + @ApiResponse(responseCode = "201", description = "Created", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) @ResponseStatus(value = HttpStatus.OK) public ResponseEntity> sendOTP( - @Validated @RequestBody MainRequestDTO userOtpRequest, @ApiIgnore Errors errors) { + @Validated @RequestBody MainRequestDTO userOtpRequest, + @ApiParam(hidden = true) Errors errors) { loginValidator.validateId(SENDOTP, userOtpRequest.getId(), errors); DataValidationUtil.validate(errors, SENDOTP); @@ -141,15 +137,15 @@ public ResponseEntity> sendOTP( */ @PostMapping(value = "/sendOtp/langcode", produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "sendOTPWithLangCode", description = "Send Otp to UserId", tags = "login-controller") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "OK"), - @ApiResponse(responseCode = "201", description = "Created" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) + @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "OK"), + @ApiResponse(responseCode = "201", description = "Created", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) @ResponseStatus(value = HttpStatus.OK) public ResponseEntity> sendOTPWithLangCode( - @Validated @RequestBody MainRequestDTO userOtpRequest, @ApiIgnore Errors errors) { + @Validated @RequestBody MainRequestDTO userOtpRequest, + @ApiParam(hidden = true) Errors errors) { loginValidator.validateId(SENDOTP, userOtpRequest.getId(), errors); DataValidationUtil.validate(errors, SENDOTP); @@ -173,14 +169,13 @@ public ResponseEntity> sendOTPWithLangCode( */ @PostMapping(value = "/validateOtp", produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "validateWithUserIdOtp", description = "Validate UserId and Otp", tags = "login-controller") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "OK"), - @ApiResponse(responseCode = "201", description = "Created" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) + @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "OK"), + @ApiResponse(responseCode = "201", description = "Created", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity> validateWithUserIdOtp( - @Validated @RequestBody MainRequestDTO userIdOtpRequest, @ApiIgnore Errors errors, + @Validated @RequestBody MainRequestDTO userIdOtpRequest, @ApiParam(hidden = true) Errors errors, HttpServletResponse res, HttpServletRequest req) { log.debug("User ID: {}", userIdOtpRequest.getRequest().getUserId()); @@ -194,7 +189,7 @@ public ResponseEntity> validateWithUserIdOtp( responseCookie.setHttpOnly(true); responseCookie.setSecure(true); responseCookie.setPath(cookieContextPath); - res.addCookie(responseCookie); + res.addCookie(responseCookie); } return ResponseEntity.status(HttpStatus.OK).body(responseBody); } @@ -207,12 +202,11 @@ public ResponseEntity> validateWithUserIdOtp( */ @PostMapping(value = "/invalidateToken", produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "invalidateToken", description = "Invalidate the token", tags = "login-controller") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "OK"), - @ApiResponse(responseCode = "201", description = "Created" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) + @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "OK"), + @ApiResponse(responseCode = "201", description = "Created", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) @ResponseStatus(value = HttpStatus.OK) public ResponseEntity> invalidateToken(HttpServletRequest req, HttpServletResponse res) { @@ -223,7 +217,6 @@ public ResponseEntity> invalidateToken(HttpServletReques responseCookie.setPath(cookieContextPath); res.addCookie(responseCookie); return ResponseEntity.status(HttpStatus.OK).body(loginService.invalidateToken(req.getHeader("Cookie"))); - } /** @@ -236,47 +229,24 @@ public ResponseEntity> invalidateToken(HttpServletReques @Operation(summary = "configParams", description = "Get global and Pre-Registration config data", tags = "login-controller") @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "global and Pre-Registration config data successfully retrieved"), - @ApiResponse(responseCode = "201", description = "Created" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) + @ApiResponse(responseCode = "201", description = "Created", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity>> configParams() { - return new ResponseEntity<>(loginService.getConfig(), HttpStatus.OK); - - } - - /** - * This get api is use to refresh the configuration data - * - * @return the response entity - */ - @PreAuthorize("hasAnyRole(@authorizedRoles.getGetrefreshconfig())") - @GetMapping(path = "/refreshconfig", produces = MediaType.APPLICATION_JSON_VALUE) - //@PreAuthorize("hasAnyRole('PRE_REGISTRATION_ADMIN')") - @Operation(summary = "refreshConfigParams", description = "Refresh global and Pre-Registration config data", tags = "login-controller") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "global and Pre-Registration config data successfully updated"), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) - public ResponseEntity> refreshConfigParams() { - - return new ResponseEntity<>(loginService.refreshConfig(), HttpStatus.OK); - } @PostMapping(path = "/sendOtpWithCaptcha", produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "sendOtpWithCaptcha", description = "sendOtpWithCaptcha", tags = "login-controller") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "OK"), - @ApiResponse(responseCode = "201", description = "Created" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) + @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "OK"), + @ApiResponse(responseCode = "201", description = "Created", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity> sendOtpWithCaptcha( @Validated @Valid @RequestBody MainRequestDTO sendOtpRequestWithCaptcha, - HttpServletResponse res, @ApiIgnore Errors errors) { + HttpServletResponse res, @ApiParam(hidden = true) Errors errors) { MainResponseDTO response = loginService.validateCaptchaAndSendOtp(sendOtpRequestWithCaptcha); if (Objects.isNull(response.getErrors())) { @@ -286,10 +256,9 @@ public ResponseEntity> sendOtpWithCaptcha( resCookie.setHttpOnly(true); resCookie.setSecure(true); resCookie.setPath(cookieContextPath); - + res.addCookie(resCookie); } return new ResponseEntity<>(response, HttpStatus.OK); } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/LostUINController.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/LostUINController.java index 6030fce6ffb..7977e151f16 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/LostUINController.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/LostUINController.java @@ -8,7 +8,6 @@ import org.springframework.validation.Errors; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.WebDataBinder; -import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.PathVariable; @@ -27,16 +26,15 @@ import io.mosip.preregistration.core.config.LoggerConfiguration; import io.mosip.preregistration.core.util.DataValidationUtil; import io.mosip.preregistration.core.util.RequestValidator; +import io.swagger.annotations.ApiParam; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; import io.swagger.v3.oas.annotations.tags.Tag; -import springfox.documentation.annotations.ApiIgnore; @RestController -@CrossOrigin("*") @Tag(name = "lost-uin-controller", description = "Lost UIN Controller") public class LostUINController { @@ -79,7 +77,7 @@ public void initBinder(WebDataBinder binder) { @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity> addLostUinApplication( @Validated @RequestBody(required = true) MainRequestDTO jsonObject, - @ApiIgnore Errors errors) { + @ApiParam(hidden = true) Errors errors) { log.info("sessionId", "idType", "id", "In pre-registration LostUINController for createNewApplication with json object" + jsonObject); requestValidator.validateId(LOST_UIN_CREATE_ID, jsonObject.getId(), errors); @@ -109,4 +107,4 @@ public ResponseEntity> deleteLostUinApplic return ResponseEntity.status(HttpStatus.OK).body(applicationService.deleteLostOrUpdateApplication(applicationId, BookingTypeCodes.LOST_FORGOTTEN_UIN.toString())); } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/NotificationController.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/NotificationController.java index 8bfdb51d4ec..464b97020c6 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/NotificationController.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/NotificationController.java @@ -1,6 +1,6 @@ package io.mosip.preregistration.application.controller; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.media.Schema; @@ -10,7 +10,6 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.bind.annotation.RestController; @@ -32,7 +31,6 @@ * @since 1.0.0 */ @RestController -@CrossOrigin("*") @Tag(name = "notification-controller", description = "Notification Controller") public class NotificationController { @@ -53,15 +51,14 @@ public class NotificationController { * @return the response entity. */ @PreAuthorize("hasAnyRole(@authorizedRoles.getPostnotificationnotify())") - //@PreAuthorize("hasAnyRole('INDIVIDUAL','PRE_REGISTRATION_ADMIN')") + // @PreAuthorize("hasAnyRole('INDIVIDUAL','PRE_REGISTRATION_ADMIN')") @PostMapping(path = "/notification/notify", consumes = { "multipart/form-data" }) - @Operation(summary = "sendNotification", description = "Trigger notification", tags = "notification-controller") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "OK"), - @ApiResponse(responseCode = "201", description = "Created" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) + @Operation(summary = "sendNotification", description = "Trigger notification", tags = "notification-controller") + @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "OK"), + @ApiResponse(responseCode = "201", description = "Created", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity> sendNotification( @RequestPart(value = "NotificationRequestDTO", required = true) String jsonbObject, @RequestPart(value = "langCode", required = true) String langCode, @@ -82,15 +79,14 @@ public ResponseEntity> sendNotification * @return the response entity. */ @PreAuthorize("hasAnyRole(@authorizedRoles.getPostnotification())") - //@PreAuthorize("hasAnyRole('INDIVIDUAL','PRE_REGISTRATION_ADMIN')") + // @PreAuthorize("hasAnyRole('INDIVIDUAL','PRE_REGISTRATION_ADMIN')") @PostMapping(path = "/notification", consumes = { "multipart/form-data" }) - @Operation(summary = "sendNotifications", description = "Trigger notification", tags = "notification-controller") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "OK"), - @ApiResponse(responseCode = "201", description = "Created" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) + @Operation(summary = "sendNotifications", description = "Trigger notification", tags = "notification-controller") + @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "OK"), + @ApiResponse(responseCode = "201", description = "Created", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity> sendNotifications( @RequestPart(value = "NotificationRequestDTO", required = true) String jsonbObject, @RequestPart(value = "langCode", required = false) String langCode, @@ -101,7 +97,7 @@ public ResponseEntity> sendNotification return new ResponseEntity<>(notificationService.sendNotification(jsonbObject, langCode, file, true), HttpStatus.OK); } - + /** * Api to Trigger notification service. * @@ -111,21 +107,21 @@ public ResponseEntity> sendNotification * @return the response entity. */ @PreAuthorize("hasAnyRole(@authorizedRoles.getPostnotification())") - //@PreAuthorize("hasAnyRole('INDIVIDUAL','PRE_REGISTRATION_ADMIN')") + // @PreAuthorize("hasAnyRole('INDIVIDUAL','PRE_REGISTRATION_ADMIN')") @PostMapping(path = "/internal/notification", consumes = { "multipart/form-data" }) - @Operation(summary = "sendNotificationsInternal", description = "Trigger notification by internal batch job", tags = "notification-controller") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "OK"), - @ApiResponse(responseCode = "201", description = "Created" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) + @Operation(summary = "sendNotificationsInternal", description = "Trigger notification by internal batch job", tags = "notification-controller") + @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "OK"), + @ApiResponse(responseCode = "201", description = "Created", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity> sendNotificationsInternal( @RequestPart(value = "NotificationRequestDTO", required = true) String jsonbObject, @RequestPart(value = "langCode", required = false) String langCode, @RequestPart(value = "attachment", required = false) MultipartFile file, HttpServletRequest res) { log.info("sessionId", "idType", "id", - "In notification controller for sendNotificationsInternal() with request notification dto " + jsonbObject); + "In notification controller for sendNotificationsInternal() with request notification dto " + + jsonbObject); log.debug("sessionId", "idType", "id", res.getHeader("Cookie")); return new ResponseEntity<>(notificationService.sendNotification(jsonbObject, langCode, file, false), HttpStatus.OK); diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/ProxyMasterdataController.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/ProxyMasterdataController.java index 47ee429cc65..abea0926a30 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/ProxyMasterdataController.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/ProxyMasterdataController.java @@ -1,18 +1,9 @@ package io.mosip.preregistration.application.controller; -import javax.servlet.http.HttpServletRequest; - -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.media.Content; -import io.swagger.v3.oas.annotations.media.Schema; -import io.swagger.v3.oas.annotations.responses.ApiResponse; -import io.swagger.v3.oas.annotations.responses.ApiResponses; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -20,11 +11,16 @@ import io.mosip.kernel.core.logger.spi.Logger; import io.mosip.preregistration.core.config.LoggerConfiguration; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; @RestController @RequestMapping("/proxy") -@CrossOrigin("*") @Tag(name = "proxy-masterdata-controller", description = "Proxy Masterdata Controller") public class ProxyMasterdataController { @@ -33,18 +29,29 @@ public class ProxyMasterdataController { @Autowired private io.mosip.preregistration.application.service.ProxyMasterDataService service; - @RequestMapping(path = "/**", produces = MediaType.APPLICATION_JSON_VALUE, method = { RequestMethod.GET, - RequestMethod.POST }) - @Operation(summary = "Master data proxy", description = "Master data proxy", tags = "proxy-masterdata-controller") + @RequestMapping(path = "/**", produces = MediaType.APPLICATION_JSON_VALUE, method = { RequestMethod.GET }) + @Operation(summary = "GET Master data proxy", description = "Master data proxy", tags = "proxy-masterdata-controller") @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "OK"), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) - public ResponseEntity masterDataProxyController(@RequestBody(required = false) String body, + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) + public ResponseEntity masterDataGetProxyController(@RequestBody(required = false) String body, HttpServletRequest request) { log.info("sessionId", "idType", "id", - "In masterDataProxyController method with request url" + request.getRequestURI() + body); + "In masterDataGetProxyController method with request url: " + request.getRequestURI()); return ResponseEntity.status(HttpStatus.OK).body(service.getMasterDataResponse(body, request)); } -} + @RequestMapping(path = "/**", produces = MediaType.APPLICATION_JSON_VALUE, method = { RequestMethod.POST }) + @Operation(summary = "POST Master data proxy", description = "Master data proxy", tags = "proxy-masterdata-controller") + @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "OK"), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) + public ResponseEntity masterDataPostProxyController(@RequestBody(required = false) String body, + HttpServletRequest request) { + log.info("sessionId", "idType", "id", + "In masterDataPostProxyController method with request url" + request.getRequestURI()); + return ResponseEntity.status(HttpStatus.OK).body(service.getMasterDataResponse(body, request)); + } +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/TransliterationController.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/TransliterationController.java index d5ff772ba39..edfab3775dc 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/TransliterationController.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/TransliterationController.java @@ -4,6 +4,20 @@ */ package io.mosip.preregistration.application.controller; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.Errors; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.WebDataBinder; +import org.springframework.web.bind.annotation.InitBinder; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + import io.mosip.preregistration.application.dto.TransliterationRequestDTO; import io.mosip.preregistration.application.dto.TransliterationResponseDTO; import io.mosip.preregistration.application.service.TransliterationService; @@ -11,26 +25,17 @@ import io.mosip.preregistration.core.common.dto.MainResponseDTO; import io.mosip.preregistration.core.util.DataValidationUtil; import io.mosip.preregistration.core.util.RequestValidator; +import io.swagger.annotations.ApiParam; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; import io.swagger.v3.oas.annotations.tags.Tag; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.Errors; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.WebDataBinder; -import org.springframework.web.bind.annotation.*; -import springfox.documentation.annotations.ApiIgnore; /** - * This class provides different API's to perform operations on - * Transliteration Application + * This class provides different API's to perform operations on Transliteration + * Application * * @author Kishan Rathore * @since 1.0.0 @@ -39,19 +44,18 @@ @RestController @RequestMapping("/transliteration") @Tag(name = "Transliteration Controller", description = "Transliteration Controller") -@CrossOrigin("*") public class TransliterationController { /** Autowired reference for {@link #transliterationService}. */ @Autowired private TransliterationService transliterationService; - + @Autowired private RequestValidator requestValidator; - + /** The Constant for GET UPDATED DATE TIME application. */ private static final String TRANS = "pre-registration.transliteration.transliterate"; - + /** * Inits the binder. * @@ -66,20 +70,21 @@ public void initBinder(WebDataBinder binder) { * Post API to transliterate from transliteration application. * * @param requestDTO - * @return responseDto with transliterated toFieldValue. + * @return responseDto with transliterated toFieldValue. */ @PreAuthorize("hasAnyRole(@authorizedRoles.getPosttransliterationtransliterate())") - @PostMapping(path = "/transliterate", consumes = MediaType.APPLICATION_JSON_VALUE,produces = MediaType.APPLICATION_JSON_VALUE) - @Operation(summary = "Get Pre-Registartion-Translitration data", description = "Get Pre-Registartion-Translitration data", tags = "Transliteration Controller") + @PostMapping(path = "/transliterate", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) + @Operation(summary = "Get Pre-Registartion-Translitration data", description = "Get Pre-Registartion-Translitration data", tags = "Transliteration Controller") @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Given key is translitrated successfully"), - @ApiResponse(responseCode = "201", description = "Created" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) + @ApiResponse(responseCode = "201", description = "Created", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity> translitrator( - @Validated @RequestBody(required = true) MainRequestDTO requestDTO, @ApiIgnore Errors errors) { + @Validated @RequestBody(required = true) MainRequestDTO requestDTO, + @ApiParam(hidden = true) Errors errors) { requestValidator.validateId(TRANS, requestDTO.getId(), errors); - DataValidationUtil.validate(errors,TRANS); + DataValidationUtil.validate(errors, TRANS); return ResponseEntity.status(HttpStatus.OK).body(transliterationService.translitratorService(requestDTO)); } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/UISpecificationController.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/UISpecificationController.java index b72ae54b469..50f3191d62e 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/UISpecificationController.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/UISpecificationController.java @@ -1,14 +1,9 @@ package io.mosip.preregistration.application.controller; -import io.swagger.v3.oas.annotations.media.Content; -import io.swagger.v3.oas.annotations.media.Schema; -import io.swagger.v3.oas.annotations.responses.ApiResponse; -import io.swagger.v3.oas.annotations.responses.ApiResponses; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @@ -21,10 +16,13 @@ import io.mosip.preregistration.core.config.LoggerConfiguration; import io.swagger.annotations.ApiParam; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; import io.swagger.v3.oas.annotations.tags.Tag; @RestController -@CrossOrigin("*") @Tag(name = "UISpecification Controller", description = "UI Specification Controller") public class UISpecificationController { @@ -35,12 +33,12 @@ public class UISpecificationController { @PreAuthorize("hasAnyRole(@authorizedRoles.getGetuispeclatest())") @GetMapping("/uispec/latest") - @Operation(summary = "Service to fetch latest published ui specification", description = "Service to fetch latest published ui specification", tags = { "UISpecification Controller" }) - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "OK"), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) + @Operation(summary = "Service to fetch latest published ui specification", description = "Service to fetch latest published ui specification", tags = { + "UISpecification Controller" }) + @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "OK"), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity> getLatestPublishedSchema( @RequestParam(name = "version", defaultValue = "0", required = false) @ApiParam(value = "version", defaultValue = "0") double version, @RequestParam(name = "identitySchemaVersion", defaultValue = "0", required = false) @ApiParam(value = "version", defaultValue = "0") double identitySchemaVersion) { @@ -49,19 +47,18 @@ public ResponseEntity> getLatestPublishedSche return ResponseEntity.status(HttpStatus.OK).body(uiSpecService.getLatestUISpec(version, identitySchemaVersion)); } - @PreAuthorize("hasAnyRole(@authorizedRoles.getGetuispecall())" ) + @PreAuthorize("hasAnyRole(@authorizedRoles.getGetuispecall())") @GetMapping("/uispec/all") - @Operation(summary = "Service to fetch all published ui specification", description = "Service to fetch all published ui specification", tags = { "UISpecification Controller" }) - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "OK"), - @ApiResponse(responseCode = "401", description = "Unauthorized" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "403", description = "Forbidden" ,content = @Content(schema = @Schema(hidden = true))), - @ApiResponse(responseCode = "404", description = "Not Found" ,content = @Content(schema = @Schema(hidden = true)))}) + @Operation(summary = "Service to fetch all published ui specification", description = "Service to fetch all published ui specification", tags = { + "UISpecification Controller" }) + @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "OK"), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity>> getAllPublishedSchema( @RequestParam(name = "pageNumber", defaultValue = "0") @ApiParam(value = "page number", defaultValue = "0") int pageNumber, @RequestParam(name = "pageSize", defaultValue = "10") @ApiParam(value = "page size", defaultValue = "10") int pageSize) { log.info("In UISpecification Controller to getAllPublishedSchema"); return ResponseEntity.status(HttpStatus.OK).body(uiSpecService.getAllUISpec(pageNumber, pageSize)); } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/UpdateRegistrationController.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/UpdateRegistrationController.java index 35eab482949..3480e24e3b5 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/UpdateRegistrationController.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/controller/UpdateRegistrationController.java @@ -8,7 +8,6 @@ import org.springframework.validation.Errors; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.WebDataBinder; -import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.PathVariable; @@ -27,16 +26,15 @@ import io.mosip.preregistration.core.config.LoggerConfiguration; import io.mosip.preregistration.core.util.DataValidationUtil; import io.mosip.preregistration.core.util.RequestValidator; +import io.swagger.annotations.ApiParam; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; import io.swagger.v3.oas.annotations.tags.Tag; -import springfox.documentation.annotations.ApiIgnore; @RestController -@CrossOrigin("*") @Tag(name = "update-registration-controller", description = "Update Registration Controller") public class UpdateRegistrationController { @@ -80,7 +78,7 @@ public void initBinder(WebDataBinder binder) { @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity> addUpdateRegistration( @Validated @RequestBody(required = true) MainRequestDTO jsonObject, - @ApiIgnore Errors errors) { + @ApiParam(hidden = true) Errors errors) { log.info("sessionId", "idType", "id", "In pre-registration UpdateRegistrationController for createNewApplication with json object" + jsonObject); @@ -112,5 +110,4 @@ public ResponseEntity> deleteUpdateRegistr return ResponseEntity.status(HttpStatus.OK).body(applicationService.deleteLostOrUpdateApplication(applicationId, BookingTypeCodes.UPDATE_REGISTRATION.toString())); } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/ApplicantTypeRequestDTO.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/ApplicantTypeRequestDTO.java index 29923ac6cb7..2ac444c31c1 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/ApplicantTypeRequestDTO.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/ApplicantTypeRequestDTO.java @@ -2,7 +2,7 @@ import java.util.List; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import lombok.Data; diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/ApplicantTypeResponseDTO.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/ApplicantTypeResponseDTO.java index d3345057f63..9f14491e2a1 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/ApplicantTypeResponseDTO.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/ApplicantTypeResponseDTO.java @@ -1,6 +1,6 @@ package io.mosip.preregistration.application.dto; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import lombok.Data; diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/CaptchaRequestDTO.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/CaptchaRequestDTO.java index a14fab1fcb3..e1e71d97ed9 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/CaptchaRequestDTO.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/CaptchaRequestDTO.java @@ -2,8 +2,6 @@ import java.io.Serializable; -import javax.validation.constraints.NotNull; - import lombok.Data; @Data diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/OTPGenerateRequestDTO.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/OTPGenerateRequestDTO.java index 02502919087..eb8ea5eee28 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/OTPGenerateRequestDTO.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/OTPGenerateRequestDTO.java @@ -1,6 +1,5 @@ package io.mosip.preregistration.application.dto; -import java.time.LocalDateTime; import java.util.Date; import java.util.HashMap; import java.util.Map; @@ -9,37 +8,33 @@ import lombok.AccessLevel; import lombok.AllArgsConstructor; +import lombok.Data; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; - -@Getter -@Setter +@Data @NoArgsConstructor @AllArgsConstructor public class OTPGenerateRequestDTO { - + private String id; - + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'") - @Setter(AccessLevel.NONE) - @Getter(AccessLevel.NONE) private Date requesttime; - + private String version; - - private Map metadata=new HashMap(); - - private RequestDTO request; + private Map metadata = new HashMap(); + private RequestDTO request; + + // Getter and Setter methods for requesttime are overridden manually public Date getRequesttime() { - return requesttime!=null ? new Date(requesttime.getTime()):null; + return requesttime != null ? new Date(requesttime.getTime()) : null; } + public void setRequesttime(Date requesttime) { - this.requesttime =requesttime!=null ? new Date(requesttime.getTime()):null; + this.requesttime = requesttime != null ? new Date(requesttime.getTime()) : null; } - } - diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/OTPRequestWithLangCodeAndCaptchaToken.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/OTPRequestWithLangCodeAndCaptchaToken.java index 8018855db0d..77015dee2ec 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/OTPRequestWithLangCodeAndCaptchaToken.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/OTPRequestWithLangCodeAndCaptchaToken.java @@ -1,6 +1,6 @@ package io.mosip.preregistration.application.dto; -import javax.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotBlank; import lombok.Data; diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/ResponseWrapper.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/ResponseWrapper.java index f995b01542f..186f4839584 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/ResponseWrapper.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/ResponseWrapper.java @@ -5,8 +5,8 @@ import java.util.ArrayList; import java.util.List; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; import com.fasterxml.jackson.annotation.JsonFormat; diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/UIAuditRequest.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/UIAuditRequest.java index 1c53d7d73d2..52034d4c170 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/UIAuditRequest.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/UIAuditRequest.java @@ -1,10 +1,6 @@ package io.mosip.preregistration.application.dto; -import java.time.LocalDateTime; - -import javax.validation.constraints.NotNull; - -import com.fasterxml.jackson.annotation.JsonFormat; +import jakarta.validation.constraints.NotNull; import lombok.Data; diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/UISpecDTO.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/UISpecDTO.java index 2156d545530..19ba6b9d734 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/UISpecDTO.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/UISpecDTO.java @@ -1,7 +1,7 @@ package io.mosip.preregistration.application.dto; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotEmpty; import com.fasterxml.jackson.databind.JsonNode; import io.swagger.annotations.ApiModelProperty; diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/UISpecficationRequestDTO.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/UISpecficationRequestDTO.java index ddf8f99c174..e37b2aa2d69 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/UISpecficationRequestDTO.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/dto/UISpecficationRequestDTO.java @@ -1,7 +1,7 @@ package io.mosip.preregistration.application.dto; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotEmpty; import com.fasterxml.jackson.databind.JsonNode; import io.swagger.annotations.ApiModelProperty; diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/entity/LanguageIdEntity.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/entity/LanguageIdEntity.java index 6c2ab28ca10..dbe4d90b085 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/entity/LanguageIdEntity.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/entity/LanguageIdEntity.java @@ -7,10 +7,10 @@ import java.io.Serializable; import java.time.LocalDateTime; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import lombok.Getter; import lombok.NoArgsConstructor; diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/entity/OtpTransaction.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/entity/OtpTransaction.java index d885d976549..303ca7d6475 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/entity/OtpTransaction.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/entity/OtpTransaction.java @@ -2,10 +2,10 @@ import java.time.LocalDateTime; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/errorcodes/AppointmentErrorCodes.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/errorcodes/AppointmentErrorCodes.java index 8b07f7897d1..82f1e8eff76 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/errorcodes/AppointmentErrorCodes.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/errorcodes/AppointmentErrorCodes.java @@ -14,7 +14,9 @@ public enum AppointmentErrorCodes { MULTI_BOOKING_FAILED("PRG_APP_BCK_06", "Appointment Booking failed"), - FAILED_TO_UPDATE_APPLICATIONS("PRG_APP_BCK_07","Failed to update Appointment for the %s"); + FAILED_TO_UPDATE_APPLICATIONS("PRG_APP_BCK_07","Failed to update Appointment for the %s"), + + INVALID_APP_ID_FOR_USER("PRG_APP_BCK_08", "Requested application id does not belong to the user"); private String code; private String message; diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/AppointmentExecption.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/AppointmentExecption.java index 4d98fed4b21..ebd66c44b87 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/AppointmentExecption.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/AppointmentExecption.java @@ -1,25 +1,47 @@ package io.mosip.preregistration.application.exception; +import java.util.Objects; + import io.mosip.kernel.core.exception.BaseUncheckedException; import lombok.Data; -import lombok.EqualsAndHashCode; @Data -@EqualsAndHashCode(callSuper = false) public class AppointmentExecption extends BaseUncheckedException { - - public AppointmentExecption(String errorCode, String message) { - this.errorCode = errorCode; - this.errorMessage = message; - } + /** The Constant serialVersionUID. */ + private static final long serialVersionUID = 1L; /** - * + * The error code associated with the audit failure. */ - private static final long serialVersionUID = 1L; - private String errorCode; + /** + * A descriptive message explaining the reason for the audit failure. + */ private String errorMessage; -} + public AppointmentExecption(String errorCode, String message) { + super(); + this.errorCode = errorCode; + this.errorMessage = message; + } + + @Override + public boolean equals(Object obj) { + super.equals(obj); + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + AppointmentExecption other = (AppointmentExecption) obj; + return Objects.equals(errorCode, other.errorCode) && Objects.equals(errorMessage, other.errorMessage); + } + + @Override + public int hashCode() { + super.hashCode(); + return Objects.hash(errorCode, errorMessage); + } +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/AuditFailedException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/AuditFailedException.java index 826e02f0c28..1171b515be2 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/AuditFailedException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/AuditFailedException.java @@ -1,28 +1,44 @@ package io.mosip.preregistration.application.exception; import io.mosip.kernel.core.exception.BaseUncheckedException; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.Setter; +import lombok.Data; -@Getter -@Setter -@AllArgsConstructor +/** + * The AuditFailedException class represents an exception that occurs + * when audit fails. + * + * + * @author Tapaswini Behera + * @since 1.0.0 + * + */ + +@Data public class AuditFailedException extends BaseUncheckedException { + /** The Constant serialVersionUID. */ + private static final long serialVersionUID = 1L; /** - * + * The error code associated with the audit failure. */ - private static final long serialVersionUID = 1L; - - private String errorCode; - - private String errorMessage; + private final String errorCode; - - - - - + /** + * A descriptive message explaining the reason for the audit failure. + */ + private final String errorMessage; -} + /** + * Constructs a new AuditFailedException with the specified error code and + * message. + * + * @param errorCode The error code associated with the audit failure. + * @param errorMessage A descriptive message explaining the reason for the audit + * failure. + */ + public AuditFailedException(String errorCode, String errorMessage) { + super(); + this.errorCode = errorCode; + this.errorMessage = errorMessage; + } +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/BookingDeletionFailedException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/BookingDeletionFailedException.java index e3e53eb106d..b8508f3ba36 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/BookingDeletionFailedException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/BookingDeletionFailedException.java @@ -9,7 +9,7 @@ public class BookingDeletionFailedException extends BaseUncheckedException { /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; - private MainResponseDTO mainresponseDTO; + private MainResponseDTO mainresponseDTO; /** * Default constructore @@ -26,37 +26,36 @@ public BookingDeletionFailedException(String errorMessage) { } /** - * @param errorCode pass the error code + * @param errorCode pass the error code * @param errorMessage pass the error message */ public BookingDeletionFailedException(String errorCode, String errorMessage) { super(errorCode, errorMessage, null); } - + /** - * @param errorCode pass the error code + * @param errorCode pass the error code * @param errorMessage pass the error message */ - public BookingDeletionFailedException(String errorCode, String errorMessage,MainResponseDTO response) { + public BookingDeletionFailedException(String errorCode, String errorMessage, MainResponseDTO response) { super(errorCode, errorMessage, null); - this.mainresponseDTO=response; + this.mainresponseDTO = response; } - /** * @param errorMessage pass the error message - * @param rootCause pass the cause + * @param rootCause pass the cause */ public BookingDeletionFailedException(String errorMessage, Throwable rootCause) { super(DemographicErrorCodes.PRG_PAM_DOC_016.toString(), errorMessage, rootCause); } /** - * @param errorCode pass the error code + * @param errorCode pass the error code * @param errorMessage pass the error message - * @param rootCause pass the cause + * @param rootCause pass the cause */ public BookingDeletionFailedException(String errorCode, String errorMessage, Throwable rootCause) { super(errorCode, errorMessage, rootCause); } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/BookingDetailsNotFoundException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/BookingDetailsNotFoundException.java index f374779e42a..cf78a6871f4 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/BookingDetailsNotFoundException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/BookingDetailsNotFoundException.java @@ -7,18 +7,17 @@ import io.mosip.preregistration.core.common.dto.MainResponseDTO; import lombok.Getter; - @Getter public class BookingDetailsNotFoundException extends BaseUncheckedException { /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; private final MainResponseDTO mainResponseDTO; private List errorList; - + public List getErrorList() { return errorList; } - + public MainResponseDTO getMainResposneDTO() { return mainResponseDTO; } @@ -26,18 +25,18 @@ public MainResponseDTO getMainResposneDTO() { /** * @param msg */ - public BookingDetailsNotFoundException(List errorList,MainResponseDTO response) { - this.errorList=errorList; - this.mainResponseDTO=response; + public BookingDetailsNotFoundException(List errorList, MainResponseDTO response) { + this.errorList = errorList; + this.mainResponseDTO = response; } /** * @param errCode * @param msg */ - public BookingDetailsNotFoundException(String errCode, String msg,MainResponseDTO response) { + public BookingDetailsNotFoundException(String errCode, String msg, MainResponseDTO response) { super(errCode, msg); - this.mainResponseDTO=response; + this.mainResponseDTO = response; } /** @@ -45,9 +44,8 @@ public BookingDetailsNotFoundException(String errCode, String msg,MainResponseDT * @param msg * @param cause */ - public BookingDetailsNotFoundException(String errCode, String msg, Throwable cause,MainResponseDTO response) { + public BookingDetailsNotFoundException(String errCode, String msg, Throwable cause, MainResponseDTO response) { super(errCode, msg, cause); - this.mainResponseDTO=response; + this.mainResponseDTO = response; } -} - +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/CephConnectionUnavailableException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/CephConnectionUnavailableException.java index d761b484f1a..5b9573fa36a 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/CephConnectionUnavailableException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/CephConnectionUnavailableException.java @@ -22,7 +22,7 @@ public class CephConnectionUnavailableException extends BaseUncheckedException { /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; - + private MainResponseDTO response; /** @@ -32,41 +32,33 @@ public CephConnectionUnavailableException() { super(); } - /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param cause - * pass Error cause + * @param errorCode pass Error code + * @param message pass Error Message + * @param cause pass Error cause */ - public CephConnectionUnavailableException(String errorCode, String message, Throwable cause,MainResponseDTO response) { + public CephConnectionUnavailableException(String errorCode, String message, Throwable cause, + MainResponseDTO response) { super(errorCode, message, cause); - this.response=response; + this.response = response; } /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message + * @param errorCode pass Error code + * @param message pass Error Message */ public CephConnectionUnavailableException(String errorCode, String message) { super(errorCode, message); } - + /** * - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param response - * pass response + * @param errorCode pass Error code + * @param message pass Error Message + * @param response pass response */ - public CephConnectionUnavailableException(String errorCode, String message,MainResponseDTO response) { + public CephConnectionUnavailableException(String errorCode, String message, MainResponseDTO response) { super(errorCode, message); - this.response=response; + this.response = response; } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/CephServerException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/CephServerException.java index e8809ba3c90..4fe1e9d836a 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/CephServerException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/CephServerException.java @@ -4,7 +4,6 @@ import io.mosip.preregistration.core.common.dto.MainResponseDTO; import lombok.Getter; - /** * @author M1046129 * @@ -14,43 +13,34 @@ public class CephServerException extends BaseUncheckedException { private static final long serialVersionUID = 1L; - + private MainResponseDTO response; /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message + * @param errorCode pass Error code + * @param message pass Error Message */ public CephServerException(String errorCode, String errorMessage) { super(errorCode, errorMessage); } /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param cause - * pass Error cause + * @param errorCode pass Error code + * @param message pass Error Message + * @param cause pass Error cause */ public CephServerException(String errorCode, String errorMessage, Throwable cause) { super(errorCode, errorMessage, cause); } - + /** * - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param response - * pass response + * @param errorCode pass Error code + * @param message pass Error Message + * @param response pass response */ - public CephServerException(String errorCode, String message,MainResponseDTO response) { + public CephServerException(String errorCode, String message, MainResponseDTO response) { super(errorCode, message); - this.response=response; + this.response = response; } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/ConfigFileNotFoundException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/ConfigFileNotFoundException.java index 41fa010deda..d39097758fd 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/ConfigFileNotFoundException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/ConfigFileNotFoundException.java @@ -7,33 +7,34 @@ @Getter @Setter -public class ConfigFileNotFoundException extends BaseUncheckedException{ +public class ConfigFileNotFoundException extends BaseUncheckedException { /** * */ private static final long serialVersionUID = 1298682891599963309L; - + private MainResponseDTO mainResposneDto; - - public ConfigFileNotFoundException(String msg,MainResponseDTO response) { + + public ConfigFileNotFoundException(String msg, MainResponseDTO response) { super("", msg); - this.mainResposneDto=response; + this.mainResposneDto = response; } - public ConfigFileNotFoundException(String msg, Throwable cause,MainResponseDTO response) { + public ConfigFileNotFoundException(String msg, Throwable cause, MainResponseDTO response) { super("", msg, cause); - this.mainResposneDto=response; + this.mainResposneDto = response; } - public ConfigFileNotFoundException(String errorCode, String errorMessage,MainResponseDTO response) { + public ConfigFileNotFoundException(String errorCode, String errorMessage, MainResponseDTO response) { super(errorCode, errorMessage, null); - this.mainResposneDto=response; + this.mainResposneDto = response; } - public ConfigFileNotFoundException(String errorCode, String errorMessage, Throwable rootCause,MainResponseDTO response) { + public ConfigFileNotFoundException(String errorCode, String errorMessage, Throwable rootCause, + MainResponseDTO response) { super(errorCode, errorMessage, rootCause); - this.mainResposneDto=response; + this.mainResposneDto = response; } public ConfigFileNotFoundException() { diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/CryptocoreException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/CryptocoreException.java index ef43f8085ea..13a9a106577 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/CryptocoreException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/CryptocoreException.java @@ -11,28 +11,23 @@ public class CryptocoreException extends BaseUncheckedException { private MainResponseDTO mainresponseDTO; /** - * @param msg - * pass the error message + * @param msg pass the error message */ public CryptocoreException(String msg) { super("", msg); } /** - * @param errCode - * pass the error code - * @param msg - * pass the error message + * @param errCode pass the error code + * @param msg pass the error message */ public CryptocoreException(String errCode, String msg) { super(errCode, msg); } /** - * @param errCode - * pass the error code - * @param msg - * pass the error message + * @param errCode pass the error code + * @param msg pass the error message */ public CryptocoreException(String errCode, String msg, MainResponseDTO response) { super(errCode, msg); diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DTOMappigException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DTOMappigException.java index b5a312983ea..d544c321dd2 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DTOMappigException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DTOMappigException.java @@ -9,8 +9,10 @@ import lombok.Getter; /** - * This class defines the DTOMappigException that occurs when the DTO Mapping - * fails + * The DTOMappigException class represents an exception that occurs when the DTO + * Mapping fails. This class extends {@link BaseUncheckedException} and includes + * various constructors for different use cases, as well as a + * {@link MainResponseDTO} object for additional error information. * * @author Kishan Rathore * @since 1.0.0 @@ -19,10 +21,10 @@ @Getter public class DTOMappigException extends BaseUncheckedException { - /** The Constant serialVersionUID. */ - private static final long serialVersionUID = -8143377803310016937L; - + private static final long serialVersionUID = 1L; + + /** The main response DTO associated with the exception. */ private MainResponseDTO response; /** @@ -32,40 +34,40 @@ public DTOMappigException() { super(); } - /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param cause - * pass Error cause + * Constructs a new {@code DTOMappigException} with the specified + * error code, error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ - public DTOMappigException(String errorCode, String message, Throwable cause) { - super(errorCode, message, cause); + public DTOMappigException(String errorCode, String errorMessage, Throwable rootCause) { + super(errorCode, errorMessage, rootCause); } /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message + * Constructs a new {@code DTOMappigException} with the specified + * error code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. */ - public DTOMappigException(String errorCode, String message) { - super(errorCode, message); + public DTOMappigException(String errorCode, String errorMessage) { + super(errorCode, errorMessage); } - + /** + * Constructs a new {@code DTOMappigException} with the specified + * error code, error message, and response. * - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param response - * pass response + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public DTOMappigException(String errorCode, String message,MainResponseDTO response) { - super(errorCode, message); - this.response=response; + public DTOMappigException(String errorCode, String errorMessage, MainResponseDTO response) { + super(errorCode, errorMessage); + this.response = response; } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DemographicDetailsNotFoundException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DemographicDetailsNotFoundException.java index ec2276a8ca2..8b451f6384f 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DemographicDetailsNotFoundException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DemographicDetailsNotFoundException.java @@ -13,30 +13,30 @@ public class DemographicDetailsNotFoundException extends BaseUncheckedException private static final long serialVersionUID = 1L; private final MainResponseDTO mainResponseDTO; private List errorList; - + public List getErrorList() { return errorList; } - public MainResponseDTO getMainResposneDTO() { return mainResponseDTO; } + /** * @param msg */ - public DemographicDetailsNotFoundException(List errorList,MainResponseDTO response) { - this.errorList=errorList; - this.mainResponseDTO=response; + public DemographicDetailsNotFoundException(List errorList, MainResponseDTO response) { + this.errorList = errorList; + this.mainResponseDTO = response; } /** * @param errCode * @param msg */ - public DemographicDetailsNotFoundException(String errCode, String msg,MainResponseDTO response) { + public DemographicDetailsNotFoundException(String errCode, String msg, MainResponseDTO response) { super(errCode, msg); - this.mainResponseDTO=response; + this.mainResponseDTO = response; } /** @@ -44,10 +44,9 @@ public DemographicDetailsNotFoundException(String errCode, String msg,MainRespon * @param msg * @param cause */ - public DemographicDetailsNotFoundException(String errCode, String msg, Throwable cause,MainResponseDTO response) { + public DemographicDetailsNotFoundException(String errCode, String msg, Throwable cause, + MainResponseDTO response) { super(errCode, msg, cause); - this.mainResponseDTO=response; + this.mainResponseDTO = response; } -} - - +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DemographicGetDetailsException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DemographicGetDetailsException.java index cf01760e68c..2b1f425616f 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DemographicGetDetailsException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DemographicGetDetailsException.java @@ -4,7 +4,6 @@ import io.mosip.preregistration.core.common.dto.MainResponseDTO; import lombok.Getter; - /** * @author M1046129 * @@ -14,45 +13,34 @@ public class DemographicGetDetailsException extends BaseUncheckedException { private static final long serialVersionUID = 1L; - + private MainResponseDTO response; - + /** - * @param errorCode - * pass Error code - * @param errorMessage - * pass Error Message + * @param errorCode pass Error code + * @param errorMessage pass Error Message */ - public DemographicGetDetailsException(String errorCode, String errorMessage) { super(errorCode, errorMessage); } /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param cause - * pass Error cause + * @param errorCode pass Error code + * @param message pass Error Message + * @param cause pass Error cause */ public DemographicGetDetailsException(String errorCode, String errorMessage, Throwable cause) { super(errorCode, errorMessage, cause); } - - + /** * - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param response - * pass response + * @param errorCode pass Error code + * @param message pass Error Message + * @param response pass response */ - public DemographicGetDetailsException(String errorCode, String message,MainResponseDTO response) { + public DemographicGetDetailsException(String errorCode, String message, MainResponseDTO response) { super(errorCode, message); - this.response=response; + this.response = response; } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DemographicServiceException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DemographicServiceException.java index 5d26b4d999f..ecfc6c6b838 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DemographicServiceException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DemographicServiceException.java @@ -5,30 +5,52 @@ import io.mosip.kernel.core.exception.BaseUncheckedException; import io.mosip.kernel.core.exception.ServiceError; import io.mosip.preregistration.core.common.dto.MainResponseDTO; - +import lombok.Getter; + +/** + * The DemographicServiceException class represents an exception specific to + * demographic service errors. This class extends {@link BaseUncheckedException} + * and includes various constructors for different use cases, as well as a + * {@link MainResponseDTO} object for additional error information. + * + * + * @author Tapaswini Behera + * @since 1.0.0 + * + */ + +@Getter public class DemographicServiceException extends BaseUncheckedException { - + /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; + /** The list of validation errors. */ private List validationErrorList; + /** The main response DTO associated with the exception. */ private MainResponseDTO mainResposneDTO; - public List getValidationErrorList() { - return validationErrorList; - } - + /** + * Constructs a new {@code DemographicServiceException} with the specified + * validationErrorList, and response. + * + * @param validationErrorList The list of validation errors. + * @param response the {@link MainResponseDTO} object containing + * additional information about the error. + */ public DemographicServiceException(List validationErrorList, MainResponseDTO response) { this.validationErrorList = validationErrorList; this.mainResposneDTO = response; } - public DemographicServiceException(String code, String message) { - super(code, message); + /** + * Constructs a new {@code DemographicServiceException} with the specified error + * code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + */ + public DemographicServiceException(String errorCode, String errorMessage) { + super(errorCode, errorMessage); } - - public MainResponseDTO getMainResposneDTO() { - return mainResposneDTO; - } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DeprecatedException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DeprecatedException.java index 94e4c102bbf..69e89fac5c6 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DeprecatedException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DeprecatedException.java @@ -3,21 +3,41 @@ import io.mosip.kernel.core.exception.BaseUncheckedException; import lombok.Getter; +/** + * The DeprecatedException class represents an exception that occurs when + * function is deprecated. + * + * + * @author Tapaswini Behera + * @since 1.0.0 + * + */ + @Getter public class DeprecatedException extends BaseUncheckedException { + /** The Constant serialVersionUID. */ + private static final long serialVersionUID = 1L; /** - * + * The error code associated with the audit failure. */ - private static final long serialVersionUID = 1L; - - private String errorCode; + private final String errorCode; - private String errorMessage; + /** + * A descriptive message explaining the reason for the audit failure. + */ + private final String errorMessage; + /** + * Constructs a new DeprecatedException with the specified error code and + * message. + * + * @param errorCode The error code associated with the audit failure. + * @param errorMessage A descriptive message explaining the reason for the audit + * failure. + */ public DeprecatedException(String errorCode, String errorMessage) { this.errorCode = errorCode; this.errorMessage = errorMessage; } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DocumentFailedToCopyException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DocumentFailedToCopyException.java index 5bb1e04cde3..320806ff84f 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DocumentFailedToCopyException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DocumentFailedToCopyException.java @@ -9,8 +9,11 @@ import lombok.Getter; /** - * This class defines the DocumentFailedToCopyException that occurs when the - * document fails to copy + * The DocumentFailedToCopyException class represents an exception that occurs + * when the document fails to copy. This class extends + * {@link BaseUncheckedException} and includes various constructors for + * different use cases, as well as a {@link MainResponseDTO} object for + * additional error information. * * @author Kishan Rathore * @since 1.0.0 @@ -19,10 +22,10 @@ @Getter public class DocumentFailedToCopyException extends BaseUncheckedException { - /** The Constant serialVersionUID. */ - private static final long serialVersionUID = 7303748392658525834L; - + private static final long serialVersionUID = 1L; + + /** The main response DTO associated with the exception. */ private MainResponseDTO response; /** @@ -32,41 +35,40 @@ public DocumentFailedToCopyException() { super(); } - /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param cause - * pass Error cause + * Constructs a new {@code DocumentFailedToCopyException} with the specified + * error code, error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ - public DocumentFailedToCopyException(String errorCode, String message, Throwable cause) { - super(errorCode, message, cause); + public DocumentFailedToCopyException(String errorCode, String errorMessage, Throwable rootCause) { + super(errorCode, errorMessage, rootCause); } /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message + * Constructs a new {@code DocumentFailedToCopyException} with the specified + * error code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. */ - public DocumentFailedToCopyException(String errorCode, String message) { - super(errorCode, message); + public DocumentFailedToCopyException(String errorCode, String errorMessage) { + super(errorCode, errorMessage); } - + /** + * Constructs a new {@code DocumentFailedToCopyException} with the specified + * error code, error errorMessage, and response. * - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param response - * pass response + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error errorMessage. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public DocumentFailedToCopyException(String errorCode, String message,MainResponseDTO response) { - super(errorCode, message); - this.response=response; + public DocumentFailedToCopyException(String errorCode, String errorMessage, MainResponseDTO response) { + super(errorCode, errorMessage); + this.response = response; } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DocumentFailedToDeleteException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DocumentFailedToDeleteException.java index 01c4c4c3459..e2f38c5f10b 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DocumentFailedToDeleteException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DocumentFailedToDeleteException.java @@ -10,7 +10,12 @@ import lombok.Getter; /** - * This class defines the DocumentFailedToDeleteException + * The DocumentFailedToDeleteException class represents an exception that occurs + * when the document fails to delete. This class extends + * {@link BaseUncheckedException} and includes various constructors for + * different use cases, as well as a {@link MainResponseDTO} object for + * additional error information. + * * * @author Tapaswini Behera * @since 1.0.0 @@ -20,6 +25,8 @@ public class DocumentFailedToDeleteException extends BaseUncheckedException { /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; + + /** The main response DTO associated with the exception. */ private MainResponseDTO mainresponseDTO; /** @@ -30,42 +37,60 @@ public DocumentFailedToDeleteException() { } /** - * @param errorMessage pass the error message + * Constructs a new {@code DocumentFailedToDeleteException} with the specified + * error message + * + * @param errorMessage the detailed error message. */ public DocumentFailedToDeleteException(String errorMessage) { super(DemographicErrorCodes.PRG_PAM_DOC_015.toString(), errorMessage); } /** - * @param errorCode pass the error code - * @param errorMessage pass the error message + * Constructs a new {@code DocumentFailedToDeleteException} with the specified + * error code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. */ public DocumentFailedToDeleteException(String errorCode, String errorMessage) { super(errorCode, errorMessage, null); } + /** - * @param errorCode pass the error code - * @param errorMessage pass the error message + * Constructs a new {@code DocumentFailedToDeleteException} with the specified + * error code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public DocumentFailedToDeleteException(String errorCode, String errorMessage,MainResponseDTO response) { + public DocumentFailedToDeleteException(String errorCode, String errorMessage, MainResponseDTO response) { super(errorCode, errorMessage, null); - this.mainresponseDTO=response; + this.mainresponseDTO = response; } /** - * @param errorMessage pass the error message - * @param rootCause pass the cause + * Constructs a new {@code DocumentFailedToDeleteException} with the specified + * error message, and rootCause. + * + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ public DocumentFailedToDeleteException(String errorMessage, Throwable rootCause) { super(DemographicErrorCodes.PRG_PAM_DOC_015.toString(), errorMessage, rootCause); } /** - * @param errorCode pass the error code - * @param errorMessage pass the error message - * @param rootCause pass the cause + * Constructs a new {@code DocumentFailedToDeleteException} with the specified + * error code, error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ public DocumentFailedToDeleteException(String errorCode, String errorMessage, Throwable rootCause) { super(errorCode, errorMessage, rootCause); } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DocumentFailedToUploadException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DocumentFailedToUploadException.java index ff831ddc548..4431ed31f56 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DocumentFailedToUploadException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DocumentFailedToUploadException.java @@ -9,8 +9,10 @@ import lombok.Getter; /** - * This class defines the DocumentFailedToUploadException that occurs when - * document upload fails + * The DocumentFailedToUploadException class represents an exception that occurs + * document upload fails. This class extends {@link BaseUncheckedException} and + * includes various constructors for different use cases, as well as a + * {@link MainResponseDTO} object for additional error information. * * @author Kishan Rathore * @since 1.0.0 @@ -19,11 +21,12 @@ @Getter public class DocumentFailedToUploadException extends BaseUncheckedException { - /** The Constant serialVersionUID. */ - private static final long serialVersionUID = 7303748392658525834L; + private static final long serialVersionUID = 1L; + /** The main response DTO associated with the exception. */ private MainResponseDTO response; + /** * Default constructor */ @@ -32,39 +35,39 @@ public DocumentFailedToUploadException() { } /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param cause - * pass Error cause + * Constructs a new {@code DocumentFailedToUploadException} with the specified + * error code, error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ - public DocumentFailedToUploadException(String errorCode, String message, Throwable cause) { - super(errorCode, message, cause); + public DocumentFailedToUploadException(String errorCode, String errorMessage, Throwable rootCause) { + super(errorCode, errorMessage, rootCause); } /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message + * Constructs a new {@code DocumentFailedToUploadException} with the specified + * error code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. */ - public DocumentFailedToUploadException(String errorCode, String message) { - super(errorCode, message); + public DocumentFailedToUploadException(String errorCode, String errorMessage) { + super(errorCode, errorMessage); } - + /** + * Constructs a new {@code DocumentFailedToUploadException} with the specified + * error code, error errorMessage, and response. * - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param response - * pass response + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error errorMessage. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public DocumentFailedToUploadException(String errorCode, String message,MainResponseDTO response) { - super(errorCode, message); - this.response=response; + public DocumentFailedToUploadException(String errorCode, String errorMessage, MainResponseDTO response) { + super(errorCode, errorMessage); + this.response = response; } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DocumentNotFoundException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DocumentNotFoundException.java index 82c38519f61..6065a2f0385 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DocumentNotFoundException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DocumentNotFoundException.java @@ -9,8 +9,10 @@ import lombok.Getter; /** - * This class defines the DocumentNotFoundException that occurs when document is - * not found + * The DocumentNotFoundException class represents an exception that occurs when + * document is not found. This class extends {@link BaseUncheckedException} and + * includes various constructors for different use cases, as well as a + * {@link MainResponseDTO} object for additional error information. * * @author Kishan Rathore * @since 1.0.0 @@ -19,11 +21,12 @@ @Getter public class DocumentNotFoundException extends BaseUncheckedException { - /** The Constant serialVersionUID. */ - private static final long serialVersionUID = 7303748392658525834L; + private static final long serialVersionUID = 1L; + /** The main response DTO associated with the exception. */ private MainResponseDTO response; + /** * Default constructor */ @@ -32,39 +35,39 @@ public DocumentNotFoundException() { } /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param cause - * pass Error cause + * Constructs a new {@code DocumentNotFoundException} with the specified + * error code, error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ - public DocumentNotFoundException(String errorCode, String message, Throwable cause) { - super(errorCode, message, cause); + public DocumentNotFoundException(String errorCode, String errorMessage, Throwable rootCause) { + super(errorCode, errorMessage, rootCause); } /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message + * Constructs a new {@code DocumentNotFoundException} with the specified + * error code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. */ - public DocumentNotFoundException(String errorCode, String message) { - super(errorCode, message); + public DocumentNotFoundException(String errorCode, String errorMessage) { + super(errorCode, errorMessage); } - + /** + * Constructs a new {@code DocumentNotFoundException} with the specified + * error code, error errorMessage, and response. * - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param response - * pass response + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error errorMessage. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public DocumentNotFoundException(String errorCode, String message,MainResponseDTO response) { - super(errorCode, message); - this.response=response; + public DocumentNotFoundException(String errorCode, String errorMessage, MainResponseDTO response) { + super(errorCode, errorMessage); + this.response = response; } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DocumentNotValidException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DocumentNotValidException.java index 6fe9307afe8..8cd8a66374a 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DocumentNotValidException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DocumentNotValidException.java @@ -9,8 +9,10 @@ import lombok.Getter; /** - * This class defines the DocumentNotValidException that occurs when document is - * invalid + * The DocumentNotValidException class represents an exception that occurs when + * document is invalid. This class extends {@link BaseUncheckedException} and + * includes various constructors for different use cases, as well as a + * {@link MainResponseDTO} object for additional error information. * * @author Kishan Rathore * @since 1.0.0 @@ -19,10 +21,10 @@ @Getter public class DocumentNotValidException extends BaseUncheckedException { - /** The Constant serialVersionUID. */ - private static final long serialVersionUID = 5252109871704396987L; - + private static final long serialVersionUID = 1L; + + /** The main response DTO associated with the exception. */ private MainResponseDTO response; /** @@ -34,39 +36,39 @@ public DocumentNotValidException() { } /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param cause - * pass Error cause + * Constructs a new {@code DocumentNotValidException} with the specified error + * code, error errorMessage, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error errorMessage. + * @param rootCause the cause of the error. */ - public DocumentNotValidException(String errorCode, String message, Throwable cause) { - super(errorCode, message, cause); + public DocumentNotValidException(String errorCode, String errorMessage, Throwable cause) { + super(errorCode, errorMessage, cause); } /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message + * Constructs a new {@code DocumentNotValidException} with the specified error + * code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. */ - public DocumentNotValidException(String errorCode, String message) { - super(errorCode, message); + public DocumentNotValidException(String errorCode, String errorMessage) { + super(errorCode, errorMessage); } - + /** + * Constructs a new {@code DocumentNotValidException} with the specified error + * code, error message, and response. * - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param response - * pass response + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public DocumentNotValidException(String errorCode, String message,MainResponseDTO response) { - super(errorCode, message); - this.response=response; + public DocumentNotValidException(String errorCode, String errorMessage, MainResponseDTO response) { + super(errorCode, errorMessage); + this.response = response; } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DocumentSizeExceedException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DocumentSizeExceedException.java index 5b83f103646..ea8b689e177 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DocumentSizeExceedException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DocumentSizeExceedException.java @@ -9,8 +9,11 @@ import lombok.Getter; /** - * This class defines the DocumentSizeExceedException that occurs when the - * document size exceeds the limit + * The DocumentSizeExceedException class represents an exception that occurs + * when the document size exceeds the limit. This class extends + * {@link BaseUncheckedException} and includes various constructors for + * different use cases, as well as a {@link MainResponseDTO} object for + * additional error information. * * @author Kishan Rathore * @since 1.0.0 @@ -19,10 +22,10 @@ @Getter public class DocumentSizeExceedException extends BaseUncheckedException { - /** The Constant serialVersionUID. */ - private static final long serialVersionUID = 4879473387592007255L; - + private static final long serialVersionUID = 1L; + + /** The main response DTO associated with the exception. */ private MainResponseDTO response; /** @@ -30,45 +33,42 @@ public class DocumentSizeExceedException extends BaseUncheckedException { */ public DocumentSizeExceedException() { super(); - } - - /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param cause - * pass Error cause + * Constructs a new {@code DocumentSizeExceedException} with the specified error + * code, error errorMessage, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error errorMessage. + * @param rootCause the cause of the error. */ - public DocumentSizeExceedException(String errorCode, String message, Throwable cause) { - super(errorCode, message, cause); + public DocumentSizeExceedException(String errorCode, String errorMessage, Throwable rootCause) { + super(errorCode, errorMessage, rootCause); } /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message + * Constructs a new {@code DocumentSizeExceedException} with the specified error + * message, and rootCause. + * + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ - public DocumentSizeExceedException(String errorCode, String message) { - super(errorCode, message); + public DocumentSizeExceedException(String errorCode, String errorMessage) { + super(errorCode, errorMessage); } - + /** + * Constructs a new {@code DocumentSizeExceedException} with the specified error + * code, error message, and response. * - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param response - * pass response + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public DocumentSizeExceedException(String errorCode, String message,MainResponseDTO response) { - super(errorCode, message); - this.response=response; + public DocumentSizeExceedException(String errorCode, String errorMessage, MainResponseDTO response) { + super(errorCode, errorMessage); + this.response = response; } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DocumentVirusScanException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DocumentVirusScanException.java index a6a09bf0b9b..b5b99cd5a24 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DocumentVirusScanException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DocumentVirusScanException.java @@ -9,8 +9,11 @@ import lombok.Getter; /** - * This class defines the DocumentVirusScanException that occurs when the virus - * scan for a document fails + * The DocumentVirusScanException class represents an exception that occurs when + * the virus scan for a document fails. This class extends + * {@link BaseUncheckedException} and includes various constructors for + * different use cases, as well as a {@link MainResponseDTO} object for + * additional error information. * * @author Kishan Rathore * @since 1.0.0 @@ -19,10 +22,10 @@ @Getter public class DocumentVirusScanException extends BaseUncheckedException { - /** The Constant serialVersionUID. */ - private static final long serialVersionUID = -8143377803310016937L; - + private static final long serialVersionUID = 1L; + + /** The main response DTO associated with the exception. */ private MainResponseDTO response; /** @@ -32,42 +35,40 @@ public DocumentVirusScanException() { super(); } - - /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param cause - * pass Error cause + * Constructs a new {@code DocumentVirusScanException} with the specified + * error code, error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ - public DocumentVirusScanException(String errorCode, String message, Throwable cause) { - super(errorCode, message, cause); + public DocumentVirusScanException(String errorCode, String errorMessage, Throwable rootCause) { + super(errorCode, errorMessage, rootCause); } /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message + * Constructs a new {@code DocumentVirusScanException} with the specified error + * code and error errorMessage. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error errorMessage. */ - public DocumentVirusScanException(String errorCode, String message) { - super(errorCode, message); + public DocumentVirusScanException(String errorCode, String errorMessage) { + super(errorCode, errorMessage); } - - + /** + * Constructs a new {@code DocumentVirusScanException} with the specified error + * code, error message, and response. * - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param response - * pass response + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public DocumentVirusScanException(String errorCode, String message,MainResponseDTO response) { - super(errorCode, message); - this.response=response; + public DocumentVirusScanException(String errorCode, String errorMessage, MainResponseDTO response) { + super(errorCode, errorMessage); + this.response = response; } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DuplicatePridKeyException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DuplicatePridKeyException.java index b58bd58ab35..19c57e3f37e 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DuplicatePridKeyException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/DuplicatePridKeyException.java @@ -4,44 +4,70 @@ import io.mosip.preregistration.core.common.dto.MainResponseDTO; import lombok.Getter; +/** + * The DuplicatePridKeyException class represents an exception indicating + * duplicate primary key errors. This class extends + * {@link BaseUncheckedException} and includes various constructors for + * different use cases, as well as a {@link MainResponseDTO} object for + * additional error information. + * + * @author Rajath KR + * @since 1.0.0 + * + */ + @Getter public class DuplicatePridKeyException extends BaseUncheckedException { - /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; - private MainResponseDTO mainresponseDTO; + /** The main response DTO associated with the exception. */ + private MainResponseDTO mainresponseDTO; /** - * @param msg pass the error message + * Constructs a new {@code DuplicatePridKeyException} with the specified + * error message + * + * @param errorMessage the detailed error message. */ - public DuplicatePridKeyException(String msg) { - super("", msg); + public DuplicatePridKeyException(String errorMessage) { + super("", errorMessage); } /** - * @param errCode pass the error code - * @param msg pass the error message + * Constructs a new {@code DuplicatePridKeyException} with the specified + * error code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. */ - public DuplicatePridKeyException(String errCode, String msg) { - super(errCode, msg); + public DuplicatePridKeyException(String errorCode, String errorMessage) { + super(errorCode, errorMessage); } + /** - * @param errCode pass the error code - * @param msg pass the error message + * Constructs a new {@code DuplicatePridKeyException} with the specified + * error code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public DuplicatePridKeyException(String errCode, String msg,MainResponseDTO response) { - super(errCode, msg); - this.mainresponseDTO=response; + public DuplicatePridKeyException(String errorCode, String errorMessage, MainResponseDTO response) { + super(errorCode, errorMessage); + this.mainresponseDTO = response; } /** - * @param errCode pass the error code - * @param msg pass the error message - * @param cause pass the cause + * Constructs a new {@code DuplicatePridKeyException} with the specified + * error code, error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ - public DuplicatePridKeyException(String errCode, String msg, Throwable cause) { - super(errCode, msg, cause); + public DuplicatePridKeyException(String errorCode, String errorMessage, Throwable rootCause) { + super(errorCode, errorMessage, rootCause); } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/FSServerException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/FSServerException.java index 9800fd72da4..cc8aa48b495 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/FSServerException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/FSServerException.java @@ -4,62 +4,64 @@ import io.mosip.preregistration.core.common.dto.MainResponseDTO; import lombok.Getter; - /** + * The FSServerException class represents an exception indicating errors related to the file server. This class extends + * {@link BaseUncheckedException} and includes various constructors for + * different use cases, as well as a {@link MainResponseDTO} object for + * additional error information. + * * @author M1046129 - * + * @since 1.0.0 + * */ @Getter public class FSServerException extends BaseUncheckedException { - /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; - - private MainResponseDTO response; + /** The main response DTO associated with the exception. */ + private MainResponseDTO response; /** * Default constructor */ public FSServerException() { super(); } - - /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param cause - * pass Error cause + * Constructs a new {@code OperationNotAllowedException} with the specified + * error code, error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ - public FSServerException(String errorCode, String message, Throwable cause) { - super(errorCode, message, cause); + public FSServerException(String errorCode, String errorMessage, Throwable rootCause) { + super(errorCode, errorMessage, rootCause); } /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message + * Constructs a new {@code FSServerException} with the specified + * error code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. */ public FSServerException(String errorCode, String message) { super(errorCode, message); } - + /** + * Constructs a new {@code FSServerException} with the specified + * error code, error message, and response. * - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param response - * pass response + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public FSServerException(String errorCode, String message,MainResponseDTO response) { - super(errorCode, message); - this.response=response; + public FSServerException(String errorCode, String errorMessage, MainResponseDTO response) { + super(errorCode, errorMessage); + this.response = response; } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/FileNotFoundException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/FileNotFoundException.java index 1d9852a21fc..9736d256a80 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/FileNotFoundException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/FileNotFoundException.java @@ -9,8 +9,11 @@ import lombok.Getter; /** - * This class defines the FileNotFoundException that occurs when requested - * packet is not present in DFS + * The FileNotFoundException class represents an exception that occurs + * when requested packet is not present in DFS. This class extends + * {@link BaseUncheckedException} and includes various constructors for + * different use cases, as well as a {@link MainResponseDTO} object for + * additional error information. * * @author Kishan Rathore * @since 1.0.0 @@ -19,10 +22,10 @@ @Getter public class FileNotFoundException extends BaseUncheckedException { - /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; - + + /** The main response DTO associated with the exception. */ private MainResponseDTO response; /** @@ -32,41 +35,40 @@ public FileNotFoundException() { super(); } - /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param cause - * pass Error cause + * Constructs a new {@code FileNotFoundException} with the specified + * error code, error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ - public FileNotFoundException(String errorCode, String message, Throwable cause) { - super(errorCode, message, cause); + public FileNotFoundException(String errorCode, String errorMessage, Throwable cause) { + super(errorCode, errorMessage, cause); } /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message + * Constructs a new {@code FileNotFoundException} with the specified + * error code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. */ public FileNotFoundException(String errorCode, String message) { super(errorCode, message); } - + /** + * Constructs a new {@code OperationNotAllowedException} with the specified + * error code, error message, and response. * - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param response - * pass response + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public FileNotFoundException(String errorCode, String message,MainResponseDTO response) { - super(errorCode, message); - this.response=response; + public FileNotFoundException(String errorCode, String errorMessage, MainResponseDTO response) { + super(errorCode, errorMessage); + this.response = response; } - } \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/IOException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/IOException.java index 0be5b5745e8..96f00ff2a22 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/IOException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/IOException.java @@ -4,30 +4,64 @@ import io.mosip.preregistration.core.common.dto.MainResponseDTO; import lombok.Getter; +/** + * The IOException class represents an exception indicating an error related to + * input or output operations. This class extends {@link BaseUncheckedException} + * and includes various constructors for different use cases, as well as a + * {@link MainResponseDTO} object for additional error information. + * + * @author Rajath KR + * @since 1.0.0 + * + */ + @Getter -public class IOException extends BaseUncheckedException{ +public class IOException extends BaseUncheckedException { + /** The Constant serialVersionUID. */ + private static final long serialVersionUID = 1L; + + /** The main response DTO associated with the exception. */ + private MainResponseDTO mainResponseDTO; /** + * Constructs a new {@code IOException} with the specified error code, error + * message, rootCause, and response. * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - private static final long serialVersionUID = -6723728155340185347L; - private final MainResponseDTO mainResponseDTO; - - - - public IOException(String arg0, String arg1, Throwable arg2,MainResponseDTO response) { - super(arg0, arg1, arg2); - this.mainResponseDTO=response; + public IOException(String errorCode, String errorMessage, Throwable rootCause, MainResponseDTO response) { + super(errorCode, errorMessage, rootCause); + this.mainResponseDTO = response; } - public IOException(String errorCode, String errorMessage,MainResponseDTO response) { + /** + * Constructs a new {@code IOException} with the specified error code, error + * message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public IOException(String errorCode, String errorMessage, MainResponseDTO response) { super(errorCode, errorMessage); - this.mainResponseDTO=response; + this.mainResponseDTO = response; } - public IOException(String errorMessage,MainResponseDTO response) { + /** + * Constructs a new {@code IOException} with the specified error message, and + * response. + * + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public IOException(String errorMessage, MainResponseDTO response) { super(errorMessage); - this.mainResponseDTO=response; + this.mainResponseDTO = response; } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/IdValidationException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/IdValidationException.java index ccef9250958..1d4d0865296 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/IdValidationException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/IdValidationException.java @@ -3,34 +3,41 @@ import java.util.List; import io.mosip.kernel.core.exception.BaseUncheckedException; -import io.mosip.kernel.core.exception.ServiceError; import io.mosip.preregistration.core.common.dto.MainResponseDTO; - +import lombok.Getter; + +/** + * The IdValidationException class represents an exception indicating validation + * errors related to IDs. This class extends {@link BaseUncheckedException} and + * includes various constructors for different use cases, as well as a + * {@link MainResponseDTO} object for additional error information. + * + * @author Rajath KR + * @since 1.0.0 + * + */ +@Getter public class IdValidationException extends BaseUncheckedException { + /** The Constant serialVersionUID. */ + private static final long serialVersionUID = 1L; + + /** errorList the list of error messages. */ + private List errorMessageList; + + /** The main response DTO associated with the exception. */ + private MainResponseDTO mainResposneDTO; /** + * Constructs a new {@code IdValidationException} with the specified error code, + * errrorList and response. * + * @param errrorList errorList the list of error messages. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - private static final long serialVersionUID = 1L; - - private List errorMessagesList; - - - private MainResponseDTO mainResposneDTO; - - public List getErrorMessageList() { - return errorMessagesList; - } - - public IdValidationException(String errorCode,List errrorList,MainResponseDTO response) { + public IdValidationException(String errorCode, List errrorList, MainResponseDTO response) { super(errorCode, null); - this.errorMessagesList = errrorList; - this.mainResposneDTO=response; + this.errorMessageList = errrorList; + this.mainResposneDTO = response; } - - public MainResponseDTO getMainResposneDTO() { - return mainResposneDTO; - } - - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/IllegalParamException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/IllegalParamException.java index 6a303485928..1c503bc2249 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/IllegalParamException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/IllegalParamException.java @@ -9,53 +9,70 @@ import lombok.Getter; /** - * This class defines the IllegalParamException + * The IllegalParamException class represents an exception indicating illegal + * parameters. This class extends {@link BaseUncheckedException} and includes + * various constructors for different use cases, as well as a + * {@link MainResponseDTO} object for additional error information. * * @author Sanober Noor * @since 1.0.0 * */ @Getter -public class IllegalParamException extends BaseUncheckedException{ - +public class IllegalParamException extends BaseUncheckedException { /** The Constant serialVersionUID. */ - private static final long serialVersionUID = 6810058264320216283L; - + private static final long serialVersionUID = 1L; + + /** The main response DTO associated with the exception. */ private MainResponseDTO mainResponseDTO; - + /** - * @param msg + * Constructs a new {@code IllegalParamException} with the specified + * error message + * + * @param errorMessage the detailed error message. */ - public IllegalParamException(String msg) { - super("", msg); + public IllegalParamException(String errorMessage) { + super("", errorMessage); } /** - * @param errCode - * @param msg + * Constructs a new {@code IllegalParamException} with the specified + * error code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. */ - public IllegalParamException(String errCode, String msg) { - super(errCode, msg); + public IllegalParamException(String errorCode, String errorMessage) { + super(errorCode, errorMessage); } /** - * @param errCode - * @param msg + * Constructs a new {@code IllegalParamException} with the specified + * error code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public IllegalParamException(String errCode, String msg,MainResponseDTO response) { - super(errCode, msg); - this.mainResponseDTO=response; + public IllegalParamException(String errorCode, String errorMessage, MainResponseDTO response) { + super(errorCode, errorMessage); + this.mainResponseDTO = response; } /** - * @param errCode - * @param msg - * @param cause + * Constructs a new {@code IllegalParamException} with the specified + * error code, error message, rootCause, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public IllegalParamException(String errCode, String msg, Throwable cause,MainResponseDTO response) { - super(errCode, msg, cause); - this.mainResponseDTO=response; + public IllegalParamException(String errorCode, String errorMessage, Throwable rootCause, MainResponseDTO response) { + super(errorCode, errorMessage, rootCause); + this.mainResponseDTO = response; } - -} - +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/InvalidConnectionParameters.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/InvalidConnectionParameters.java index 9b5edd65b78..da7cb655d5f 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/InvalidConnectionParameters.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/InvalidConnectionParameters.java @@ -9,8 +9,11 @@ import lombok.Getter; /** - * This class defines the InvalidConnectionParameter Exception that occurs when - * connection is attempted with wrong credentials + * The InvalidConnectionParameters class represents an exception that occurs + * when connection is attempted with wrong credentials. This class extends + * {@link BaseUncheckedException} and includes various constructors for + * different use cases, as well as a {@link MainResponseDTO} object for + * additional error information. * * @author Rajath KR * @since 1.0.0 @@ -19,10 +22,10 @@ @Getter public class InvalidConnectionParameters extends BaseUncheckedException { - /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; - + + /** The main response DTO associated with the exception. */ private MainResponseDTO response; /** @@ -32,41 +35,40 @@ public InvalidConnectionParameters() { super(); } - /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param cause - * pass Error cause + * Constructs a new {@code InvalidConnectionParameters} with the specified error + * code, error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ - public InvalidConnectionParameters(String errorCode, String message, Throwable cause) { - super(errorCode, message, cause); + public InvalidConnectionParameters(String errorCode, String errorMessage, Throwable rootCause) { + super(errorCode, errorMessage, rootCause); } /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message + * Constructs a new {@code InvalidConnectionParameters} with the specified error + * code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. */ - public InvalidConnectionParameters(String errorCode, String message) { - super(errorCode, message); + public InvalidConnectionParameters(String errorCode, String errorMessage) { + super(errorCode, errorMessage); } - + /** + * Constructs a new {@code InvalidConnectionParameters} with the specified error + * code, error message, and response. * - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param response - * pass response + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public InvalidConnectionParameters(String errorCode, String message,MainResponseDTO response) { - super(errorCode, message); - this.response=response; + public InvalidConnectionParameters(String errorCode, String errorMessage, MainResponseDTO response) { + super(errorCode, errorMessage); + this.response = response; } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/InvalidDateFormatException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/InvalidDateFormatException.java index addadd852e6..aaf59a22851 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/InvalidDateFormatException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/InvalidDateFormatException.java @@ -3,35 +3,77 @@ import io.mosip.kernel.core.exception.BaseUncheckedException; import io.mosip.preregistration.core.common.dto.MainResponseDTO; import lombok.Getter; + +/** + * The InvalidDateFormatException class represents an exception indicating an + * invalid date format. This class extends {@link BaseUncheckedException} and + * includes various constructors for different use cases, as well as a + * {@link MainResponseDTO} object for additional error information. + * + * @author Rajath KR + * @since 1.0.0 + * + */ + @Getter -public class InvalidDateFormatException extends BaseUncheckedException{ +public class InvalidDateFormatException extends BaseUncheckedException { + /** The Constant serialVersionUID. */ + private static final long serialVersionUID = 1L; - /** - * - */ - private static final long serialVersionUID = -7333914604834231072L; + /** The main response DTO associated with the exception. */ private MainResponseDTO mainResponseDTO; - + + /** + * Default constructor. + */ public InvalidDateFormatException() { super(); } - public InvalidDateFormatException(String arg0, String arg1, Throwable arg2) { - super(arg0, arg1, arg2); + /** + * Constructs a new {@code InvalidDateFormatException} with the specified + * error code, error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. + */ + public InvalidDateFormatException(String errorCode, String errorMessage, Throwable rootCause) { + super(errorCode, errorMessage, rootCause); } + /** + * Constructs a new {@code InvalidDateFormatException} with the specified + * error code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + */ public InvalidDateFormatException(String errorCode, String errorMessage) { super(errorCode, errorMessage); } - public InvalidDateFormatException(String errorCode, String errorMessage,MainResponseDTO response) { + /** + * Constructs a new {@code InvalidDateFormatException} with the specified + * error code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public InvalidDateFormatException(String errorCode, String errorMessage, MainResponseDTO response) { super(errorCode, errorMessage); - this.mainResponseDTO=response; + this.mainResponseDTO = response; } + /** + * Constructs a new {@code InvalidDateFormatException} with the specified + * error message + * + * @param errorMessage the detailed error message. + */ public InvalidDateFormatException(String errorMessage) { super(errorMessage); } - - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/InvalidDocumentIdExcepion.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/InvalidDocumentIdExcepion.java index 43083a4d42c..1f3660ae807 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/InvalidDocumentIdExcepion.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/InvalidDocumentIdExcepion.java @@ -9,8 +9,10 @@ import lombok.Getter; /** - * This class defines the DocumentFailedToUploadException that occurs when - * document upload fails + * The InvalidDocumentIdExcepion class that occurs when document upload + * fails. This class extends {@link BaseUncheckedException} and includes various + * constructors for different use cases, as well as a {@link MainResponseDTO} + * object for additional error information. * * @author Kishan Rathore * @since 1.0.0 @@ -19,10 +21,10 @@ @Getter public class InvalidDocumentIdExcepion extends BaseUncheckedException { - /** The Constant serialVersionUID. */ private static final long serialVersionUID = 7303748392658525834L; - + + /** The main response DTO associated with the exception. */ private MainResponseDTO response; /** @@ -32,41 +34,40 @@ public InvalidDocumentIdExcepion() { super(); } - /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param cause - * pass Error cause + * Constructs a new {@code InvalidDocumentIdExcepion} with the specified + * error code, error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ - public InvalidDocumentIdExcepion(String errorCode, String message, Throwable cause) { - super(errorCode, message, cause); + public InvalidDocumentIdExcepion(String errorCode, String errorMessage, Throwable rootCause) { + super(errorCode, errorMessage, rootCause); } /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message + * Constructs a new {@code InvalidDocumentIdExcepion} with the specified + * error code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. */ - public InvalidDocumentIdExcepion(String errorCode, String message) { - super(errorCode, message); + public InvalidDocumentIdExcepion(String errorCode, String errorMessage) { + super(errorCode, errorMessage); } - + /** + * Constructs a new {@code InvalidDocumentIdExcepion} with the specified + * error code, error message, and response. * - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param response - * pass response + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public InvalidDocumentIdExcepion(String errorCode, String message,MainResponseDTO response) { - super(errorCode, message); - this.response=response; + public InvalidDocumentIdExcepion(String errorCode, String errorMessage, MainResponseDTO response) { + super(errorCode, errorMessage); + this.response = response; } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/InvalidDocumnetIdExcepion.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/InvalidDocumnetIdExcepion.java index b8bacfa55fe..6f360ffa9c6 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/InvalidDocumnetIdExcepion.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/InvalidDocumnetIdExcepion.java @@ -6,17 +6,19 @@ import io.mosip.kernel.core.exception.BaseUncheckedException; import io.mosip.preregistration.application.errorcodes.DocumentErrorCodes; +import io.mosip.preregistration.core.common.dto.MainResponseDTO; /** - * This class defines the DocumentFailedToUploadException that occurs when - * document upload fails + * The InvalidDocumnetIdExcepion class represents an exception indicating an + * invalid document ID. This class extends {@link BaseUncheckedException} and + * includes various constructors for different use cases, as well as a + * {@link MainResponseDTO} object for additional error information. * * @author Kishan Rathore * @since 1.0.0 * */ public class InvalidDocumnetIdExcepion extends BaseUncheckedException { - /** The Constant serialVersionUID. */ private static final long serialVersionUID = 7303748392658525834L; @@ -28,43 +30,43 @@ public InvalidDocumnetIdExcepion() { } /** - * @param message - * pass Error Message + * Constructs a new {@code InvalidDocumnetIdExcepion} with the specified error + * message + * + * @param errorMessage the detailed error message. */ - public InvalidDocumnetIdExcepion(String message) { - super(DocumentErrorCodes.PRG_PAM_DOC_009.toString(), message); + public InvalidDocumnetIdExcepion(String errorMessage) { + super(DocumentErrorCodes.PRG_PAM_DOC_009.toString(), errorMessage); } /** - * @param message - * pass Error Message - * @param cause - * pass Error cause + * Constructs a new {@code InvalidDocumnetIdExcepion} with the specified error + * message, and rootCause. + * + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ - public InvalidDocumnetIdExcepion(String message, Throwable cause) { - super(DocumentErrorCodes.PRG_PAM_DOC_009.toString(), message, cause); + public InvalidDocumnetIdExcepion(String errorMessage, Throwable rootCause) { + super(DocumentErrorCodes.PRG_PAM_DOC_009.toString(), errorMessage, rootCause); } /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param cause - * pass Error cause + * Constructs a new {@code InvalidDocumnetIdExcepion} with the specified error + * code, error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ - public InvalidDocumnetIdExcepion(String errorCode, String message, Throwable cause) { - super(errorCode, message, cause); + public InvalidDocumnetIdExcepion(String errorCode, String message, Throwable rootCause) { + super(errorCode, message, rootCause); } /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message + * @param errorCode pass Error code + * @param message pass Error Message */ public InvalidDocumnetIdExcepion(String errorCode, String message) { super(errorCode, message); } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/InvalidOtpOrUseridException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/InvalidOtpOrUseridException.java index 75a87afbffa..5be7c13aad2 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/InvalidOtpOrUseridException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/InvalidOtpOrUseridException.java @@ -2,43 +2,74 @@ import io.mosip.kernel.core.exception.BaseUncheckedException; import io.mosip.preregistration.core.common.dto.MainResponseDTO; -import lombok.Getter; -import lombok.Setter; +import lombok.Data; -@Getter -@Setter -public class InvalidOtpOrUseridException extends BaseUncheckedException { +/** + * The InvalidOtpOrUseridException class represents an exception indicating an + * invalid OTP or User ID. This class extends {@link BaseUncheckedException} and + * includes various constructors for different use cases, as well as a + * {@link MainResponseDTO} object for additional error information. + * + * @author Rajath KR + * @since 1.0.0 + * + */ - /** - * - */ +@Data +public class InvalidOtpOrUseridException extends BaseUncheckedException { + /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; - + + /** The main response DTO associated with the exception. */ private MainResponseDTO mainResponseDto; + /** + * Default constructor + */ public InvalidOtpOrUseridException() { super(); - } - public InvalidOtpOrUseridException(String errorCode, String errorMessage, Throwable rootCause,MainResponseDTO response) { + /** + * Constructs a new {@code InvalidOtpOrUseridException} with the specified error + * code, error message, rootCause, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public InvalidOtpOrUseridException(String errorCode, String errorMessage, Throwable rootCause, + MainResponseDTO response) { super(errorCode, errorMessage, rootCause); - this.mainResponseDto=response; - + this.mainResponseDto = response; } - public InvalidOtpOrUseridException(String errorCode, String errorMessage,MainResponseDTO response) { + /** + * Constructs a new {@code InvalidOtpOrUseridException} with the specified error + * code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public InvalidOtpOrUseridException(String errorCode, String errorMessage, MainResponseDTO response) { super(errorCode, errorMessage); - this.mainResponseDto=response; - + this.mainResponseDto = response; } - public InvalidOtpOrUseridException(String errorMessage,MainResponseDTO response) { + /** + * Constructs a new {@code InvalidOtpOrUseridException} with the specified error + * message, and response. + * + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public InvalidOtpOrUseridException(String errorMessage, MainResponseDTO response) { super(errorMessage); - this.mainResponseDto=response; - + this.mainResponseDto = response; } - - -} - +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/InvalidateTokenException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/InvalidateTokenException.java index 2b6eb7a238c..d70bc525fad 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/InvalidateTokenException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/InvalidateTokenException.java @@ -6,7 +6,11 @@ import lombok.Setter; /** - * This class provides custom Exception for invalidate token failed scenario + * The InvalidateTokenException class represents an exception that occurs when + * invalidate token failed scenario. This class extends + * {@link BaseUncheckedException} and includes various constructors for + * different use cases, as well as a {@link MainResponseDTO} object for + * additional error information. * * @author Akshay Jain * @since 1.0.0 @@ -16,13 +20,23 @@ @Getter @Setter public class InvalidateTokenException extends BaseUncheckedException { - + /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; - + + /** The main response DTO associated with the exception. */ private MainResponseDTO mainResponseDto; - - public InvalidateTokenException(String errorCode, String errorMessage,MainResponseDTO response) { - super(errorCode,errorMessage); - this.mainResponseDto=response; + + /** + * Constructs a new {@code OperationNotAllowedException} with the specified + * error code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public InvalidateTokenException(String errorCode, String errorMessage, MainResponseDTO response) { + super(errorCode, errorMessage); + this.mainResponseDto = response; } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/JsonParseException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/JsonParseException.java index 4228b774c5c..14be6f5c4a6 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/JsonParseException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/JsonParseException.java @@ -9,44 +9,62 @@ import lombok.Getter; /** - * This class defines the JsonParseException + * The JsonParseException class represents an exception indicating an error + * related to JSON parsing. This class extends {@link BaseUncheckedException} + * and includes various constructors for different use cases, as well as a + * {@link MainResponseDTO} object for additional error information. * - * @author Sanober Noor + * @author Sanober Noor * @since 1.0.0 * */ @Getter public class JsonParseException extends BaseUncheckedException { - /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; + + /** The main response DTO associated with the exception. */ private final MainResponseDTO mainResponseDTO; /** - * @param msg + * Constructs a new {@code JsonParseException} with the specified error message, + * and response. + * + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public JsonParseException(String msg,MainResponseDTO response) { - super("", msg); - this.mainResponseDTO=response; + public JsonParseException(String errorMessage, MainResponseDTO response) { + super("", errorMessage); + this.mainResponseDTO = response; } /** - * @param errCode - * @param msg + * Constructs a new {@code JsonParseException} with the specified error code, + * error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public JsonParseException(String errCode, String msg,MainResponseDTO response) { - super(errCode, msg); - this.mainResponseDTO=response; + public JsonParseException(String errorCode, String errorMessage, MainResponseDTO response) { + super(errorCode, errorMessage); + this.mainResponseDTO = response; } /** - * @param errCode - * @param msg - * @param cause + * Constructs a new {@code JsonParseException} with the specified error code, + * error message, rootCause, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public JsonParseException(String errCode, String msg, Throwable cause,MainResponseDTO response) { - super(errCode, msg, cause); - this.mainResponseDTO=response; + public JsonParseException(String errorCode, String errorMessage, Throwable rootCause, MainResponseDTO response) { + super(errorCode, errorMessage, rootCause); + this.mainResponseDTO = response; } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/JsonValidationException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/JsonValidationException.java index c4cb145ad47..2bfc2d513f5 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/JsonValidationException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/JsonValidationException.java @@ -6,9 +6,12 @@ import lombok.Getter; /** - * This class defines the JsonValidationException + * The JsonValidationException class represents an exception indicating an error + * related to JSON validation. This class extends {@link BaseUncheckedException} + * and includes various constructors for different use cases, as well as a + * {@link MainResponseDTO} object for additional error information. * - * @author Sanober Noor + * @author Sanober Noor * @since 1.0.0 * */ @@ -19,30 +22,45 @@ public class JsonValidationException extends BaseUncheckedException { private final MainResponseDTO mainResponseDTO; /** - * @param msg + * Constructs a new {@code JsonValidationException} with the specified error + * message, and response. + * + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public JsonValidationException(String msg,MainResponseDTO response) { - super("", msg); - this.mainResponseDTO=response; + public JsonValidationException(String errorMessage, MainResponseDTO response) { + super("", errorMessage); + this.mainResponseDTO = response; } /** - * @param errCode - * @param msg + * Constructs a new {@code JsonValidationException} with the specified error + * code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public JsonValidationException(String errCode, String msg,MainResponseDTO response) { - super(errCode, msg); - this.mainResponseDTO=response; + public JsonValidationException(String errorCode, String errorMessage, MainResponseDTO response) { + super(errorCode, errorMessage); + this.mainResponseDTO = response; } /** - * @param errCode - * @param msg - * @param cause + * Constructs a new {@code JsonValidationException} with the specified + * error code, error message, rootCause, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public JsonValidationException(String errCode, String msg, Throwable cause,MainResponseDTO response) { - super(errCode, msg, cause); - this.mainResponseDTO=response; + public JsonValidationException(String errorCode, String errorMessage, Throwable rootCause, + MainResponseDTO response) { + super(errorCode, errorMessage, rootCause); + this.mainResponseDTO = response; } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/LanguagePropertiesException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/LanguagePropertiesException.java index df3c2f9aaeb..0a514719b6c 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/LanguagePropertiesException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/LanguagePropertiesException.java @@ -1,21 +1,46 @@ package io.mosip.preregistration.application.exception; import io.mosip.kernel.core.exception.BaseUncheckedException; +import io.mosip.preregistration.core.common.dto.MainResponseDTO; import lombok.Getter; +/** + * The LanguagePropertiesException class represents an exception indicating an + * error related to language properties. This class extends + * {@link BaseUncheckedException} and includes various constructors for + * different use cases, as well as a {@link MainResponseDTO} object for + * additional error information. + * + * @author Rajath KR + * @since 1.0.0 + * + */ + @Getter public class LanguagePropertiesException extends BaseUncheckedException { + /** The Constant serialVersionUID. */ + private static final long serialVersionUID = 1L; /** - * + * The error code associated with the audit failure. */ - private static final long serialVersionUID = 1L; - private String errorMessage; - private String errorCode; + private final String errorCode; + /** + * A descriptive message explaining the reason for the audit failure. + */ + private final String errorMessage; + + /** + * Constructs a new {@code LanguagePropertiesException} with the specified error + * code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + */ public LanguagePropertiesException(String errorCode, String errorMessage) { + super(); this.errorCode = errorCode; this.errorMessage = errorMessage; } -} - +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/LoginServiceException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/LoginServiceException.java index 1e78de823dc..3600226c869 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/LoginServiceException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/LoginServiceException.java @@ -6,29 +6,53 @@ import io.mosip.kernel.core.exception.ServiceError; import io.mosip.preregistration.core.common.dto.MainResponseDTO; - +/** + * The LoginServiceException class represents an exception indicating a login + * service error. This class extends {@link BaseUncheckedException} and includes + * various constructors for different use cases, as well as a + * {@link MainResponseDTO} object for additional error information. + * + * @author Rajath KR + * @since 1.0.0 + * + */ public class LoginServiceException extends BaseUncheckedException { - - /** - * - */ + /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; - + + /** The validation error list. */ private List validationErrorList; - + + /** The main response DTO associated with the exception. */ private MainResponseDTO mainResposneDTO; + /** + * Gets the validation error list. + * + * @return the validation error list + */ public List getValidationErrorList() { return validationErrorList; } - public LoginServiceException(List validationErrorList,MainResponseDTO response) { + /** + * Constructs a new {@code LoginServiceException} with the specified validation error list, and response. + * + * @param validationErrorList the validation error list. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public LoginServiceException(List validationErrorList, MainResponseDTO response) { this.validationErrorList = validationErrorList; - this.mainResposneDTO=response; + this.mainResposneDTO = response; } + /** + * Gets the main response DTO. + * + * @return the main response DTO + */ public MainResponseDTO getMainResposneDTO() { return mainResposneDTO; - } - -} + } +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/MandatoryFieldException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/MandatoryFieldException.java index 4c1f07474dc..25b292bd970 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/MandatoryFieldException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/MandatoryFieldException.java @@ -5,38 +5,76 @@ import lombok.Getter; /** + * The MandatoryFieldException class represents an exception indicating a + * mandatory field error. This class extends {@link BaseUncheckedException} and + * includes various constructors for different use cases, as well as a + * {@link MainResponseDTO} object for additional error information. + * * @author Sanober Noor - *@since 1.0.0 + * @since 1.0.0 */ @Getter -public class MandatoryFieldException extends BaseUncheckedException{ +public class MandatoryFieldException extends BaseUncheckedException { + /** The Constant serialVersionUID. */ + private static final long serialVersionUID = 1298682891599963309L; + /** The main response DTO associated with the exception. */ + private final MainResponseDTO mainResponseDTO; /** + * Constructs a new {@code MandatoryFieldException} with the specified error + * message, and response. * + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - private static final long serialVersionUID = 1298682891599963309L; - private final MainResponseDTO mainResponseDTO; - - public MandatoryFieldException(String msg,MainResponseDTO response) { - super("", msg); - this.mainResponseDTO=response; + public MandatoryFieldException(String errorMessage, MainResponseDTO response) { + super("", errorMessage); + this.mainResponseDTO = response; } - public MandatoryFieldException(String msg, Throwable cause,MainResponseDTO response) { - super("", msg, cause); - this.mainResponseDTO=response; + /** + * Constructs a new {@code MandatoryFieldException} with the specified error + * message, rootCause, and response. + * + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public MandatoryFieldException(String errorMessage, Throwable rootCause, MainResponseDTO response) { + super("", errorMessage, rootCause); + this.mainResponseDTO = response; } - public MandatoryFieldException(String errorCode, String errorMessage,MainResponseDTO response) { + /** + * Constructs a new {@code MandatoryFieldException} with the specified error + * code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public MandatoryFieldException(String errorCode, String errorMessage, MainResponseDTO response) { super(errorCode, errorMessage, null); - this.mainResponseDTO=response; + this.mainResponseDTO = response; } - public MandatoryFieldException(String errorCode, String errorMessage, Throwable rootCause,MainResponseDTO response) { + /** + * Constructs a new {@code MandatoryFieldException} with the specified error + * code, error message, rootCause, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public MandatoryFieldException(String errorCode, String errorMessage, Throwable rootCause, + MainResponseDTO response) { super(errorCode, errorMessage, rootCause); - this.mainResponseDTO=response; + this.mainResponseDTO = response; } - - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/MandatoryFieldNotFoundException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/MandatoryFieldNotFoundException.java index eb470735f69..655f8b42f1d 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/MandatoryFieldNotFoundException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/MandatoryFieldNotFoundException.java @@ -9,8 +9,11 @@ import lombok.Getter; /** - * This class defines the MandatoryFieldNotFound Exception that occurs when data - * not pass to mandatory fields + * The MandatoryFieldNotFoundException class represents an exception indicating + * that a mandatory field is not found. This class extends + * {@link BaseUncheckedException} and includes various constructors for + * different use cases, as well as a {@link MainResponseDTO} object for + * additional error information. * * @author Rajath KR * @since 1.0.0 @@ -19,10 +22,10 @@ @Getter public class MandatoryFieldNotFoundException extends BaseUncheckedException { - /** The Constant serialVersionUID. */ private static final long serialVersionUID = -8143377803310016937L; - + + /** The main response DTO associated with the exception. */ private MainResponseDTO response; /** @@ -33,40 +36,39 @@ public MandatoryFieldNotFoundException() { } /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param cause - * pass Error cause + * Constructs a new {@code MandatoryFieldNotFoundException} with the specified + * error code, error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ - public MandatoryFieldNotFoundException(String errorCode, String message, Throwable cause) { - super(errorCode, message, cause); + public MandatoryFieldNotFoundException(String errorCode, String errorMessage, Throwable rootCause) { + super(errorCode, errorMessage, rootCause); } /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message + * Constructs a new {@code MandatoryFieldNotFoundException} with the specified + * error code, and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. */ - public MandatoryFieldNotFoundException(String errorCode, String message) { - super(errorCode, message); + public MandatoryFieldNotFoundException(String errorCode, String errorMessage) { + super(errorCode, errorMessage); } - + /** + * Constructs a new {@code MandatoryFieldNotFoundException} with the specified + * error code, error message, and response. * - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param response - * pass response + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public MandatoryFieldNotFoundException(String errorCode, String message,MainResponseDTO response) { + public MandatoryFieldNotFoundException(String errorCode, String message, MainResponseDTO response) { super(errorCode, message); - this.response=response; + this.response = response; } - - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/MandatoryFieldRequiredException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/MandatoryFieldRequiredException.java index 93ace89c8a2..31bd76bf885 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/MandatoryFieldRequiredException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/MandatoryFieldRequiredException.java @@ -9,7 +9,11 @@ import lombok.Getter; /** - * This class defines the MandatoryFieldRequiredException + * The MandatoryFieldRequiredException class represents an exception indicating + * that a mandatory field is required. This class extends + * {@link BaseUncheckedException} and includes various constructors for + * different use cases, as well as a {@link MainResponseDTO} object for + * additional error information. * * @author Kishan Rathore * @since 1.0.0 @@ -18,34 +22,71 @@ @Getter public class MandatoryFieldRequiredException extends BaseUncheckedException { - /** The Constant serialVersionUID. */ private static final long serialVersionUID = -620822827826136129L; - + + /** The main response DTO associated with the exception. */ private MainResponseDTO mainResponseDTO; - public MandatoryFieldRequiredException(String msg,MainResponseDTO response) { - super("", msg); - this.mainResponseDTO=response; + /** + * Constructs a new MandatoryFieldRequiredException. + */ + public MandatoryFieldRequiredException() { + super(); } - public MandatoryFieldRequiredException(String msg, Throwable cause,MainResponseDTO response) { - super("", msg, cause); - this.mainResponseDTO=response; + /** + * Constructs a new {@code MandatoryFieldRequiredException} with the specified + * error message, and response. + * + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public MandatoryFieldRequiredException(String errorMessage, MainResponseDTO response) { + super("", errorMessage); + this.mainResponseDTO = response; } - public MandatoryFieldRequiredException(String errorCode, String errorMessage,MainResponseDTO response) { - super(errorCode, errorMessage, null); - this.mainResponseDTO=response; + /** + * Constructs a new {@code MandatoryFieldRequiredException} with the specified + * error message, rootCause, and response. + * + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public MandatoryFieldRequiredException(String errorMessage, Throwable rootCause, MainResponseDTO response) { + super("", errorMessage, rootCause); + this.mainResponseDTO = response; } - public MandatoryFieldRequiredException(String errorCode, String errorMessage, Throwable rootCause,MainResponseDTO response) { - super(errorCode, errorMessage, rootCause); - this.mainResponseDTO=response; + /** + * Constructs a new {@code MandatoryFieldRequiredException} with the specified + * error code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public MandatoryFieldRequiredException(String errorCode, String errorMessage, MainResponseDTO response) { + super(errorCode, errorMessage, null); + this.mainResponseDTO = response; } - public MandatoryFieldRequiredException() { - super(); + /** + * Constructs a new {@code MandatoryFieldRequiredException} with the specified + * error code, error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. + */ + public MandatoryFieldRequiredException(String errorCode, String errorMessage, Throwable rootCause, + MainResponseDTO response) { + super(errorCode, errorMessage, rootCause); + this.mainResponseDTO = response; } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/MasterDataException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/MasterDataException.java index 08d0296a702..7c0b523ec76 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/MasterDataException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/MasterDataException.java @@ -1,23 +1,29 @@ package io.mosip.preregistration.application.exception; import io.mosip.kernel.core.exception.BaseUncheckedException; +import io.mosip.preregistration.core.common.dto.MainResponseDTO; import lombok.AllArgsConstructor; -import lombok.Getter; +import lombok.Data; import lombok.NoArgsConstructor; -import lombok.Setter; -@Setter +/** + * The MasterDataException class represents an exception related to master data + * operations. This class extends {@link BaseUncheckedException} and includes + * various constructors for different use cases, as well as a + * {@link MainResponseDTO} object for additional error information. + * + * @author Rajath KR + * @since 1.0.0 + * + */ + +@Data @NoArgsConstructor -@Getter @AllArgsConstructor public class MasterDataException extends BaseUncheckedException { - - /** - * - */ + /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; private String errorCode; - private String errorMessage;; - -} + private String errorMessage; +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/MissingRequestParameterException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/MissingRequestParameterException.java index f174c025991..ee9bf422c34 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/MissingRequestParameterException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/MissingRequestParameterException.java @@ -9,7 +9,11 @@ import lombok.Getter; /** - * This class defines the MissingRequestParameterException + * The MissingRequestParameterException class represents an exception that + * occurs when a required request parameter is missing. This class extends + * {@link BaseUncheckedException} and includes various constructors for + * different use cases, as well as a {@link MainResponseDTO} object for + * additional error information. * * @author Ravi C Balaji * @since 1.0.0 @@ -19,38 +23,54 @@ public class MissingRequestParameterException extends BaseUncheckedException { /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; - private MainResponseDTO mainresponseDTO; + /** The main response DTO associated with the exception. */ + private MainResponseDTO mainresponseDTO; /** - * @param msg pass the error message + * Constructs a new {@code MissingRequestParameterException} with the specified + * error message + * + * @param errorMessage the detailed error message. */ - public MissingRequestParameterException(String msg) { - super("", msg); + public MissingRequestParameterException(String errorMessage) { + super("", errorMessage); } /** - * @param errCode pass the error code - * @param msg pass the error message + * Constructs a new {@code MissingRequestParameterException} with the specified + * error code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. */ - public MissingRequestParameterException(String errCode, String msg) { - super(errCode, msg); + public MissingRequestParameterException(String errorCode, String errorMessage) { + super(errorCode, errorMessage); } + /** - * @param errCode pass the error code - * @param msg pass the error message + * Constructs a new {@code MissingRequestParameterException} with the specified + * error code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public MissingRequestParameterException(String errCode, String msg,MainResponseDTO response) { - super(errCode, msg); - this.mainresponseDTO=response; + public MissingRequestParameterException(String errorCode, String errorMessage, MainResponseDTO response) { + super(errorCode, errorMessage); + this.mainresponseDTO = response; } /** - * @param errCode pass the error code - * @param msg pass the error message - * @param cause pass the error cause + * Constructs a new {@code MissingRequestParameterException} with the specified + * error code, error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ - public MissingRequestParameterException(String errCode, String msg, Throwable cause) { - super(errCode, msg, cause); + public MissingRequestParameterException(String errorCode, String errorMessage, Throwable rootCause) { + super(errorCode, errorMessage, rootCause); } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/NoAuthTokenException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/NoAuthTokenException.java index a0b8f9c6f22..d48d73ad4ea 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/NoAuthTokenException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/NoAuthTokenException.java @@ -4,15 +4,36 @@ import io.mosip.preregistration.core.common.dto.MainResponseDTO; import lombok.Getter; +/** + * The NoAuthTokenException class represents an exception that occurs when no + * authentication token is provided. This class extends + * {@link BaseUncheckedException} and includes various constructors for + * different use cases, as well as a {@link MainResponseDTO} object for + * additional error information. + * + * @author Rajath KR + * @since 1.0.0 + * + */ @Getter -public class NoAuthTokenException extends BaseUncheckedException{ +public class NoAuthTokenException extends BaseUncheckedException { + /** The Constant serialVersionUID. */ + private static final long serialVersionUID = 1L; -private static final long serialVersionUID = 1L; - + /** The main response DTO associated with the exception. */ private MainResponseDTO mainResponseDto; - - public NoAuthTokenException(String errorCode, String errorMessage,MainResponseDTO response) { - super(errorCode,errorMessage); - this.mainResponseDto=response; + + /** + * Constructs a new {@code NoAuthTokenException} with the specified + * error code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public NoAuthTokenException(String errorCode, String errorMessage, MainResponseDTO response) { + super(errorCode, errorMessage); + this.mainResponseDto = response; } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/NotificationSeriveException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/NotificationSeriveException.java index d628b1e493b..0f4e4d0c0bb 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/NotificationSeriveException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/NotificationSeriveException.java @@ -7,47 +7,104 @@ import io.mosip.preregistration.core.common.dto.MainResponseDTO; import lombok.Getter; +/** + * The NotificationSeriveException class represents an exception that occurs in + * the notification service. This class extends {@link BaseUncheckedException} + * and includes various constructors for different use cases, as well as a + * {@link MainResponseDTO} object for additional error information. + * + * @author Rajath KR + * @since 1.0.0 + * + */ + @Getter public class NotificationSeriveException extends BaseUncheckedException { - - /** - * - */ + /** The Constant serialVersionUID. */ private static final long serialVersionUID = 8039562312343751179L; + /** The validation error list. */ private List validationErrorList; + /** The main response DTO associated with the exception. */ private MainResponseDTO mainResponseDTO; + /** + * Gets the validation error list. + * + * @return the validation error list + */ public List getValidationErrorList() { return validationErrorList; } - public NotificationSeriveException(List validationErrorList, MainResponseDTO response) { - this.validationErrorList = validationErrorList; - this.mainResponseDTO = response; - } - + /** + * Gets the main response DTO. + * + * @return the main response DTO + */ public MainResponseDTO getMainResposneDTO() { return mainResponseDTO; } + /** + * Default constructor. + */ public NotificationSeriveException() { super(); } - public NotificationSeriveException(String arg0, String arg1, Throwable arg2, MainResponseDTO response) { - super(arg0, arg1, arg2); + /** + * Constructs a new {@code NotificationSeriveException} with the specified + * error code, error message, rootCause, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public NotificationSeriveException(String errorCode, String errorMessage, Throwable rootCause, MainResponseDTO response) { + super(errorCode, errorMessage, rootCause); this.mainResponseDTO = response; } + /** + * Constructs a new {@code NotificationSeriveException} with the specified + * error code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ public NotificationSeriveException(String errorCode, String errorMessage, MainResponseDTO response) { super(errorCode, errorMessage); this.mainResponseDTO = response; } + /** + * Constructs a new {@code NotificationSeriveException} with the specified + * error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ public NotificationSeriveException(String errorMessage, MainResponseDTO response) { super(errorMessage); this.mainResponseDTO = response; } -} + /** + * Constructs a new {@code NotificationSeriveException} with the specified + * validationErrorList, and response. + * + * @param validationErrorList the validation error list + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public NotificationSeriveException(List validationErrorList, MainResponseDTO response) { + this.validationErrorList = validationErrorList; + this.mainResponseDTO = response; + } +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/OperationNotAllowedException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/OperationNotAllowedException.java index 9940d31d983..3fc48995d22 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/OperationNotAllowedException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/OperationNotAllowedException.java @@ -9,7 +9,11 @@ import lombok.Getter; /** - * This class defines the OperationNotAllowedException + * The OperationNotAllowedException class represents an exception that occurs + * when an operation is not allowed. This class extends + * {@link BaseUncheckedException} and includes various constructors for + * different use cases, as well as a {@link MainResponseDTO} object for + * additional error information. * * @author Rajath KR * @since 1.0.0 @@ -19,45 +23,65 @@ public class OperationNotAllowedException extends BaseUncheckedException { /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; - private MainResponseDTO mainresponseDTO; + + /** The main response DTO associated with the exception. */ + private MainResponseDTO mainresponseDTO; /** - * @param errorMessage pass the error message + * Constructs a new {@code OperationNotAllowedException} with the specified + * error message + * + * @param errorMessage the detailed error message. */ public OperationNotAllowedException(String errorMessage) { super("", errorMessage); } /** - * @param errorCode pass the error code - * @param errorMessage pass the error message + * Constructs a new {@code OperationNotAllowedException} with the specified + * error code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. */ public OperationNotAllowedException(String errorCode, String errorMessage) { super(errorCode, errorMessage, null); } + /** - * @param errorCode pass the error code - * @param errorMessage pass the error message + * Constructs a new {@code OperationNotAllowedException} with the specified + * error code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public OperationNotAllowedException(String errorCode, String errorMessage,MainResponseDTO response) { + public OperationNotAllowedException(String errorCode, String errorMessage, MainResponseDTO response) { super(errorCode, errorMessage, null); - this.mainresponseDTO=response; + this.mainresponseDTO = response; } /** - * @param errorMessage pass the error message - * @param rootCause pass the cause + * Constructs a new {@code OperationNotAllowedException} with the specified + * error message, and rootCause. + * + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ public OperationNotAllowedException(String errorMessage, Throwable rootCause) { super("", errorMessage, rootCause); } /** - * @param errorCode pass the error code - * @param errorMessage pass the error message - * @param rootCause pass the cause + * Constructs a new {@code OperationNotAllowedException} with the specified + * error code, error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ public OperationNotAllowedException(String errorCode, String errorMessage, Throwable rootCause) { super(errorCode, errorMessage, rootCause); } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/ParsingException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/ParsingException.java index 60adce44637..248c238bd9f 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/ParsingException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/ParsingException.java @@ -9,7 +9,10 @@ import lombok.Getter; /** - * This class defines the ParsingException that occurs when the parsing fails + * The ParsingException class represents an exception that occurs during + * parsing. This class extends {@link BaseUncheckedException} and includes + * various constructors for different use cases, as well as a + * {@link MainResponseDTO} object for additional error information. * * @author Jagadishwari S * @since 1.0.0 @@ -18,11 +21,12 @@ @Getter public class ParsingException extends BaseUncheckedException { - /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; + /** The main response DTO associated with the exception. */ private MainResponseDTO response; + /** * Default constructor */ @@ -30,40 +34,40 @@ public ParsingException() { super(); } - /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param cause - * pass Error cause + * Constructs a new {@code ParsingException} with the specified error code, + * error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ - public ParsingException(String errorCode, String message, Throwable cause) { - super(errorCode, message, cause); + public ParsingException(String errorCode, String message, Throwable rootCause) { + super(errorCode, message, rootCause); } /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message + * Constructs a new {@code ParsingException} with the specified error code and + * error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. */ public ParsingException(String errorCode, String message) { super(errorCode, message); } /** + * Constructs a new {@code ParsingException} with the specified error code, + * error message, and response. * - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param response - * pass response + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public ParsingException(String errorCode, String message,MainResponseDTO response) { - super(errorCode, message); - this.response=response; + public ParsingException(String errorCode, String errorMessage, MainResponseDTO response) { + super(errorCode, errorMessage); + this.response = response; } } diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/PreRegLoginException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/PreRegLoginException.java index e197cd5b7f5..69ab4fd28a6 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/PreRegLoginException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/PreRegLoginException.java @@ -1,20 +1,38 @@ package io.mosip.preregistration.application.exception; import io.mosip.kernel.core.exception.BaseUncheckedException; +import io.mosip.preregistration.core.common.dto.MainResponseDTO; -public class PreRegLoginException extends BaseUncheckedException { +/** + * The PreRegLoginException class represents an exception that occurs during + * pre-registration login. This class extends {@link BaseUncheckedException} and + * includes various constructors for different use cases, as well as a + * {@link MainResponseDTO} object for additional error information. + * + * @author Rajath KR + * @since 1.0.0 + * + */ - - /** - * - */ +public class PreRegLoginException extends BaseUncheckedException { + /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; + /** + * Default constructor. + */ public PreRegLoginException() { super(); } - + + /** + * Constructs a new {@code PreRegLoginException} with the specified + * error code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + */ public PreRegLoginException(String errorCode, String errorMessage) { super(errorCode, errorMessage); } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/PrimaryKeyValidationException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/PrimaryKeyValidationException.java index 52b8673a17c..553cdff5be5 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/PrimaryKeyValidationException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/PrimaryKeyValidationException.java @@ -4,12 +4,24 @@ import io.mosip.preregistration.core.common.dto.MainResponseDTO; import lombok.Getter; +/** + * The PrimaryKeyValidationException class represents an exception that occurs + * when a primary key validation fails. This class extends + * {@link BaseUncheckedException} and includes various constructors for + * different use cases, as well as a {@link MainResponseDTO} object for + * additional error information. + * + * @author Rajath KR + * @since 1.0.0 + * + */ + @Getter public class PrimaryKeyValidationException extends BaseUncheckedException { - /** The Constant serialVersionUID. */ private static final long serialVersionUID = 7303748392658525834L; - + + /** The main response DTO associated with the exception. */ private MainResponseDTO response; /** @@ -19,41 +31,50 @@ public PrimaryKeyValidationException() { super(); } + /** + * Constructs a new {@code PrimaryKeyValidationException} with the specified + * error message. + * + * @param errorMessage the detailed error message. + */ + public PrimaryKeyValidationException(String errorMessage) { + super(errorMessage); + } /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param cause - * pass Error cause + * Constructs a new {@code PrimaryKeyValidationException} with the specified + * error code, error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ - public PrimaryKeyValidationException(String errorCode, String message, Throwable cause) { - super(errorCode, message, cause); + public PrimaryKeyValidationException(String errorCode, String errorMessage, Throwable rootCause) { + super(errorCode, errorMessage, rootCause); } /** - * @param errorCode - * pass Error code - * @param message - * pass Error Message + * Constructs a new {@code PrimaryKeyValidationException} with the specified + * error code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. */ - public PrimaryKeyValidationException(String errorCode, String message) { - super(errorCode, message); + public PrimaryKeyValidationException(String errorCode, String errorMessage) { + super(errorCode, errorMessage); } - + /** + * Constructs a new {@code PrimaryKeyValidationException} with the specified + * error code, error message, and response. * - * @param errorCode - * pass Error code - * @param message - * pass Error Message - * @param response - * pass response + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public PrimaryKeyValidationException(String errorCode, String message,MainResponseDTO response) { + public PrimaryKeyValidationException(String errorCode, String message, MainResponseDTO response) { super(errorCode, message); - this.response=response; + this.response = response; } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/QrCodeIOException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/QrCodeIOException.java index d420de0002b..21849d15222 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/QrCodeIOException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/QrCodeIOException.java @@ -4,33 +4,68 @@ import io.mosip.preregistration.core.common.dto.MainResponseDTO; import lombok.Getter; -@Getter -public class QrCodeIOException extends BaseUncheckedException{ +/** + * The QrCodeIOException class represents an exception that occurs when an I/O + * error is encountered while working with QR codes. This class extends + * {@link BaseUncheckedException} and includes various constructors for + * different use cases, as well as a {@link MainResponseDTO} object for + * additional error information. + * + * @author Rajath KR + * @since 1.0.0 + * + */ - /** - * - */ +@Getter +public class QrCodeIOException extends BaseUncheckedException { + /** The Constant serialVersionUID. */ private static final long serialVersionUID = -6723728155340185347L; - + + /** The main response DTO associated with the exception. */ private MainResponseDTO mainResponseDTO; + /** + * Default constructor. + */ public QrCodeIOException() { super(); } - public QrCodeIOException(String arg0, String arg1, Throwable arg2,MainResponseDTO response) { - super(arg0, arg1, arg2); - this.mainResponseDTO=response; + /** + * Constructs a new {@code QrCodeIOException} with the specified error message. + * + * @param errorMessage the detailed error message. + */ + public QrCodeIOException(String errorMessage) { + super(errorMessage); } - public QrCodeIOException(String errorCode, String errorMessage,MainResponseDTO response) { + /** + * Constructs a new {@code QrCodeIOException} with the specified + * error code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public QrCodeIOException(String errorCode, String errorMessage, MainResponseDTO response) { super(errorCode, errorMessage); - this.mainResponseDTO=response; + this.mainResponseDTO = response; } - public QrCodeIOException(String errorMessage) { - super(errorMessage); + /** + * Constructs a new {@code QrCodeIOException} with the specified + * error message and root cause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public QrCodeIOException(String errorCode, String errorMessage, Throwable rootCause, MainResponseDTO response) { + super(errorCode, errorMessage, rootCause); + this.mainResponseDTO = response; } - -} - +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/RecordFailedToUpdateException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/RecordFailedToUpdateException.java index 74687d64ae0..9fe035fb7dd 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/RecordFailedToUpdateException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/RecordFailedToUpdateException.java @@ -9,7 +9,11 @@ import lombok.Getter; /** - * This class defines the RecordFailedToDeleteException + * The RecordFailedToUpdateException class represents an exception that occurs + * when a record fails to update.. This class extends + * {@link BaseUncheckedException} and includes various constructors for + * different use cases, as well as a {@link MainResponseDTO} object for + * additional error information. * * @author Rajath KR * @since 1.0.0 @@ -19,6 +23,7 @@ public class RecordFailedToUpdateException extends BaseUncheckedException { /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; + /** The main response DTO associated with the exception. */ private MainResponseDTO mainResponseDTO; /** @@ -29,42 +34,60 @@ public RecordFailedToUpdateException() { } /** - * @param errorMessage pass the error message + * Constructs a new {@code RecordFailedToUpdateException} with the specified + * error message. + * + * @param errorMessage the detailed error message. */ public RecordFailedToUpdateException(String errorMessage) { super("", errorMessage); } /** - * @param errorCode pass the error code - * @param errorMessage pass the error message + * Constructs a new {@code RecordFailedToUpdateException} with the specified + * error code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. */ public RecordFailedToUpdateException(String errorCode, String errorMessage) { super(errorCode, errorMessage, null); } /** - * @param errorCode pass the error code - * @param errorMessage pass the error message + * Constructs a new {@code RecordFailedToUpdateException} with the specified + * error code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public RecordFailedToUpdateException(String errorCode, String errorMessage,MainResponseDTO response) { + public RecordFailedToUpdateException(String errorCode, String errorMessage, MainResponseDTO response) { super(errorCode, errorMessage, null); - this.mainResponseDTO=response; + this.mainResponseDTO = response; } + /** - * @param errorMessage pass the error message - * @param rootCause pass the cause + * Constructs a new {@code RecordFailedToUpdateException} with the specified + * error message and root cause. + * + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ public RecordFailedToUpdateException(String errorMessage, Throwable rootCause) { super("", errorMessage, rootCause); } /** - * @param errorCode pass the error code - * @param errorMessage pass the error message - * @param rootCause pass the cause + * Constructs a new {@code RecordFailedToUpdateException} with the specified + * error message and root cause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ public RecordFailedToUpdateException(String errorCode, String errorMessage, Throwable rootCause) { super(errorCode, errorMessage, rootCause); } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/RecordNotFoundException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/RecordNotFoundException.java index 4ebdb79764a..7c098b578d8 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/RecordNotFoundException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/RecordNotFoundException.java @@ -9,7 +9,10 @@ import lombok.Getter; /** - * This class defines the RecordNotFoundException + * The RecordNotFoundException class represents an exception that occurs when a + * record is not found. This class extends {@link BaseUncheckedException} and + * includes various constructors for different use cases, as well as a + * {@link MainResponseDTO} object for additional error information. * * @author Tapaswini Behera * @since 1.0.0 @@ -19,38 +22,53 @@ public class RecordNotFoundException extends BaseUncheckedException { /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; + /** The main response DTO containing additional error information. */ private MainResponseDTO mainresponseDTO; - /** - * @param msg pass the error message + * Constructs a new {@code RecordNotFoundException} with the specified error + * message. + * + * @param errorMessage the detailed error message. */ - public RecordNotFoundException(String msg) { - super("", msg); + public RecordNotFoundException(String errorMessage) { + super("", errorMessage); } /** - * @param errCode pass the error code - * @param msg pass the error message + * Constructs a new {@code RecordNotFoundException} with the specified error + * code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. */ - public RecordNotFoundException(String errCode, String msg) { - super(errCode, msg); + public RecordNotFoundException(String errorCode, String errorMessage) { + super(errorCode, errorMessage); } + /** - * @param errCode pass the error code - * @param msg pass the error message + * Constructs a new {@code RecordNotFoundException} with the specified error + * code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public RecordNotFoundException(String errCode, String msg,MainResponseDTO response) { - super(errCode, msg); - this.mainresponseDTO=response; + public RecordNotFoundException(String errorCode, String errorMessage, MainResponseDTO response) { + super(errorCode, errorMessage); + this.mainresponseDTO = response; } /** - * @param errCode pass the error code - * @param msg pass the error message - * @param cause pass the cause + * Constructs a new {@code RecordNotFoundException} with the specified error + * message and root cause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ - public RecordNotFoundException(String errCode, String msg, Throwable cause) { - super(errCode, msg, cause); + public RecordNotFoundException(String errorCode, String errorMessage, Throwable rootCause) { + super(errorCode, errorMessage, rootCause); } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/RecordNotFoundForPreIdsException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/RecordNotFoundForPreIdsException.java index 8a83f251d87..dfc5f92a8cd 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/RecordNotFoundForPreIdsException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/RecordNotFoundForPreIdsException.java @@ -9,7 +9,11 @@ import lombok.Getter; /** - * This class defines the RecordNotFoundForPreIdsException + * The RecordNotFoundForPreIdsException class represents an exception that + * occurs when records are not found for the given pre-registration IDs. This + * class extends {@link BaseUncheckedException} and includes various + * constructors for different use cases, as well as a {@link MainResponseDTO} + * object for additional error information. * * @author Jagadishwari S * @since 1.0.0 @@ -19,46 +23,53 @@ public class RecordNotFoundForPreIdsException extends BaseUncheckedException { /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; + /** The main response DTO containing additional error information. */ private MainResponseDTO mainResponseDTO; /** - * @param msg - * pass the error message + * Constructs a new {@code RecordNotFoundForPreIdsException} with the specified + * error message. + * + * @param errorMessage the detailed error message. */ - public RecordNotFoundForPreIdsException(String msg) { - super("", msg); + public RecordNotFoundForPreIdsException(String errorMessage) { + super("", errorMessage); } /** - * @param errCode - * pass the error code - * @param msg - * pass the error message + * Constructs a new {@code RecordNotFoundForPreIdsException} with the specified + * error code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. */ - public RecordNotFoundForPreIdsException(String errCode, String msg) { - super(errCode, msg); + public RecordNotFoundForPreIdsException(String errorCode, String errorMessage) { + super(errorCode, errorMessage); } - + /** - * @param errCode - * pass the error code - * @param msg - * pass the error message + * Constructs a new {@code RecordNotFoundForPreIdsException} with the specified + * error code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public RecordNotFoundForPreIdsException(String errCode, String msg,MainResponseDTO response) { - super(errCode, msg); - this.mainResponseDTO=response; + public RecordNotFoundForPreIdsException(String errorCode, String errorMessage, MainResponseDTO response) { + super(errorCode, errorMessage); + this.mainResponseDTO = response; } /** - * @param errCode - * pass the error code - * @param msg - * pass the error message - * @param cause - * pass the cause + * Constructs a new {@code RecordNotFoundForPreIdsException} with the specified + * error message and root cause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ - public RecordNotFoundForPreIdsException(String errCode, String msg, Throwable cause) { - super(errCode, msg, cause); + public RecordNotFoundForPreIdsException(String errorCode, String errorMessage, Throwable rootCause) { + super(errorCode, errorMessage, rootCause); } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/RestCallException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/RestCallException.java index 8bcb3b1f374..ea57fe1895a 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/RestCallException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/RestCallException.java @@ -4,11 +4,23 @@ import io.mosip.preregistration.core.common.dto.MainResponseDTO; import lombok.Getter; -@Getter -public class RestCallException extends BaseUncheckedException{ +/** + * The RestCallException class represents an exception that occurs during a REST + * API call. This class extends {@link BaseUncheckedException} and includes + * various constructors for different use cases, as well as a + * {@link MainResponseDTO} object for additional error information. + * + * @author Kishan Rathore + * @since 1.0.0 + * + */ +@Getter +public class RestCallException extends BaseUncheckedException { + /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; - private MainResponseDTO mainresponseDTO; + /** The main response DTO containing additional error information. */ + private MainResponseDTO mainresponseDTO; /** * Default constructor @@ -18,44 +30,59 @@ public RestCallException() { } /** - * @param errorMessage pass the error message + * Constructs a new {@code RestCallException} with the specified error message. + * + * @param errorMessage the detailed error message. */ public RestCallException(String errorMessage) { super("", errorMessage); } /** - * @param errorCode pass the error code - * @param errorMessage pass the error message + * Constructs a new {@code RestCallException} with the specified error code and + * error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. */ public RestCallException(String errorCode, String errorMessage) { super(errorCode, errorMessage, null); } - + /** - * @param errorCode pass the error code - * @param errorMessage pass the error message + * Constructs a new {@code RestCallException} with the specified error code, + * error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public RestCallException(String errorCode, String errorMessage,MainResponseDTO response) { + public RestCallException(String errorCode, String errorMessage, MainResponseDTO response) { super(errorCode, errorMessage, null); - this.mainresponseDTO=response; + this.mainresponseDTO = response; } /** - * @param errorMessage pass the error message - * @param rootCause pass the cause + * Constructs a new {@code RestCallException} with the specified error message + * and root cause. + * + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ public RestCallException(String errorMessage, Throwable rootCause) { super("", errorMessage, rootCause); } - /** - * @param errorCode pass the error code - * @param errorMessage pass the error message - * @param rootCause pass the cause + * Constructs a new {@code RestCallException} with the specified error code, + * error message, and root cause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ public RestCallException(String errorCode, String errorMessage, Throwable rootCause) { super(errorCode, errorMessage, rootCause); } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/SchemaValidationException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/SchemaValidationException.java index 3094f0f7f87..c3e8f2ac58b 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/SchemaValidationException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/SchemaValidationException.java @@ -4,11 +4,24 @@ import io.mosip.preregistration.core.common.dto.MainResponseDTO; import lombok.Getter; +/** + * Exception class representing a schema validation failure. This class extends + * {@link BaseUncheckedException} and includes various constructors for + * different use cases, as well as a {@link MainResponseDTO} object for + * additional error information. + * + * @author Kishan Rathore + * @since 1.0.0 + * + */ + @Getter -public class SchemaValidationException extends BaseUncheckedException { +public class SchemaValidationException extends BaseUncheckedException { /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; - private MainResponseDTO mainresponseDTO; + + /** The main response DTO containing additional error information. */ + private MainResponseDTO mainresponseDTO; /** * Default constructor @@ -18,43 +31,60 @@ public SchemaValidationException() { } /** - * @param errorMessage pass the error message + * Constructs a new {@code SchemaValidationException} with the specified error + * message. + * + * @param errorMessage the detailed error message. */ public SchemaValidationException(String errorMessage) { super("", errorMessage); } /** - * @param errorCode pass the error code - * @param errorMessage pass the error message + * Constructs a new {@code SchemaValidationException} with the specified error + * code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. */ public SchemaValidationException(String errorCode, String errorMessage) { super(errorCode, errorMessage, null); } + /** - * @param errorCode pass the error code - * @param errorMessage pass the error message + * Constructs a new {@code SchemaValidationException} with the specified error + * code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public SchemaValidationException(String errorCode, String errorMessage,MainResponseDTO response) { + public SchemaValidationException(String errorCode, String errorMessage, MainResponseDTO response) { super(errorCode, errorMessage, null); - this.mainresponseDTO=response; + this.mainresponseDTO = response; } /** - * @param errorMessage pass the error message - * @param rootCause pass the cause + * Constructs a new {@code SchemaValidationException} with the specified error + * message and root cause. + * + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ public SchemaValidationException(String errorMessage, Throwable rootCause) { super("", errorMessage, rootCause); } /** - * @param errorCode pass the error code - * @param errorMessage pass the error message - * @param rootCause pass the cause + * Constructs a new {@code SchemaValidationException} with the specified error + * code, error message, and root cause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ public SchemaValidationException(String errorCode, String errorMessage, Throwable rootCause) { super(errorCode, errorMessage, rootCause); } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/SendOtpFailedException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/SendOtpFailedException.java index a17403dea47..d49c7de8bc0 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/SendOtpFailedException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/SendOtpFailedException.java @@ -6,7 +6,9 @@ import lombok.Setter; /** - * This class provides custom Exception for send otp failed scenario + * Exception class representing a failure in sending OTP (One-Time Password). + * This class extends {@link BaseUncheckedException} and includes an error code, + * error message, and a {@link MainResponseDTO} object. * * @author Akshay Jain * @since 1.0.0 @@ -16,14 +18,23 @@ @Getter @Setter public class SendOtpFailedException extends BaseUncheckedException { - + /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; - + + /** The main response DTO. */ private MainResponseDTO mainResposneDto; - - public SendOtpFailedException(String errorCode, String errorMessage,MainResponseDTO response) { - super(errorCode,errorMessage); - this.mainResposneDto=response; + + /** + * Constructs a new {@code SendOtpFailedException} with the specified error + * code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public SendOtpFailedException(String errorCode, String errorMessage, MainResponseDTO response) { + super(errorCode, errorMessage); + this.mainResposneDto = response; } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/UISpecException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/UISpecException.java index ecb9d41075c..16e3459cbc3 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/UISpecException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/UISpecException.java @@ -4,16 +4,27 @@ import lombok.Getter; import lombok.Setter; +/** + * Exception class representing a specific UI specification error. This class + * extends {@link BaseUncheckedException} and includes error code and message. + * + * @version 1.0.0 + */ + @Getter @Setter public class UISpecException extends BaseUncheckedException { + /** The Constant serialVersionUID. */ + private static final long serialVersionUID = 1L; /** + * Constructs a new {@code UISpecException} with the specified error code and + * message. * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. */ - private static final long serialVersionUID = 1L; - public UISpecException(String errorCode, String errorMessage) { super(errorCode, errorMessage); } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/UnSupportedLanguageException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/UnSupportedLanguageException.java index 1c5e2e8d48d..1895cd50aad 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/UnSupportedLanguageException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/UnSupportedLanguageException.java @@ -9,7 +9,9 @@ import lombok.Getter; /** - * This class defines the UnSupportedLanguageException + * Exception class representing a failure when an unsupported language is + * encountered. This class extends {@link BaseUncheckedException} and includes a + * response DTO. * * @author Kishan Rathore * @since 1.0.0 @@ -20,33 +22,48 @@ public class UnSupportedLanguageException extends BaseUncheckedException { /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; - + + /** + * The main response DTO associated with this exception. + */ private MainResponseDTO mainResponseDTO; /** - * @param msg + * Constructs a new {@code UnSupportedLanguageException} with the specified + * message and response. + * + * @param msg the detailed error message. + * @param response the main response DTO containing additional error details. */ - public UnSupportedLanguageException(String msg,MainResponseDTO response) { + public UnSupportedLanguageException(String msg, MainResponseDTO response) { super("", msg); - this.mainResponseDTO=response; + this.mainResponseDTO = response; } /** - * @param errCode - * @param msg + * Constructs a new {@code UnSupportedLanguageException} with the specified + * error code, message, and response. + * + * @param errCode the error code representing the specific error condition. + * @param msg the detailed error message. + * @param response the main response DTO containing additional error details. */ - public UnSupportedLanguageException(String errCode, String msg,MainResponseDTO response) { + public UnSupportedLanguageException(String errCode, String msg, MainResponseDTO response) { super(errCode, msg); - this.mainResponseDTO=response; + this.mainResponseDTO = response; } /** - * @param errCode - * @param msg - * @param cause + * Constructs a new {@code UnSupportedLanguageException} with the specified + * error code, message, cause, and response. + * + * @param errCode the error code representing the specific error condition. + * @param msg the detailed error message. + * @param cause the cause of the exception. + * @param response the main response DTO containing additional error details. */ - public UnSupportedLanguageException(String errCode, String msg, Throwable cause,MainResponseDTO response) { + public UnSupportedLanguageException(String errCode, String msg, Throwable cause, MainResponseDTO response) { super(errCode, msg, cause); - this.mainResponseDTO=response; + this.mainResponseDTO = response; } } diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/UserIdOtpFaliedException.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/UserIdOtpFaliedException.java index a1f4ade7ed4..44866641147 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/UserIdOtpFaliedException.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/UserIdOtpFaliedException.java @@ -6,8 +6,9 @@ import lombok.Setter; /** - * This class provides custom Exception for calidation fail scenario - * + * Exception class representing a failure when an OTP (One-Time Password) verification fails for a user ID. + * This class extends {@link BaseUncheckedException} and includes a response DTO. + * * @author Akshay Jain * @since 1.0.0 * @@ -16,14 +17,22 @@ @Getter @Setter public class UserIdOtpFaliedException extends BaseUncheckedException { - private static final long serialVersionUID = 1L; - + + /** + * The main response DTO associated with this exception. + */ private MainResponseDTO mainResponseDto; - - public UserIdOtpFaliedException(String errorCode,String errorMessage,MainResponseDTO response) { - super(errorCode,errorMessage); - this.mainResponseDto=response; - } -} + /** + * Constructs a new {@code UserIdOtpFaliedException} with the specified error code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the main response DTO containing additional error details. + */ + public UserIdOtpFaliedException(String errorCode, String errorMessage, MainResponseDTO response) { + super(errorCode, errorMessage); + this.mainResponseDto = response; + } +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/util/DemographicExceptionCatcher.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/util/DemographicExceptionCatcher.java index ca05fdfea51..8c7f4fef498 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/util/DemographicExceptionCatcher.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/util/DemographicExceptionCatcher.java @@ -67,140 +67,102 @@ */ public class DemographicExceptionCatcher { /** - * Method to handle the respective exceptions + * Handles exceptions and throws specific exceptions based on the type of the original exception. * - * @param ex - * pass the exception + * @param ex The original exception to handle. + * @param mainResponseDTO The main response DTO associated with the exception. */ public void handle(Exception ex, MainResponseDTO mainResponsedto) { - if (ex instanceof DataAccessLayerException) { - throw new TableNotAccessibleException(((DataAccessLayerException) ex).getErrorCode(), - ((DataAccessLayerException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof ParseException) { - throw new JsonParseException(((ParseException) ex).getErrorCode(), ((ParseException) ex).getErrorText(), - mainResponsedto); - } else if (ex instanceof RecordNotFoundException) { - throw new RecordNotFoundException(((RecordNotFoundException) ex).getErrorCode(), - ((RecordNotFoundException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof RecordNotFoundForPreIdsException) { - throw new RecordNotFoundForPreIdsException(((RecordNotFoundForPreIdsException) ex).getErrorCode(), - ((RecordNotFoundForPreIdsException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof InvalidRequestParameterException) { - throw new InvalidRequestParameterException(((InvalidRequestParameterException) ex).getErrorCode(), - ((InvalidRequestParameterException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof MissingRequestParameterException) { - throw new MissingRequestParameterException(((MissingRequestParameterException) ex).getErrorCode(), - ((MissingRequestParameterException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof DocumentFailedToDeleteException) { - throw new DocumentFailedToDeleteException(((DocumentFailedToDeleteException) ex).getErrorCode(), - ((DocumentFailedToDeleteException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof SystemIllegalArgumentException) { - throw new SystemIllegalArgumentException(((SystemIllegalArgumentException) ex).getErrorCode(), - ((SystemIllegalArgumentException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof SystemUnsupportedEncodingException) { - throw new SystemUnsupportedEncodingException(((SystemUnsupportedEncodingException) ex).getErrorCode(), - ((SystemUnsupportedEncodingException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof DateParseException) { - throw new DateParseException(((DateParseException) ex).getErrorCode(), - ((DateParseException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof RecordFailedToUpdateException) { - throw new RecordFailedToUpdateException(((RecordFailedToUpdateException) ex).getErrorCode(), - ((RecordFailedToUpdateException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof RecordFailedToDeleteException) { - throw new RecordFailedToDeleteException(((RecordFailedToDeleteException) ex).getErrorCode(), - ((RecordFailedToDeleteException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof InvalidDateFormatException) { - throw new InvalidDateFormatException(((InvalidDateFormatException) ex).getErrorCode(), - ((InvalidDateFormatException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof BookingDeletionFailedException) { - throw new BookingDeletionFailedException(((BookingDeletionFailedException) ex).getErrorCode(), - ((BookingDeletionFailedException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof HashingException) { - throw new HashingException(((HashingException) ex).getErrorCode(), ((HashingException) ex).getErrorText(), - mainResponsedto); - } else if (ex instanceof OperationNotAllowedException) { - throw new OperationNotAllowedException(((OperationNotAllowedException) ex).getErrorCode(), - ((OperationNotAllowedException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof DecryptionFailedException) { - throw new DecryptionFailedException(((DecryptionFailedException) ex).getErrorCode(), - ((DecryptionFailedException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof JsonMappingException) { - throw new JsonValidationException(((JsonMappingException) ex).getErrorCode(), - ((JsonMappingException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof IOException) { - throw new JsonValidationException(((IOException) ex).getErrorCode(), ((IOException) ex).getErrorText(), - mainResponsedto); - } else if (ex instanceof RestCallException) { - throw new RestCallException(((RestCallException) ex).getErrorCode(), - ((RestCallException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof SchemaValidationException) { - throw new SchemaValidationException(((SchemaValidationException) ex).getErrorCode(), - ((SchemaValidationException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof IdObjectIOException) { - throw new SchemaValidationException(((IdObjectIOException) ex).getErrorCode(), - ((IdObjectIOException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof IdObjectValidationFailedException) { - throw new IdValidationException(((IdObjectValidationFailedException) ex).getErrorCode(), - ((IdObjectValidationFailedException) ex).getErrorTexts(), mainResponsedto); - } else if (ex instanceof PreIdInvalidForUserIdException) { - throw new PreIdInvalidForUserIdException(((PreIdInvalidForUserIdException) ex).getErrorCode(), - ((PreIdInvalidForUserIdException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof EncryptionFailedException) { - throw new EncryptionFailedException(((EncryptionFailedException) ex).getValidationErrorList(), - mainResponsedto); + if (ex instanceof DataAccessLayerException ex1) { + throw new TableNotAccessibleException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof ParseException ex1) { + throw new JsonParseException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof RecordNotFoundException ex1) { + throw new RecordNotFoundException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof RecordNotFoundForPreIdsException ex1) { + throw new RecordNotFoundForPreIdsException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof InvalidRequestParameterException ex1) { + throw new InvalidRequestParameterException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof MissingRequestParameterException ex1) { + throw new MissingRequestParameterException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof DocumentFailedToDeleteException ex1) { + throw new DocumentFailedToDeleteException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof SystemIllegalArgumentException ex1) { + throw new SystemIllegalArgumentException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof SystemUnsupportedEncodingException ex1) { + throw new SystemUnsupportedEncodingException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof DateParseException ex1) { + throw new DateParseException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof RecordFailedToUpdateException ex1) { + throw new RecordFailedToUpdateException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof RecordFailedToDeleteException ex1) { + throw new RecordFailedToDeleteException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof InvalidDateFormatException ex1) { + throw new InvalidDateFormatException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof BookingDeletionFailedException ex1) { + throw new BookingDeletionFailedException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof HashingException ex1) { + throw new HashingException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof OperationNotAllowedException ex1) { + throw new OperationNotAllowedException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof DecryptionFailedException ex1) { + throw new DecryptionFailedException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof JsonMappingException ex1) { + throw new JsonValidationException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof IOException ex1) { + throw new JsonValidationException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof RestCallException ex1) { + throw new RestCallException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof SchemaValidationException ex1) { + throw new SchemaValidationException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof IdObjectIOException ex1) { + throw new SchemaValidationException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof IdObjectValidationFailedException ex1) { + throw new IdValidationException(ex1.getErrorCode(), ex1.getErrorTexts(), mainResponsedto); + } else if (ex instanceof PreIdInvalidForUserIdException ex1) { + throw new PreIdInvalidForUserIdException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof EncryptionFailedException ex1) { + throw new EncryptionFailedException(ex1.getValidationErrorList(), mainResponsedto); } else if (ex instanceof BeanCreationException) { throw new SchemaValidationException( io.mosip.preregistration.core.errorcodes.ErrorCodes.PRG_CORE_REQ_016.getCode(), ex.getLocalizedMessage(), mainResponsedto); - } else if (ex instanceof SystemFileIOException) { - throw new SystemFileIOException(((SystemFileIOException) ex).getErrorCode(), - ((SystemFileIOException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof DemographicServiceException) { - throw new DemographicServiceException(((DemographicServiceException) ex).getValidationErrorList(), - mainResponsedto); - } else if (ex instanceof InvalidDataException) { - throw new CryptocoreException(((InvalidDataException) ex).getErrorCode(), - ((InvalidDataException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof SignatureException) { - throw new CryptocoreException(((SignatureException) ex).getErrorCode(), - ((SignatureException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof InvalidKeyException) { - throw new CryptocoreException(((InvalidKeyException) ex).getErrorCode(), - ((InvalidKeyException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof InvalidParamSpecException) { - throw new CryptocoreException(((InvalidParamSpecException) ex).getErrorCode(), - ((InvalidParamSpecException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof NullDataException) { - throw new CryptocoreException(((NullDataException) ex).getErrorCode(), - ((NullDataException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof NullKeyException) { - throw new CryptocoreException(((NullKeyException) ex).getErrorCode(), - ((NullKeyException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof NullMethodException) { - throw new CryptocoreException(((NullMethodException) ex).getErrorCode(), - ((NullMethodException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof NoSuchAlgorithmException) { - throw new InvalidRequestParameterException(((NoSuchAlgorithmException) ex).getErrorCode(), - ((NoSuchAlgorithmException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof InvalidRequestException) { - throw new InvalidRequestException(((InvalidRequestException) ex).getErrorCode(), - ((InvalidRequestException) ex).getErrorText(), mainResponsedto); + } else if (ex instanceof SystemFileIOException ex1) { + throw new SystemFileIOException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof DemographicServiceException ex1) { + throw new DemographicServiceException(ex1.getValidationErrorList(), mainResponsedto); + } else if (ex instanceof InvalidDataException ex1) { + throw new CryptocoreException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof SignatureException ex1) { + throw new CryptocoreException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof InvalidKeyException ex1) { + throw new CryptocoreException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof InvalidParamSpecException ex1) { + throw new CryptocoreException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof NullDataException ex1) { + throw new CryptocoreException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof NullKeyException ex1) { + throw new CryptocoreException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof NullMethodException ex1) { + throw new CryptocoreException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof NoSuchAlgorithmException ex1) { + throw new InvalidRequestParameterException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof InvalidRequestException ex1) { + throw new InvalidRequestException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); } else if (ex instanceof DataIntegrityViolationException) { - throw new io.mosip.preregistration.application.exception.DuplicatePridKeyException(DemographicErrorCodes.PRG_PAM_APP_021.getCode(), + throw new io.mosip.preregistration.application.exception.DuplicatePridKeyException( + DemographicErrorCodes.PRG_PAM_APP_021.getCode(), DemographicErrorMessages.DUPLICATE_KEY.getMessage(), mainResponsedto); } else if (ex instanceof ConstraintViolationException) { - throw new io.mosip.preregistration.application.exception.DuplicatePridKeyException(DemographicErrorCodes.PRG_PAM_APP_021.getCode(), + throw new io.mosip.preregistration.application.exception.DuplicatePridKeyException( + DemographicErrorCodes.PRG_PAM_APP_021.getCode(), DemographicErrorMessages.DUPLICATE_KEY.getMessage(), mainResponsedto); } else { - if (ex instanceof BaseUncheckedException) { - throw new PreRegistrationException(((BaseUncheckedException) ex).getErrorCode(), - ((BaseUncheckedException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof BaseCheckedException) { - throw new PreRegistrationException(((BaseCheckedException) ex).getErrorCode(), - ((BaseCheckedException) ex).getErrorText(), mainResponsedto); + if (ex instanceof BaseUncheckedException ex1) { + throw new PreRegistrationException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof BaseCheckedException ex1) { + throw new PreRegistrationException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); } } - } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/util/DocumentExceptionCatcher.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/util/DocumentExceptionCatcher.java index 921cbbe7d5b..5136569187c 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/util/DocumentExceptionCatcher.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/util/DocumentExceptionCatcher.java @@ -49,84 +49,66 @@ * */ public class DocumentExceptionCatcher { + /** + * Handles exceptions and throws specific exceptions based on the type of the original exception. + * + * @param ex The original exception to handle. + * @param mainResponseDTO The main response DTO associated with the exception. + */ public void handle(Exception ex, MainResponseDTO response) { - if (ex instanceof DocumentFailedToUploadException) { - throw new DocumentFailedToUploadException(((DocumentFailedToUploadException) ex).getErrorCode(), - ((DocumentFailedToUploadException) ex).getErrorText(), response); - } else if (ex instanceof IOException) { + if (ex instanceof DocumentFailedToUploadException ex1) { + throw new DocumentFailedToUploadException(ex1.getErrorCode(), ex1.getErrorText(), response); + } else if (ex instanceof IOException ex1) { // kernel exception - throw new DTOMappigException(((IOException) ex).getErrorCode(), ((IOException) ex).getErrorText(), - response); - - } else if (ex instanceof JsonMappingException) { - throw new DTOMappigException(((JsonMappingException) ex).getErrorCode(), - ((JsonMappingException) ex).getErrorText(), response); + throw new DTOMappigException(ex1.getErrorCode(), ex1.getErrorText(), response); + } else if (ex instanceof JsonMappingException ex1) { + throw new DTOMappigException(ex1.getErrorCode(), ex1.getErrorText(), response); // kernel exception - } else if (ex instanceof JsonParseException) { + } else if (ex instanceof JsonParseException ex1) { // kernel exception - throw new DTOMappigException(((JsonParseException) ex).getErrorCode(), - ((JsonParseException) ex).getErrorText(), response); + throw new DTOMappigException(ex1.getErrorCode(), ex1.getErrorText(), response); } else if (ex instanceof JSONException || ex instanceof ParseException) { throw new ParsingException(DocumentErrorCodes.PRG_PAM_DOC_015.toString(), DocumentErrorMessages.JSON_EXCEPTION.getMessage(), response); - - } else if (ex instanceof InvalidRequestParameterException) { - throw new InvalidRequestParameterException(((InvalidRequestParameterException) ex).getErrorCode(), - ((InvalidRequestParameterException) ex).getErrorText(), response); - } else if (ex instanceof MandatoryFieldNotFoundException) { - throw new MandatoryFieldNotFoundException(((MandatoryFieldNotFoundException) ex).getErrorCode(), - ((MandatoryFieldNotFoundException) ex).getErrorText(), response); - } else if (ex instanceof DocumentNotValidException) { - throw new DocumentNotValidException(((DocumentNotValidException) ex).getErrorCode(), - ((DocumentNotValidException) ex).getErrorText(), response); - } else if (ex instanceof DocumentSizeExceedException) { - throw new DocumentSizeExceedException(((DocumentSizeExceedException) ex).getErrorCode(), - ((DocumentSizeExceedException) ex).getErrorText(), response); - } else if (ex instanceof VirusScannerException) { - throw new DocumentVirusScanException(((VirusScannerException) ex).getErrorCode(), - ((VirusScannerException) ex).getErrorText(), response); - } else if (ex instanceof DocumentVirusScanException) { - throw new DocumentVirusScanException(((DocumentVirusScanException) ex).getErrorCode(), - ((DocumentVirusScanException) ex).getErrorText(), response); - } else if (ex instanceof DocumentNotFoundException) { - throw new DocumentNotFoundException(((DocumentNotFoundException) ex).getErrorCode(), - ((DocumentNotFoundException) ex).getErrorText(), response); - } else if (ex instanceof DocumentFailedToCopyException) { - throw new DocumentFailedToCopyException(((DocumentFailedToCopyException) ex).getErrorCode(), - ((DocumentFailedToCopyException) ex).getErrorText(), response); - } else if (ex instanceof InvalidDocumentIdExcepion) { - throw new InvalidDocumentIdExcepion(((InvalidDocumentIdExcepion) ex).getErrorCode(), - ((InvalidDocumentIdExcepion) ex).getErrorText(), response); - } else if (ex instanceof DemographicGetDetailsException) { - throw new DemographicGetDetailsException(((DemographicGetDetailsException) ex).getErrorCode(), - ((DemographicGetDetailsException) ex).getErrorText(), response); - } else if (ex instanceof FSServerException) { - throw new FSServerException(((FSServerException) ex).getErrorCode(), - ((FSServerException) ex).getErrorText(), response); - } else if (ex instanceof TableNotAccessibleException) { - throw new TableNotAccessibleException(((TableNotAccessibleException) ex).getErrorCode(), - ((TableNotAccessibleException) ex).getErrorText(), response); + } else if (ex instanceof InvalidRequestParameterException ex1) { + throw new InvalidRequestParameterException(ex1.getErrorCode(), ex1.getErrorText(), response); + } else if (ex instanceof MandatoryFieldNotFoundException ex1) { + throw new MandatoryFieldNotFoundException(ex1.getErrorCode(), ex1.getErrorText(), response); + } else if (ex instanceof DocumentNotValidException ex1) { + throw new DocumentNotValidException(ex1.getErrorCode(), ex1.getErrorText(), response); + } else if (ex instanceof DocumentSizeExceedException ex1) { + throw new DocumentSizeExceedException(ex1.getErrorCode(), ex1.getErrorText(), response); + } else if (ex instanceof VirusScannerException ex1) { + throw new DocumentVirusScanException(ex1.getErrorCode(), ex1.getErrorText(), response); + } else if (ex instanceof DocumentVirusScanException ex1) { + throw new DocumentVirusScanException(ex1.getErrorCode(), ex1.getErrorText(), response); + } else if (ex instanceof DocumentNotFoundException ex1) { + throw new DocumentNotFoundException(ex1.getErrorCode(), ex1.getErrorText(), response); + } else if (ex instanceof DocumentFailedToCopyException ex1) { + throw new DocumentFailedToCopyException(ex1.getErrorCode(), ex1.getErrorText(), response); + } else if (ex instanceof InvalidDocumentIdExcepion ex1) { + throw new InvalidDocumentIdExcepion(ex1.getErrorCode(), ex1.getErrorText(), response); + } else if (ex instanceof DemographicGetDetailsException ex1) { + throw new DemographicGetDetailsException(ex1.getErrorCode(), ex1.getErrorText(), response); + } else if (ex instanceof FSServerException ex1) { + throw new FSServerException(ex1.getErrorCode(), ex1.getErrorText(), response); + } else if (ex instanceof TableNotAccessibleException ex1) { + throw new TableNotAccessibleException(ex1.getErrorCode(), ex1.getErrorText(), response); } else if (ex instanceof PSQLException) { throw new PrimaryKeyValidationException(DocumentErrorCodes.PRG_PAM_DOC_021.toString(), DocumentErrorMessages.DOCUMENT_ALREADY_PRESENT.getMessage(), response); - } else if (ex instanceof FSAdapterException) { - throw new FSServerException(((FSAdapterException) ex).getErrorCode(), - ((FSAdapterException) ex).getErrorText(), response); - } else if (ex instanceof DecryptionFailedException) { - throw new EncryptionFailedException(((DecryptionFailedException) ex).getErrorCode(), - ((DecryptionFailedException) ex).getErrorText(), response); - } else if (ex instanceof EncryptionFailedException) { - throw new EncryptionFailedException(((EncryptionFailedException) ex).getValidationErrorList(), response); - } else if (ex instanceof MasterDataNotAvailableException) { - throw new EncryptionFailedException(((MasterDataNotAvailableException) ex).getErrorCode().toString(), - ((MasterDataNotAvailableException) ex).getErrorText(), response); - } else if (ex instanceof InvalidRequestException) { - throw new InvalidRequestException(((InvalidRequestException) ex).getErrorCode(), - ((InvalidRequestException) ex).getErrorText(), response); - } else if (ex instanceof RecordNotFoundException) { - throw new RecordNotFoundException(((RecordNotFoundException) ex).getErrorCode(), - ((RecordNotFoundException) ex).getErrorText(), response); - + } else if (ex instanceof FSAdapterException ex1) { + throw new FSServerException(ex1.getErrorCode(), ex1.getErrorText(), response); + } else if (ex instanceof DecryptionFailedException ex1) { + throw new EncryptionFailedException(ex1.getErrorCode(), ex1.getErrorText(), response); + } else if (ex instanceof EncryptionFailedException ex1) { + throw new EncryptionFailedException(ex1.getValidationErrorList(), response); + } else if (ex instanceof MasterDataNotAvailableException ex1) { + throw new EncryptionFailedException(ex1.getErrorCode(), ex1.getErrorText(), response); + } else if (ex instanceof InvalidRequestException ex1) { + throw new InvalidRequestException(ex1.getErrorCode(), ex1.getErrorText(), response); + } else if (ex instanceof RecordNotFoundException ex1) { + throw new RecordNotFoundException(ex1.getErrorCode(), ex1.getErrorText(), response); } else if (ex instanceof java.text.ParseException) { throw new InvalidRequestParameterException( io.mosip.preregistration.core.errorcodes.ErrorCodes.PRG_CORE_REQ_003.getCode(), @@ -134,15 +116,11 @@ public void handle(Exception ex, MainResponseDTO response) { response); } else { - if (ex instanceof BaseUncheckedException) { - throw new PreRegistrationException(((BaseUncheckedException) ex).getErrorCode(), - ((BaseUncheckedException) ex).getErrorText(), response); - } else if (ex instanceof BaseCheckedException) { - throw new PreRegistrationException(((BaseCheckedException) ex).getErrorCode(), - ((BaseCheckedException) ex).getErrorText(), response); + if (ex instanceof BaseUncheckedException ex1) { + throw new PreRegistrationException(ex1.getErrorCode(), ex1.getErrorText(), response); + } else if (ex instanceof BaseCheckedException ex1) { + throw new PreRegistrationException(ex1.getErrorCode(), ex1.getErrorText(), response); } } - } - } \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/util/LoginExceptionCatcher.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/util/LoginExceptionCatcher.java index 2a028389471..ef51ab905c7 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/util/LoginExceptionCatcher.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/util/LoginExceptionCatcher.java @@ -5,6 +5,7 @@ import org.springframework.web.client.HttpServerErrorException; import org.springframework.web.client.RestClientException; +import io.jsonwebtoken.JwtException; import io.mosip.kernel.core.exception.BaseCheckedException; import io.mosip.kernel.core.exception.BaseUncheckedException; import io.mosip.preregistration.core.common.dto.MainResponseDTO; @@ -28,46 +29,50 @@ * * @author Akshay * @since 1.0.0 + * */ public class LoginExceptionCatcher { + /** + * Handles exceptions and throws specific exceptions based on the type of the original exception. + * + * @param ex The original exception to handle. + * @param serviceType The serviceType. + * @param mainResponseDTO The main response DTO associated with the exception. + */ public void handle(Exception ex, @NonNull String serviceType, MainResponseDTO mainResponsedto) { if ((ex instanceof RestClientException || ex instanceof HttpClientErrorException || ex instanceof HttpServerErrorException) && (serviceType.equals("sendOtp"))) { throw new SendOtpFailedException(LoginErrorCodes.PRG_AUTH_001.name(), (LoginErrorMessages.SEND_OTP_FAILED.getMessage()), mainResponsedto); - } else if (ex instanceof PreRegLoginException && (serviceType.equals("sendOtp"))) { - throw new SendOtpFailedException(((PreRegLoginException) ex).getErrorCode(), - ((PreRegLoginException) ex).getErrorText(), mainResponsedto); + } else if (ex instanceof PreRegLoginException ex1 && (serviceType.equals("sendOtp"))) { + throw new SendOtpFailedException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); } else if (ex instanceof RestClientException && (serviceType.equals("userIdOtp"))) { throw new UserIdOtpFaliedException(LoginErrorCodes.PRG_AUTH_002.name(), (LoginErrorMessages.USERID_OTP_VALIDATION_FAILED.getMessage()), mainResponsedto); } else if (ex instanceof RestClientException && (serviceType.equals("invalidateToken"))) { throw new InvalidateTokenException(LoginErrorCodes.PRG_AUTH_003.getCode(), (LoginErrorMessages.INVALIDATE_TOKEN_FAILED.getMessage()), mainResponsedto); - } else if (ex instanceof InvalidRequestParameterException && (serviceType.equals("sendOtp"))) { - throw new InvalidRequestParameterException(((InvalidRequestParameterException) ex).getErrorCode(), - ((InvalidRequestParameterException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof InvalidRequestParameterException && (serviceType.equals("userIdOtp"))) { - throw new InvalidRequestParameterException(((InvalidRequestParameterException) ex).getErrorCode(), - ((InvalidRequestParameterException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof LoginServiceException) { - throw new LoginServiceException(((LoginServiceException) ex).getValidationErrorList(), mainResponsedto); - } else if (ex instanceof ParseResponseException) { - throw new ParseResponseException(((ParseResponseException) ex).getErrorCode(), - ((ParseResponseException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof ConfigFileNotFoundException) { - throw new ConfigFileNotFoundException(((ConfigFileNotFoundException) ex).getErrorCode(), - ((ConfigFileNotFoundException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof InvalidOtpOrUseridException) { - throw new InvalidOtpOrUseridException(LoginErrorCodes.PRG_AUTH_013.getCode(), - ((InvalidOtpOrUseridException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof NoAuthTokenException) { - throw new NoAuthTokenException(((NoAuthTokenException) ex).getErrorCode(), - ((NoAuthTokenException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof InvalidRequestException) { - throw new InvalidRequestException(((InvalidRequestException) ex).getErrorCode(), - ((InvalidRequestException) ex).getErrorText(), mainResponsedto); + } else if (ex instanceof JwtException && (serviceType.equals("invalidateToken"))) { + throw new InvalidateTokenException(LoginErrorCodes.PRG_AUTH_003.getCode(), + (LoginErrorMessages.INVALIDATE_TOKEN_FAILED.getMessage()), mainResponsedto); + } else if (ex instanceof InvalidRequestParameterException ex1 && (serviceType.equals("sendOtp"))) { + throw new InvalidRequestParameterException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof InvalidRequestParameterException ex1 && (serviceType.equals("userIdOtp"))) { + throw new InvalidRequestParameterException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof LoginServiceException ex1) { + throw new LoginServiceException(ex1.getValidationErrorList(), mainResponsedto); + } else if (ex instanceof ParseResponseException ex1) { + throw new ParseResponseException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof ConfigFileNotFoundException ex1) { + throw new ConfigFileNotFoundException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof InvalidOtpOrUseridException ex1) { + throw new InvalidOtpOrUseridException(LoginErrorCodes.PRG_AUTH_013.getCode(), ex1.getErrorText(), + mainResponsedto); + } else if (ex instanceof NoAuthTokenException ex1) { + throw new NoAuthTokenException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof InvalidRequestException ex1) { + throw new InvalidRequestException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); } else if ((ex instanceof HttpClientErrorException || ex instanceof HttpServerErrorException) && serviceType.equals("refreshConfig")) { throw new ConfigFileNotFoundException(LoginErrorCodes.PRG_AUTH_012.getCode(), @@ -77,14 +82,11 @@ public void handle(Exception ex, @NonNull String serviceType, MainResponseDTO throw new ConfigFileNotFoundException(LoginErrorCodes.PRG_AUTH_012.getCode(), LoginErrorMessages.CONFIG_FILE_NOT_FOUND_EXCEPTION.getMessage(), mainResponsedto); } else { - if (ex instanceof BaseUncheckedException) { - throw new PreRegistrationException(((BaseUncheckedException) ex).getErrorCode(), - ((BaseUncheckedException) ex).getErrorText(), mainResponsedto); - } else if (ex instanceof BaseCheckedException) { - throw new PreRegistrationException(((BaseCheckedException) ex).getErrorCode(), - ((BaseCheckedException) ex).getErrorText(), mainResponsedto); + if (ex instanceof BaseUncheckedException ex1) { + throw new PreRegistrationException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); + } else if (ex instanceof BaseCheckedException ex1) { + throw new PreRegistrationException(ex1.getErrorCode(), ex1.getErrorText(), mainResponsedto); } } - } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/util/NotificationExceptionCatcher.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/util/NotificationExceptionCatcher.java index bcaa3b00972..a831a418c56 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/util/NotificationExceptionCatcher.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/util/NotificationExceptionCatcher.java @@ -4,7 +4,6 @@ */ package io.mosip.preregistration.application.exception.util; - import java.text.ParseException; import org.springframework.web.client.HttpServerErrorException; @@ -29,7 +28,6 @@ import io.mosip.preregistration.application.exception.NotificationSeriveException; import io.mosip.preregistration.application.exception.RestCallException; - /** * This class is used to catch the exceptions that occur while creating the * acknowledgement application @@ -41,73 +39,53 @@ public class NotificationExceptionCatcher { /** - * Method to handle the respective exceptions + * Handles exceptions and throws specific exceptions based on the type of the original exception. * - * @param ex - * pass the exception + * @param ex The original exception to handle. + * @param mainResponseDTO The main response DTO associated with the exception. */ - public void handle(Exception ex,MainResponseDTO mainResponseDto) { - if (ex instanceof MandatoryFieldException) { - throw new MandatoryFieldException(((MandatoryFieldException) ex).getErrorCode(),((MandatoryFieldException) ex).getErrorText(),mainResponseDto); - }else if (ex instanceof IOException||ex instanceof java.io.IOException) { - throw new IOException(NotificationErrorCodes.PRG_PAM_ACK_005.getCode(), - NotificationErrorMessages.INPUT_OUTPUT_EXCEPTION.getMessage(),mainResponseDto); - }else if (ex instanceof NullPointerException) { + public void handle(Exception ex, MainResponseDTO mainResponseDto) { + if (ex instanceof MandatoryFieldException ex1) { + throw new MandatoryFieldException( ex1.getErrorCode(), + ex1.getErrorText(), mainResponseDto); + } else if (ex instanceof IOException || ex instanceof java.io.IOException) { + throw new IOException(NotificationErrorCodes.PRG_PAM_ACK_005.getCode(), + NotificationErrorMessages.INPUT_OUTPUT_EXCEPTION.getMessage(), mainResponseDto); + } else if (ex instanceof NullPointerException) { throw new IllegalParamException(NotificationErrorCodes.PRG_PAM_ACK_002.getCode(), - NotificationErrorMessages.INCORRECT_MANDATORY_FIELDS.getMessage(), ex.getCause(),mainResponseDto); - } - else if (ex instanceof HttpServerErrorException) { + NotificationErrorMessages.INCORRECT_MANDATORY_FIELDS.getMessage(), ex.getCause(), mainResponseDto); + } else if (ex instanceof HttpServerErrorException) { throw new NotificationSeriveException(); - } - else if (ex instanceof InvalidRequestException) { - throw new InvalidRequestException(((InvalidRequestException) ex).getErrorCode(), - ((InvalidRequestException) ex).getErrorText(), mainResponseDto); - } - else if (ex instanceof JsonParseException) { - throw new JsonValidationException(NotificationErrorCodes.PRG_PAM_ACK_004.getCode(), NotificationErrorMessages.JSON_PARSING_FAILED.getMessage(), - ex.getCause(),mainResponseDto); - } else if (ex instanceof InvalidRequestParameterException) { - throw new InvalidRequestParameterException(((InvalidRequestParameterException) ex).getErrorCode(), - ((InvalidRequestParameterException) ex).getErrorText(),mainResponseDto); - } else if (ex instanceof MissingRequestParameterException) { - throw new MissingRequestParameterException(((MissingRequestParameterException) ex).getErrorCode(), - ((MissingRequestParameterException) ex).getErrorText(),mainResponseDto); - } - - else if (ex instanceof NotificationSeriveException) { - throw new NotificationSeriveException(((NotificationSeriveException) ex).getValidationErrorList(),((NotificationSeriveException) ex).getMainResposneDTO()); - - } - - else if (ex instanceof RestCallException) { - throw new RestCallException(((RestCallException) ex).getErrorCode(),((RestCallException) ex).getErrorText(),((RestCallException) ex).getMainresponseDTO()); - - } - else if (ex instanceof BookingDetailsNotFoundException) { - throw new BookingDetailsNotFoundException(((BookingDetailsNotFoundException) ex).getErrorList(),((BookingDetailsNotFoundException) ex).getMainResponseDTO()); - - } - else if (ex instanceof DemographicDetailsNotFoundException) { - throw new DemographicDetailsNotFoundException(((DemographicDetailsNotFoundException) ex).getErrorList(),((DemographicDetailsNotFoundException) ex).getMainResponseDTO()); - - } - else if (ex instanceof ParseException) { - throw new InvalidRequestParameterException(io.mosip.preregistration.core.errorcodes.ErrorCodes.PRG_CORE_REQ_003.getCode(), io.mosip.preregistration.core.errorcodes.ErrorMessages.INVALID_REQUEST_DATETIME.getMessage(), mainResponseDto); - - } - else if (ex instanceof RecordNotFoundException) { - throw new RecordNotFoundException(((RecordNotFoundException) ex).getErrorCode(),((RecordNotFoundException) ex).getErrorText(),mainResponseDto); - - } - else { - if (ex instanceof BaseUncheckedException) { - throw new PreRegistrationException(((BaseUncheckedException) ex).getErrorCode(), - ((BaseUncheckedException) ex).getErrorText(), mainResponseDto); - } else if (ex instanceof BaseCheckedException) { - throw new PreRegistrationException(((BaseCheckedException) ex).getErrorCode(), - ((BaseCheckedException) ex).getErrorText(), mainResponseDto); + } else if (ex instanceof InvalidRequestException ex1) { + throw new InvalidRequestException(ex1.getErrorCode(), ex1.getErrorText(), mainResponseDto); + } else if (ex instanceof JsonParseException) { + throw new JsonValidationException(NotificationErrorCodes.PRG_PAM_ACK_004.getCode(), + NotificationErrorMessages.JSON_PARSING_FAILED.getMessage(), ex.getCause(), mainResponseDto); + } else if (ex instanceof InvalidRequestParameterException ex1) { + throw new InvalidRequestParameterException(ex1.getErrorCode(), ex1.getErrorText(), mainResponseDto); + } else if (ex instanceof MissingRequestParameterException ex1) { + throw new MissingRequestParameterException(ex1.getErrorCode(), ex1.getErrorText(), mainResponseDto); + } else if (ex instanceof NotificationSeriveException ex1) { + throw new NotificationSeriveException(ex1.getValidationErrorList(), ex1.getMainResposneDTO()); + } else if (ex instanceof RestCallException ex1) { + throw new RestCallException(ex1.getErrorCode(), ex1.getErrorText(), ex1.getMainresponseDTO()); + } else if (ex instanceof BookingDetailsNotFoundException ex1) { + throw new BookingDetailsNotFoundException(ex1.getErrorList(), ex1.getMainResponseDTO()); + } else if (ex instanceof DemographicDetailsNotFoundException ex1) { + throw new DemographicDetailsNotFoundException(ex1.getErrorList(), ex1.getMainResponseDTO()); + } else if (ex instanceof ParseException) { + throw new InvalidRequestParameterException( + io.mosip.preregistration.core.errorcodes.ErrorCodes.PRG_CORE_REQ_003.getCode(), + io.mosip.preregistration.core.errorcodes.ErrorMessages.INVALID_REQUEST_DATETIME.getMessage(), + mainResponseDto); + } else if (ex instanceof RecordNotFoundException ex1) { + throw new RecordNotFoundException(ex1.getErrorCode(), ex1.getErrorText(), mainResponseDto); + } else { + if (ex instanceof BaseUncheckedException ex1) { + throw new PreRegistrationException(ex1.getErrorCode(), ex1.getErrorText(), mainResponseDto); + } else if (ex instanceof BaseCheckedException ex1) { + throw new PreRegistrationException(ex1.getErrorCode(), ex1.getErrorText(), mainResponseDto); } } } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/util/PreRegistrationExceptionHandler.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/util/PreRegistrationExceptionHandler.java index 7796ff9f8cb..6a872818fa6 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/util/PreRegistrationExceptionHandler.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/util/PreRegistrationExceptionHandler.java @@ -8,8 +8,8 @@ import java.util.List; import java.util.Map; -import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -104,6 +104,7 @@ import io.mosip.preregistration.demographic.exception.system.SystemFileIOException; import io.mosip.preregistration.demographic.exception.system.SystemIllegalArgumentException; import io.mosip.preregistration.demographic.exception.system.SystemUnsupportedEncodingException; +import net.logstash.logback.encoder.org.apache.commons.lang3.StringUtils; @RestControllerAdvice public class PreRegistrationExceptionHandler { @@ -502,7 +503,8 @@ public ResponseEntity> methodArgumentNotValidExcep public ResponseEntity> onHttpMessageNotReadable( final HttpServletRequest httpServletRequest, final HttpMessageNotReadableException e) throws IOException { ResponseWrapper errorResponse = setErrors(httpServletRequest); - ServiceError error = new ServiceError(ErrorCodes.PRG_CORE_REQ_015.getCode(), e.getMessage()); + String errorMessage = StringUtils.substringBefore(e.getMessage(), ":"); + ServiceError error = new ServiceError(ErrorCodes.PRG_CORE_REQ_015.getCode(), errorMessage); errorResponse.getErrors().add(error); return new ResponseEntity<>(errorResponse, HttpStatus.OK); } @@ -836,11 +838,10 @@ public ResponseEntity> cephServerException(final FSServerExce public ResponseEntity> primaryKeyValidationException(final PrimaryKeyValidationException e) { return GenericUtil.errorResponse(e, e.getResponse()); } - - + @ExceptionHandler(DeprecatedException.class) public ResponseEntity> sizeExceedException(DeprecatedException e) { - ExceptionJSONInfoDTO errorDetails = new ExceptionJSONInfoDTO(e.getErrorCode(),e.getErrorMessage()); + ExceptionJSONInfoDTO errorDetails = new ExceptionJSONInfoDTO(e.getErrorCode(), e.getErrorMessage()); MainResponseDTO errorRes = new MainResponseDTO<>(); List errorList = new ArrayList<>(); errorList.add(errorDetails); diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/util/QRcodeExceptionCatcher.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/util/QRcodeExceptionCatcher.java index 6481ffaaaa9..97ba755cba5 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/util/QRcodeExceptionCatcher.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/util/QRcodeExceptionCatcher.java @@ -23,51 +23,36 @@ */ public class QRcodeExceptionCatcher { /** - * Method to handle the respective exceptions + * Handles exceptions and throws specific exceptions based on the type of the original exception. * - * @param ex - * pass the exception + * @param ex The original exception to handle. + * @param mainResponseDTO The main response DTO associated with the exception. */ public void handle(Exception ex, MainResponseDTO mainResponseDto) { if (ex instanceof QrcodeGenerationException) { throw new IllegalParamException(QrCodeErrorCodes.PRG_QRC_002.getCode(), QrCodeErrorMessages.QRCODE_FAILED_TO_GENERATE.getCode(), ex.getCause(), mainResponseDto); } else if (ex instanceof IOException || ex instanceof JSONException) { - throw new QrCodeIOException( - QrCodeErrorCodes.PRG_QRC_001.getCode(), QrCodeErrorMessages.INPUT_OUTPUT_EXCEPTION.getCode(), ex.getCause(), - mainResponseDto); + throw new QrCodeIOException(QrCodeErrorCodes.PRG_QRC_001.getCode(), + QrCodeErrorMessages.INPUT_OUTPUT_EXCEPTION.getCode(), ex.getCause(), mainResponseDto); } else if (ex instanceof NullPointerException) { throw new IllegalParamException(QrCodeErrorCodes.PRG_QRC_002.getCode(), QrCodeErrorMessages.QRCODE_FAILED_TO_GENERATE.getCode(), ex.getCause(), mainResponseDto); - } - - else if (ex instanceof InvalidRequestParameterException) { - throw new InvalidRequestParameterException(((InvalidRequestParameterException) ex).getErrorCode(), - ((InvalidRequestParameterException) ex).getErrorText(), mainResponseDto); - } else if (ex instanceof InvalidRequestException) { - throw new InvalidRequestException(((InvalidRequestException) ex).getErrorCode(), - ((InvalidRequestException) ex).getErrorText(), mainResponseDto); + } else if (ex instanceof InvalidRequestParameterException ex1) { + throw new InvalidRequestParameterException(ex1.getErrorCode(), ex1.getErrorText(), mainResponseDto); + } else if (ex instanceof InvalidRequestException ex1) { + throw new InvalidRequestException(ex1.getErrorCode(), ex1.getErrorText(), mainResponseDto); } else if (ex instanceof ParseException) { throw new InvalidRequestParameterException( io.mosip.preregistration.core.errorcodes.ErrorCodes.PRG_CORE_REQ_003.getCode(), io.mosip.preregistration.core.errorcodes.ErrorMessages.INVALID_REQUEST_DATETIME.getMessage(), mainResponseDto); - } else if (ex instanceof ParseException) { - throw new InvalidRequestParameterException( - io.mosip.preregistration.core.errorcodes.ErrorCodes.PRG_CORE_REQ_003.getCode(), - io.mosip.preregistration.core.errorcodes.ErrorMessages.INVALID_REQUEST_DATETIME.getMessage(), - mainResponseDto); - - } - else { - if (ex instanceof BaseUncheckedException) { - throw new PreRegistrationException(((BaseUncheckedException) ex).getErrorCode(), - ((BaseUncheckedException) ex).getErrorText(), mainResponseDto); - } else if (ex instanceof BaseCheckedException) { - throw new PreRegistrationException(((BaseCheckedException) ex).getErrorCode(), - ((BaseCheckedException) ex).getErrorText(), mainResponseDto); + } else { + if (ex instanceof BaseUncheckedException ex1) { + throw new PreRegistrationException(ex1.getErrorCode(), ex1.getErrorText(), mainResponseDto); + } else if (ex instanceof BaseCheckedException ex1) { + throw new PreRegistrationException(ex1.getErrorCode(), ex1.getErrorText(), mainResponseDto); } } } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/util/TransliterationExceptionCatcher.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/util/TransliterationExceptionCatcher.java index 13a15c5838c..8615385ac32 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/util/TransliterationExceptionCatcher.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/exception/util/TransliterationExceptionCatcher.java @@ -30,41 +30,33 @@ */ @Component public class TransliterationExceptionCatcher { - /** - * Method to handle the respective exceptions + * Handles exceptions and throws specific exceptions based on the type of the original exception. * - * @param ex - * pass the exception + * @param ex The original exception to handle. + * @param mainResponseDTO The main response DTO associated with the exception. */ - public void handle(Exception ex,MainResponseDTO response) { - if (ex instanceof DataAccessLayerException) { + public void handle(Exception ex, MainResponseDTO mainResponseDTO) { + if (ex instanceof DataAccessLayerException) { throw new TableNotAccessibleException(TransliterationErrorCodes.PRG_TRL_APP_005.getCode(), - TransliterationErrorMessage.PRE_REG_TRANSLITRATION_TABLE_NOT_ACCESSIBLE.getMessage(), ex.getCause()); + TransliterationErrorMessage.PRE_REG_TRANSLITRATION_TABLE_NOT_ACCESSIBLE.getMessage(), + ex.getCause()); } else if (ex instanceof NullPointerException) { throw new IllegalParamException(TransliterationErrorCodes.PRG_TRL_APP_002.getCode(), - TransliterationErrorMessage.INCORRECT_MANDATORY_FIELDS.getMessage(), ex.getCause(),response); + TransliterationErrorMessage.INCORRECT_MANDATORY_FIELDS.getMessage(), ex.getCause(), mainResponseDTO); } else if (ex instanceof ParseException) { - throw new JsonParseException( - TransliterationErrorCodes.PRG_TRL_APP_006.getCode(), TransliterationErrorMessage.JSON_PARSING_FAILED.getMessage(), ex.getCause(),response); - } else if (ex instanceof InvalidRequestParameterException) { - throw new InvalidRequestParameterException(((InvalidRequestParameterException) ex).getErrorCode(), - ((InvalidRequestParameterException) ex).getErrorText(),response); - } else if (ex instanceof MissingRequestParameterException) { - throw new MissingRequestParameterException(((MissingRequestParameterException) ex).getErrorCode(), - ((MissingRequestParameterException) ex).getErrorText(),response); - }else if (ex instanceof InvalidRequestException) { - throw new InvalidRequestException(((InvalidRequestException) ex).getErrorCode(), - ((InvalidRequestException) ex).getErrorText(), response); - } - else if (ex instanceof MandatoryFieldRequiredException) { - throw new MandatoryFieldRequiredException(((MandatoryFieldRequiredException) ex).getErrorCode(), - ((MandatoryFieldRequiredException) ex).getErrorText(),response); - } - else if (ex instanceof UnSupportedLanguageException) { - throw new UnSupportedLanguageException(((UnSupportedLanguageException) ex).getErrorCode(), - ((UnSupportedLanguageException) ex).getErrorText(),response); + throw new JsonParseException(TransliterationErrorCodes.PRG_TRL_APP_006.getCode(), + TransliterationErrorMessage.JSON_PARSING_FAILED.getMessage(), ex.getCause(), mainResponseDTO); + } else if (ex instanceof InvalidRequestParameterException ex1) { + throw new InvalidRequestParameterException(ex1.getErrorCode(), ex1.getErrorText(), mainResponseDTO); + } else if (ex instanceof MissingRequestParameterException ex1) { + throw new MissingRequestParameterException(ex1.getErrorCode(), ex1.getErrorText(), mainResponseDTO); + } else if (ex instanceof InvalidRequestException ex1) { + throw new InvalidRequestException(ex1.getErrorCode(), ex1.getErrorText(), mainResponseDTO); + } else if (ex instanceof MandatoryFieldRequiredException ex1) { + throw new MandatoryFieldRequiredException(ex1.getErrorCode(), ex1.getErrorText(), mainResponseDTO); + } else if (ex instanceof UnSupportedLanguageException ex1) { + throw new UnSupportedLanguageException(ex1.getErrorCode(), ex1.getErrorText(), mainResponseDTO); } } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/repository/ApplicationRepostiory.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/repository/ApplicationRepostiory.java index 186da7130fc..dbf77a4de2e 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/repository/ApplicationRepostiory.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/repository/ApplicationRepostiory.java @@ -16,6 +16,8 @@ @Transactional public interface ApplicationRepostiory extends BaseRepository { + public static final String searchAppointmentsQuery = "select u from ApplicationEntity u where u.registrationCenterId=?1 and u.appointmentDate between ?2 and ?3"; + @Query("SELECT u.bookingStatusCode FROM ApplicationEntity u where u.applicationId =?1") public String findBookingStatusCodeById(String applicationId); @@ -23,8 +25,9 @@ public interface ApplicationRepostiory extends BaseRepository findByRegistrationCenterIdAndAppointmentDate(String registrationCenterId, - LocalDate appointmentDate); + @Query(searchAppointmentsQuery) + public List findByRegistrationCenterIdAndBetweenDate(String registrationCenterId, + LocalDate appointmentFromDate, LocalDate appointmentToDate); @Query("SELECT e FROM ApplicationEntity e WHERE e.applicationId = ?1") public ApplicationEntity findByApplicationId(String applicationId); diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/repository/OtpTxnRepository.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/repository/OtpTxnRepository.java index 7965b2a8c34..c9cd67e896c 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/repository/OtpTxnRepository.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/repository/OtpTxnRepository.java @@ -13,7 +13,9 @@ public interface OtpTxnRepository extends BaseRepository Boolean existsByOtpHashAndStatusCode(String otpHash, String statusCode); - OtpTransaction findByOtpHashAndStatusCode(String otpHash, String statusCode); + OtpTransaction findTopByOtpHashAndStatusCode(String otpHash, String statusCode); + + OtpTransaction findByRefIdAndStatusCode(String refId, String statusCode); /** * Obtain the number of count of request_dTtimes for particular userId with diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/ApplicationService.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/ApplicationService.java index 0e463ecf155..52c4fdc5609 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/ApplicationService.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/ApplicationService.java @@ -5,15 +5,15 @@ import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; import java.util.ArrayList; +import java.util.Collection; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; -import javax.annotation.PostConstruct; - import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; import org.springframework.web.client.HttpClientErrorException; @@ -198,10 +198,7 @@ public MainResponseDTO getApplicationInfo(String applicationI throw new RecordNotFoundException(ApplicationErrorCodes.PRG_APP_013.getCode(), ApplicationErrorMessages.NO_RECORD_FOUND.getMessage()); } - if (!authUserDetails().getUserId().trim().equals(applicationEntity.getCrBy().trim())) { - throw new PreIdInvalidForUserIdException(ApplicationErrorCodes.PRG_APP_015.getCode(), - ApplicationErrorMessages.INVALID_APPLICATION_ID_FOR_USER.getMessage()); - } + userValidation(applicationEntity); log.info("Application Info: {} for the Application Id: {}", applicationEntity, applicationId); response.setResponse(applicationEntity); } catch (Exception ex) { @@ -216,20 +213,28 @@ public MainResponseDTO getApplicationInfo(String applicationI * Get all bookings for the given regCenterId in the given appointmentDate * * @param regCenterId - * @param appointmentDate + * @param appointmentFromDate + * @param appointmentToDate * @return */ public MainResponseDTO> getBookingsForRegCenter(String regCenterId, - String appointmentDate) { + String appointmentFromDate, String appointmentToDate) { MainResponseDTO> mainResponse = new MainResponseDTO<>(); mainResponse.setId(applicationDetailsId); mainResponse.setVersion(version); mainResponse.setResponsetime(DateTimeFormatter.ofPattern(mosipDateTimeFormat).format(LocalDateTime.now())); List responseList = new ArrayList<>(); try { - LocalDate appDate = LocalDate.parse(appointmentDate); + LocalDate appFromDate = LocalDate.parse(appointmentFromDate); + LocalDate appToDate = null; + if (appointmentToDate != null && !"".equals(appointmentToDate.trim())) { + appToDate = LocalDate.parse(appointmentToDate); + } + if (appToDate == null) { + appToDate = appFromDate; + } List entity = applicationRepository - .findByRegistrationCenterIdAndAppointmentDate(regCenterId, appDate); + .findByRegistrationCenterIdAndBetweenDate(regCenterId, appFromDate, appToDate); if (entity != null) { entity.forEach(obj -> { ApplicationDetailResponseDTO response = new ApplicationDetailResponseDTO(); @@ -253,7 +258,7 @@ public MainResponseDTO> getBookingsForRegCent } } catch (RecordNotFoundException ex) { log.error("Record Not Found Exception for the request regCenterId and appointmentDate", regCenterId, - appointmentDate); + appointmentFromDate); log.error("Exception trace", ex); throw new RecordNotFoundException(ApplicationErrorCodes.PRG_APP_012.getCode(), ApplicationErrorMessages.NO_RECORD_FOUND.getMessage(), mainResponse); @@ -393,10 +398,11 @@ public MainResponseDTO deleteLostOrUpdateApplication(Strin ApplicationEntity applicationEntity = serviceUtil.findApplicationById(applicationId); if (bookingType.equals(BookingTypeCodes.LOST_FORGOTTEN_UIN.toString()) || bookingType.equals(BookingTypeCodes.UPDATE_REGISTRATION.toString())) { + //userValidation(applicationEntity); if (!authUserDetails().getUserId().trim().equals(applicationEntity.getCrBy().trim())) { throw new PreIdInvalidForUserIdException(ApplicationErrorCodes.PRG_APP_015.getCode(), ApplicationErrorMessages.INVALID_APPLICATION_ID_FOR_USER.getMessage()); - } + } if ((applicationEntity.getBookingStatusCode().equals(StatusCodes.BOOKED.getCode()))) { MainResponseDTO deleteBooking = null; deleteBooking = serviceUtil.deleteBooking(applicationId); @@ -490,6 +496,7 @@ public MainResponseDTO getApplicationStatus(String applicationId) { throw new RecordNotFoundException(ApplicationErrorCodes.PRG_APP_013.getCode(), ApplicationErrorMessages.NO_RECORD_FOUND.getMessage()); } + userValidation(applicationEntity); applicationBookingStatus= applicationEntity.getBookingStatusCode(); log.info("Application STATUS : {} for the Application Id: {}", applicationBookingStatus, applicationId); response.setResponse(applicationBookingStatus); @@ -501,6 +508,35 @@ public MainResponseDTO getApplicationStatus(String applicationId) { return response; } + private void userValidation(ApplicationEntity applicationEntity) { + String authUserId = authUserDetails().getUserId(); + List list = listAuth(authUserDetails().getAuthorities()); + if (list.contains("ROLE_INDIVIDUAL")) { + log.info("sessionId", "idType", "id", "In userValidation method of ApplicationService with applicationId " + + applicationEntity.getApplicationId() + " and userID " + authUserId); + if (!authUserDetails().getUserId().trim().equals(applicationEntity.getCrBy().trim())) { + throw new PreIdInvalidForUserIdException(ApplicationErrorCodes.PRG_APP_015.getCode(), + ApplicationErrorMessages.INVALID_APPLICATION_ID_FOR_USER.getMessage()); + } + } + + } + + /** + * This method is used to get the list of authorization role + * + * @param collection + * @return list of auth role + */ + private List listAuth(Collection collection) { + List listWORole = new ArrayList<>(); + for (GrantedAuthority authority : collection) { + String s = authority.getAuthority(); + listWORole.add(s); + } + return listWORole; + } + /** * Gives all the application details for the logged in user for the given type. * diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/ApplicationServiceIntf.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/ApplicationServiceIntf.java index 5e8a862c49f..e1b74561207 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/ApplicationServiceIntf.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/ApplicationServiceIntf.java @@ -53,11 +53,12 @@ public interface ApplicationServiceIntf { * Get all bookings for the given regCenterId in the given appointmentDate * * @param regCenterId - * @param appointmentDate + * @param appointmentFromDate + * @param appointmentToDate * @return */ MainResponseDTO> getBookingsForRegCenter(String regCenterId, - String appointmentDate); + String appointmentFromDate, String appointmentToDate); /** * This method is used to create the a new application with booking type as diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/AppointmentServiceImpl.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/AppointmentServiceImpl.java index bfdf789d881..4c8d37c5276 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/AppointmentServiceImpl.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/AppointmentServiceImpl.java @@ -6,12 +6,14 @@ import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.ArrayList; +import java.util.Collection; import java.util.List; import org.apache.commons.lang3.exception.ExceptionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; @@ -25,6 +27,7 @@ import io.mosip.preregistration.application.exception.AppointmentExecption; import io.mosip.preregistration.application.exception.RecordNotFoundException; import io.mosip.preregistration.application.repository.ApplicationRepostiory; +import io.mosip.preregistration.application.repository.DocumentDAO; import io.mosip.preregistration.application.service.util.AppointmentUtil; import io.mosip.preregistration.booking.dto.AvailabilityDto; import io.mosip.preregistration.booking.dto.BookingRequestDTO; @@ -63,7 +66,7 @@ public class AppointmentServiceImpl implements AppointmentService { */ @Autowired AnonymousProfileUtil anonymousProfileUtil; - + @Value("${version}") private String version; @@ -87,6 +90,9 @@ public class AppointmentServiceImpl implements AppointmentService { @Autowired private ApplicationRepostiory applicationRepostiory; + + @Autowired + private DocumentDAO documentDAO; public AuthUserDetails authUserDetails() { return (AuthUserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); @@ -122,16 +128,54 @@ public MainResponseDTO getAppointmentDetails(String preR .setResponsetime(DateTimeFormatter.ofPattern(mosipDateTimeFormat).format(LocalDateTime.now())); try { log.info("In appointment service to get appointment details"); + //first check if the applicationId/preRegistrationId belongs to the logged in user or not + userValidation(preRegistrationId); BookingRegistrationDTO bookingrespose = appointmentUtils.fetchAppointmentDetails(preRegistrationId); appointmentDetailsResponse.setResponse(bookingrespose); - + } catch (AppointmentExecption ex) { log.error("Exception has occurred while fetching appointment details:", ex); appointmentDetailsResponse.setErrors(setErrors(ex)); } return appointmentDetailsResponse; } - + + private void userValidation(String applicationId) { + String authUserId = authUserDetails().getUserId(); + List list = listAuth(authUserDetails().getAuthorities()); + if (list.contains("ROLE_INDIVIDUAL")) { + log.info("sessionId", "idType", "id", "In userValidation method of AppointmentService with applicationId " + + applicationId + " and userID " + authUserId); + ApplicationEntity applicationEntity = null; + try { + applicationEntity = applicationRepostiory.findByApplicationId(applicationId); + } catch (Exception ex) { + log.error("Invaid applicationId/Not Record Found for the ID", applicationId); + throw new AppointmentExecption(ApplicationErrorCodes.PRG_APP_013.getCode(), + ApplicationErrorMessages.NO_RECORD_FOUND.getMessage()); + } + if (applicationEntity != null && !authUserId.trim().equals(applicationEntity.getCrBy().trim())) { + throw new AppointmentExecption(AppointmentErrorCodes.INVALID_APP_ID_FOR_USER.getCode(), + AppointmentErrorCodes.INVALID_APP_ID_FOR_USER.getMessage()); + } + } + } + + /** + * This method is used to get the list of authorization role + * + * @param collection + * @return list of auth role + */ + private List listAuth(Collection collection) { + List listWORole = new ArrayList<>(); + for (GrantedAuthority authority : collection) { + String s = authority.getAuthority(); + listWORole.add(s); + } + return listWORole; + } + @Override public MainResponseDTO makeAppointment(MainRequestDTO bookingDTO, String preRegistrationId, String userAgent) { @@ -142,6 +186,8 @@ public MainResponseDTO makeAppointment(MainRequestDTO deleteBooking(String preRegistrationId) deleteResponse.setResponsetime(DateTimeFormatter.ofPattern(mosipDateTimeFormat).format(LocalDateTime.now())); try { log.info("Deleting appointment for ID:{}", preRegistrationId); + //first check if the applicationId/preRegistrationId belongs to the logged in user or not + userValidation(preRegistrationId); DeleteBookingDTO res = appointmentUtils.deleteBooking(preRegistrationId); if (res != null && (res.getDeletedBy() != null && res.getDeletedDateTime() != null && res.getPreRegistrationId() != null)) { @@ -196,6 +244,8 @@ public MainResponseDTO deleteBookingAndUpdateApplicationStatus deleteResponse.setResponsetime(DateTimeFormatter.ofPattern(mosipDateTimeFormat).format(LocalDateTime.now())); try { log.info("Deleting appointment for ID:{}", preRegistrationId); + //first check if the applicationId/preRegistrationId belongs to the logged in user or not + userValidation(preRegistrationId); DeleteBookingDTO res = appointmentUtils.deleteBooking(preRegistrationId); if (res != null && (res.getDeletedBy() != null && res.getDeletedDateTime() != null && res.getPreRegistrationId() != null)) { @@ -225,8 +275,9 @@ public MainResponseDTO cancelAppointment(String preReg cancelResponse.setResponsetime(DateTimeFormatter.ofPattern(mosipDateTimeFormat).format(LocalDateTime.now())); try { log.info("Cancelling appointment for ID:{}", preRegistrationId); + //first check if the applicationId/preRegistrationId belongs to the logged in user or not + userValidation(preRegistrationId); CancelBookingResponseDTO response = appointmentUtils.cancelAppointment(preRegistrationId); - if (response != null && (response.getMessage() != null && response.getTransactionId() != null)) { log.info("In appointment cancelled successfully , updating the applications and demographic tables", preRegistrationId); @@ -255,6 +306,11 @@ public MainResponseDTO makeMultiAppointment(MainRequestDTO { + String preRegistrationId = action.getPreRegistrationId(); + userValidation(preRegistrationId); + }); BookingStatus bookingStatus = appointmentUtils.multiAppointmentBooking(bookingRequest); if (bookingStatus != null && bookingStatus.getBookingStatusResponse().size() > 0) { @@ -288,9 +344,13 @@ private void createAnonymousProfile(String userAgent, String preRegistrationId, // profile BrowserInfoDTO browserInfo = new BrowserInfoDTO(); browserInfo.setBrowserName(userAgent); - DemographicResponseDTO demographicData = demographicService.getDemographicData(preRegistrationId, false) + DemographicResponseDTO demographicData = demographicService.getDemographicData(preRegistrationId) .getResponse(); - DocumentsMetaData documentsData = documentService.getAllDocumentForPreId(preRegistrationId).getResponse(); + DocumentsMetaData documentsData = null; + Boolean documentExists = documentDAO.existsByPreregId(preRegistrationId); + if (documentExists) { + documentsData = documentService.getAllDocumentForPreId(preRegistrationId).getResponse(); + } BookingRegistrationDTO bookingData = new BookingRegistrationDTO(); bookingData.setRegistrationCenterId(bookRequest.getRegistrationCenterId()); bookingData.setRegDate(bookRequest.getRegDate()); diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/DemographicService.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/DemographicService.java index da5dd1f68da..0e5a9d733ed 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/DemographicService.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/DemographicService.java @@ -1,4 +1,3 @@ - package io.mosip.preregistration.application.service; import java.io.IOException; @@ -13,8 +12,6 @@ import java.util.Set; import java.util.stream.Collectors; -import javax.annotation.PostConstruct; - import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; @@ -49,7 +46,6 @@ import io.mosip.preregistration.application.dto.ApplicantTypeRequestDTO; import io.mosip.preregistration.application.dto.ApplicantValidDocumentDto; import io.mosip.preregistration.application.dto.ApplicationInfoMetadataDTO; -import io.mosip.preregistration.application.dto.DeleteApplicationDTO; import io.mosip.preregistration.application.dto.DeletePreRegistartionDTO; import io.mosip.preregistration.application.dto.DemographicCreateResponseDTO; import io.mosip.preregistration.application.dto.DemographicMetadataDTO; @@ -69,7 +65,6 @@ import io.mosip.preregistration.application.exception.RecordNotFoundException; import io.mosip.preregistration.application.exception.RecordNotFoundForPreIdsException; import io.mosip.preregistration.application.exception.util.DemographicExceptionCatcher; -import io.mosip.preregistration.application.repository.ApplicationRepostiory; import io.mosip.preregistration.application.repository.DemographicRepository; import io.mosip.preregistration.application.service.util.DemographicServiceUtil; import io.mosip.preregistration.core.code.AuditLogVariables; @@ -781,7 +776,7 @@ public MainResponseDTO deleteIndividual(String preregI * getDemographicData(java.lang.String) */ @Override - public MainResponseDTO getDemographicData(String preRegId, Boolean isBatch) { + public MainResponseDTO getDemographicData(String preRegId) { log.info("sessionId", "idType", "id", "In getDemographicData method of pre-registration service "); MainResponseDTO response = new MainResponseDTO<>(); Map requestParamMap = new HashMap<>(); @@ -797,7 +792,7 @@ public MainResponseDTO getDemographicData(String preRegI List list = listAuth(authUserDetails().getAuthorities()); log.info("sessionId", "idType", "id", "In getDemographicData method of pre-registration service with list " + list); - if (list.contains("ROLE_INDIVIDUAL") && !isBatch) { + if (list.contains("ROLE_INDIVIDUAL")) { userValidation(authUserDetails().getUserId(), demographicEntity.getCreatedBy()); } String hashString = HashUtill.hashUtill(demographicEntity.getApplicantDetailJson()); @@ -882,6 +877,10 @@ public void statusCheck(DemographicEntity demographicEntity, String status, Stri if (demographicEntity != null) { if (serviceUtil.isStatusValid(status)) { demographicEntity.setStatusCode(StatusCodes.valueOf(status.toUpperCase()).getCode()); + List list = listAuth(authUserDetails().getAuthorities()); + if (list.contains("ROLE_INDIVIDUAL")) { + userValidation(authUserDetails().getUserId(), demographicEntity.getCreatedBy()); + } if (status.toLowerCase().equals(StatusCodes.PENDING_APPOINTMENT.getCode().toLowerCase())) { try { if (isupdateStausToPendingAppointmentValid(demographicEntity)) { @@ -1209,7 +1208,7 @@ public MainResponseDTO getPregistrationInfo(String p ApplicationErrorMessages.INVALID_REQUEST_APPLICATION_ID.getMessage(), response); } log.info("In getPregistrationInfo method of DemographicService fetching demographic for prid {}", prid); - demographicResponse = getDemographicData(prid.trim(), false).getResponse(); + demographicResponse = getDemographicData(prid.trim()).getResponse(); applicationInfo.setDemographicResponse(demographicResponse); response.setResponse(applicationInfo); try { @@ -1230,4 +1229,4 @@ public MainResponseDTO getPregistrationInfo(String p } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/DemographicServiceIntf.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/DemographicServiceIntf.java index 1d528f944b9..955c451bc77 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/DemographicServiceIntf.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/DemographicServiceIntf.java @@ -78,11 +78,10 @@ MainResponseDTO updatePreRegistration(MainRequestD /** * This Method is used to retrieve the demographic * - * @param preRegId pass the preregId of individual - * @param isBatch true if batch job + * @param preRegId pass the preregId * @return response DemographicData of preRegId */ - MainResponseDTO getDemographicData(String preRegId, Boolean isBatch); + MainResponseDTO getDemographicData(String preRegId); /** * This Method is used to update status of particular preId diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/DocumentService.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/DocumentService.java index 7f2e1cd3a4a..67a274e2909 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/DocumentService.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/DocumentService.java @@ -11,6 +11,7 @@ import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.stream.Collectors; import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.IOUtils; @@ -218,7 +219,7 @@ public MainResponseDTO uploadDocument(MultipartFile file, S requiredRequestMap.put("id", uploadId); if (validationUtil.requestValidator(prepareRequestParamMap(docReqDto), requiredRequestMap)) { if (scanDocument) { - serviceUtil.isVirusScanSuccess(file); + serviceUtil.virusScanCheck(file); } if (serviceUtil.fileSizeCheck(file.getSize()) && serviceUtil.fileExtensionCheck(file)) { serviceUtil.isValidRequest(docReqDto.getRequest(), preRegistrationId); @@ -604,22 +605,27 @@ public MainResponseDTO deleteDocument(String document if (documnetDAO.deleteAllBydocumentId(documentId) > 0) { String key = documentEntity.getDocCatCode() + "_" + documentEntity.getDocumentId(); boolean isDeleted = objectStore.deleteObject(objectStoreAccountName, - documentEntity.getDemographicEntity().getPreRegistrationId(), null, null, key); - if (demographicResponse.getStatusCode().toLowerCase() - .equals(StatusCodes.PENDING_APPOINTMENT.getCode().toLowerCase())) { - log.info("check if mandatory document deleted"); + documentEntity.getDemographicEntity().getPreRegistrationId(), null, null, key); + + int countOfMandatoryDocs = serviceUtil.validMandatoryDocuments(documentEntity.getDemographicEntity()).size(); + String currentStatus = demographicResponse.getStatusCode(); + if (countOfMandatoryDocs > 0 && StatusCodes.PENDING_APPOINTMENT.getCode().equalsIgnoreCase(currentStatus)) { DemographicEntity demographicEntity = null; try { demographicEntity = documnetDAO.getDemographicEntityForPrid(preRegistrationId); } catch (DocumentNotFoundException ex) { - if (demographicResponse.getStatusCode().toLowerCase() - .equals(StatusCodes.PENDING_APPOINTMENT.getCode().toLowerCase()) - && serviceUtil.validMandatoryDocuments(documentEntity.getDemographicEntity()) - .size() > 0) { - serviceUtil.updateApplicationStatusToIncomplete(documentEntity.getDemographicEntity()); - } + //if the last document is deleted & there are no mandatory documents + //then set the status from Pending Appointment to Application Incomplete + serviceUtil.updateApplicationStatusToIncomplete(documentEntity.getDemographicEntity()); } - if (isMandatoryDocumentDeleted(demographicEntity)) { + if (demographicEntity == null) { + //if the last document is deleted & there are no mandatory documents + //then set the status from Pending Appointment to Application Incomplete + serviceUtil.updateApplicationStatusToIncomplete(documentEntity.getDemographicEntity()); + } + else if (isMandatoryDocumentDeleted(demographicEntity, documentEntity.getDocCatCode())) { + //if one of the mandatory doc is deleted + // then set the status from Pending Appointment to Application Incomplete log.info("mandatory document deleted"); serviceUtil.updateApplicationStatusToIncomplete(demographicEntity); } @@ -664,11 +670,17 @@ public MainResponseDTO deleteDocument(String document return delResponseDto; } - private boolean isMandatoryDocumentDeleted(DemographicEntity demographicEntity) throws ParseException { - boolean isDeleted = serviceUtil.isMandatoryDocumentDeleted(demographicEntity); - log.info("Mandatory document Deleted {}", isDeleted); - return isDeleted; - + private boolean isMandatoryDocumentDeleted(DemographicEntity demographicEntity, String docCateCodeOfDoc) throws ParseException { + + List mandatoryDocs = serviceUtil.validMandatoryDocuments(demographicEntity); + log.info("mandatory documents for user {} ----> {}", demographicEntity.getPreRegistrationId(), mandatoryDocs); + List filteredMandatoryDocs = mandatoryDocs.stream().filter(doc -> doc.equalsIgnoreCase(docCateCodeOfDoc)) + .collect(Collectors.toList()); + if (filteredMandatoryDocs.size() > 0) { + log.info("Mandatory document Deleted {}", docCateCodeOfDoc); + return true; + } + return false; } /* diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/GenerateQRcodeService.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/GenerateQRcodeService.java index c44e5f7accd..9e75c7901f6 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/GenerateQRcodeService.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/GenerateQRcodeService.java @@ -3,7 +3,7 @@ import java.util.HashMap; import java.util.Map; -import javax.annotation.PostConstruct; +import jakarta.annotation.PostConstruct; import org.apache.commons.lang3.exception.ExceptionUtils; import org.springframework.beans.factory.annotation.Autowired; diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/LoginService.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/LoginService.java index 147e0b8944c..72f12152883 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/LoginService.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/LoginService.java @@ -16,12 +16,12 @@ import java.util.List; import java.util.Map; import java.util.Objects; -import java.util.Properties; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.cache.annotation.Cacheable; +import org.springframework.core.env.Environment; import org.springframework.stereotype.Service; import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.client.HttpServerErrorException; @@ -40,7 +40,6 @@ import io.mosip.preregistration.application.dto.User; import io.mosip.preregistration.application.errorcodes.LoginErrorCodes; import io.mosip.preregistration.application.errorcodes.LoginErrorMessages; -import io.mosip.preregistration.application.exception.ConfigFileNotFoundException; import io.mosip.preregistration.application.exception.InvalidOtpOrUseridException; import io.mosip.preregistration.application.exception.LoginServiceException; import io.mosip.preregistration.application.exception.PreRegLoginException; @@ -70,11 +69,6 @@ public class LoginService { @Autowired private LoginCommonUtil loginCommonUtil; - @Value("${global.config.file}") - private String globalFileName; - - @Value("${pre.reg.config.file}") - private String preRegFileName; @Value("${ui.config.params}") private String uiConfigParams; @@ -131,16 +125,8 @@ public class LoginService { @Autowired OTPManager otpmanager; - private String globalConfig; - private String preregConfig; - - public void setupLoginService() { - log.info("In setupLoginService method of login service"); - globalConfig = loginCommonUtil.getConfig(globalFileName); - preregConfig = loginCommonUtil.getConfig(preRegFileName); - log.info("Fetched the globalConfig and preRegconfig from config server"); - } - + @Autowired + private Environment env; /** * It will fetch otp from Kernel auth service and send to the userId provided * @@ -149,7 +135,7 @@ public void setupLoginService() { */ @SuppressWarnings("unchecked") public MainResponseDTO sendOTP(MainRequestDTO userOtpRequest, String language) { - MainResponseDTO response = null; + MainResponseDTO response = new MainResponseDTO<>(); String userid = null; boolean isSuccess = false; @@ -335,12 +321,11 @@ public MainResponseDTO invalidateToken(String token) { response.setResponse("Loggedout successfully"); isSuccess = true; } catch (JwtException e) { - log.error("Failed logout:", e); + log.error("JwtException, logout failed :", e); MainResponseDTO res = new MainResponseDTO(); res.setResponse("Failed to invalidate the auth token"); - new LoginExceptionCatcher().handle(e, null, res); + new LoginExceptionCatcher().handle(e, "invalidateToken", res); } catch (Exception ex) { - ex.printStackTrace(); log.error("In call invalidateToken method of login service- ", ex); new LoginExceptionCatcher().handle(ex, "invalidateToken", response); } finally { @@ -402,54 +387,20 @@ public MainResponseDTO> getConfig() { MainResponseDTO> res = new MainResponseDTO<>(); res.setId(configId); res.setVersion(version); - List reqParams = new ArrayList<>(); - Map configParams = new HashMap<>(); + Map responseParamsMap = new HashMap<>(); try { + loginCommonUtil.validateLanguageProperties(responseParamsMap); String[] uiParams = uiConfigParams.split(","); - for (int i = 0; i < uiParams.length; i++) { - reqParams.add(uiParams[i]); - } - if (globalFileName != null && preRegFileName != null) { - - Properties prop1 = loginCommonUtil.parsePropertiesString(globalConfig); - Properties prop2 = loginCommonUtil.parsePropertiesString(preregConfig); - loginCommonUtil.getConfigParams(prop1, configParams, reqParams); - loginCommonUtil.getConfigParams(prop2, configParams, reqParams); - loginCommonUtil.validateLanguageProperties(configParams); - - } else { - throw new ConfigFileNotFoundException(LoginErrorCodes.PRG_AUTH_012.getCode(), - LoginErrorMessages.CONFIG_FILE_NOT_FOUND_EXCEPTION.getMessage(), res); - } - + for (String uiParam: uiParams) { + if (env.getProperty(uiParam) != null) { + responseParamsMap.put(uiParam, env.getProperty(uiParam)); + } + } } catch (Exception ex) { log.error("In login service of getConfig ", ex); new LoginExceptionCatcher().handle(ex, "config", res); } - res.setResponse(configParams); - res.setResponsetime(GenericUtil.getCurrentResponseTime()); - return res; - } - - /** - * This will refresh UI related configurations - * - * @return response - */ - public MainResponseDTO refreshConfig() { - log.info("In login service of refreshConfig "); - MainResponseDTO res = new MainResponseDTO<>(); - res.setId(configId); - res.setVersion(version); - - try { - globalConfig = loginCommonUtil.getConfig(globalFileName); - preregConfig = loginCommonUtil.getConfig(preRegFileName); - } catch (HttpServerErrorException | HttpClientErrorException ex) { - log.error("In login service of refreshConfig ", ex); - new LoginExceptionCatcher().handle(ex, "refreshConfig", res); - } - res.setResponse("success"); + res.setResponse(responseParamsMap); res.setResponsetime(GenericUtil.getCurrentResponseTime()); return res; } @@ -498,7 +449,7 @@ public String getLogoutToken(String token) { log.error("Failed to generate logout token:", e); MainResponseDTO res = new MainResponseDTO(); res.setResponse("Failed to generate logout token"); - new LoginExceptionCatcher().handle(e, null, res); + new LoginExceptionCatcher().handle(e, "invalidateToken", res); } return this.generateJWTToken(userId, issuer, null); } diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/NotificationService.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/NotificationService.java index 29948c9c428..ad2febfd238 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/NotificationService.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/NotificationService.java @@ -8,7 +8,7 @@ import java.util.List; import java.util.Map; -import javax.annotation.PostConstruct; +import jakarta.annotation.PostConstruct; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; @@ -39,6 +39,7 @@ import io.mosip.preregistration.application.exception.util.NotificationExceptionCatcher; import io.mosip.preregistration.application.service.util.NotificationServiceUtil; import io.mosip.preregistration.core.code.AuditLogVariables; +import io.mosip.preregistration.core.code.BookingTypeCodes; import io.mosip.preregistration.core.code.EventId; import io.mosip.preregistration.core.code.EventName; import io.mosip.preregistration.core.code.EventType; @@ -49,6 +50,7 @@ import io.mosip.preregistration.core.common.dto.MainRequestDTO; import io.mosip.preregistration.core.common.dto.MainResponseDTO; import io.mosip.preregistration.core.common.dto.NotificationDTO; +import io.mosip.preregistration.core.common.entity.ApplicationEntity; import io.mosip.preregistration.core.config.LoggerConfiguration; import io.mosip.preregistration.core.util.AuditLogUtil; import io.mosip.preregistration.core.util.NotificationUtil; @@ -79,7 +81,10 @@ public class NotificationService { @Autowired private DemographicServiceIntf demographicServiceIntf; - + + @Autowired + private ApplicationServiceIntf applicationServiceIntf; + /** * Reference for ${appointmentResourse.url} from property file */ @@ -177,14 +182,17 @@ public MainResponseDTO sendNotification(String jsonStri NotificationDTO notificationDto = notificationReqDTO.getRequest(); if (validationUtil.requestValidator(validationUtil.prepareRequestMap(notificationReqDTO), requiredRequestMap)) { - MainResponseDTO demoDetail = notificationDtoValidation(notificationDto); + MainResponseDTO appEntity = applicationServiceIntf.getApplicationInfo(notificationDto.getPreRegistrationId()); + String bookingType = appEntity.getResponse().getBookingType(); + MainResponseDTO demoDetail = notificationDtoValidation(bookingType, notificationDto); if (notificationDto.isAdditionalRecipient()) { log.info("sessionId", "idType", "id", "In notification service of sendNotification if additionalRecipient is" + notificationDto.isAdditionalRecipient()); if (notificationDto.getMobNum() != null && !notificationDto.getMobNum().isEmpty()) { if (validationUtil.phoneValidator(notificationDto.getMobNum())) { - notificationUtil.notify(NotificationRequestCodes.SMS.getCode(), notificationDto, file); + notificationUtil.notify(NotificationRequestCodes.SMS.getCode(), notificationDto, file, + appEntity.getResponse().getBookingType()); } else { throw new MandatoryFieldException(NotificationErrorCodes.PRG_PAM_ACK_007.getCode(), NotificationErrorMessages.PHONE_VALIDATION_EXCEPTION.getMessage(), response); @@ -192,7 +200,8 @@ public MainResponseDTO sendNotification(String jsonStri } if (notificationDto.getEmailID() != null && !notificationDto.getEmailID().isEmpty()) { if (validationUtil.emailValidator(notificationDto.getEmailID())) { - notificationUtil.notify(NotificationRequestCodes.EMAIL.getCode(), notificationDto, file); + notificationUtil.notify(NotificationRequestCodes.EMAIL.getCode(), notificationDto, file, + appEntity.getResponse().getBookingType()); } else { throw new MandatoryFieldException(NotificationErrorCodes.PRG_PAM_ACK_006.getCode(), NotificationErrorMessages.EMAIL_VALIDATION_EXCEPTION.getMessage(), response); @@ -212,7 +221,7 @@ public MainResponseDTO sendNotification(String jsonStri log.info("sessionId", "idType", "id", "In notification service of sendNotification if additionalRecipient is" + notificationDto.isAdditionalRecipient()); - resp = getDemographicDetailsWithPreId(demoDetail, notificationDto, langCode, file); + resp = getDemographicDetailsWithPreId(bookingType, demoDetail, appEntity, notificationDto, langCode, file); notificationResponse.setMessage(resp); } } @@ -253,45 +262,91 @@ public MainResponseDTO sendNotification(String jsonStri * @return * @throws IOException */ - private String getDemographicDetailsWithPreId(MainResponseDTO responseEntity, - NotificationDTO notificationDto, String langCode, MultipartFile file) throws IOException { + private String getDemographicDetailsWithPreId(String bookingType, MainResponseDTO responseEntity, + MainResponseDTO appEntity, NotificationDTO notificationDto, String langCode, MultipartFile file) throws IOException { try { - ObjectMapper objectMapper = new ObjectMapper(); - objectMapper = JsonMapper.builder().addModule(new AfterburnerModule()).build(); - objectMapper.registerModule(new JavaTimeModule()); - - JsonNode responseNode = objectMapper - .readTree(responseEntity.getResponse().getDemographicDetails().toJSONString()); - - responseNode = responseNode.get(identity); - - JsonNode arrayNode = responseNode.get(fullName); List> langaueNamePairs = new ArrayList>(); - KeyValuePairDto langaueNamePair = null; - if (arrayNode.isArray()) { - for (JsonNode jsonNode : arrayNode) { - langaueNamePair = new KeyValuePairDto(); - langaueNamePair.setKey(jsonNode.get("language").asText().trim()); - langaueNamePair.setValue(jsonNode.get("value").asText().trim()); - langaueNamePairs.add(langaueNamePair); - } - } - - notificationDto.setFullName(langaueNamePairs); - if (responseNode.get(email) != null) { - String emailId = responseNode.get(email).asText(); - notificationDto.setEmailID(emailId); - notificationUtil.notify(NotificationRequestCodes.EMAIL.getCode(), notificationDto, file); - } - if (responseNode.get(phone) != null) { - String phoneNumber = responseNode.get(phone).asText(); - notificationDto.setMobNum(phoneNumber); - notificationUtil.notify(NotificationRequestCodes.SMS.getCode(), notificationDto, file); + if (BookingTypeCodes.NEW_PREREGISTRATION.toString().equals(bookingType)) { + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper = JsonMapper.builder().addModule(new AfterburnerModule()).build(); + objectMapper.registerModule(new JavaTimeModule()); - } - if (responseNode.get(email) == null && responseNode.get(phone) == null) { - log.info("sessionId", "idType", "id", - "In notification service of sendNotification failed to send Email and sms request "); + JsonNode responseNode = objectMapper + .readTree(responseEntity.getResponse().getDemographicDetails().toJSONString()); + + responseNode = responseNode.get(identity); + + JsonNode arrayNode = responseNode.get(fullName); + KeyValuePairDto langaueNamePair = null; + if (arrayNode.isArray()) { + for (JsonNode jsonNode : arrayNode) { + langaueNamePair = new KeyValuePairDto(); + langaueNamePair.setKey(jsonNode.get("language").asText().trim()); + langaueNamePair.setValue(jsonNode.get("value").asText().trim()); + langaueNamePairs.add(langaueNamePair); + } + } + notificationDto.setFullName(langaueNamePairs); + if (responseNode.get(email) != null) { + String emailId = responseNode.get(email).asText(); + notificationDto.setEmailID(emailId); + notificationUtil.notify(NotificationRequestCodes.EMAIL.getCode(), notificationDto, file, + appEntity.getResponse().getBookingType()); + } + if (responseNode.get(phone) != null) { + String phoneNumber = responseNode.get(phone).asText(); + notificationDto.setMobNum(phoneNumber); + notificationUtil.notify(NotificationRequestCodes.SMS.getCode(), notificationDto, file, + appEntity.getResponse().getBookingType()); + + } + if (responseNode.get(email) == null && responseNode.get(phone) == null) { + log.info("sessionId", "idType", "id", + "In notification service of sendNotification failed to send Email and sms request "); + } + } else { + //handle notifications for other booking types like LOST_FORGOTTEN_UIN, MISCELLANEOUS_PURPOSE etc + if (notificationDto.getName() == null) { + //in case name is null, set applicationId as name + String applicationId = appEntity.getResponse().getApplicationId(); + notificationDto.setName(applicationId); + } + KeyValuePairDto langaueNamePair = null; + langaueNamePair = new KeyValuePairDto(); + langaueNamePair.setKey(notificationDto.getLanguageCode()); + langaueNamePair.setValue(notificationDto.getName()); + langaueNamePairs.add(langaueNamePair); + notificationDto.setFullName(langaueNamePairs); + if (notificationDto.getEmailID() != null) { + notificationUtil.notify(NotificationRequestCodes.EMAIL.getCode(), notificationDto, file, + appEntity.getResponse().getBookingType()); + } + if (notificationDto.getMobNum() != null) { + notificationUtil.notify(NotificationRequestCodes.SMS.getCode(), notificationDto, file, + appEntity.getResponse().getBookingType()); + } + if (notificationDto.getEmailID() == null && notificationDto.getMobNum() == null ) { + //in case both email id and mob num are null, send details to contact info + String createdById = appEntity.getResponse().getContactInfo(); + if (createdById != null) { + if (validationUtil.emailValidator(createdById)) { + notificationDto.setEmailID(createdById); + notificationUtil.notify(NotificationRequestCodes.EMAIL.getCode(), notificationDto, file, + appEntity.getResponse().getBookingType()); + } + else if (validationUtil.phoneValidator(createdById)) { + notificationDto.setMobNum(createdById); + notificationUtil.notify(NotificationRequestCodes.SMS.getCode(), notificationDto, file, + appEntity.getResponse().getBookingType()); + } else { + log.info("sessionId", "idType", "id", + "In notification service of sendNotification failed to send Email and sms request "); + } + } else { + log.info("sessionId", "idType", "id", + "In notification service of sendNotification failed to send Email and sms request "); + } + } } return NotificationRequestCodes.MESSAGE.getCode(); } catch (RestClientException ex) { @@ -327,9 +382,12 @@ public void setAuditValues(String eventId, String eventName, String eventType, S auditLogUtil.saveAuditDetails(auditRequestDto); } - public MainResponseDTO notificationDtoValidation(NotificationDTO dto) + public MainResponseDTO notificationDtoValidation(String bookingType, NotificationDTO dto) throws IOException, ParseException { - MainResponseDTO demoDetail = getDemographicDetails(dto); + MainResponseDTO demoDetail = null; + if (BookingTypeCodes.NEW_PREREGISTRATION.toString().equals(bookingType)) { + demoDetail = getDemographicDetails(dto); + } if (!dto.getIsBatch()) { BookingRegistrationDTO bookingDTO = getAppointmentDetailsRestService(dto.getPreRegistrationId()); String registrationCenterId = bookingDTO.getRegistrationCenterId(); @@ -340,7 +398,7 @@ public MainResponseDTO notificationDtoValidation(Notific if (bookingDTO.getRegDate().equals(dto.getAppointmentDate())) { if (dto.getAppointmentTime() != null && !dto.getAppointmentTime().trim().equals("")) { - if (!time.equals(dto.getAppointmentTime())) { + if (!time.equalsIgnoreCase(dto.getAppointmentTime())) { throw new MandatoryFieldException(NotificationErrorCodes.PRG_PAM_ACK_010.getCode(), NotificationErrorMessages.APPOINTMENT_TIME_NOT_CORRECT.getMessage(), response); } @@ -378,7 +436,7 @@ public MainResponseDTO notificationDtoValidation(Notific public MainResponseDTO getDemographicDetails(NotificationDTO notificationDto) throws IOException, ParseException { MainResponseDTO responseEntity = demographicServiceIntf - .getDemographicData(notificationDto.getPreRegistrationId(), notificationDto.getIsBatch()); + .getDemographicData(notificationDto.getPreRegistrationId()); ObjectMapper objectMapper = new ObjectMapper(); objectMapper = JsonMapper.builder().addModule(new AfterburnerModule()).build(); objectMapper.registerModule(new JavaTimeModule()); diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/OTPManager.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/OTPManager.java index 249f868ee5d..5bc53dd8d45 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/OTPManager.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/OTPManager.java @@ -1,12 +1,14 @@ package io.mosip.preregistration.application.service; import java.io.IOException; +import java.security.NoSuchAlgorithmException; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.Arrays; import java.util.HashMap; import java.util.Map; +import java.util.Objects; import java.util.UUID; import javax.xml.bind.DatatypeConverter; @@ -27,7 +29,7 @@ import io.mosip.kernel.core.http.ResponseWrapper; import io.mosip.kernel.core.logger.spi.Logger; import io.mosip.kernel.core.util.DateUtils; -import io.mosip.kernel.core.util.HMACUtils; +import io.mosip.kernel.core.util.HMACUtils2; import io.mosip.preregistration.application.constant.PreRegLoginConstant; import io.mosip.preregistration.application.constant.PreRegLoginErrorConstants; import io.mosip.preregistration.application.dto.OTPGenerateRequestDTO; @@ -38,7 +40,7 @@ import io.mosip.preregistration.application.repository.OtpTxnRepository; import io.mosip.preregistration.application.service.util.NotificationServiceUtil; import io.mosip.preregistration.core.common.dto.MainRequestDTO; -import io.mosip.preregistration.core.config.LoggerConfiguration;; +import io.mosip.preregistration.core.config.LoggerConfiguration; /** * OTPManager handling with OTP-Generation and OTP-Validation. @@ -56,6 +58,9 @@ public class OTPManager { /** The Constant USER_BLOCKED. */ private static final String USER_BLOCKED = "USER_BLOCKED"; + + /** The Constant OTP_ATTEMPT_EXCEEDED. */ + private static final String OTP_ATTEMPT_EXCEEDED = "OTP_ATTEMPT_EXCEEDED"; @Value("${secretKey}") private String secretKey; @@ -68,6 +73,9 @@ public class OTPManager { @Value("${sendOtp.resource.url}") private String sendOtpResourceUrl; + + @Value("${pre.reg.login.otp.validation-attempt-threshold}") + private int otpValidationThreshold; @Value("${appId}") private String appId; @@ -80,7 +88,7 @@ public class OTPManager { @Autowired @Qualifier("selfTokenRestTemplate") RestTemplate restTemplate; - + @Autowired private OtpTxnRepository otpRepo; @@ -121,7 +129,7 @@ public boolean sendOtp(MainRequestDTO requestDTO, String channelT (userId + environment.getProperty(PreRegLoginConstant.KEY_SPLITTER) + otp).getBytes()); if (otpRepo.existsByOtpHashAndStatusCode(otpHash, PreRegLoginConstant.ACTIVE_STATUS)) { - OtpTransaction otpTxn = otpRepo.findByOtpHashAndStatusCode(otpHash, PreRegLoginConstant.ACTIVE_STATUS); + OtpTransaction otpTxn = otpRepo.findTopByOtpHashAndStatusCode(otpHash, PreRegLoginConstant.ACTIVE_STATUS); otpTxn.setOtpHash(otpHash); otpTxn.setUpdBy(environment.getProperty(PreRegLoginConstant.MOSIP_PRE_REG_CLIENTID)); otpTxn.setUpdDTimes(DateUtils.getUTCCurrentDateTime()); @@ -184,7 +192,7 @@ private String generateOTP(MainRequestDTO requestDTO) throws PreR HttpHeaders headers1 = new HttpHeaders(); headers1.setAccept(Arrays.asList(MediaType.APPLICATION_JSON)); - headers1.setContentType(MediaType.APPLICATION_JSON_UTF8); + headers1.setContentType(MediaType.APPLICATION_JSON); headers1.add("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"); HttpEntity entity1 = new HttpEntity(otpRequestDTO, headers1); @@ -192,13 +200,21 @@ private String generateOTP(MainRequestDTO requestDTO) throws PreR .exchange(environment.getProperty("otp-generate.rest.uri"), HttpMethod.POST, entity1, ResponseWrapper.class) .getBody(); - if (response != null && response.getResponse().get("status").equals(USER_BLOCKED)) { - logger.error(PreRegLoginConstant.SESSION_ID, this.getClass().getSimpleName(), - PreRegLoginErrorConstants.BLOCKED_OTP_VALIDATE.getErrorCode(), USER_BLOCKED); - throw new PreRegLoginException(PreRegLoginErrorConstants.BLOCKED_OTP_VALIDATE.getErrorCode(), - PreRegLoginErrorConstants.BLOCKED_OTP_VALIDATE.getErrorMessage()); + String otp = null; + if (response != null) { + Map res = response.getResponse(); + if (res != null) { + if (res.get("status").equals(USER_BLOCKED)) { + logger.error(PreRegLoginConstant.SESSION_ID, this.getClass().getSimpleName(), + PreRegLoginErrorConstants.BLOCKED_OTP_VALIDATE.getErrorCode(), USER_BLOCKED); + throw new PreRegLoginException(PreRegLoginErrorConstants.BLOCKED_OTP_VALIDATE.getErrorCode(), + PreRegLoginErrorConstants.BLOCKED_OTP_VALIDATE.getErrorMessage()); + } else { + otp = res.get(OTP); + } + } } - return response.getResponse().get(OTP); + return otp; } catch (PreRegLoginException e) { logger.error(PreRegLoginConstant.SESSION_ID, this.getClass().getSimpleName(), "generateOTP", e.getMessage()); @@ -224,12 +240,30 @@ private String generateOTP(MainRequestDTO requestDTO) throws PreR public boolean validateOtp(String otp, String userId) throws PreRegLoginException { logger.info("sessionId", "idType", "id", "In validateOtp method of otpmanager service "); String otpHash; + String refId = hash(userId); otpHash = digestAsPlainText( (userId + environment.getProperty(PreRegLoginConstant.KEY_SPLITTER) + otp).getBytes()); - - if (!otpRepo.existsByOtpHashAndStatusCode(otpHash, PreRegLoginConstant.ACTIVE_STATUS)) + if (!otpRepo.existsByOtpHashAndStatusCode(otpHash, PreRegLoginConstant.ACTIVE_STATUS)) { + OtpTransaction otpTn = otpRepo.findByRefIdAndStatusCode(refId, PreRegLoginConstant.ACTIVE_STATUS); + if (otpTn.getValidationRetryCount() == null) { + otpTn.setValidationRetryCount(1); + } else { + int otpCount = 0; + otpCount = otpTn.getValidationRetryCount() + 1; + otpTn.setValidationRetryCount(otpCount); + } + if (otpTn.getValidationRetryCount() > otpValidationThreshold) { + otpTn.setStatusCode(PreRegLoginConstant.USED_STATUS); + otpRepo.save(otpTn); + logger.error(PreRegLoginConstant.SESSION_ID, this.getClass().getSimpleName(), + PreRegLoginErrorConstants.OTP_ATTEMPT_EXCEEDED.getErrorCode(), OTP_ATTEMPT_EXCEEDED); + throw new PreRegLoginException(PreRegLoginErrorConstants.OTP_ATTEMPT_EXCEEDED.getErrorCode(), + PreRegLoginErrorConstants.OTP_ATTEMPT_EXCEEDED.getErrorMessage()); + } + otpRepo.save(otpTn); return false; - OtpTransaction otpTxn = otpRepo.findByOtpHashAndStatusCode(otpHash, PreRegLoginConstant.ACTIVE_STATUS); + } + OtpTransaction otpTxn = otpRepo.findTopByOtpHashAndStatusCode(otpHash, PreRegLoginConstant.ACTIVE_STATUS); otpTxn.setStatusCode(PreRegLoginConstant.USED_STATUS); otpRepo.save(otpTxn); if (!(otpTxn.getExpiryDtimes().isAfter(DateUtils.getUTCCurrentDateTime()))) { @@ -245,10 +279,14 @@ private static String digestAsPlainText(byte[] data) { return DatatypeConverter.printHexBinary(data).toUpperCase(); } - private String hash(String id) throws PreRegLoginException { - - return HMACUtils.digestAsPlainText(id.getBytes()); - - } - -} + private String hash(String id) throws PreRegLoginException { + String idHash = null; + try { + idHash = HMACUtils2.digestAsPlainText(id.getBytes()); + } catch (NoSuchAlgorithmException e) { + throw new PreRegLoginException(PreRegLoginErrorConstants.UNABLE_TO_PROCESS.getErrorCode(), e.getMessage()); + } + return idHash; + } + +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/ProxyMasterDataService.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/ProxyMasterDataService.java index a373a119aad..7b95c133a52 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/ProxyMasterDataService.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/ProxyMasterDataService.java @@ -1,6 +1,6 @@ package io.mosip.preregistration.application.service; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/TransliterationService.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/TransliterationService.java index 28843777429..51d1ad79698 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/TransliterationService.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/TransliterationService.java @@ -7,6 +7,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + +import io.mosip.kernel.core.logger.spi.Logger; +import io.mosip.preregistration.core.config.LoggerConfiguration; import io.mosip.kernel.core.transliteration.spi.Transliteration; import io.mosip.preregistration.application.dto.TransliterationRequestDTO; import io.mosip.preregistration.application.dto.TransliterationResponseDTO; @@ -14,7 +17,6 @@ import io.mosip.preregistration.application.errorcodes.TransliterationErrorMessage; import io.mosip.preregistration.application.exception.MandatoryFieldRequiredException; import io.mosip.preregistration.application.exception.UnSupportedLanguageException; -import io.mosip.preregistration.application.exception.util.TransliterationExceptionCatcher; import io.mosip.preregistration.application.service.util.TransliterationServiceUtil; import io.mosip.preregistration.core.common.dto.MainRequestDTO; import io.mosip.preregistration.core.common.dto.MainResponseDTO; @@ -30,6 +32,8 @@ @Service public class TransliterationService { + private Logger log = LoggerConfiguration.logConfig(TransliterationService.class); + /** * Autowired reference */ @@ -66,6 +70,7 @@ public MainResponseDTO translitratorService( TransliterationErrorMessage.INCORRECT_MANDATORY_FIELDS.getMessage(), responseDTO); } } catch (Exception e) { + log.error("Failed to transliterate >>", e); throw new UnSupportedLanguageException(TransliterationErrorCodes.PRG_TRL_APP_002.getCode(), TransliterationErrorMessage.UNSUPPORTED_LANGUAGE.getMessage(), responseDTO); } diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/util/AppointmentUtil.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/util/AppointmentUtil.java index 96ef772aea9..4db95530a54 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/util/AppointmentUtil.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/util/AppointmentUtil.java @@ -36,6 +36,10 @@ @Component public class AppointmentUtil { + private static final String PRE_REGISTRATION_ID = "preRegistrationId"; + + private static final String ERROR_TRACE = "Error trace {}"; + @Autowired private RestTemplate restTemplate; @@ -51,7 +55,7 @@ public class AppointmentUtil { private Logger log = LoggerConfiguration.logConfig(AppointmentUtil.class); public AvailabilityDto getSlotAvailablityByRegCenterId(String regCenterId) { - + MainResponseDTO response = new MainResponseDTO<>(); Map params = new LinkedHashMap<>(); params.put("registrationCenterId", regCenterId.trim()); @@ -59,7 +63,7 @@ public AvailabilityDto getSlotAvailablityByRegCenterId(String regCenterId) { .toUriString(); HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON_UTF8); + headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity entity = new HttpEntity<>(headers); @@ -70,33 +74,34 @@ public AvailabilityDto getSlotAvailablityByRegCenterId(String regCenterId) { responseEntity = restTemplate.exchange(constructedAvailablityUrl, HttpMethod.GET, entity, new ParameterizedTypeReference>() { }); - - if (responseEntity.getBody().getErrors() != null) { - - throw new AppointmentExecption(responseEntity.getBody().getErrors().get(0).getErrorCode(), - responseEntity.getBody().getErrors().get(0).getMessage()); + MainResponseDTO body = responseEntity.getBody(); + if (body != null) { + if (body.getErrors() != null && !body.getErrors().isEmpty()) { + throw new AppointmentExecption(body.getErrors().get(0).getErrorCode(), + body.getErrors().get(0).getMessage()); + } + response.setResponse(body.getResponse()); } - } catch (RestClientException ex) { log.error("Error while fetching availablity for regCenterID:{}", regCenterId); - log.error("Error trace {}", ExceptionUtils.getStackTrace(ex)); + log.error(ERROR_TRACE, ExceptionUtils.getStackTrace(ex)); throw new AppointmentExecption(AppointmentErrorCodes.FAILED_TO_FETCH_AVAILABLITY.getCode(), AppointmentErrorCodes.FAILED_TO_FETCH_AVAILABLITY.getMessage()); } - return responseEntity.getBody().getResponse(); + return response.getResponse(); } public BookingStatusDTO makeAppointment(MainRequestDTO bookingDTO, String preRegistrationId) { - + MainResponseDTO response = new MainResponseDTO<>(); Map params = new LinkedHashMap<>(); - params.put("preRegistrationId", preRegistrationId.trim()); + params.put(PRE_REGISTRATION_ID, preRegistrationId.trim()); String constructedAppointmentUrl = UriComponentsBuilder.fromHttpUrl(appointmentUrl).buildAndExpand(params) .toUriString(); HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON_UTF8); + headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity entity = new HttpEntity<>(bookingDTO, headers); @@ -109,26 +114,29 @@ public BookingStatusDTO makeAppointment(MainRequestDTO bookin new ParameterizedTypeReference>() { }); - if (responseEntity.getBody().getErrors() != null) { - - throw new AppointmentExecption(responseEntity.getBody().getErrors().get(0).getErrorCode(), - responseEntity.getBody().getErrors().get(0).getMessage()); + MainResponseDTO body = responseEntity.getBody(); + if (body != null) { + if (body.getErrors() != null && !body.getErrors().isEmpty()) { + throw new AppointmentExecption(body.getErrors().get(0).getErrorCode(), + body.getErrors().get(0).getMessage()); + } + response.setResponse(body.getResponse()); } } catch (RestClientException ex) { log.error("Error while booking an appointment for preRegistrationId:{}", preRegistrationId); - log.error("Error trace {}", ExceptionUtils.getStackTrace(ex)); + log.error(ERROR_TRACE, ExceptionUtils.getStackTrace(ex)); throw new AppointmentExecption(AppointmentErrorCodes.BOOKING_FAILED.getCode(), AppointmentErrorCodes.BOOKING_FAILED.getMessage()); } - return responseEntity.getBody().getResponse(); + return response.getResponse(); } public BookingRegistrationDTO fetchAppointmentDetails(String preRegistrationId) { - + MainResponseDTO response = new MainResponseDTO<>(); Map params = new LinkedHashMap<>(); - params.put("preRegistrationId", preRegistrationId.trim()); + params.put(PRE_REGISTRATION_ID, preRegistrationId.trim()); String constructedAppointmentUrl = UriComponentsBuilder.fromHttpUrl(appointmentUrl).buildAndExpand(params) .toUriString(); @@ -146,26 +154,28 @@ public BookingRegistrationDTO fetchAppointmentDetails(String preRegistrationId) new ParameterizedTypeReference>() { }); - if (responseEntity.getBody().getErrors() != null) { - System.out.println(responseEntity.getBody().getErrors()); - throw new AppointmentExecption(responseEntity.getBody().getErrors().get(0).getErrorCode(), - responseEntity.getBody().getErrors().get(0).getMessage()); + MainResponseDTO body = responseEntity.getBody(); + if (body != null) { + if (body.getErrors() != null && !body.getErrors().isEmpty()) { + throw new AppointmentExecption(body.getErrors().get(0).getErrorCode(), + body.getErrors().get(0).getMessage()); + } + response.setResponse(body.getResponse()); } - } catch (RestClientException ex) { log.error("Error while fetching appointment details for preRegistrationId:{}", preRegistrationId); - log.error("Error trace {}", ExceptionUtils.getStackTrace(ex)); + log.error(ERROR_TRACE, ExceptionUtils.getStackTrace(ex)); throw new AppointmentExecption(AppointmentErrorCodes.FAILED_TO_FETCH_APPOINTMENT_DETAILS.getCode(), AppointmentErrorCodes.FAILED_TO_FETCH_APPOINTMENT_DETAILS.getMessage()); } - return responseEntity.getBody().getResponse(); + return response.getResponse(); } public DeleteBookingDTO deleteBooking(String preRegId) { - + MainResponseDTO response = new MainResponseDTO<>(); String constructedAppointmentUrl = UriComponentsBuilder.fromHttpUrl(multiBookingUrl) - .queryParam("preRegistrationId", preRegId.trim()).toUriString(); + .queryParam(PRE_REGISTRATION_ID, preRegId.trim()).toUriString(); ResponseEntity> responseEntity = null; @@ -182,9 +192,13 @@ public DeleteBookingDTO deleteBooking(String preRegId) { new ParameterizedTypeReference>() { }); - if (responseEntity.getBody().getErrors() != null) { - throw new RestCallException(responseEntity.getBody().getErrors().get(0).getErrorCode(), - responseEntity.getBody().getErrors().get(0).getMessage()); + MainResponseDTO body = responseEntity.getBody(); + if (body != null) { + if (body.getErrors() != null && !body.getErrors().isEmpty()) { + throw new RestCallException(body.getErrors().get(0).getErrorCode(), + body.getErrors().get(0).getMessage()); + } + response.setResponse(body.getResponse()); } } catch (RestClientException ex) { @@ -193,20 +207,19 @@ public DeleteBookingDTO deleteBooking(String preRegId) { AppointmentErrorCodes.FAILED_TO_DELETE_APPOINTMENT.getMessage()); } - return responseEntity.getBody().getResponse(); - + return response.getResponse(); } public CancelBookingResponseDTO cancelAppointment(String preRegistrationId) { - + MainResponseDTO response = new MainResponseDTO<>(); Map params = new LinkedHashMap<>(); - params.put("preRegistrationId", preRegistrationId.trim()); + params.put(PRE_REGISTRATION_ID, preRegistrationId.trim()); String constructedAppointmentUrl = UriComponentsBuilder.fromHttpUrl(appointmentUrl).buildAndExpand(params) .toUriString(); HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON_UTF8); + headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity entity = new HttpEntity<>(headers); @@ -219,27 +232,29 @@ public CancelBookingResponseDTO cancelAppointment(String preRegistrationId) { new ParameterizedTypeReference>() { }); - if (responseEntity.getBody().getErrors() != null) { - - throw new AppointmentExecption(responseEntity.getBody().getErrors().get(0).getErrorCode(), - responseEntity.getBody().getErrors().get(0).getMessage()); + MainResponseDTO body = responseEntity.getBody(); + if (body != null) { + if (body.getErrors() != null && !body.getErrors().isEmpty()) { + throw new AppointmentExecption(body.getErrors().get(0).getErrorCode(), + body.getErrors().get(0).getMessage()); + } + response.setResponse(body.getResponse()); } - } catch (RestClientException ex) { log.error("Error while Cancelling an appointment for preRegistrationId:{}", preRegistrationId); - log.error("Error trace {}", ExceptionUtils.getStackTrace(ex)); + log.error(ERROR_TRACE, ExceptionUtils.getStackTrace(ex)); throw new AppointmentExecption(AppointmentErrorCodes.CANCEL_APPOINTMENT_FAILED.getCode(), AppointmentErrorCodes.CANCEL_APPOINTMENT_FAILED.getMessage()); } - return responseEntity.getBody().getResponse(); + return response.getResponse(); } public BookingStatus multiAppointmentBooking(MainRequestDTO bookingRequest) { - + MainResponseDTO response = new MainResponseDTO<>(); String constructedAppointmentUrl = UriComponentsBuilder.fromHttpUrl(multiBookingUrl).toUriString(); HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON_UTF8); + headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity entity = new HttpEntity<>(bookingRequest, headers); @@ -252,19 +267,19 @@ public BookingStatus multiAppointmentBooking(MainRequestDTO new ParameterizedTypeReference>() { }); - if (responseEntity.getBody().getErrors() != null) { - - throw new AppointmentExecption(responseEntity.getBody().getErrors().get(0).getErrorCode(), - responseEntity.getBody().getErrors().get(0).getMessage()); + MainResponseDTO body = responseEntity.getBody(); + if (body != null) { + if (body.getErrors() != null && !body.getErrors().isEmpty()) { + throw new AppointmentExecption(body.getErrors().get(0).getErrorCode(), + body.getErrors().get(0).getMessage()); + } + response.setResponse(body.getResponse()); } - } catch (RestClientException ex) { - log.error("Error trace {}", ExceptionUtils.getStackTrace(ex)); + log.error(ERROR_TRACE, ExceptionUtils.getStackTrace(ex)); throw new AppointmentExecption(AppointmentErrorCodes.MULTI_BOOKING_FAILED.getCode(), AppointmentErrorCodes.MULTI_BOOKING_FAILED.getMessage()); } - return responseEntity.getBody().getResponse(); - + return response.getResponse(); } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/util/DemographicServiceUtil.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/util/DemographicServiceUtil.java index 1892c47c54c..40d02ebfa3a 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/util/DemographicServiceUtil.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/util/DemographicServiceUtil.java @@ -20,8 +20,6 @@ import java.util.Set; import java.util.stream.Collectors; -import javax.annotation.PostConstruct; - import org.apache.commons.lang3.exception.ExceptionUtils; import org.assertj.core.util.Arrays; import org.json.simple.JSONArray; @@ -99,6 +97,7 @@ import io.mosip.preregistration.demographic.exception.system.JsonParseException; import io.mosip.preregistration.demographic.exception.system.SystemFileIOException; import io.mosip.preregistration.demographic.exception.system.SystemIllegalArgumentException; +import jakarta.annotation.PostConstruct; /** * This class provides the utility methods for DemographicService @@ -532,7 +531,7 @@ public String generateId() { try { UriComponentsBuilder regbuilder = UriComponentsBuilder.fromHttpUrl(pridURl); HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON_UTF8); + headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity> entity = new HttpEntity<>(headers); String uriBuilder = regbuilder.build().encode().toUriString(); log.info("sessionId", "idType", "id", @@ -540,11 +539,16 @@ public String generateId() { ResponseEntity> responseEntity = selfTokenrestTemplate.exchange(uriBuilder, HttpMethod.GET, entity, new ParameterizedTypeReference>() { }); - if (responseEntity.getBody().getErrors() != null && !responseEntity.getBody().getErrors().isEmpty()) { - throw new RestCallException(responseEntity.getBody().getErrors().get(0).getErrorCode(), - responseEntity.getBody().getErrors().get(0).getMessage()); + ResponseWrapper body = responseEntity.getBody(); + if (body != null) { + if (body.getErrors() != null && !body.getErrors().isEmpty()) { + throw new RestCallException(body.getErrors().get(0).getErrorCode(), + body.getErrors().get(0).getMessage()); + } + if (body.getResponse() != null) { + prid = body.getResponse().getPrid(); + } } - prid = responseEntity.getBody().getResponse().getPrid(); if (prid == null || prid.isEmpty()) { throw new RestCallException(DemographicErrorCodes.PRG_PAM_APP_020.getCode(), DemographicErrorMessages.PRID_RESTCALL_FAIL.getMessage()); @@ -567,20 +571,22 @@ public IdSchemaDto getSchema() { try { UriComponentsBuilder regbuilder = UriComponentsBuilder.fromHttpUrl(idSchemaConfig); HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON_UTF8); + headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity> entity = new HttpEntity<>(headers); String uriBuilder = regbuilder.build().encode().toUriString(); ResponseEntity> responseEntity = selfTokenrestTemplate.exchange(uriBuilder, HttpMethod.GET, entity, new ParameterizedTypeReference>() { }); - if (responseEntity.getBody().getErrors() != null && !responseEntity.getBody().getErrors().isEmpty()) { - throw new RestCallException(responseEntity.getBody().getErrors().get(0).getErrorCode(), - responseEntity.getBody().getErrors().get(0).getMessage()); + ResponseWrapper body = responseEntity.getBody(); + if (body != null) { + if (body.getErrors() != null && !body.getErrors().isEmpty()) { + throw new RestCallException(body.getErrors().get(0).getErrorCode(), + body.getErrors().get(0).getMessage()); + } + response = body.getResponse(); } - - response = responseEntity.getBody().getResponse(); - + if (response == null) { throw new RestCallException(DemographicErrorCodes.PRG_PAM_APP_020.getCode(), DemographicErrorMessages.ID_SCHEMA_FETCH_FAILED.getMessage()); @@ -795,7 +801,7 @@ public String getApplicantypeCode(ApplicantTypeRequestDTO applicantTypeRequest) UriComponentsBuilder regbuilder = UriComponentsBuilder .fromHttpUrl(masterdataResourseUrl + "/getApplicantType"); HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON_UTF8); + headers.setContentType(MediaType.APPLICATION_JSON); RequestWrapper request = new RequestWrapper<>(); request.setRequest(applicantTypeRequest); HttpEntity> entity = new HttpEntity<>(request, headers); @@ -806,14 +812,18 @@ public String getApplicantypeCode(ApplicantTypeRequestDTO applicantTypeRequest) new ParameterizedTypeReference>() { }); - if (responseEntity.getBody().getErrors() != null) { - - throw new MasterDataException(responseEntity.getBody().getErrors().get(0).getErrorCode(), - responseEntity.getBody().getErrors().get(0).getMessage()); + ResponseWrapper body = responseEntity.getBody(); + if (body != null) { + if (body.getErrors() != null && !body.getErrors().isEmpty()) { + throw new MasterDataException(body.getErrors().get(0).getErrorCode(), + body.getErrors().get(0).getMessage()); + } + ApplicantTypeResponseDTO applicantTypeResponseDTO = body.getResponse(); + if (applicantTypeResponseDTO != null && applicantTypeResponseDTO.getApplicantType() != null) { + applicantTypeCode = applicantTypeResponseDTO.getApplicantType().getApplicantTypeCode(); + } } - - applicantTypeCode = responseEntity.getBody().getResponse().getApplicantType().getApplicantTypeCode(); - + } catch (RestClientException ex) { log.error("restcall failed to get applicanttype", ex); throw new MasterDataException(DemographicErrorCodes.PRG_PAM_APP_020.getCode(), @@ -824,6 +834,7 @@ public String getApplicantypeCode(ApplicantTypeRequestDTO applicantTypeRequest) @SuppressWarnings({ "rawtypes" }) public ApplicantValidDocumentDto getDocCatAndTypeForApplicantCode(String applicantTypeCode, String langCode) { + ResponseWrapper response = new ResponseWrapper<>(); log.info("In getDocCatAndTypeForApplicantCode method "); ResponseEntity> responseEntity = null; try { @@ -831,7 +842,7 @@ public ApplicantValidDocumentDto getDocCatAndTypeForApplicantCode(String applica masterdataResourseUrl + "/applicanttype/" + applicantTypeCode + "/languages?languages=" + langCode); HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON_UTF8); + headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity entity = new HttpEntity<>(headers); String uriBuilder = regbuilder.build().encode().toUriString(); @@ -840,10 +851,13 @@ public ApplicantValidDocumentDto getDocCatAndTypeForApplicantCode(String applica new ParameterizedTypeReference>() { }); - if (responseEntity.getBody().getErrors() != null) { - - throw new MasterDataException(responseEntity.getBody().getErrors().get(0).getErrorCode(), - responseEntity.getBody().getErrors().get(0).getMessage()); + ResponseWrapper body = responseEntity.getBody(); + if (body != null) { + if (body.getErrors() != null && !body.getErrors().isEmpty()) { + throw new MasterDataException(body.getErrors().get(0).getErrorCode(), + body.getErrors().get(0).getMessage()); + } + response.setResponse(body.getResponse()); } } catch (RestClientException ex) { @@ -851,7 +865,7 @@ public ApplicantValidDocumentDto getDocCatAndTypeForApplicantCode(String applica throw new MasterDataException(DemographicErrorCodes.PRG_PAM_APP_020.getCode(), DemographicErrorMessages.MASTERDATA_RESTCALL_FAIL.getMessage()); } - return responseEntity.getBody().getResponse(); + return response.getResponse(); } public Set getMandatoryDocCatogery() { diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/util/DocumentServiceUtil.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/util/DocumentServiceUtil.java index 69554eec959..c7245252258 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/util/DocumentServiceUtil.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/util/DocumentServiceUtil.java @@ -9,6 +9,7 @@ import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.time.ZoneId; +import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; @@ -305,8 +306,11 @@ public boolean fileSizeCheck(long uploadedFileSize) { */ public boolean fileExtensionCheck(MultipartFile file) { log.info("sessionId", "idType", "id", "In fileExtensionCheck method of document service util"); - List fileExtensionList = Arrays.asList(fileExtension.split("\\s*,\\s*")); - if (fileExtensionList.contains(FilenameUtils.getExtension(file.getOriginalFilename()).toUpperCase())) { + //List fileExtensionList = Arrays.asList(fileExtension.split("\\s*,\\s*")); + List fileExtensionList = Arrays.asList(fileExtension.split(",")); + List fileExtensionTrimmedList = new ArrayList(); + fileExtensionList.forEach(str -> fileExtensionTrimmedList.add(str.trim())); + if (fileExtensionTrimmedList.contains(FilenameUtils.getExtension(file.getOriginalFilename()).toUpperCase())) { return true; } else { throw new DocumentNotValidException(DocumentErrorCodes.PRG_PAM_DOC_004.toString(), @@ -334,24 +338,29 @@ public boolean isValidRequest(DocumentRequestDTO documentDto, String preRegistra * This method checks the file extension * * @param file pass uploaded file + * @throws java.io.IOException * @throws DocumentNotValidException if uploaded document is not valid */ - public boolean isVirusScanSuccess(MultipartFile file) { - try { - log.info("sessionId", "idType", "id", "In isVirusScanSuccess method of document service util"); - return virusScan.scanDocument(file.getBytes()); - } catch (Exception e) { - log.error("sessionId", "idType", "id", ExceptionUtils.getStackTrace(e)); - log.error("sessionId", "idType", "id", e.getMessage()); - throw new VirusScannerException(DocumentErrorCodes.PRG_PAM_DOC_010.toString(), - DocumentErrorMessages.DOCUMENT_FAILED_IN_VIRUS_SCAN.getMessage()); - } - } + public void virusScanCheck(MultipartFile file) throws java.io.IOException { + try { + log.info("sessionId", "idType", "id", "In isVirusScanSuccess method of document service util"); + Boolean scanSuccess = virusScan.scanDocument(file.getBytes()); + if (!scanSuccess) { + throw new VirusScannerException(DocumentErrorCodes.PRG_PAM_DOC_010.toString(), + DocumentErrorMessages.DOCUMENT_FAILED_IN_VIRUS_SCAN.getMessage()); + } + } catch (VirusScannerException e) { + log.error("sessionId", "idType", "id", ExceptionUtils.getStackTrace(e)); + log.error("sessionId", "idType", "id", e.getMessage()); + throw new VirusScannerException(DocumentErrorCodes.PRG_PAM_DOC_010.toString(), + DocumentErrorMessages.DOCUMENT_FAILED_IN_VIRUS_SCAN.getMessage()); + } + } public DemographicResponseDTO getPreRegInfoRestService(String preId) { log.info("sessionId", "idType", "id", "In callGetPreRegInfoRestService method of document service util"); - MainResponseDTO getDemographicData = demographgicService.getDemographicData(preId, false); + MainResponseDTO getDemographicData = demographgicService.getDemographicData(preId); if (getDemographicData.getErrors() != null) { throw new DemographicGetDetailsException(getDemographicData.getErrors().get(0).getErrorCode(), getDemographicData.getErrors().get(0).getMessage()); diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/util/NotificationServiceUtil.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/util/NotificationServiceUtil.java index 8b1fb8a1882..7428208256d 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/util/NotificationServiceUtil.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/util/NotificationServiceUtil.java @@ -138,8 +138,10 @@ public MainRequestDTO createNotificationDetails(String jsonStri langaueNamePair.setValue(notificationDto.getName()); langaueNamePairs.add(langaueNamePair); } - notificationDto.setFullName(langaueNamePairs); - notificationDto.setLanguageCode(langauageCode); + if (notificationDto != null) { + notificationDto.setFullName(langaueNamePairs); + notificationDto.setLanguageCode(langauageCode); + } } if (!isLatest) { notificationDto = (NotificationDTO) JsonUtils.jsonStringToJavaObject(NotificationDTO.class, @@ -236,9 +238,11 @@ public void sendSmsNotification(String notificationMobileNo, String message, Mai PreRegSmsResponseDto response = restTemplate.exchange(environment.getProperty("sms-notification.rest.uri"), HttpMethod.POST, entity1, PreRegSmsResponseDto.class).getBody(); - if (!response.getResponse().getStatus().equalsIgnoreCase(PreRegLoginConstant.SUCCESS)) - throw new PreRegLoginException(PreRegLoginErrorConstants.DATA_VALIDATION_FAILED.getErrorCode(), - PreRegLoginErrorConstants.DATA_VALIDATION_FAILED.getErrorMessage()); + if (response != null && response.getResponse() != null) { + if (!response.getResponse().getStatus().equalsIgnoreCase(PreRegLoginConstant.SUCCESS)) + throw new PreRegLoginException(PreRegLoginErrorConstants.DATA_VALIDATION_FAILED.getErrorCode(), + PreRegLoginErrorConstants.DATA_VALIDATION_FAILED.getErrorMessage()); + } } catch (PreRegLoginException e) { log.error(PreRegLoginConstant.SESSION_ID, "Inside SMS Notification >>>>>", e.getErrorCode(), @@ -279,10 +283,13 @@ public void sendEmailNotification(String emailId, String mailSubject, String mai PreRegSmsResponseDto response = restTemplate.exchange(environment.getProperty("mail-notification.rest.uri"), HttpMethod.POST, entity1, PreRegSmsResponseDto.class).getBody(); + + if (response != null && response.getResponse() != null) { + if (!response.getResponse().getStatus().equalsIgnoreCase(PreRegLoginConstant.SUCCESS)) + throw new PreRegLoginException(PreRegLoginErrorConstants.DATA_VALIDATION_FAILED.getErrorCode(), + PreRegLoginErrorConstants.DATA_VALIDATION_FAILED.getErrorMessage()); - if (!response.getResponse().getStatus().equalsIgnoreCase(PreRegLoginConstant.SUCCESS)) - throw new PreRegLoginException(PreRegLoginErrorConstants.DATA_VALIDATION_FAILED.getErrorCode(), - PreRegLoginErrorConstants.DATA_VALIDATION_FAILED.getErrorMessage()); + } } catch (PreRegLoginException e) { @@ -475,11 +482,15 @@ public ResponseWrapper getRegistrationCenter(Stri new ParameterizedTypeReference>() { }); log.debug("sessionId", "idType", "id", responseEntity.toString()); - if (responseEntity.getBody().getErrors() != null && !responseEntity.getBody().getErrors().isEmpty()) { - log.error("sessionId", "idType", "id", responseEntity.getBody().getErrors().toString()); - response.setErrors(responseEntity.getBody().getErrors()); - } else { - response.setResponse(responseEntity.getBody().getResponse()); + ResponseWrapper body = responseEntity.getBody(); + if (body != null) { + if (body.getErrors() != null && !body.getErrors().isEmpty()) { + log.error("sessionId", "idType", "id", body.getErrors().toString()); + response.setErrors(body.getErrors()); + } else { + response.setResponse(body.getResponse()); + } + } log.info("sessionId", "idType", "id", "In call to registrationcenter rest service :" + url); } catch (Exception ex) { diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/util/UISpecServiceUtil.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/util/UISpecServiceUtil.java index 9f50dffd9c6..6b0d201f773 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/util/UISpecServiceUtil.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/service/util/UISpecServiceUtil.java @@ -50,6 +50,7 @@ public List getUISchema(Double version, Double idSchemaVersio log.info("In UISpec serviceutil getUIschema method"); List response = null; ResponseEntity>> responseEntity = null; + ResponseWrapper> body = null; try { log.info("Calling masterdata service to get ui spec"); UriComponentsBuilder regbuilder = UriComponentsBuilder @@ -71,14 +72,17 @@ public List getUISchema(Double version, Double idSchemaVersio new ParameterizedTypeReference>>() { }); - if (responseEntity.getBody().getErrors() != null && !responseEntity.getBody().getErrors().isEmpty()) { - log.info("error while fetching uispec {}", responseEntity.getBody().getErrors()); - throw new RestCallException(responseEntity.getBody().getErrors().get(0).getErrorCode(), - responseEntity.getBody().getErrors().get(0).getMessage()); + body = responseEntity.getBody(); + if (body != null) { + if (body.getErrors() != null && !body.getErrors().isEmpty()) { + log.info("error while fetching uispec {}", body.getErrors()); + throw new RestCallException(body.getErrors().get(0).getErrorCode(), + body.getErrors().get(0).getMessage()); + } + response = body.getResponse(); } - - response = responseEntity.getBody().getResponse(); - log.info("uispec resposne {}", response); + + log.info("ui spec response {}", response); if (Objects.isNull(response)) { throw new UISpecException(ApplicationErrorCodes.PRG_APP_003.getCode(), ApplicationErrorMessages.UNABLE_TO_FETCH_THE_UI_SPEC.getMessage()); @@ -90,8 +94,13 @@ public List getUISchema(Double version, Double idSchemaVersio ApplicationErrorMessages.UNABLE_TO_FETCH_THE_UI_SPEC.getMessage()); } catch (Exception ex) { log.error("error while fetching uispec {}", ex); - throw new UISpecException(responseEntity.getBody().getErrors().get(0).getErrorCode(), - responseEntity.getBody().getErrors().get(0).getMessage()); + if (body != null && body.getErrors() != null && !body.getErrors().isEmpty()) { + throw new UISpecException(body.getErrors().get(0).getErrorCode(), + body.getErrors().get(0).getMessage()); + } else { + throw new UISpecException(ApplicationErrorCodes.PRG_APP_003.getCode(), + ApplicationErrorMessages.UNABLE_TO_FETCH_THE_UI_SPEC.getMessage()); + } } return response; @@ -101,6 +110,7 @@ public PageDTO getAllUISchema(int pageNumber, int pageSize) { log.info("In UISpec serviceutil getAllUISchema method"); PageDTO response = null; ResponseEntity>> responseEntity = null; + ResponseWrapper> body = null; try { log.info("Calling masterdata service to get ui spec"); UriComponentsBuilder regbuilder = UriComponentsBuilder.fromHttpUrl(materdataResourceUrl + "/uispec/all"); @@ -121,13 +131,16 @@ public PageDTO getAllUISchema(int pageNumber, int pageSize) { new ParameterizedTypeReference>>() { }); - if (responseEntity.getBody().getErrors() != null && !responseEntity.getBody().getErrors().isEmpty()) { - log.info("error while fetching uispec {}", responseEntity.getBody().getErrors()); - throw new RestCallException(responseEntity.getBody().getErrors().get(0).getErrorCode(), - responseEntity.getBody().getErrors().get(0).getMessage()); + body = responseEntity.getBody(); + if (body != null) { + if (body.getErrors() != null && !body.getErrors().isEmpty()) { + log.info("error while fetching uispec {}", body.getErrors()); + throw new RestCallException(body.getErrors().get(0).getErrorCode(), + body.getErrors().get(0).getMessage()); + } + response = body.getResponse(); } - response = responseEntity.getBody().getResponse(); log.info("uispec resposne {}", response); if (Objects.isNull(response)) { throw new UISpecException(ApplicationErrorCodes.PRG_APP_003.getCode(), @@ -140,8 +153,13 @@ public PageDTO getAllUISchema(int pageNumber, int pageSize) { ApplicationErrorMessages.UNABLE_TO_FETCH_THE_UI_SPEC.getMessage()); } catch (Exception ex) { log.error("error while fetching uispec {}", ex); - throw new UISpecException(responseEntity.getBody().getErrors().get(0).getErrorCode(), - responseEntity.getBody().getErrors().get(0).getMessage()); + if (body != null && body.getErrors() != null && !body.getErrors().isEmpty()) { + throw new UISpecException(body.getErrors().get(0).getErrorCode(), + body.getErrors().get(0).getMessage()); + } else { + throw new UISpecException(ApplicationErrorCodes.PRG_APP_003.getCode(), + ApplicationErrorMessages.UNABLE_TO_FETCH_THE_UI_SPEC.getMessage()); + } } return response; diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/util/LoginCommonUtil.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/util/LoginCommonUtil.java index e427252b349..b912d3a5d9a 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/util/LoginCommonUtil.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/util/LoginCommonUtil.java @@ -19,10 +19,6 @@ import java.util.Properties; import java.util.stream.Collectors; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.ObjectMapper; - import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; @@ -37,6 +33,10 @@ import org.springframework.web.client.RestClientException; import org.springframework.web.client.RestTemplate; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; + import io.jsonwebtoken.Jwts; import io.mosip.kernel.core.logger.spi.Logger; import io.mosip.preregistration.application.constant.PreRegLoginErrorConstants; @@ -108,7 +108,7 @@ public class LoginCommonUtil { @Value("${mosip.preregistration.captcha.id.validate}") private String captchaRequestId; - + private static final String MOSIP_MANDATORY_LANGUAGE = "mosip.mandatory-languages"; private static final String MOSIP_OPTIONAL_LANGUAGE = "mosip.optional-languages"; private static final String MOSIP_MIN_LANGUAGE_COUNT = "mosip.min-languages.count"; @@ -264,55 +264,6 @@ public String responseToString(Object response) { } } - /** - * This method is used for parsing string to properties - * - * @param s - * @return - * @throws IOException - */ - public Properties parsePropertiesString(String s) throws IOException { - final Properties p = new Properties(); - p.load(new StringReader(s)); - return p; - } - - /** - * This method is used config rest call - * - * @param filname - * @return - */ - public String getConfig(String filname) { - String configServerUri = env.getProperty("spring.cloud.config.uri"); - String configLabel = env.getProperty("spring.cloud.config.label"); - String configProfile = env.getProperty("spring.profiles.active"); - String configAppName = env.getProperty("spring.cloud.config.name"); - StringBuilder uriBuilder = new StringBuilder(); - - uriBuilder.append(configServerUri + "/").append(configAppName + "/").append(configProfile + "/") - .append(configLabel + "/").append(filname); - log.info(" URL in login service util of configRestCall {} ", uriBuilder); - return restTemplate.getForObject(uriBuilder.toString(), String.class); - - } - - /** - * This method is used for create key value pair from congif file - * - * @param prop - * @param configParamMap - * @param reqParams - */ - public void getConfigParams(Properties prop, Map configParamMap, List reqParams) { - for (Entry e : prop.entrySet()) { - if (reqParams.contains(String.valueOf(e.getKey()))) { - configParamMap.put(String.valueOf(e.getKey()), e.getValue().toString()); - } - - } - } - /** * This method is used for create request map * @@ -349,7 +300,7 @@ public String getUserDetailsFromToken(Map authHeader) { return userDetailsDto.getUserId(); } - public void validateLanguageProperties(Map configParams) { + public void validateLanguageProperties(Map responseParamsMap) { try { log.info("In validateLanguageProperties method of logincommon util"); @@ -413,11 +364,11 @@ public void validateLanguageProperties(Map configParams) { minLanguageCount); maxLanguageCount = minLanguageCount; } - configParams.put(MOSIP_MAX_LANGUAGE_COUNT, String.valueOf(maxLanguageCount)); - configParams.put(MOSIP_MIN_LANGUAGE_COUNT, String.valueOf(minLanguageCount)); - configParams.put(MOSIP_MANDATORY_LANGUAGE, + responseParamsMap.put(MOSIP_MAX_LANGUAGE_COUNT, String.valueOf(maxLanguageCount)); + responseParamsMap.put(MOSIP_MIN_LANGUAGE_COUNT, String.valueOf(minLanguageCount)); + responseParamsMap.put(MOSIP_MANDATORY_LANGUAGE, mandatoryLanguages.stream().map(lang -> String.valueOf(lang)).collect(Collectors.joining(","))); - configParams.put(MOSIP_OPTIONAL_LANGUAGE, + responseParamsMap.put(MOSIP_OPTIONAL_LANGUAGE, optionalLanguages.stream().map(lang -> String.valueOf(lang)).collect(Collectors.joining(","))); } catch ( @@ -454,7 +405,7 @@ Integer tryParsePropertiesToInteger(String prop) { } public CaptchaResposneDTO validateCaptchaToken(String captchaToken) { - + MainResponseDTO response = new MainResponseDTO<>(); if (captchaToken == null || captchaToken.isBlank()) { log.error("Validating Captcha token is null or blank"); throw new PreRegLoginException(PreRegLoginErrorConstants.CAPTCHA_ERROR.getErrorCode(), @@ -470,7 +421,7 @@ public CaptchaResposneDTO validateCaptchaToken(String captchaToken) { captchaRequest.setVersion(version); captchaRequest.setId(captchaRequestId); HttpHeaders header = new HttpHeaders(); - header.setContentType(MediaType.APPLICATION_JSON_UTF8); + header.setContentType(MediaType.APPLICATION_JSON); HttpEntity entity = new HttpEntity<>(captchaRequest, header); ResponseEntity> responseEntity = null; try { @@ -479,20 +430,24 @@ public CaptchaResposneDTO validateCaptchaToken(String captchaToken) { responseEntity = restTemplate.exchange(captchaUrl, HttpMethod.POST, entity, new ParameterizedTypeReference>() { }); - - if (responseEntity.getBody().getErrors() != null) { - log.error("validateCaptchaToken has an error {}", responseEntity.getBody().getErrors()); - throw new PreRegLoginException(responseEntity.getBody().getErrors().get(0).getErrorCode(), - responseEntity.getBody().getErrors().get(0).getMessage()); + MainResponseDTO body = responseEntity.getBody(); + if (body != null) { + if (body.getErrors() != null && !body.getErrors().isEmpty()) { + log.error("validateCaptchaToken has an error {}", body.getErrors()); + throw new PreRegLoginException(body.getErrors().get(0).getErrorCode(), + body.getErrors().get(0).getMessage()); + } else { + response.setResponse(body.getResponse()); + } + } - } catch (RestClientException ex) { log.error("Error while Calling captcha service to validate token {}", ex); throw new PreRegLoginException(PreRegLoginErrorConstants.CAPTCHA_SEVER_ERROR.getErrorCode(), PreRegLoginErrorConstants.CAPTCHA_SEVER_ERROR.getErrorMessage()); } - return responseEntity.getBody().getResponse(); + return response.getResponse(); } diff --git a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/util/ProxyMasterdataServiceUtil.java b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/util/ProxyMasterdataServiceUtil.java index a7f71757ba6..9fe36254063 100644 --- a/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/util/ProxyMasterdataServiceUtil.java +++ b/pre-registration/pre-registration-application-service/src/main/java/io/mosip/preregistration/application/util/ProxyMasterdataServiceUtil.java @@ -3,7 +3,7 @@ import java.net.URI; import java.net.URLDecoder; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; @@ -104,7 +104,7 @@ public Object masterDataRestCall(URI uri, String body, HttpMethod methodType) { ResponseEntity response = null; HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON_UTF8); + headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity entity = new HttpEntity<>(body, headers); diff --git a/pre-registration/pre-registration-application-service/src/main/resources/application.properties b/pre-registration/pre-registration-application-service/src/main/resources/application.properties index 5931a000271..b05612f61be 100644 --- a/pre-registration/pre-registration-application-service/src/main/resources/application.properties +++ b/pre-registration/pre-registration-application-service/src/main/resources/application.properties @@ -1,8 +1,8 @@ -spring.cloud.config.uri=https://dev.mosip.net/config +spring.cloud.config.uri=https://localhost:8080 spring.cloud.config.label=develop spring.cloud.config.name=pre-registration spring.application.name=pre-registration-application-service -spring.profiles.active=mz +spring.profiles.active=default management.endpoint.health.show-details=always management.endpoints.web.exposure.include=info,health,refresh @@ -27,14 +27,14 @@ mosip.preregistration.demographic.id.create=mosip.pre-registration.demographic.c mosip.preregistration.demographic.id.update=mosip.pre-registration.demographic.update mosip.preregistration.demographic.id.retrieve.date=mosip.pre-registration.demographic.retrieve.date appId: prereg -mosip.base.url=https://dev.mosip.net +mosip.base.url=https://api-internal.dev.mosip.net application.id: pre-registration appointmentResourse.url: ${mosip.base.url}/preregistration/v1 audit.service.contextpath: auditmanager audit.service.env: http://kernel-auditmanager-service audit.url: ${mosip.base.url}/v1/auditmanager/audits -auth-token-generator.rest.issuerUrl:${mosip.base.url}/keycloak/auth/realms/preregistration -auth.server.admin.validate.url:https://dev.mosip.net/v1/authmanager/authorize/admin/validateToken +auth-token-generator.rest.issuerUrl:https://iam.dev.mosip.net/auth/realms/mosip +auth.server.admin.validate.url:${mosip.base.url}/v1/authmanager/authorize/admin/validateToken auth.server.validate.url: ${mosip.base.url}/v1/authmanager/authorize/admin/validateToken batch.appointment.cancel: ${mosip.base.url}/preregistration/v1/internal/applications/appointment/{preRegistrationId} batch.resource.url: ${mosip.base.url}/preregistration/v1/batch @@ -63,11 +63,12 @@ document.service.env: ${mosip.base.url} document.service.version: v1 email.acknowledgement.subject.template: Acknowledgement-email-subject email.acknowledgement.template: Email-Acknowledgement +cancel.appointment.email.subject: cancel-appointment-email-subject email.service.contextpath: notifier email.service.env: ${mosip.base.url} emailResourse.url: ${mosip.base.url}/v1/notifier/email/send expiredStatus.url: ${mosip.base.url}/preregistration/v1/batch/expiredStatus -global.config.file: application.properties +#global.config.file: application-${spring.profiles.active}.properties mosip.preregistration.captcha.sitekey=6Lc4pewUAAAAANr3JkwuSVNCzQi9Z31g-NVKMXBX mosip.preregistration.captcha.recaptcha.verify.url=https://www.google.com/recaptcha/api/siteverify mosip.preregistration.captcha.secretkey=6Lc4pewUAAAAAOq_6rlW8HcGX36rF9vVla32TvqI @@ -78,8 +79,8 @@ hibernate.show_sql: false holiday.exceptional.url: ${mosip.base.url}/v1/masterdata/exceptionalholidays/ holiday.url: ${mosip.base.url}/v1/masterdata/getregistrationcenterholidays/ javax.persistence.jdbc.driver: org.postgresql.Driver -javax.persistence.jdbc.password: mosip123 -javax.persistence.jdbc.url=jdbc:postgresql://dev.mosip.net:30090/mosip_prereg +javax.persistence.jdbc.password: OfUQvf4kUK +javax.persistence.jdbc.url=jdbc:postgresql://api-internal.dev.mosip.net:5432/mosip_prereg javax.persistence.jdbc.user: postgres kernel.auth.contextpath: authmanager kernel.auth.env: ${mosip.base.url} @@ -102,7 +103,7 @@ masterdata.service.version: v1 max.file.size: 2 mosip.adult.age: 5 mosip.batch.token.authmanager.appId: prereg -mosip.batch.token.authmanager.password: abc123 +mosip.batch.token.authmanager.password: mosip.batch.token.authmanager.url: ${mosip.base.url}/v1/authmanager/authenticate/clientidsecretkey mosip.batch.token.authmanager.userName: mosip-prereg-client mosip.batch.token.request.id: @@ -145,7 +146,7 @@ mosip.kernel.crypto.hash-algorithm-name: PBKDF2WithHmacSHA512 mosip.kernel.crypto.hash-iteration: 100000 mosip.kernel.crypto.hash-symmetric-key-length: 256 mosip.kernel.crypto.sign-algorithm-name: RS256 -mosip.kernel.crypto.symmetric-algorithm-name: AES/GCM/PKCS5Padding +mosip.kernel.crypto.symmetric-algorithm-name: AES/GCM/NoPadding mosip.kernel.cryptomanager.request_id: CRYPTOMANAGER.REQUEST mosip.kernel.cryptomanager.request_version: v1.0 @@ -262,7 +263,7 @@ poa.url: proofOfAddress pod.url: proofOfDateOfBirth poi.url: proofOfIdentity por.url: proofOfRelationship -pre.reg.config.file: pre-registration-${spring.profiles.active}.properties +#pre.reg.config.file: pre-registration-${spring.profiles.active}.properties preregistration.config.identityjson = identity-mapping.json preregistration.demographicDetails: demographicDetails preregistration.identity: identity @@ -284,17 +285,17 @@ preregistration.job.schedule.cron.slotavailability: 0 0 0 * * ? preregistration.nearby.centers: 2000 preregistration.preid.regex: [0-9]+ preregistration.recommended.centers.locCode: 5 -preregistration.timespan.cancel: 24 -preregistration.timespan.rebook: 24 +preregistration.timespan.cancel: 0 +preregistration.timespan.rebook: 0 preregistration.workflow.booking: true/false preregistration.workflow.demographic: true/false preregistration.workflow.documentupload: true/false qrversion: V1 regCenter.url: ${mosip.base.url}/v1/masterdata/registrationcenters resource.template.url: ${mosip.base.url}/v1/masterdata/templates -secretKey: abc123 +secretKey: 0xUtDcxYE8rfYMc6 sendOtp.resource.url: ${mosip.base.url}/v1/authmanager -server.max-http-header-size: 10000000 +server.max-http-request-header-size: 10000000 sms.acknowledgement.template: SMS-Acknowledgement sms.service.contextpath: notifier sms.service.env: ${mosip.base.url} @@ -303,7 +304,7 @@ spring.batch.tablePrefix: PREREG.BATCH_ spring.servlet.multipart.max-file-size: -1 spring.servlet.multipart.max-request-size: -1 mosip.notification.timezone : GMT+05:30 -ui.config.params: preregistration.availability.sync,preregistration.availability.noOfDays,mosip.supported-languages,mosip.primary-language,mosip.secondary-language,mosip.id.validation.identity.email,mosip.id.validation.identity.postalCode,mosip.id.validation.identity.phone,mosip.id.validation.identity.dateOfBirth,mosip.id.validation.identity.referenceIdentityNumber,mosip.default.dob.month,mosip.default.dob.day,mosip.kernel.otp.expiry-time,mosip.kernel.otp.validation-attempt-threshold,mosip.kernel.otp.default-length,mosip.kernel.sms.number.length,mosip.kernel.pin.length,preregistration.max.file.size,preregistration.recommended.centers.locCode,preregistration.nearby.centers,mosip.login.mode,preregistration.workflow.demographic,preregistration.workflow.documentupload,preregistration.workflow.booking,preregistration.auto.logout,preregistration.timespan.cancel,preregistration.timespan.rebook,preregistration.booking.offset,mosip.right_to_left_orientation,mosip.left_to_right_orientation,mosip.id.validation.identity.age,mosip.id.validation.identity.fullName.[*].value,mosip.id.validation.identity.addressLine1.[*].value,preregistration.documentupload.allowed.file.type,preregistration.documentupload.allowed.file.nameLength,preregistration.documentupload.allowed.file.size,mosip.preregistration.auto.logout.idle,mosip.preregistration.auto.logout.timeout,mosip.preregistration.auto.logout.ping,mosip.country.code,mosip.notificationtype,mosip.kernel.idobjectvalidator.masterdata.locations.locationNotAvailable,google.recaptcha.site.key,mosip.adult.age,mosip.idschema.version +ui.config.params=preregistration.availability.sync,preregistration.availability.noOfDays,mosip.id.validation.identity.email,mosip.id.validation.identity.postalCode,mosip.id.validation.identity.phone,mosip.id.validation.identity.dateOfBirth,mosip.id.validation.identity.referenceIdentityNumber,mosip.default.dob.month,mosip.default.dob.day,mosip.kernel.otp.expiry-time,mosip.kernel.otp.validation-attempt-threshold,mosip.kernel.otp.default-length,mosip.kernel.sms.number.length,mosip.kernel.pin.length,preregistration.max.file.size,preregistration.recommended.centers.locCode,preregistration.nearby.centers,mosip.login.mode,preregistration.workflow.demographic,preregistration.workflow.documentupload,preregistration.workflow.booking,preregistration.auto.logout,preregistration.timespan.cancel,preregistration.timespan.rebook,preregistration.booking.offset,mosip.right_to_left_orientation,mosip.left_to_right_orientation,mosip.id.validation.identity.age,mosip.id.validation.identity.fullName.[*].value,mosip.id.validation.identity.addressLine1.[*].value,preregistration.documentupload.allowed.file.type,preregistration.documentupload.allowed.file.nameLength,preregistration.documentupload.allowed.file.size,mosip.preregistration.auto.logout.idle,mosip.preregistration.auto.logout.timeout,mosip.preregistration.auto.logout.ping,mosip.country.code,mosip.notificationtype,mosip.kernel.idobjectvalidator.masterdata.locations.locationNotAvailable,mosip.preregistration.captcha.sitekey,mosip.adult.age,mosip.idschema.version,mosip.preregistration.captcha.enable,preregistration.identity.name,preregistration.ui.version,preregistration.contact.email,preregistration.contact.phone updateConsumedStatus.url: http://prereg-batchjob-service/preregistration/v1/batch/consumedStatus userIdType: USERID validationStatus: success @@ -317,10 +318,10 @@ prereg.auth.jwt.token.expiration=1800 prereg.auth.jwt.token.roles=INDIVIDUAL prereg.auth.jwt.audience = "account"; prereg.auth.jwt.scope = PRE-REGISTRATION; -mosip.mandatory-languages=hin,eng -mosip.optional-languages=fra,kan +mosip.mandatory-languages=eng +mosip.optional-languages=fra,ara mosip.min-languages.count=1 -mosip.max-languages.count=6abc +mosip.max-languages.count=3 preregistration.crypto.referenceId=INDIVIDUAL preregistration.crypto.PrependThumbprint=false preregistration.crypto.applicationId=PRE_REGISTRATION @@ -351,52 +352,45 @@ id-masterdata-template-service-multilang.rest.uri=${mosip.base.url}/v1/masterdat mosip.preregistration.captcha.resourse.url=${mosip.base.url}/preregistration/v1/captcha/validatecaptcha -mosip.role.prereg.postapplications=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.putapplications=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.getapplications=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.putapplicationsstatus=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.getapplicationsall=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.getapplicationsstatus=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.deleteapplications=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.postapplicationsupdatedtime=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.getapplicationsconfig=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.getapplicationsinfo=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.postlogaudit=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.postdocumentspreregistrationid=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.putdocumentspreregistrationid=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.getdocumentsdocumentid=REGISTRATION_OFFICER,INDIVIDUAL +mosip.role.prereg.postapplications=INDIVIDUAL,REGISTRATION_OFFICER,REGISTRATION_SUPERVISOR,REGISTRATION_ADMIN +mosip.role.prereg.putapplications=INDIVIDUAL,REGISTRATION_OFFICER,REGISTRATION_SUPERVISOR,REGISTRATION_ADMIN +mosip.role.prereg.getapplications=REGISTRATION_OFFICER,INDIVIDUAL,REGISTRATION_SUPERVISOR,REGISTRATION_ADMIN,PRE_REGISTRATION_ADMIN +mosip.role.prereg.putapplicationsstatus=REGISTRATION_OFFICER,INDIVIDUAL,REGISTRATION_SUPERVISOR,REGISTRATION_ADMIN,PRE_REGISTRATION_ADMIN +mosip.role.prereg.getapplicationsall=REGISTRATION_OFFICER,INDIVIDUAL,REGISTRATION_SUPERVISOR,REGISTRATION_ADMIN +mosip.role.prereg.getapplicationsstatus=REGISTRATION_OFFICER,INDIVIDUAL,REGISTRATION_SUPERVISOR,REGISTRATION_ADMIN,PRE_REGISTRATION_ADMIN +mosip.role.prereg.deleteapplications=INDIVIDUAL,REGISTRATION_OFFICER,REGISTRATION_SUPERVISOR,REGISTRATION_ADMIN +mosip.role.prereg.postapplicationsupdatedtime=REGISTRATION_OFFICER,INDIVIDUAL,REGISTRATION_SUPERVISOR,REGISTRATION_ADMIN,REGISTRATION_PROCESSOR +mosip.role.prereg.getapplicationsconfig=INDIVIDUAL +mosip.role.prereg.getapplicationsinfo=REGISTRATION_OFFICER,INDIVIDUAL,REGISTRATION_SUPERVISOR,REGISTRATION_ADMIN,PRE_REGISTRATION_ADMIN +mosip.role.prereg.postlogaudit=REGISTRATION_OFFICER,INDIVIDUAL,REGISTRATION_SUPERVISOR,REGISTRATION_ADMIN +mosip.role.prereg.postdocumentspreregistrationid=INDIVIDUAL +mosip.role.prereg.putdocumentspreregistrationid=INDIVIDUAL +mosip.role.prereg.getdocumentsdocumentid=REGISTRATION_OFFICER,REGISTRATION_SUPERVISOR,REGISTRATION_ADMIN,INDIVIDUAL mosip.role.prereg.getdocumentspreregistrationid=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.deletedocumentsdocumentid=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.deletedocumentspreregistrationid=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.putdocumentsdocumentid=REGISTRATION_OFFICER,INDIVIDUAL +mosip.role.prereg.deletedocumentsdocumentid=INDIVIDUAL +mosip.role.prereg.deletedocumentspreregistrationid=INDIVIDUAL +mosip.role.prereg.putdocumentsdocumentid=INDIVIDUAL,REGISTRATION_OFFICER,REGISTRATION_SUPERVISOR,REGISTRATION_ADMIN mosip.role.prereg.postqrcodegenerate=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.postloginsendotp=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.postloginsendotplangcode=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.postloginvalidateotp=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.postlogininvalidatetoken=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.getconfig=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.getrefreshconfig=INDIVIDUAL -mosip.role.prereg.postnotificationnotify=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.postnotification=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.getpostproxy=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.posttransliterationtransliterate=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.getuispeclatest=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.getuispecall=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.postpreregsync=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.getsyncpreregistrationid=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.getsyncpreregistrationidmachineid=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.postsyncconsumedpreregids=REGISTRATION_OFFICER,INDIVIDUAL +mosip.role.prereg.getrefreshconfig=PRE_REGISTRATION_ADMIN +mosip.role.prereg.postnotificationnotify=REGISTRATION_OFFICER,INDIVIDUAL,PRE_REGISTRATION_ADMIN +mosip.role.prereg.postnotification=INDIVIDUAL,PRE_REGISTRATION_ADMIN +mosip.role.prereg.posttransliterationtransliterate=REGISTRATION_OFFICER,REGISTRATION_SUPERVISOR,REGISTRATION_ADMIN,INDIVIDUAL +mosip.role.prereg.getuispeclatest=REGISTRATION_OFFICER,REGISTRATION_SUPERVISOR,REGISTRATION_ADMIN,INDIVIDUAL +mosip.role.prereg.getuispecall=REGISTRATION_OFFICER,REGISTRATION_SUPERVISOR,REGISTRATION_ADMIN,INDIVIDUAL +mosip.role.prereg.postpreregsync=REGISTRATION_OFFICER,REGISTRATION_SUPERVISOR,REGISTRATION_ADMIN +mosip.role.prereg.getsyncpreregistrationid=REGISTRATION_OFFICER,REGISTRATION_SUPERVISOR,REGISTRATION_ADMIN +mosip.role.prereg.getsyncpreregistrationidmachineid=REGISTRATION_OFFICER,REGISTRATION_SUPERVISOR,REGISTRATION_ADMIN +mosip.role.prereg.postsyncconsumedpreregids=REGISTRATION_OFFICER,REGISTRATION_SUPERVISOR,REGISTRATION_ADMIN,REGISTRATION_PROCESSOR mosip.role.prereg.getslotsavailablity=REGISTRATION_OFFICER,INDIVIDUAL mosip.role.prereg.getappointmentdetailspreregid=REGISTRATION_OFFICER,INDIVIDUAL mosip.role.prereg.postappointmentpregid=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.deleteappointmentpreregid=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.cancelappointmentpreregid=REGISTRATION_OFFICER,INDIVIDUAL +mosip.role.prereg.cancelappointmentpreregid=REGISTRATION_OFFICER,INDIVIDUAL,PRE_REGISTRATION_ADMIN +mosip.role.prereg.deleteappointmentpreregid=REGISTRATION_OFFICER,INDIVIDUAL,PRE_REGISTRATION_ADMIN mosip.role.prereg.postappointmentmulti=REGISTRATION_OFFICER,INDIVIDUAL mosip.role.prereg.updateapplicationstatusappid=REGISTRATION_OFFICER,INDIVIDUAL mosip.role.prereg.getapplicationdetailsappid=REGISTRATION_OFFICER,INDIVIDUAL - mosip.preregistration.appointment.getavailablity.url=${mosip.base.url}/preregistration/v1/appointment/availability/{registrationCenterId} mosip.preregistration.appointment.book.url=${mosip.base.url}/preregistration/v1/appointment/{preRegistrationId} mosip.preregistration.appointment.multi.book.url=${mosip.base.url}/preregistration/v1/appointment @@ -413,21 +407,41 @@ mosip.role.prereg.getappointmentregistrationcenterid=INDIVIDUAL,REGISTRATION_OFF preregistration.cookie.contextpath=/preregistration/ +#Properties for Notification Template Attribute $ApplicationDetails +mosip.prereg.applicationdetails.eng= pre registration +mosip.updateregistration.applicationdetails.eng= booking to update registration +mosip.lostuin.applicationdetails.eng= booking to retrieve the lost UIN + +mosip.prereg.applicationdetails.fra= préinscription +mosip.updateregistration.applicationdetails.fra= réservation pour mettre à jour linscription +mosip.lostuin.applicationdetails.fra= réservation pour récupérer lUIN perdu + +mosip.prereg.applicationdetails.ara= \u0627\u0644\u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u0645\u0633\u0628\u0642 +mosip.updateregistration.applicationdetails.ara= \u0627\u0644\u062D\u062C\u0632 \u0644\u062A\u062D\u062F\u064A\u062B \u0627\u0644\u062A\u0633\u062C\u064A\u0644 +mosip.lostuin.applicationdetails.ara= \u0627\u0644\u062D\u062C\u0632 \u0644\u0627\u0633\u062A\u0631\u062F\u0627\u062F UIN \u0627\u0644\u0645\u0641\u0642\u0648\u062F + # To generate token from keycloak. Use by kernel auth adapter. mosip.iam.adapter.clientid=mosip-prereg-client -mosip.iam.adapter.clientsecret=abc123 +mosip.iam.adapter.clientsecret= 0xUtDcxYE8rfYMc6 mosip.iam.adapter.appid=prereg # URL to get new Auth Token from OIDC provider & to do online validation of auth token with OIDC provider. -auth.server.admin.issuer.uri=${mosip.base.url}/keycloak/auth/realms/ +auth.server.admin.issuer.uri=https://iam.dev.mosip.net/auth/realms/ # Map to find the realm for the inputted appid to get the token from OIDC provider. -mosip.kernel.auth.appids.realm.map={prereg:'preregistration',ida:'mosip',registrationclient:'mosip',regproc:'mosip',partner:'mosip',resident:'mosip',admin:'mosip',crereq:'mosip',creser:'mosip',datsha:'mosip'} +mosip.kernel.auth.appids.realm.map={prereg:'mosip',ida:'mosip',registrationclient:'mosip',regproc:'mosip',partner:'mosip',resident:'mosip',admin:'mosip',crereq:'mosip',creser:'mosip',datsha:'mosip',idrepo:'mosip',hotlist:'mosip'} # To validate the issued audience/azp of the auth token in offline token validation.t -auth.server.admin.allowed.audience= +auth.server.admin.allowed.audience=mosip-regproc-client,mosip-prereg-client,mosip-admin-client,mosip-reg-client #the custom auth provider component names list #mosip.security.authentication.provider.beans.list=customJWTAuthProvider mosip.security.authentication.provider.beans.list.pre-registration-application-service=customJWTAuthProvider -mosip.security.authentication.provider.beans.list.pre-registration-booking-service=customJWTAuthProvider \ No newline at end of file +mosip.security.authentication.provider.beans.list.pre-registration-booking-service=customJWTAuthProvider + +mosip.kernel.data-key-splitter: #KEY_SPLITTER# +pre.reg.login.otp.validation-attempt-threshold: 10 + +mosip.preregistration.anonymous-profile-username:admin + +spring.mvc.pathmatch.matching-strategy=ANT_PATH_MATCHER \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/main/resources/bootstrap.properties b/pre-registration/pre-registration-application-service/src/main/resources/bootstrap.properties index f8e4c192584..7f1687da995 100644 --- a/pre-registration/pre-registration-application-service/src/main/resources/bootstrap.properties +++ b/pre-registration/pre-registration-application-service/src/main/resources/bootstrap.properties @@ -1,4 +1,4 @@ -spring.cloud.config.uri=https://dev.mosip.net +spring.cloud.config.uri=https://localhost:8080 spring.cloud.config.label=develop spring.cloud.config.name=pre-registration spring.application.name=pre-registration-application-service diff --git a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/service/ApplicationServiceTest.java b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/service/ApplicationServiceTest.java index 6576af9f168..16f9b00e513 100644 --- a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/service/ApplicationServiceTest.java +++ b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/service/ApplicationServiceTest.java @@ -6,7 +6,6 @@ import java.time.LocalDateTime; import java.time.LocalTime; import java.time.ZoneId; -import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -36,7 +35,6 @@ import io.mosip.preregistration.application.dto.ApplicationRequestDTO; import io.mosip.preregistration.application.dto.ApplicationResponseDTO; import io.mosip.preregistration.application.dto.ApplicationsListDTO; -import io.mosip.preregistration.application.dto.DeleteApplicationDTO; import io.mosip.preregistration.application.dto.UIAuditRequest; import io.mosip.preregistration.application.errorcodes.ApplicationErrorCodes; import io.mosip.preregistration.application.errorcodes.ApplicationErrorMessages; @@ -47,12 +45,14 @@ import io.mosip.preregistration.application.repository.ApplicationRepostiory; import io.mosip.preregistration.application.service.util.DemographicServiceUtil; import io.mosip.preregistration.core.code.BookingTypeCodes; +import io.mosip.preregistration.core.code.StatusCodes; import io.mosip.preregistration.core.common.dto.DemographicResponseDTO; import io.mosip.preregistration.core.common.dto.DocumentsMetaData; import io.mosip.preregistration.core.common.dto.MainRequestDTO; import io.mosip.preregistration.core.common.dto.MainResponseDTO; import io.mosip.preregistration.core.common.entity.ApplicationEntity; import io.mosip.preregistration.core.exception.InvalidRequestParameterException; +import io.mosip.preregistration.core.exception.PreIdInvalidForUserIdException; import io.mosip.preregistration.core.exception.PreRegistrationException; import io.mosip.preregistration.core.util.AuditLogUtil; import io.mosip.preregistration.core.util.ValidationUtil; @@ -242,6 +242,20 @@ public void testAddLostOrUpdateHttpServerErrorException2() { // applicationEntity.getApplicationId()); // } // + + @Test + public void getApplicationInfoTest() { + String applicationId = "9876543210"; + String id = "23465"; + ApplicationEntity applicationEntity = new ApplicationEntity(); + applicationEntity.setApplicationId(applicationId); + applicationEntity.setAppointmentDate(LocalDate.now()); + applicationEntity.setRegistrationCenterId(id); + Mockito.when(applicationRepository.findByApplicationId(applicationId)).thenReturn(applicationEntity); + MainResponseDTO response = applicationService.getApplicationInfo(applicationId); + assertNotNull(response.getResponse()); + } + @Test(expected = InvalidRequestParameterException.class) public void testgetApplicationInfoInvalidRequestParameterException() { applicationService.getApplicationInfo(null); @@ -284,6 +298,101 @@ public void testgetAllApplicationsForUserForBookingType() { Assert.assertEquals("1234567890", response.getResponse().getAllApplications().get(0).getApplicationId()); } + @Test + public void deleteLostOrUpdateApplicationSuccessTest() { + String applicationId = "12345"; + ApplicationEntity applicationEntity = new ApplicationEntity(); + applicationEntity.setApplicationId(applicationId); + applicationEntity.setAppointmentDate(LocalDate.now()); + applicationEntity.setCrBy("4665"); + applicationEntity.setRegistrationCenterId("32544"); + + AuthUserDetails applicationUser = Mockito.mock(AuthUserDetails.class); + Authentication authentication = Mockito.mock(Authentication.class); + authentication.setAuthenticated(true); + SecurityContext securityContext = Mockito.mock(SecurityContext.class); + Mockito.when(securityContext.getAuthentication()).thenReturn(authentication); + SecurityContextHolder.setContext(securityContext); + Mockito.when(SecurityContextHolder.getContext().getAuthentication().getPrincipal()).thenReturn(applicationUser); + + Mockito.when(serviceUtil.findApplicationById(Mockito.any())).thenReturn(applicationEntity); + Mockito.when(validationUtil.requstParamValidator(Mockito.any())).thenReturn(true); + assertNotNull(applicationService.deleteLostOrUpdateApplication(applicationId, + StatusCodes.BOOKED.getCode().toString())); + } + + @Test + public void deleteLostOrUpdateApplicationSuccessTest2() { + String applicationId = "4665"; + ApplicationEntity applicationEntity = new ApplicationEntity(); + applicationEntity.setApplicationId(applicationId); + applicationEntity.setAppointmentDate(LocalDate.now()); + applicationEntity.setCrBy("4665"); + applicationEntity.setRegistrationCenterId("32544"); + + AuthUserDetails applicationUser = Mockito.mock(AuthUserDetails.class); + Authentication authentication = Mockito.mock(Authentication.class); + authentication.setAuthenticated(true); + SecurityContext securityContext = Mockito.mock(SecurityContext.class); + Mockito.when(securityContext.getAuthentication()).thenReturn(authentication); + SecurityContextHolder.setContext(securityContext); + Mockito.when(SecurityContextHolder.getContext().getAuthentication().getPrincipal()).thenReturn(applicationUser); + Mockito.when(applicationService.authUserDetails().getUserId()).thenReturn(applicationId); + + Mockito.when(serviceUtil.findApplicationById(Mockito.any())).thenReturn(applicationEntity); + Mockito.when(validationUtil.requstParamValidator(Mockito.any())).thenReturn(true); + assertNotNull(applicationService.deleteLostOrUpdateApplication(applicationId, + BookingTypeCodes.LOST_FORGOTTEN_UIN.toString())); + } + + @Test + public void deleteLostOrUpdateApplicationSuccessTest3() { + String applicationId = "4665"; + ApplicationEntity applicationEntity = new ApplicationEntity(); + applicationEntity.setApplicationId(applicationId); + applicationEntity.setAppointmentDate(LocalDate.now()); + applicationEntity.setCrBy("4665"); + applicationEntity.setRegistrationCenterId("32544"); + + AuthUserDetails applicationUser = Mockito.mock(AuthUserDetails.class); + Authentication authentication = Mockito.mock(Authentication.class); + authentication.setAuthenticated(true); + SecurityContext securityContext = Mockito.mock(SecurityContext.class); + Mockito.when(securityContext.getAuthentication()).thenReturn(authentication); + SecurityContextHolder.setContext(securityContext); + Mockito.when(SecurityContextHolder.getContext().getAuthentication().getPrincipal()).thenReturn(applicationUser); + Mockito.when(applicationService.authUserDetails().getUserId()).thenReturn(applicationId); + + Mockito.when(serviceUtil.findApplicationById(Mockito.any())).thenReturn(applicationEntity); + Mockito.when(validationUtil.requstParamValidator(Mockito.any())).thenReturn(true); + assertNotNull(applicationService.deleteLostOrUpdateApplication(applicationId, + BookingTypeCodes.LOST_FORGOTTEN_UIN.toString())); + } + + @Test(expected = PreIdInvalidForUserIdException.class) + public void deleteLostOrUpdateApplicationExceptionTest2() { + String applicationId = "1234"; + ApplicationEntity applicationEntity = new ApplicationEntity(); + applicationEntity.setApplicationId(applicationId); + applicationEntity.setAppointmentDate(LocalDate.now()); + applicationEntity.setCrBy("4665"); + applicationEntity.setRegistrationCenterId("32544"); + + AuthUserDetails applicationUser = Mockito.mock(AuthUserDetails.class); + Authentication authentication = Mockito.mock(Authentication.class); + authentication.setAuthenticated(true); + SecurityContext securityContext = Mockito.mock(SecurityContext.class); + Mockito.when(securityContext.getAuthentication()).thenReturn(authentication); + SecurityContextHolder.setContext(securityContext); + Mockito.when(SecurityContextHolder.getContext().getAuthentication().getPrincipal()).thenReturn(applicationUser); + Mockito.when(applicationService.authUserDetails().getUserId()).thenReturn(applicationId); + + Mockito.when(serviceUtil.findApplicationById(Mockito.any())).thenReturn(applicationEntity); + Mockito.when(validationUtil.requstParamValidator(Mockito.any())).thenReturn(true); + assertNotNull(applicationService.deleteLostOrUpdateApplication(applicationId, + BookingTypeCodes.LOST_FORGOTTEN_UIN.toString())); + } + @Test public void testDeleteLostOrUpdateApplicationPreRegistrationSuccess() { String applicationId = "12345"; @@ -309,7 +418,7 @@ public void testDeleteLostOrUpdateApplicationPreRegistrationException2() { @Test(expected = InvalidDateFormatException.class) public void testgetBookingsForRegCenterInvalidDateFormatException() { - applicationService.getBookingsForRegCenter(null, "23-08-2021"); + applicationService.getBookingsForRegCenter(null, "23-08-2021", null); } @Test @@ -331,32 +440,55 @@ public void testgetBookingsForRegCenter() { applicationEntity.setUpdBy(""); applicationEntity.setUpdDtime(LocalDateTime.now()); entity.add(applicationEntity); - Mockito.when(applicationRepository.findByRegistrationCenterIdAndAppointmentDate(Mockito.any(), Mockito.any())) + Mockito.when(applicationRepository.findByRegistrationCenterIdAndBetweenDate(Mockito.any(), Mockito.any(), Mockito.any())) + .thenReturn(entity); + + MainResponseDTO> response = applicationService.getBookingsForRegCenter(null, + LocalDate.now().toString(), null); + Assert.assertEquals(response.getResponse().get(0).getApplicationId(), applicationEntity.getApplicationId()); + + } + + @Test + public void getBookingsForRegCenterTest2() { + String appointmentToDate = LocalDate.now().toString(); + List entity = new ArrayList(); + ApplicationEntity applicationEntity = new ApplicationEntity(); + applicationEntity.setApplicationId("42342342"); + applicationEntity.setAppointmentDate(LocalDate.now()); + applicationEntity.setBookingDate(LocalDate.now()); + applicationEntity.setCrDtime(LocalDateTime.now()); + applicationEntity.setRegistrationCenterId(""); + applicationEntity.setSlotFromTime(LocalTime.now()); + applicationEntity.setSlotToTime(LocalTime.now()); + applicationEntity.setUpdDtime(LocalDateTime.now()); + entity.add(applicationEntity); + Mockito.when(applicationRepository.findByRegistrationCenterIdAndBetweenDate(Mockito.any(), Mockito.any(), Mockito.any())) .thenReturn(entity); MainResponseDTO> response = applicationService.getBookingsForRegCenter(null, - LocalDate.now().toString()); + LocalDate.now().toString(), appointmentToDate); Assert.assertEquals(response.getResponse().get(0).getApplicationId(), applicationEntity.getApplicationId()); } @Test(expected = RecordNotFoundException.class) public void testgetBookingsForRegCenterRecordNotFoundException() { - Mockito.when(applicationRepository.findByRegistrationCenterIdAndAppointmentDate(Mockito.any(), Mockito.any())) + Mockito.when(applicationRepository.findByRegistrationCenterIdAndBetweenDate(Mockito.any(), Mockito.any(), Mockito.any())) .thenReturn(null); MainResponseDTO> response = applicationService.getBookingsForRegCenter(null, - LocalDate.now().toString()); + LocalDate.now().toString(), null); } @Test(expected = InvalidRequestParameterException.class) public void testgetBookingsForRegCenterIllegalArgumentException() { - Mockito.when(applicationRepository.findByRegistrationCenterIdAndAppointmentDate(Mockito.any(), Mockito.any())) + Mockito.when(applicationRepository.findByRegistrationCenterIdAndBetweenDate(Mockito.any(), Mockito.any(), Mockito.any())) .thenThrow(new IllegalArgumentException()); MainResponseDTO> response = applicationService.getBookingsForRegCenter(null, - LocalDate.now().toString()); + LocalDate.now().toString(),null); } @Test diff --git a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/service/AppointmentServiceImplTest.java b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/service/AppointmentServiceImplTest.java index ea3b28b9ce7..8aacfcc9234 100644 --- a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/service/AppointmentServiceImplTest.java +++ b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/service/AppointmentServiceImplTest.java @@ -31,6 +31,7 @@ import io.mosip.analytics.event.anonymous.util.AnonymousProfileUtil; import io.mosip.kernel.core.authmanager.authadapter.model.AuthUserDetails; import io.mosip.preregistration.application.repository.ApplicationRepostiory; +import io.mosip.preregistration.application.repository.DocumentDAO; import io.mosip.preregistration.application.service.util.AppointmentUtil; import io.mosip.preregistration.booking.dto.AvailabilityDto; import io.mosip.preregistration.booking.dto.BookingRequestDTO; @@ -38,6 +39,8 @@ import io.mosip.preregistration.booking.dto.BookingStatusDTO; import io.mosip.preregistration.booking.dto.DateTimeDto; import io.mosip.preregistration.booking.dto.MultiBookingRequest; +import io.mosip.preregistration.booking.dto.MultiBookingRequestDTO; +import io.mosip.preregistration.core.code.BookingTypeCodes; import io.mosip.preregistration.core.common.dto.BookingRegistrationDTO; import io.mosip.preregistration.core.common.dto.CancelBookingResponseDTO; import io.mosip.preregistration.core.common.dto.DeleteBookingDTO; @@ -95,12 +98,14 @@ public class AppointmentServiceImplTest { @Mock private ApplicationRepostiory applicationRepostiory; + + @Mock + private DocumentDAO documentDAO; @Before public void init() { MockitoAnnotations.initMocks(this); ReflectionTestUtils.setField(appointmentServiceImpl, "mosipDateTimeFormat", "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); - } @Test @@ -478,7 +483,8 @@ public void makeAppointmentTest() { bookingDTO.setRequest(bookreq); BookingStatusDTO booked = new BookingStatusDTO(); Mockito.when(appointmentUtils.makeAppointment(bookingDTO, preRegistrationId)).thenReturn(booked); - + Boolean documentExists = true; + Mockito.when(documentDAO.existsByPreregId(preRegistrationId)).thenReturn(documentExists); ApplicationEntity applicationEntity = new ApplicationEntity(); applicationEntity.setApplicationId("98765432"); applicationEntity.setAppointmentDate(LocalDate.now()); @@ -500,7 +506,7 @@ public void makeAppointmentTest() { demographicresponseData.setPreRegistrationId(preRegistrationId); demographicresponseData.setStatusCode("PENDING_APPOINTMENT"); demographicData.setResponse(demographicresponseData); - Mockito.when(demographicService.getDemographicData(Mockito.any(), Mockito.any())).thenReturn(demographicData); + Mockito.when(demographicService.getDemographicData(Mockito.any())).thenReturn(demographicData); DocumentsMetaData documentsMetaData = new DocumentsMetaData(); documentsData.setResponse(documentsMetaData); Mockito.when(documentService.getAllDocumentForPreId(preRegistrationId)).thenReturn(documentsData); @@ -512,16 +518,43 @@ public void makeMultiAppointmentTest() { MainRequestDTO bookingRequest = new MainRequestDTO(); MainResponseDTO multiBookingResponse = new MainResponseDTO(); List bookingStatusResponse = new ArrayList(); + BookingStatusDTO bookingStatusDto = new BookingStatusDTO(); + bookingStatusResponse.add(bookingStatusDto); MultiBookingRequest req = new MultiBookingRequest(); + List list = new ArrayList<>(); + MultiBookingRequestDTO item = new MultiBookingRequestDTO(); + item.setPreRegistrationId("98765432"); + item.setRegistrationCenterId("10001"); + item.setRegDate(LocalDate.now().toString()); + item.setSlotFromTime("10:00:00"); + item.setSlotToTime("10:15:00"); + list.add(item); + req.setBookingRequest(list); String id = "123"; String userAgent = "demo"; - multiBookingResponse.setId(appointmentBookId); + AuthUserDetails applicationUser = Mockito.mock(AuthUserDetails.class); + Authentication authentication = Mockito.mock(Authentication.class); + SecurityContext securityContext = Mockito.mock(SecurityContext.class); + Mockito.when(securityContext.getAuthentication()).thenReturn(authentication); + SecurityContextHolder.setContext(securityContext); + Mockito.when(SecurityContextHolder.getContext().getAuthentication().getPrincipal()).thenReturn(applicationUser); + + ApplicationEntity applicationEntity = new ApplicationEntity(); + applicationEntity.setApplicationId("98765432"); + applicationEntity.setAppointmentDate(LocalDate.now()); + applicationEntity.setBookingDate(LocalDate.now()); + applicationEntity.setBookingType(BookingTypeCodes.UPDATE_REGISTRATION.toString()); + applicationEntity.setBookingStatusCode("PENDING_APPOINTMENT"); + Mockito.when(applicationRepostiory.getOne(Mockito.any())).thenReturn(applicationEntity); + Mockito.when(applicationRepostiory.save(applicationEntity)).thenReturn(applicationEntity); + multiBookingResponse.setResponsetime(LocalDateTime.now().toString()); multiBookingResponse.setVersion(version); bookingRequest.setId(id); bookingRequest.setVersion(version); bookingRequest.setRequesttime(Date.from(Instant.now())); bookingRequest.setRequest(req); + bookingRequest.setRequest(req); BookingStatus bookingStatus = new BookingStatus(); bookingStatus.setBookingStatusResponse(bookingStatusResponse); Mockito.when(appointmentUtils.multiAppointmentBooking(bookingRequest)).thenReturn(bookingStatus); diff --git a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/service/DemographicServiceTest.java b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/service/DemographicServiceTest.java index 747037fe1c0..6a3abcaf8da 100644 --- a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/service/DemographicServiceTest.java +++ b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/service/DemographicServiceTest.java @@ -1,6 +1,8 @@ package io.mosip.preregistration.application.service; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; import java.io.File; import java.io.FileNotFoundException; @@ -26,13 +28,14 @@ import java.util.Map; import java.util.Set; import java.util.TimeZone; +import java.util.stream.Collectors; -import org.joda.time.DateTime; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.junit.Assert; import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @@ -118,6 +121,7 @@ import io.mosip.preregistration.core.common.entity.DocumentEntity; import io.mosip.preregistration.core.exception.HashingException; import io.mosip.preregistration.core.exception.InvalidRequestParameterException; +import io.mosip.preregistration.core.exception.PreIdInvalidForUserIdException; import io.mosip.preregistration.core.util.AuditLogUtil; import io.mosip.preregistration.core.util.CryptoUtil; import io.mosip.preregistration.core.util.HashUtill; @@ -349,11 +353,8 @@ public void setup() throws ParseException, FileNotFoundException, IOException, File fileTest = new File(classLoader.getResource("pre-registration-test.json").getFile()); jsonTestObject = (JSONObject) parser.parse(new FileReader(fileTest)); - identityMappingJson = "{\r\n" + " \"identity\": {\r\n" + " \"name\": {\r\n" - + " \"value\": \"fullName\",\r\n" + " \"isMandatory\" : true\r\n" + " },\r\n" - + " \"proofOfAddress\": {\r\n" + " \"value\" : \"proofOfAddress\"\r\n" + " },\r\n" - + " \"postalCode\": {\r\n" + " \"value\" : \"postalCode\"\r\n" + " }\r\n" + " }\r\n" - + "} "; + identityMappingJson = "{\r\n" + " \"properties\": {\r\n" + " \"identity\": {\r\n" + + " \"properties\": \"demo\"\r\n" + " }\r\n" + " }\r\n" + "}"; times = LocalDateTime.now(); preRegistrationEntity.setCreateDateTime(times); @@ -479,11 +480,12 @@ public void getPreRegistrationTest() { Mockito.when(serviceUtil.setterForCreateDTO(Mockito.any())).thenReturn(demographicResponseDTO); Mockito.when(demographicRepository.findBypreRegistrationId("98746563542672")).thenReturn(preRegistrationEntity); Mockito.when(cryptoUtil.decrypt(Mockito.any(), Mockito.any())).thenReturn(jsonObject.toString().getBytes()); - MainResponseDTO res = preRegistrationService.getDemographicData("98746563542672", true); + MainResponseDTO res = preRegistrationService.getDemographicData("98746563542672"); assertEquals("98746563542672", res.getResponse().getPreRegistrationId()); } - @Test(expected = NullPointerException.class) + @Ignore + @Test public void createByDateFailureTest() throws Exception { InvalidRequestParameterException exception = new InvalidRequestParameterException( DemographicErrorCodes.PRG_PAM_APP_012.toString(), @@ -559,7 +561,7 @@ public void callGetAppointmentDetailsRestServiceTest1() ResponseEntity> respEntity = new ResponseEntity<>(dto, HttpStatus.OK); HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON_UTF8); + headers.setContentType(MediaType.APPLICATION_JSON); Mockito.when(restTemplate.exchange(Mockito.anyString(), Mockito.eq(HttpMethod.GET), Mockito.any(), Mockito.eq(new ParameterizedTypeReference>() { @@ -683,7 +685,7 @@ public void deleteIndividualSuccessTest() throws Exception { ResponseEntity> res1 = new ResponseEntity<>(delBookingResponseDTO, HttpStatus.OK); HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON_UTF8); + headers.setContentType(MediaType.APPLICATION_JSON); Mockito.when(restTemplate.exchange(Mockito.anyString(), Mockito.eq(HttpMethod.DELETE), Mockito.any(), Mockito.eq(new ParameterizedTypeReference>() { }))).thenReturn(res); @@ -699,6 +701,29 @@ public void deleteIndividualSuccessTest() throws Exception { } + @Test(expected = PreIdInvalidForUserIdException.class) + public void deleteIndividualSuccessTest2() throws Exception { + String preRegId = "23242242"; + String userId = "123"; + preRegistrationEntity.setCreateDateTime(times); + preRegistrationEntity.setCreatedBy("9988905444"); + preRegistrationEntity.setStatusCode("Booked"); + preRegistrationEntity.setUpdateDateTime(times); + preRegistrationEntity.setApplicantDetailJson(jsonTestObject.toJSONString().getBytes()); + preRegistrationEntity.setPreRegistrationId("98746563542672"); + DocumentDeleteResponseDTO deleteDTO = new DocumentDeleteResponseDTO(); + List deleteAllList = new ArrayList<>(); + deleteAllList.add(deleteDTO); + MainResponseDTO delBookingResponseDTO = new MainResponseDTO<>(); + DeleteBookingDTO deleteBookingDTO = new DeleteBookingDTO(); + deleteBookingDTO.setPreRegistrationId("98746563542672"); + List list = new ArrayList<>(); + MainResponseDTO e = new MainResponseDTO(); + Mockito.when(serviceUtil.deleteBooking(Mockito.any())).thenReturn(e); + Mockito.when(demographicRepository.findBypreRegistrationId(preRegId)).thenReturn(preRegistrationEntity); + assertNotNull(preRegistrationService.deleteIndividual(preRegId, userId)); + } + @Test(expected = HashingException.class) public void getPreRegistrationHashingExceptionTest() { byte[] encryptedDemographicDetails = { 1, 0, 1, 0, 1, 0 }; @@ -710,7 +735,7 @@ public void getPreRegistrationHashingExceptionTest() { // String(HashUtill.hashUtill(preRegistrationEntity.getApplicantDetailJson()))); Mockito.when(demographicRepository.findBypreRegistrationId("98746563542672")).thenReturn(preRegistrationEntity); Mockito.when(cryptoUtil.decrypt(Mockito.any(), Mockito.any())).thenReturn(jsonObject.toString().getBytes()); - MainResponseDTO res = preRegistrationService.getDemographicData("98746563542672", true); + MainResponseDTO res = preRegistrationService.getDemographicData("98746563542672"); assertEquals("98746563542672", res.getResponse().getPreRegistrationId()); } @@ -724,10 +749,30 @@ public void updatePreRegistrationStatusTest() { } + @Test + public void updatePreRegistrationStatusTests() { + Mockito.when(demographicRepository.findBypreRegistrationId("98746563542672")).thenReturn(preRegistrationEntity); + Mockito.when(serviceUtil.isStatusValid(Mockito.any())).thenReturn(true); + + ExceptionJSONInfoDTO err = new ExceptionJSONInfoDTO("PRG_PAM_DOC_015", ""); + List errlist = new ArrayList<>(); + errlist.add(err); + + MainResponseDTO response = new MainResponseDTO<>(); + response.setId(createId); + response.setResponse(createId); + response.setErrors(fullname); + + MainResponseDTO res = preRegistrationService.updatePreRegistrationStatus("98746563542672", "Booked", + userId); + assertEquals("STATUS_UPDATED_SUCESSFULLY", res.getResponse()); + + } + @Test(expected = RecordNotFoundException.class) public void getPreRegistrationFailureTest() { Mockito.when(demographicRepository.findBypreRegistrationId("98746563542672")).thenReturn(null); - preRegistrationService.getDemographicData("98746563542672", true); + preRegistrationService.getDemographicData("98746563542672"); } @Test @@ -746,6 +791,33 @@ public void updatePreRegistrationStatusFailureTest2() { assertEquals("STATUS_NOT_UPDATED_SUCESSFULLY", response.getResponse()); } + + @Test + public void getUpdatedDateTimeForPreIdsTest() { + List preIds = new ArrayList<>(); + preIds.add("userEntityDetails"); + PreRegIdsByRegCenterIdDTO preRegIdsByRegCenterIdDTO = new PreRegIdsByRegCenterIdDTO(); + preRegIdsByRegCenterIdDTO.setPreRegistrationIds(preIds); + userEntityDetails = null; + List statusCodes = new ArrayList<>(); + statusCodes.add(StatusCodes.BOOKED.getCode()); + statusCodes.add(StatusCodes.EXPIRED.getCode()); + List demographicEntities = new ArrayList<>(); + entity.setCrAppuserId(userId); + entity.setLangCode("eng"); + entity.setPreRegistrationId("12344"); + entity.setUpdateDateTime(LocalDateTime.now()); + entity.setUpdatedBy(updateId); + demographicEntities.add(entity); + + Mockito.when(demographicRepository.findByStatusCodeInAndPreRegistrationIdIn(Mockito.any(), Mockito.any())) + .thenReturn(demographicEntities); + Mockito.when(demographicRepository.findByStatusCodeInAndPreRegistrationIdIn(statusCodes, preIds)) + .thenReturn(userEntityDetails); + MainResponseDTO> response = preRegistrationService + .getUpdatedDateTimeForPreIds(preRegIdsByRegCenterIdDTO); + assertNotNull(response); + } @Test(expected = RecordNotFoundForPreIdsException.class) public void invalidPreidFailureTest() { @@ -829,7 +901,7 @@ public void deleteRecordRestCallException() throws Exception { ResponseEntity> res1 = new ResponseEntity<>(delBookingResponseDTO, HttpStatus.OK); HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON_UTF8); + headers.setContentType(MediaType.APPLICATION_JSON); MainResponseDTO deleteAllByPreId1 = new MainResponseDTO<>(); deleteAllByPreId1.setErrors(null); Mockito.when(documentServiceIntf.deleteAllByPreId(Mockito.anyString())).thenReturn(deleteAllByPreId1); @@ -868,49 +940,15 @@ public void statusCheckTest() { ApplicantValidDocumentDto applicantValidDocuments = new ApplicantValidDocumentDto(); Collection documentCategories = new ArrayList(); DocumentCategoryAndTypeResponseDto documentCategoryAndTypeResponseDto = new DocumentCategoryAndTypeResponseDto(); - - documentCategories.add(documentCategoryAndTypeResponseDto); - applicantValidDocuments.setDocumentCategories(documentCategories); - Mockito.when(serviceUtil.getDocCatAndTypeForApplicantCode(Mockito.any(), Mockito.any())) - .thenReturn(applicantValidDocuments); - DemographicService demographicService = Mockito.mock(DemographicService.class); - Mockito.doNothing().when(demographicService).statusCheck(Mockito.isA(DemographicEntity.class), - Mockito.isA(String.class), Mockito.isA(String.class)); - demographicService.statusCheck(demographicEntity, status, userId); - - Mockito.verify(demographicService, Mockito.times(1)).statusCheck(demographicEntity, status, userId); - - } - - @Test - public void statusCheckTest2() { - DemographicEntity demographicEntity = new DemographicEntity(); - demographicEntity.setPreRegistrationId("987654321"); - List documentEntitys = new ArrayList(); - DocumentEntity documentEntity = new DocumentEntity(); - - documentEntity.setDocCatCode(""); - documentEntitys.add(documentEntity); - demographicEntity.setDocumentEntity(documentEntitys); - demographicEntity.setLangCode(""); - String status = StatusCodes.APPLICATION_INCOMPLETE.getCode().toLowerCase(); - String userId = "987654321"; - Mockito.when(serviceUtil.isStatusValid(status)).thenReturn(true); - ApplicantValidDocumentDto applicantValidDocuments = new ApplicantValidDocumentDto(); - Collection documentCategories = new ArrayList(); - DocumentCategoryAndTypeResponseDto documentCategoryAndTypeResponseDto = new DocumentCategoryAndTypeResponseDto(); - + documentCategoryAndTypeResponseDto.setCode("abc"); + Set mandatoryDocCat = new HashSet<>(); + mandatoryDocCat.add(""); + Mockito.when(serviceUtil.getMandatoryDocCatogery()).thenReturn(mandatoryDocCat); documentCategories.add(documentCategoryAndTypeResponseDto); applicantValidDocuments.setDocumentCategories(documentCategories); Mockito.when(serviceUtil.getDocCatAndTypeForApplicantCode(Mockito.any(), Mockito.any())) .thenReturn(applicantValidDocuments); - DemographicService demographicService = Mockito.mock(DemographicService.class); - Mockito.doNothing().when(demographicService).statusCheck(Mockito.isA(DemographicEntity.class), - Mockito.isA(String.class), Mockito.isA(String.class)); demographicService.statusCheck(demographicEntity, status, userId); - - Mockito.verify(demographicService, Mockito.times(1)).statusCheck(demographicEntity, status, userId); - } @Test(expected = RecordFailedToUpdateException.class) @@ -973,13 +1011,74 @@ public void testgetPregistrationInfoPreRegistrationException() { Assert.assertEquals(null, response.getResponse().getDemographicResponse()); } - @Test(expected = NullPointerException.class) + @Test + public void addPreRegistrationTest() throws Exception { + List requiredFields = new ArrayList(); + requiredFields.add("field"); + DemographicRequestDTO demographicRequest = new DemographicRequestDTO(); + demographicRequest.setLangCode("eng"); + demographicRequest.setDemographicDetails(jsonObject); + demographicRequest.setRequiredFields(requiredFields); + MainRequestDTO request = new MainRequestDTO(); + request.setId(userId); + request.setVersion("1"); + request.setRequesttime(Date.from(Instant.now())); + request.setRequest(demographicRequest); + MainResponseDTO mainResponseDTO = new MainResponseDTO(); + Mockito.when((MainResponseDTO) serviceUtil.getMainResponseDto(request)) + .thenReturn(mainResponseDTO); + + IdSchemaDto idSchema = new IdSchemaDto(); + Mockito.when(serviceUtil.getSchema()).thenReturn(idSchema); + idSchema.setId(userId); + idSchema.setSchemaJson(identityMappingJson); + idSchema.setIdVersion(1.0); + MainResponseDTO actualRes = preRegistrationService + .addPreRegistration(request); + assertNotNull(actualRes); + } + + @Test + public void addPreRegistrationExceptionTest() throws Exception { + List requiredFields = new ArrayList(); + requiredFields.add("field"); + DemographicRequestDTO demographicRequest = new DemographicRequestDTO(); + demographicRequest.setLangCode("eng"); + demographicRequest.setDemographicDetails(jsonObject); + demographicRequest.setRequiredFields(requiredFields); + MainRequestDTO request = new MainRequestDTO(); + request.setId(userId); + request.setVersion("1"); + request.setRequesttime(Date.from(Instant.now())); + request.setRequest(demographicRequest); + + IdSchemaDto idSchema = new IdSchemaDto(); + Mockito.when(serviceUtil.getSchema()).thenReturn(idSchema); + idSchema.setId(userId); + idSchema.setSchemaJson(identityMappingJson); + idSchema.setIdVersion(1.0); + MainResponseDTO actualRes = preRegistrationService + .addPreRegistration(request); + assertNull(actualRes); + } + + @Test public void updatePreRegistrationTest() throws IOException { String userId = "12345"; + String preRegistrationId = "50856891401984"; + List requiredFields = new ArrayList(); + requiredFields.add("field"); + MainRequestDTO request = new MainRequestDTO(); DemographicRequestDTO demographicRequest = new DemographicRequestDTO(); demographicRequest.setLangCode(userId); demographicRequest.setDemographicDetails(jsonObject); + demographicRequest.setRequiredFields(requiredFields); + + MainResponseDTO mainResponseDTO = new MainResponseDTO(); + Mockito.when((MainResponseDTO) serviceUtil.getMainResponseDto(request)) + .thenReturn(mainResponseDTO); + mainResponseDTO.setId("12345"); request.setId(userId); request.setVersion("1"); request.setRequesttime(Date.from(Instant.now())); @@ -990,13 +1089,18 @@ public void updatePreRegistrationTest() throws IOException { idSchema.setId(userId); idSchema.setSchemaJson(identityMappingJson); idSchema.setIdVersion(1.0); - DateTime time = DateTime.now(); + LocalDateTime time = LocalDateTime.now(); String t = time.toString(); Mockito.when(serviceUtil.getCurrentResponseTime()).thenReturn(t); + DemographicEntity demographicEntity = new DemographicEntity(); + demographicEntity.setCreatedBy("12345"); + Mockito.when(demographicRepository.findBypreRegistrationId(preRegistrationId)).thenReturn(demographicEntity); String json = identityMappingJson; JsonNode node = mapper.readTree(json); Mockito.when(objectMapper.readValue(identityMappingJson, JsonNode.class)).thenReturn(node); - preRegistrationService.updatePreRegistration(request, preregistrationIdJson, userId); + MainResponseDTO response = preRegistrationService + .updatePreRegistration(request, preRegistrationId, userId); + assertEquals(userId, response.getId()); } } \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/service/DocumentServiceTest.java b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/service/DocumentServiceTest.java index 6b43593baa4..414501eb976 100644 --- a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/service/DocumentServiceTest.java +++ b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/service/DocumentServiceTest.java @@ -20,7 +20,6 @@ import java.util.Map; import org.apache.commons.io.IOUtils; -import org.joda.time.DateTime; import org.json.JSONException; import org.junit.Before; import org.junit.Test; @@ -423,14 +422,17 @@ public void deleteDocumentFSServerExceptionTest() { } @Test - public void deleteDocumentSuccessTest() { + public void deleteDocumentSuccessTest() throws org.json.simple.parser.ParseException { demographicResponseDTO.setStatusCode("Pending_Appointment"); + List doc = new ArrayList(); + doc.add("1"); DocumentDeleteResponseDTO response = new DocumentDeleteResponseDTO(); response.setMessage("Document successfully deleted"); responsedelete.setResponse(response); Mockito.when( objectStore.deleteObject(Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any())) .thenReturn(true); + Mockito.when(serviceUtil.validMandatoryDocuments(Mockito.any())).thenReturn(doc); Mockito.when(serviceUtil.getPreRegInfoRestService(Mockito.any())).thenReturn(demographicResponseDTO); Mockito.when(validationutil.requstParamValidator(Mockito.any())).thenReturn(true); Mockito.when(documnetDAO.findBydocumentId(Mockito.any())).thenReturn(documentEntity); @@ -550,7 +552,7 @@ public void uploadDocument1Test() documentRequestDTOList.setRequest(documentRequestDTO); responseUpload.setId(documentId); responseUpload.setVersion("12"); - responseUpload.setResponsetime(DateTime.now().toString()); + responseUpload.setResponsetime(LocalDateTime.now().toString()); responseUpload.setResponse(docResp); requiredRequestMap.put("id", "123"); Mockito.doReturn(documentRequestDTOList).when(serviceUtil).createUploadDto(docJson, documentId); @@ -566,7 +568,7 @@ public void uploadDocument2Test() documentRequestDTOList.setRequest(documentRequestDTO); responseUpload.setId(documentId); responseUpload.setVersion("12"); - responseUpload.setResponsetime(DateTime.now().toString()); + responseUpload.setResponsetime(LocalDateTime.now().toString()); responseUpload.setResponse(docResp); requiredRequestMap.put("id", "123"); Mockito.when(serviceUtil.createUploadDto(Mockito.any(), Mockito.any())).thenReturn(documentRequestDTOList); diff --git a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/service/LoginServiceTest.java b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/service/LoginServiceTest.java index 53315c677a8..111ac85f149 100644 --- a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/service/LoginServiceTest.java +++ b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/service/LoginServiceTest.java @@ -18,8 +18,10 @@ import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.core.env.Environment; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -36,6 +38,7 @@ import io.mosip.preregistration.application.errorcodes.LoginErrorMessages; import io.mosip.preregistration.application.exception.ConfigFileNotFoundException; import io.mosip.preregistration.application.exception.InvalidOtpOrUseridException; +import io.mosip.preregistration.application.exception.InvalidateTokenException; import io.mosip.preregistration.application.exception.SendOtpFailedException; import io.mosip.preregistration.application.util.LoginCommonUtil; import io.mosip.preregistration.core.common.dto.AuthNResponse; @@ -100,10 +103,6 @@ public class LoginServiceTest { @Value("${prereg.auth.jwt.token.expiration}") private String jwtTokenExpiryTime; - private String globalConfig; - - private String preregConfig; - @InjectMocks private LoginService authService; @@ -131,11 +130,14 @@ public class LoginServiceTest { @Value("${ui.config.params}") private String uiConfigParams; - @Value("${global.config.file}") - private String globalFileName; + @Value("${prereg.auth.jwt.audience}") + private String jwtAudience; - @Value("${pre.reg.config.file}") - private String preRegFileName; + @Value("${prereg.auth.jwt.secret}") + private String jwtSecret; + + @Mock + private Environment env; MainRequestDTO request = new MainRequestDTO(); @@ -149,9 +151,14 @@ public void setUp() { requestMap.put("version", version); // ReflectionTestUtils.setField(spyAuthService, "uiConfigParams", "abcd"); // ReflectionTestUtils.setField(this, "uiConfigParams", "abcd"); - ReflectionTestUtils.setField(authService, "uiConfigParams", "abcd"); - ReflectionTestUtils.setField(authService, "globalFileName", "abcd"); - ReflectionTestUtils.setField(authService, "preRegFileName", "abcd"); + ReflectionTestUtils.setField(authService, "uiConfigParams", uiConfigParams); + //ReflectionTestUtils.setField(authService, "globalFileName", "abcd"); + //ReflectionTestUtils.setField(authService, "preRegFileName", "abcd"); + ReflectionTestUtils.setField(authService, "configId", "mosip.preregistration.login.id.config"); + ReflectionTestUtils.setField(authService, "jwtTokenExpiryTime", "1800"); + ReflectionTestUtils.setField(authService, "jwtAudience", "adad"); + ReflectionTestUtils.setField(authService, "jwtSecret", "Azcds"); + ReflectionTestUtils.setField(authService, "uiConfigParams", "test1,test2"); } @@ -199,38 +206,11 @@ public void invalidateToken() { @Test public void getConfigSuccessTest() throws Exception { - Properties prop = new Properties(); - ResponseEntity res = new ResponseEntity("mosip.secondary-language=fra", HttpStatus.OK); Map configParams = new HashMap<>(); - configParams.put("mosip.secondary-language", "fra"); + configParams.put("mosip.mandatory-languages", "eng"); MainResponseDTO> response = new MainResponseDTO<>(); - // Mockito.when(restTemplate.getForEntity(Mockito.anyString(), - // Mockito.eq(String.class))).thenReturn(res); - Mockito.when(authCommonUtil.getConfig(Mockito.any())).thenReturn("fileReturn"); - Mockito.doNothing().when(authCommonUtil).getConfigParams(Mockito.any(), Mockito.any(), Mockito.any()); - Mockito.when(authCommonUtil.parsePropertiesString(Mockito.any())).thenReturn(prop); response = authService.getConfig(); - assertNotNull(response.getResponse()); - // assertEquals(response.getResponse().get("mosip.secondary-language"), "fra"); - } - - @Test(expected = ConfigFileNotFoundException.class) - public void getConfigExceptionTest() throws Exception { - Properties prop = new Properties(); - ResponseEntity res = new ResponseEntity("mosip.secondary-language=fra", HttpStatus.OK); - Map configParams = new HashMap<>(); - configParams.put("mosip.secondary-language", "fra"); - MainResponseDTO> response = new MainResponseDTO<>(); - // Mockito.when(restTemplate.getForEntity(Mockito.anyString(), - // Mockito.eq(String.class))).thenReturn(res); - Mockito.when(authCommonUtil.getConfig(Mockito.any())).thenThrow(new ConfigFileNotFoundException( - LoginErrorCodes.PRG_AUTH_012.name(), LoginErrorMessages.CONFIG_FILE_NOT_FOUND_EXCEPTION.name(), null)); - Mockito.doThrow(new ConfigFileNotFoundException(LoginErrorCodes.PRG_AUTH_012.name(), - LoginErrorMessages.CONFIG_FILE_NOT_FOUND_EXCEPTION.name(), null)).when(authCommonUtil) - .getConfigParams(Mockito.any(), Mockito.any(), Mockito.any()); - Mockito.when(authCommonUtil.parsePropertiesString(Mockito.any())).thenReturn(prop); - response = authService.getConfig(); } @Test @@ -281,18 +261,6 @@ public void setAuditValuesTestLoginException() { } - @Test - public void refreshConfig() { - Mockito.when(authCommonUtil.getConfig(Mockito.any())).thenReturn("config"); - assertEquals(spyAuthService.refreshConfig().getResponse(), "success"); - } - - @Test(expected = ConfigFileNotFoundException.class) - public void refreshConfigException() { - Mockito.when(authCommonUtil.getConfig(Mockito.any())) - .thenThrow(new HttpClientErrorException(HttpStatus.NOT_FOUND)); - assertEquals(spyAuthService.refreshConfig().getResponse(), "success"); - } @Test public void validateWithUserIdOtp() { @@ -375,13 +343,6 @@ public void testValidateCaptchaAndSendOtpException() { spyAuthService.validateCaptchaAndSendOtp(request); } - @Test - public void testsetupLoginService() { - Mockito.when(authCommonUtil.getConfig(globalFileName)).thenReturn(globalConfig); - Mockito.when(authCommonUtil.getConfig(preRegFileName)).thenReturn(preregConfig); - spyAuthService.setupLoginService(); - } - @Test public void testSendOTPSuccessJwtToken() { String userId = "123"; @@ -390,4 +351,23 @@ public void testSendOTPSuccessJwtToken() { spyAuthService.sendOTPSuccessJwtToken(userId); } + @Test + public void getLoginTokenTest() { + String userIdOtpId = "123"; + String configId = "1"; + assertNotNull(authService.getLoginToken(userIdOtpId, configId)); + } + + @Test(expected = InvalidateTokenException.class) + public void getLogoutTokenExceptionTest() { + String token = "Authorization=test"; + authService.getLogoutToken(token); + } + + @Test(expected = InvalidateTokenException.class) + public void invalidateTokenTest2() { + String token = "Demo"; + authService.invalidateToken(token); + } + } diff --git a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/service/NotificationServiceTest.java b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/service/NotificationServiceTest.java index 4e91e184672..f04da06674d 100644 --- a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/service/NotificationServiceTest.java +++ b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/service/NotificationServiceTest.java @@ -1,6 +1,7 @@ package io.mosip.preregistration.application.service; import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.when; import java.io.File; import java.io.FileNotFoundException; @@ -15,8 +16,6 @@ import java.util.Map; import java.util.TimeZone; -import javax.annotation.PostConstruct; - import org.json.JSONException; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; @@ -41,6 +40,7 @@ import org.springframework.test.util.ReflectionTestUtils; import org.springframework.web.client.RestTemplate; import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.client.RestClientException; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; @@ -51,21 +51,23 @@ import io.mosip.kernel.core.util.exception.JsonParseException; import io.mosip.preregistration.application.service.util.NotificationServiceUtil; import io.mosip.preregistration.core.code.AuditLogVariables; +import io.mosip.preregistration.core.code.BookingTypeCodes; import io.mosip.preregistration.core.common.dto.AuditRequestDto; import io.mosip.preregistration.core.common.dto.BookingRegistrationDTO; import io.mosip.preregistration.core.common.dto.DemographicResponseDTO; -import io.mosip.preregistration.core.common.dto.KeyValuePairDto; import io.mosip.preregistration.core.common.dto.MainRequestDTO; import io.mosip.preregistration.core.common.dto.MainResponseDTO; import io.mosip.preregistration.core.common.dto.NotificationDTO; import io.mosip.preregistration.core.common.dto.NotificationResponseDTO; import io.mosip.preregistration.core.common.dto.TemplateResponseDTO; import io.mosip.preregistration.core.common.dto.TemplateResponseListDTO; +import io.mosip.preregistration.core.common.entity.ApplicationEntity; import io.mosip.preregistration.core.util.AuditLogUtil; import io.mosip.preregistration.core.util.NotificationUtil; import io.mosip.preregistration.core.util.ValidationUtil; import io.mosip.preregistration.application.dto.QRCodeResponseDTO; import io.mosip.preregistration.application.exception.MandatoryFieldException; +import io.mosip.preregistration.application.errorcodes.NotificationErrorCodes; import org.mockito.InjectMocks; import org.mockito.Mock; @@ -93,6 +95,9 @@ public class NotificationServiceTest { @Mock private DemographicServiceIntf demographicServiceIntf; + @Mock + private ApplicationServiceIntf applicationServiceIntf; + @Mock private NotificationServiceUtil notificationServiceUtil; @@ -116,10 +121,19 @@ public class NotificationServiceTest { @Value("${preregistration.identity.name}") private String fullName; - + @Value("${version}") private String version; + @Value("${preregistration.identity.email}") + private String email; + + @Value("${preregistration.identity.phone}") + private String phone; + + @Value("${preregistration.notification.nameFormat}") + private String nameFormat; + @Mock private NotificationUtil NotificationUtil; private NotificationDTO notificationDTO; @@ -137,13 +151,14 @@ public class NotificationServiceTest { private JSONObject jsonTestObject; private JSONObject jsonObject; AuditRequestDto auditRequestDto = new AuditRequestDto(); - + Map requiredRequestMap = new HashMap<>(); @Mock private AuditLogUtil auditLogUtil; MainResponseDTO bookingResultDto = new MainResponseDTO<>(); MainResponseDTO demographicdto = new MainResponseDTO<>(); + MainResponseDTO appEntity = new MainResponseDTO<>(); @Before public void beforeSet() @@ -153,6 +168,9 @@ public void beforeSet() ReflectionTestUtils.setField(notificationService, "Id", "1"); ReflectionTestUtils.setField(notificationService, "identity", "identity"); ReflectionTestUtils.setField(notificationService, "fullName", "fullName"); + ReflectionTestUtils.setField(notificationService, "email", "email"); + ReflectionTestUtils.setField(notificationService, "phone", "phone"); + ReflectionTestUtils.setField(notificationService, "nameFormat", "fullName"); ClassLoader classLoader = getClass().getClassLoader(); File fileTest = new File(classLoader.getResource("pre-registration.json").getFile()); @@ -220,6 +238,11 @@ public void beforeSet() demo.setDemographicDetails(demoDetailsData); demographicdto.setResponse(demo); + ApplicationEntity appEntityResp = new ApplicationEntity(); + appEntityResp.setApplicationId("20180396713560"); + appEntityResp.setBookingType(BookingTypeCodes.NEW_PREREGISTRATION.toString()); + appEntity.setResponse(appEntityResp); + } /** @@ -238,8 +261,8 @@ public void sendNotificationSuccessTest() // String stringjson = mapper.writeValueAsString(mainReqDto); String langCode = "fra"; MultipartFile file = new MockMultipartFile("test.txt", "test.txt", null, new byte[1100]); - Mockito.when(demographicServiceIntf.getDemographicData(Mockito.any(), Mockito.any())) - .thenReturn(demographicdto); + Mockito.when(applicationServiceIntf.getApplicationInfo(Mockito.any())).thenReturn(appEntity); + Mockito.when(demographicServiceIntf.getDemographicData(Mockito.any())).thenReturn(demographicdto); Mockito.when(notificationUtil.getAppointmentDetails(Mockito.anyString())).thenReturn(bookingResultDto); // String stringjson = mapper.writeValueAsString(mainReqDto); @@ -264,7 +287,8 @@ public void sendNotificationSuccessTest() TemplateResponseListDTO templateResponseListDTO = new TemplateResponseListDTO(); templateResponseListDTO.setTemplates(tepmlateList); - Mockito.when(NotificationUtil.notify("sms", notificationDTO, file)).thenReturn(responselist); + Mockito.when(NotificationUtil.notify("sms", notificationDTO, file, appEntity.getResponse().getBookingType())) + .thenReturn(responselist); ResponseEntity res = new ResponseEntity( templateResponseListDTO, HttpStatus.OK); // Mockito.when(restTemplate.getForEntity(Mockito.anyString(), Mockito.eq(TemplateResponseListDTO.class))) @@ -280,7 +304,151 @@ public void sendNotificationSuccessTest() .sendNotification(stringjson, langCode, file, false); assertEquals(responseDTO.getResponse().getMessage(), response.getResponse().getMessage()); } - + + @Test + public void sendNotificationSuccessTest2() + throws JsonParseException, JsonMappingException, IOException, java.io.IOException { + NotificationDTO notificationDTO = new NotificationDTO(); + MainResponseDTO appEntity = new MainResponseDTO<>(); + ApplicationEntity appEntityResp = new ApplicationEntity(); + appEntityResp.setApplicationId("24346587843"); + appEntityResp.setBookingType(BookingTypeCodes.LOST_FORGOTTEN_UIN.toString()); + appEntity.setResponse(appEntityResp); + + String langCode = "fra"; + MultipartFile file = new MockMultipartFile("test.txt", "test.txt", null, new byte[1100]); + Mockito.when(applicationServiceIntf.getApplicationInfo(Mockito.any())).thenReturn(appEntity); + Mockito.when(demographicServiceIntf.getDemographicData(Mockito.any())).thenReturn(demographicdto); + Mockito.when(notificationUtil.getAppointmentDetails(Mockito.anyString())).thenReturn(bookingResultDto); + + String stringjson = null; + try { + stringjson = mapper.writeValueAsString(mainReqDto); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + + Mockito.when(validationUtil.requestValidator(Mockito.any(), Mockito.any())).thenReturn(true); + + try { + Mockito.when(notificationServiceUtil.createNotificationDetails(null, "fra", false)).thenReturn(mainReqDto); + } catch (RuntimeException | io.mosip.kernel.core.util.exception.JsonMappingException + | io.mosip.kernel.core.exception.IOException | JSONException | java.text.ParseException + | io.mosip.kernel.core.util.exception.JsonParseException ex) { + } catch (com.fasterxml.jackson.core.JsonParseException + | com.fasterxml.jackson.databind.JsonMappingException ex) { + } + + TemplateResponseListDTO templateResponseListDTO = new TemplateResponseListDTO(); + templateResponseListDTO.setTemplates(tepmlateList); + Mockito.when(NotificationUtil.notify("sms", notificationDTO, file, appEntity.getResponse().getBookingType())) + .thenReturn(responselist); + ResponseEntity res = new ResponseEntity( + templateResponseListDTO, HttpStatus.OK); + + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.MULTIPART_FORM_DATA); + ResponseEntity resp = new ResponseEntity( + notificationResponseDTO, HttpStatus.OK); + MainResponseDTO response = notificationService + .sendNotification(stringjson, langCode, file, false); + assertEquals(responseDTO.getResponse().getMessage(), response.getResponse().getMessage()); + } + + @Test + public void notificationDtoValidationTest() throws java.io.IOException, org.json.simple.parser.ParseException { + String preId = "20180396713560"; + NotificationDTO notificationDTO = new NotificationDTO(); + notificationDTO.setName("Sanober"); + notificationDTO.setPreRegistrationId("20180396713560"); + notificationDTO.setMobNum("9876543210"); + notificationDTO.setEmailID("test@gmail.com"); + notificationDTO.setAppointmentDate("2019-01-22"); + notificationDTO.setAppointmentTime("09:00 AM"); + notificationDTO.setAdditionalRecipient(false); + notificationDTO.setIsBatch(false); + notificationDTO.setLanguageCode("eng"); + Mockito.when(applicationServiceIntf.getApplicationInfo(Mockito.any())).thenReturn(appEntity); + Mockito.when(demographicServiceIntf.getDemographicData(Mockito.any())).thenReturn(demographicdto); + Mockito.when(notificationUtil.getAppointmentDetails(preId)).thenReturn(bookingResultDto); + MainResponseDTO response = notificationService + .notificationDtoValidation(BookingTypeCodes.NEW_PREREGISTRATION.toString(), notificationDTO); + assertEquals(preId, response.getResponse().getPreRegistrationId()); + } + + @Test(expected = MandatoryFieldException.class) + public void notificationDtoMandatoryFieldExceptionTest() + throws java.io.IOException, org.json.simple.parser.ParseException { + String preId = "20180396713560"; + NotificationDTO notificationDTO = new NotificationDTO(); + notificationDTO.setName("Sanober"); + notificationDTO.setPreRegistrationId("20180396713560"); + notificationDTO.setMobNum("9876543210"); + notificationDTO.setEmailID("test@gmail.com"); + notificationDTO.setAppointmentTime("09:30 AM"); + notificationDTO.setIsBatch(false); + Mockito.when(applicationServiceIntf.getApplicationInfo(Mockito.any())).thenReturn(appEntity); + Mockito.when(demographicServiceIntf.getDemographicData(Mockito.any())).thenReturn(demographicdto); + Mockito.when(notificationUtil.getAppointmentDetails(preId)).thenReturn(bookingResultDto); + notificationService.notificationDtoValidation(BookingTypeCodes.NEW_PREREGISTRATION.toString(), notificationDTO); + } + + @Test(expected = MandatoryFieldException.class) + public void notificationDtoTimeNotCorrectExceptionTest() + throws java.io.IOException, org.json.simple.parser.ParseException { + String preId = "20180396713560"; + NotificationDTO notificationDTO = new NotificationDTO(); + notificationDTO.setName("Sanober"); + notificationDTO.setPreRegistrationId("20180396713560"); + notificationDTO.setMobNum("9876543210"); + notificationDTO.setEmailID("test@gmail.com"); + notificationDTO.setAppointmentDate("2019-01-22"); + notificationDTO.setAppointmentTime("09:30 AM"); + notificationDTO.setAdditionalRecipient(false); + notificationDTO.setIsBatch(false); + Mockito.when(applicationServiceIntf.getApplicationInfo(Mockito.any())).thenReturn(appEntity); + Mockito.when(demographicServiceIntf.getDemographicData(Mockito.any())).thenReturn(demographicdto); + Mockito.when(notificationUtil.getAppointmentDetails(preId)).thenReturn(bookingResultDto); + notificationService.notificationDtoValidation(BookingTypeCodes.NEW_PREREGISTRATION.toString(), notificationDTO); + } + + @Test(expected = MandatoryFieldException.class) + public void notificationDtoValidationExceptionTest() + throws java.io.IOException, org.json.simple.parser.ParseException { + String preId = "20180396713560"; + NotificationDTO notificationDTO = new NotificationDTO(); + notificationDTO.setName("Sanober"); + notificationDTO.setPreRegistrationId("20180396713560"); + notificationDTO.setMobNum("9876543210"); + notificationDTO.setEmailID("test@gmail.com"); + notificationDTO.setAppointmentDate("2019-01-22"); + notificationDTO.setAdditionalRecipient(false); + notificationDTO.setIsBatch(false); + Mockito.when(applicationServiceIntf.getApplicationInfo(Mockito.any())).thenReturn(appEntity); + Mockito.when(demographicServiceIntf.getDemographicData(Mockito.any())).thenReturn(demographicdto); + Mockito.when(notificationUtil.getAppointmentDetails(preId)).thenReturn(bookingResultDto); + notificationService.notificationDtoValidation(BookingTypeCodes.NEW_PREREGISTRATION.toString(), notificationDTO); + } + + @Test(expected = MandatoryFieldException.class) + public void notificationDtoDateNotCorrectExcpetionTest() + throws java.io.IOException, org.json.simple.parser.ParseException { + String preId = "20180396713560"; + NotificationDTO notificationDTO = new NotificationDTO(); + notificationDTO.setName("Sanober"); + notificationDTO.setPreRegistrationId("20180396713560"); + notificationDTO.setMobNum("9876543210"); + notificationDTO.setEmailID("test@gmail.com"); + notificationDTO.setAppointmentDate("2022-03-22"); + notificationDTO.setAppointmentTime("09:00 AM"); + notificationDTO.setAdditionalRecipient(false); + notificationDTO.setIsBatch(false); + Mockito.when(applicationServiceIntf.getApplicationInfo(Mockito.any())).thenReturn(appEntity); + Mockito.when(demographicServiceIntf.getDemographicData(Mockito.any())).thenReturn(demographicdto); + Mockito.when(notificationUtil.getAppointmentDetails(preId)).thenReturn(bookingResultDto); + notificationService.notificationDtoValidation(BookingTypeCodes.NEW_PREREGISTRATION.toString(), notificationDTO); + } + @Test public void setupBookingServiceTest() { notificationService.setupBookingService(); @@ -310,8 +478,8 @@ public void sendNotificationSuccess1Test() String langCode = "fra"; MultipartFile file = new MockMultipartFile("test.txt", "test.txt", null, new byte[1100]); - Mockito.when(demographicServiceIntf.getDemographicData(Mockito.any(), Mockito.any())) - .thenReturn(demographicdto); + Mockito.when(applicationServiceIntf.getApplicationInfo(Mockito.any())).thenReturn(appEntity); + Mockito.when(demographicServiceIntf.getDemographicData(Mockito.any())).thenReturn(demographicdto); Mockito.when(notificationUtil.getAppointmentDetails(Mockito.anyString())).thenReturn(bookingResultDto); String stringjson = null; Mockito.when(validationUtil.requestValidator(Mockito.any(), Mockito.any())).thenReturn(true); @@ -326,7 +494,8 @@ public void sendNotificationSuccess1Test() TemplateResponseListDTO templateResponseListDTO = new TemplateResponseListDTO(); templateResponseListDTO.setTemplates(tepmlateList); - Mockito.when(NotificationUtil.notify("sms", notificationDTO, file)).thenReturn(responselist); + Mockito.when(NotificationUtil.notify("sms", notificationDTO, file, appEntity.getResponse().getBookingType())) + .thenReturn(responselist); ResponseEntity res = new ResponseEntity( templateResponseListDTO, HttpStatus.OK); HttpHeaders headers = new HttpHeaders(); @@ -336,7 +505,6 @@ public void sendNotificationSuccess1Test() MainResponseDTO response = notificationService .sendNotification(stringjson, langCode, file, false); } - @Test(expected = MandatoryFieldException.class) public void sendNotificationException1Test() @@ -361,8 +529,8 @@ public void sendNotificationException1Test() String langCode = "fra"; MultipartFile file = new MockMultipartFile("test.txt", "test.txt", null, new byte[1100]); - Mockito.when(demographicServiceIntf.getDemographicData(Mockito.any(), Mockito.any())) - .thenReturn(demographicdto); + Mockito.when(applicationServiceIntf.getApplicationInfo(Mockito.any())).thenReturn(appEntity); + Mockito.when(demographicServiceIntf.getDemographicData(Mockito.any())).thenReturn(demographicdto); Mockito.when(notificationUtil.getAppointmentDetails(Mockito.anyString())).thenReturn(bookingResultDto); String stringjson = null; Mockito.when(validationUtil.requestValidator(Mockito.any(), Mockito.any())).thenReturn(true); @@ -377,7 +545,8 @@ public void sendNotificationException1Test() TemplateResponseListDTO templateResponseListDTO = new TemplateResponseListDTO(); templateResponseListDTO.setTemplates(tepmlateList); - Mockito.when(NotificationUtil.notify("sms", notificationDTO, file)).thenReturn(responselist); + Mockito.when(NotificationUtil.notify("sms", notificationDTO, file, appEntity.getResponse().getBookingType())) + .thenReturn(responselist); ResponseEntity res = new ResponseEntity( templateResponseListDTO, HttpStatus.OK); HttpHeaders headers = new HttpHeaders(); @@ -409,8 +578,8 @@ public void sendNotificationException2Test() String langCode = "fra"; MultipartFile file = new MockMultipartFile("test.txt", "test.txt", null, new byte[1100]); - Mockito.when(demographicServiceIntf.getDemographicData(Mockito.any(), Mockito.any())) - .thenReturn(demographicdto); + Mockito.when(applicationServiceIntf.getApplicationInfo(Mockito.any())).thenReturn(appEntity); + Mockito.when(demographicServiceIntf.getDemographicData(Mockito.any())).thenReturn(demographicdto); Mockito.when(notificationUtil.getAppointmentDetails(Mockito.anyString())).thenReturn(bookingResultDto); String stringjson = null; Mockito.when(validationUtil.requestValidator(Mockito.any(), Mockito.any())).thenReturn(true); @@ -425,7 +594,8 @@ public void sendNotificationException2Test() TemplateResponseListDTO templateResponseListDTO = new TemplateResponseListDTO(); templateResponseListDTO.setTemplates(tepmlateList); - Mockito.when(NotificationUtil.notify("sms", notificationDTO, file)).thenReturn(responselist); + Mockito.when(NotificationUtil.notify("sms", notificationDTO, file, appEntity.getResponse().getBookingType())) + .thenReturn(responselist); ResponseEntity res = new ResponseEntity( templateResponseListDTO, HttpStatus.OK); HttpHeaders headers = new HttpHeaders(); @@ -459,8 +629,8 @@ public void sendNotificationException3Test() throws java.io.IOException { // TODO Auto-generated catch block e.printStackTrace(); } - Mockito.when(demographicServiceIntf.getDemographicData(Mockito.any(), Mockito.any())) - .thenReturn(demographicdto); + Mockito.when(applicationServiceIntf.getApplicationInfo(Mockito.any())).thenReturn(appEntity); + Mockito.when(demographicServiceIntf.getDemographicData(Mockito.any())).thenReturn(demographicdto); Mockito.when(notificationUtil.getAppointmentDetails(Mockito.anyString())).thenReturn(bookingResultDto); Mockito.when(validationUtil.requestValidator(Mockito.any(), Mockito.any())).thenReturn(true); @@ -502,8 +672,8 @@ public void sendNotificationExceptionTest5() throws java.io.IOException, JsonPro // TODO Auto-generated catch block e.printStackTrace(); } - Mockito.when(demographicServiceIntf.getDemographicData(Mockito.any(), Mockito.any())) - .thenReturn(demographicdto); + Mockito.when(applicationServiceIntf.getApplicationInfo(Mockito.any())).thenReturn(appEntity); + Mockito.when(demographicServiceIntf.getDemographicData(Mockito.any())).thenReturn(demographicdto); Mockito.when(notificationUtil.getAppointmentDetails(Mockito.anyString())).thenReturn(bookingResultDto); Mockito.when(validationUtil.requestValidator(Mockito.any(), Mockito.any())).thenReturn(true); @@ -545,8 +715,8 @@ public void sendNotificationExceptionTest6() throws java.io.IOException, JsonPro // TODO Auto-generated catch block e.printStackTrace(); } - Mockito.when(demographicServiceIntf.getDemographicData(Mockito.any(), Mockito.any())) - .thenReturn(demographicdto); + Mockito.when(applicationServiceIntf.getApplicationInfo(Mockito.any())).thenReturn(appEntity); + Mockito.when(demographicServiceIntf.getDemographicData(Mockito.any())).thenReturn(demographicdto); Mockito.when(notificationUtil.getAppointmentDetails(Mockito.anyString())).thenReturn(bookingResultDto); Mockito.when(validationUtil.requestValidator(Mockito.any(), Mockito.any())).thenReturn(true); @@ -588,8 +758,8 @@ public void sendNotificationExceptionTest7() throws java.io.IOException, JsonPro // TODO Auto-generated catch block e.printStackTrace(); } - Mockito.when(demographicServiceIntf.getDemographicData(Mockito.any(), Mockito.any())) - .thenReturn(demographicdto); + Mockito.when(applicationServiceIntf.getApplicationInfo(Mockito.any())).thenReturn(appEntity); + Mockito.when(demographicServiceIntf.getDemographicData(Mockito.any())).thenReturn(demographicdto); Mockito.when(notificationUtil.getAppointmentDetails(Mockito.anyString())).thenReturn(bookingResultDto); Mockito.when(validationUtil.requestValidator(Mockito.any(), Mockito.any())).thenReturn(true); diff --git a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/service/OTPManagerTest.java b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/service/OTPManagerTest.java index b3851e2b7ed..cb8d238f0d1 100644 --- a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/service/OTPManagerTest.java +++ b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/service/OTPManagerTest.java @@ -220,7 +220,7 @@ public void testsendOtpSuccessEmail2() throws IOException { Mockito.when(otpRepo.existsByOtpHashAndStatusCode(Mockito.any(), Mockito.any())) .thenReturn(true); OtpTransaction otpTxn = new OtpTransaction(); - Mockito.when(otpRepo.findByOtpHashAndStatusCode(Mockito.any(), Mockito.any())) + Mockito.when(otpRepo.findTopByOtpHashAndStatusCode(Mockito.any(), Mockito.any())) .thenReturn(otpTxn); Mockito.when(restTemplate.exchange( Mockito.eq("home/authenticate/clientidsecretkey"), @@ -320,30 +320,36 @@ public void testsendOtpSuccessEmail() throws IOException { assertTrue(otpManager.sendOtp(requestDTO,channelType,language)); } - @Test - public void testvalidateOtpSuccess(){ - assertFalse(otpManager.validateOtp(null,null)); - } - @Test(expected=PreRegLoginException.class) public void testvalidateOtpPreRegLoginException(){ Mockito.when(otpRepo.existsByOtpHashAndStatusCode(Mockito.any(), Mockito.any())).thenReturn(true); OtpTransaction otpTxn = new OtpTransaction(); otpTxn.setExpiryDtimes(DateUtils.getUTCCurrentDateTime()); - Mockito.when(otpRepo.findByOtpHashAndStatusCode(Mockito.any(), Mockito.any())) + Mockito.when(otpRepo.findTopByOtpHashAndStatusCode(Mockito.any(), Mockito.any())) .thenReturn(otpTxn); - otpManager.validateOtp(null,null); + otpManager.validateOtp("111111","42456"); } @Test public void testvalidateOtpSuccess2(){ Mockito.when(otpRepo.existsByOtpHashAndStatusCode(Mockito.any(), Mockito.any())).thenReturn(true); OtpTransaction otpTxn = new OtpTransaction(); - LocalDateTime a = LocalDateTime.of(2022, 2, 13, 15, 56); + LocalDateTime a = LocalDateTime.of(2028, 2, 13, 15, 56); otpTxn.setExpiryDtimes(a); - Mockito.when(otpRepo.findByOtpHashAndStatusCode(Mockito.any(), Mockito.any())) + Mockito.when(otpRepo.findTopByOtpHashAndStatusCode(Mockito.any(), Mockito.any())) + .thenReturn(otpTxn); + assertTrue(otpManager.validateOtp("111111","42456")); + } + + @Test (expected = PreRegLoginException.class) + public void testvalidateOtpExceededException(){ + Mockito.when(otpRepo.existsByOtpHashAndStatusCode(Mockito.any(), Mockito.any())).thenReturn(false); + OtpTransaction otpTxn = new OtpTransaction(); + LocalDateTime a = LocalDateTime.of(2028, 2, 13, 15, 56); + otpTxn.setExpiryDtimes(a); + Mockito.when(otpRepo.findByRefIdAndStatusCode(Mockito.any(), Mockito.any())) .thenReturn(otpTxn); - assertTrue(otpManager.validateOtp(null,null)); + otpManager.validateOtp("111111","42456"); } } diff --git a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/PreRegistrationApplicationTest.java b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/PreRegistrationApplicationTest.java index 751743864d5..d0afcf74f83 100644 --- a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/PreRegistrationApplicationTest.java +++ b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/PreRegistrationApplicationTest.java @@ -1,7 +1,3 @@ -/* - * Copyright - * - */ package io.mosip.preregistration.application.test; import org.springframework.boot.SpringApplication; @@ -18,7 +14,6 @@ "io.mosip.preregistration.application.entity.*", "io.mosip.preregistration.application.repository.*", "io.mosip.kernel.core.*", "io.mosip.kernel.idobjectvalidator.*", "io.mosip.commons.*", "io.mosip.preregistration.application.security.*" }) - public class PreRegistrationApplicationTest { /** * @@ -27,4 +22,4 @@ public class PreRegistrationApplicationTest { public static void main(String[] args) { SpringApplication.run(PreRegistrationApplicationTest.class, args); } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/config/TestConfig.java b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/config/TestConfig.java index 6383c4d7d75..f31383afbce 100644 --- a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/config/TestConfig.java +++ b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/config/TestConfig.java @@ -7,9 +7,11 @@ import javax.net.ssl.SSLContext; -import org.apache.http.conn.ssl.SSLConnectionSocketFactory; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClients; +import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory; +import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; +import org.apache.hc.client5.http.impl.classic.HttpClients; +import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManagerBuilder; +import org.apache.hc.client5.http.io.HttpClientConnectionManager; import org.apache.http.ssl.TrustStrategy; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -22,73 +24,77 @@ public class TestConfig { @Bean public RestTemplate restTemplateConfig() throws KeyManagementException, NoSuchAlgorithmException, KeyStoreException { - - TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true; - SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom() - .loadTrustMaterial(null, acceptingTrustStrategy).build(); + TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true; - SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext); + SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy) + .build(); - CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(csf).build(); - HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); + SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext); - requestFactory.setHttpClient(httpClient); - return new RestTemplate(requestFactory); + HttpClientConnectionManager connectionManager = PoolingHttpClientConnectionManagerBuilder.create() + .setSSLSocketFactory(csf).build(); + CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(connectionManager).build(); + HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); + + requestFactory.setHttpClient(httpClient); + return new RestTemplate(requestFactory); } @Bean public RestTemplate selfTokenRestTemplate() throws KeyManagementException, NoSuchAlgorithmException, KeyStoreException { - - TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true; - SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom() - .loadTrustMaterial(null, acceptingTrustStrategy).build(); + TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true; + + SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy) + .build(); - SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext); + SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext); - CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(csf).build(); - HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); + HttpClientConnectionManager connectionManager = PoolingHttpClientConnectionManagerBuilder.create() + .setSSLSocketFactory(csf).build(); + CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(connectionManager).build(); + HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); - requestFactory.setHttpClient(httpClient); - return new RestTemplate(requestFactory); + requestFactory.setHttpClient(httpClient); + return new RestTemplate(requestFactory); } @Bean - public RestTemplate restTemplate() - throws KeyManagementException, NoSuchAlgorithmException, KeyStoreException { - - TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true; + public RestTemplate restTemplate() throws KeyManagementException, NoSuchAlgorithmException, KeyStoreException { - SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom() - .loadTrustMaterial(null, acceptingTrustStrategy).build(); + TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true; - SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext); + SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy) + .build(); - CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(csf).build(); - HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); + SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext); - requestFactory.setHttpClient(httpClient); - return new RestTemplate(requestFactory); + HttpClientConnectionManager connectionManager = PoolingHttpClientConnectionManagerBuilder.create() + .setSSLSocketFactory(csf).build(); + CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(connectionManager).build(); + HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); + + requestFactory.setHttpClient(httpClient); + return new RestTemplate(requestFactory); } @Bean - public RestTemplate plainRestTemplate() - throws KeyManagementException, NoSuchAlgorithmException, KeyStoreException { - - TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true; + public RestTemplate plainRestTemplate() throws KeyManagementException, NoSuchAlgorithmException, KeyStoreException { + TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true; - SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom() - .loadTrustMaterial(null, acceptingTrustStrategy).build(); + SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy) + .build(); - SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext); + SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext); - CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(csf).build(); - HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); + HttpClientConnectionManager connectionManager = PoolingHttpClientConnectionManagerBuilder.create() + .setSSLSocketFactory(csf).build(); + CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(connectionManager).build(); + HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); - requestFactory.setHttpClient(httpClient); - return new RestTemplate(requestFactory); + requestFactory.setHttpClient(httpClient); + return new RestTemplate(requestFactory); } - } \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/config/TestSecurityConfig.java b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/config/TestSecurityConfig.java index c64e0c040c3..a1c47cd64bc 100644 --- a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/config/TestSecurityConfig.java +++ b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/config/TestSecurityConfig.java @@ -4,43 +4,45 @@ import java.util.Arrays; import java.util.List; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletResponse; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; +import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.builders.WebSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; -import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.provisioning.InMemoryUserDetailsManager; import org.springframework.security.web.AuthenticationEntryPoint; +import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.firewall.DefaultHttpFirewall; import org.springframework.security.web.firewall.HttpFirewall; @Configuration @EnableWebSecurity -@EnableGlobalMethodSecurity(prePostEnabled = true) -public class TestSecurityConfig extends WebSecurityConfigurerAdapter { - - - - - @Bean +@EnableMethodSecurity +public class TestSecurityConfig { + + @Bean public HttpFirewall defaultHttpFirewall() { return new DefaultHttpFirewall(); } - @Override - public void configure(WebSecurity webSecurity) throws Exception { - webSecurity.ignoring().antMatchers(allowedEndPoints()); - super.configure(webSecurity); + @Bean + protected SecurityFilterChain configureSecurityFilterChain(final HttpSecurity httpSecurity) throws Exception { + httpSecurity.authorizeHttpRequests(http -> http.anyRequest().permitAll()); + return httpSecurity.build(); + } + + @Bean + public WebSecurity configure(WebSecurity webSecurity) throws Exception { + webSecurity.ignoring().requestMatchers(allowedEndPoints()); webSecurity.httpFirewall(defaultHttpFirewall()); + return webSecurity; } private String[] allowedEndPoints() { @@ -49,13 +51,15 @@ private String[] allowedEndPoints() { "/*/configuration/security", "/*/swagger-resources/**", "/*/swagger-ui.html" }; } - @Override - protected void configure(final HttpSecurity httpSecurity) throws Exception { - httpSecurity.csrf().disable(); - httpSecurity.httpBasic().and().authorizeRequests().anyRequest().authenticated().and().sessionManagement() - .sessionCreationPolicy(SessionCreationPolicy.STATELESS).and().exceptionHandling() - .authenticationEntryPoint(unauthorizedEntryPoint()); - } + // @Bean + // protected HttpSecurity configure(final HttpSecurity httpSecurity) throws + // Exception { + // httpSecurity.csrf().disable(); + // httpSecurity.httpBasic().and().authorizeRequests().anyRequest().authenticated().and().sessionManagement() + // .sessionCreationPolicy(SessionCreationPolicy.STATELESS).and().exceptionHandling() + // .authenticationEntryPoint(unauthorizedEntryPoint()); + // return httpSecurity; + // } @Bean public AuthenticationEntryPoint unauthorizedEntryPoint() { @@ -77,5 +81,4 @@ public UserDetailsService userDetailsService() { users.add(new User("test", "mosip", Arrays.asList(new SimpleGrantedAuthority("ROLE_TEST")))); return new InMemoryUserDetailsManager(users); } - } diff --git a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/ApplicationControllerTest.java b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/ApplicationControllerTest.java index a43d13bbbe3..798c596c5e2 100644 --- a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/ApplicationControllerTest.java +++ b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/ApplicationControllerTest.java @@ -1,11 +1,12 @@ package io.mosip.preregistration.application.test.controller; +import java.time.LocalDateTime; import java.util.List; -import org.joda.time.DateTime; -import org.junit.Before; import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; import org.junit.runner.RunWith; +import org.mockito.Mock; import org.mockito.Mockito; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; @@ -19,17 +20,17 @@ import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import org.springframework.test.web.servlet.result.MockMvcResultMatchers; import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import org.springframework.web.bind.WebDataBinder; import org.springframework.web.context.WebApplicationContext; -import io.mosip.kernel.core.logger.spi.Logger; import io.mosip.preregistration.application.controller.ApplicationController; import io.mosip.preregistration.application.dto.ApplicationDetailResponseDTO; import io.mosip.preregistration.application.dto.ApplicationsListDTO; import io.mosip.preregistration.application.dto.UIAuditRequest; import io.mosip.preregistration.application.service.ApplicationServiceIntf; +import io.mosip.preregistration.core.common.dto.MainRequestDTO; import io.mosip.preregistration.core.common.dto.MainResponseDTO; import io.mosip.preregistration.core.common.entity.ApplicationEntity; -import io.mosip.preregistration.core.config.LoggerConfiguration; import io.mosip.preregistration.core.util.RequestValidator; @RunWith(SpringRunner.class) @@ -47,38 +48,50 @@ public class ApplicationControllerTest { @Autowired private WebApplicationContext webApplicationContext; + @Autowired private MockMvc mockmvc; - @Before + UIAuditRequest auditRequest = new UIAuditRequest(); + + @Mock + private ApplicationController controller; + + @BeforeEach public void setup() { mockmvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build(); } - UIAuditRequest auditRequest = new UIAuditRequest(); - private Logger log = LoggerConfiguration.logConfig(ApplicationController.class); - -// @Test -// public void logAugitTest() throws Exception { -// MainRequestDTO auditRequest = new MainRequestDTO(); -// HttpHeaders header = new HttpHeaders(); -// header.add("User-Agent", "test"); -// MainResponseDTO response = new MainResponseDTO(); -// Mockito.when(applicationService.saveUIEventAudit(auditRequest.getRequest())).thenReturn(response); -// -// RequestBuilder request = MockMvcRequestBuilders.post("/logAudit").content() -// .accept(MediaType.APPLICATION_JSON_UTF8).contentType(MediaType.APPLICATION_JSON_UTF8).headers(header); -// mockmvc.perform(request).andExpect(MockMvcResultMatchers.status().isOk()); -// } + /** + * Test init binder. + */ + @Test + public void testInitBinder() { + controller.initBinder(Mockito.mock(WebDataBinder.class)); + } + + //@Test + public void logAugitTest() throws Exception { + Mockito.when(requestValidator.supports(Mockito.any())).thenReturn(true); + + MainRequestDTO auditRequest = new MainRequestDTO<>(); + MainResponseDTO response = new MainResponseDTO<>(); + Mockito.when(applicationService.saveUIEventAudit(auditRequest.getRequest())).thenReturn(response); + RequestBuilder request = MockMvcRequestBuilders.post("/logAudit") + .content("{\"request\":{\"eventName\":\"test\"}}").accept(MediaType.APPLICATION_JSON) + .contentType(MediaType.APPLICATION_JSON); + mockmvc.perform(request).andExpect(MockMvcResultMatchers.status().isOk()); + } @Test + @WithMockUser(roles = "USER") public void getApplicationTest() throws Exception { MainResponseDTO response = new MainResponseDTO(); String applicationId = "123456"; Mockito.when(applicationService.getApplicationInfo(applicationId)).thenReturn(response); RequestBuilder request = MockMvcRequestBuilders.get("/applications/{applicationId}", applicationId) - .param("applicationId", applicationId).accept(MediaType.APPLICATION_JSON_UTF8) - .contentType(MediaType.APPLICATION_JSON_UTF8); + .param("applicationId", applicationId).accept(MediaType.APPLICATION_JSON) + .contentType(MediaType.APPLICATION_JSON); mockmvc.perform(request).andExpect(MockMvcResultMatchers.status().isOk()); } @@ -89,21 +102,22 @@ public void getApplicationStatusTest() throws Exception { Mockito.when(applicationService.getApplicationStatus(applicationId)).thenReturn(response); RequestBuilder request = MockMvcRequestBuilders.get("/applications/status/{applicationId}", applicationId) - .param("applicationId", applicationId).accept(MediaType.APPLICATION_JSON_UTF8) - .contentType(MediaType.APPLICATION_JSON_UTF8); + .param("applicationId", applicationId).accept(MediaType.APPLICATION_JSON) + .contentType(MediaType.APPLICATION_JSON); mockmvc.perform(request).andExpect(MockMvcResultMatchers.status().isOk()); } @Test public void getBookingsForRegCenterTest() throws Exception { - MainResponseDTO> response = new MainResponseDTO>(); + MainResponseDTO> response = new MainResponseDTO<>(); String regCenterId = "123456"; - String appointmentDate = DateTime.now().toString(); - Mockito.when(applicationService.getBookingsForRegCenter(regCenterId, appointmentDate)).thenReturn(response); + String appointmentDate = LocalDateTime.now().toString(); + Mockito.when(applicationService.getBookingsForRegCenter(regCenterId, appointmentDate, null)) + .thenReturn(response); RequestBuilder request = MockMvcRequestBuilders.get("/applications/bookings/{regCenterId}", regCenterId) .param("regCenterId", regCenterId).param("appointmentDate", appointmentDate) - .accept(MediaType.APPLICATION_JSON_UTF8).contentType(MediaType.APPLICATION_JSON_UTF8); + .accept(MediaType.APPLICATION_JSON).contentType(MediaType.APPLICATION_JSON); mockmvc.perform(request).andExpect(MockMvcResultMatchers.status().isOk()); } @@ -112,19 +126,19 @@ public void getAllApplicationsTest() throws Exception { MainResponseDTO response = new MainResponseDTO(); Mockito.when(applicationService.getAllApplicationsForUser()).thenReturn(response); - RequestBuilder request = MockMvcRequestBuilders.get("/applications").accept(MediaType.APPLICATION_JSON_UTF8) - .contentType(MediaType.APPLICATION_JSON_UTF8); + RequestBuilder request = MockMvcRequestBuilders.get("/applications").accept(MediaType.APPLICATION_JSON) + .contentType(MediaType.APPLICATION_JSON); mockmvc.perform(request).andExpect(MockMvcResultMatchers.status().isOk()); } @Test public void getAllApplicationsTypeTest() throws Exception { - MainResponseDTO response = new MainResponseDTO(); + MainResponseDTO response = new MainResponseDTO<>(); String type = "Booked"; Mockito.when(applicationService.getAllApplicationsForUserForBookingType(type)).thenReturn(response); RequestBuilder request = MockMvcRequestBuilders.get("/applications").param("type", type) - .accept(MediaType.APPLICATION_JSON_UTF8).contentType(MediaType.APPLICATION_JSON_UTF8); + .accept(MediaType.APPLICATION_JSON).contentType(MediaType.APPLICATION_JSON); mockmvc.perform(request).andExpect(MockMvcResultMatchers.status().isOk()); } diff --git a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/AppointmentControllerTest.java b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/AppointmentControllerTest.java index 73ca4255334..629d708b67f 100644 --- a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/AppointmentControllerTest.java +++ b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/AppointmentControllerTest.java @@ -1,6 +1,7 @@ package io.mosip.preregistration.application.test.controller; import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mockito; @@ -81,6 +82,7 @@ public void getAppointmentDetatisTest() throws Exception { } + @Ignore @Test @WithMockUser(username = "individual", authorities = { "INDIVIDUAL", "REGISTRATION_OFFICER" }) public void bookAppointmentForPridTest() throws Exception { @@ -96,7 +98,7 @@ public void bookAppointmentForPridTest() throws Exception { .post("/applications/appointment/{preRegistrationId}", "98765432101234") .content( "{\"id\":\"mosip.pre-registration.booking.book\",\"request\":{\"registration_center_id\":\"10009\",\"appointment_date\":\"2021-08-23\",\"time_slot_from\":\"10:15:00\",\"time_slot_to\":\"10:30:00\"},\"version\":\"1.0\",\"requesttime\":\"2021-08-19T08:09:04.674Z\"}") - .accept(MediaType.APPLICATION_JSON_UTF8).contentType(MediaType.APPLICATION_JSON_UTF8).headers(header); + .accept(MediaType.APPLICATION_JSON).contentType(MediaType.APPLICATION_JSON).headers(header); mockmvc.perform(request).andExpect(MockMvcResultMatchers.status().isOk()); } @@ -111,7 +113,7 @@ public void cancelAppointmentForPridTest() throws Exception { RequestBuilder request = MockMvcRequestBuilders .put("/applications/appointment/{preRegistrationId}", "98765432101234") - .accept(MediaType.APPLICATION_JSON_UTF8).contentType(MediaType.APPLICATION_JSON_UTF8); + .accept(MediaType.APPLICATION_JSON).contentType(MediaType.APPLICATION_JSON); mockmvc.perform(request).andExpect(MockMvcResultMatchers.status().isOk()); } @@ -126,7 +128,7 @@ public void cancelAppointmentInternalForPridTest() throws Exception { RequestBuilder request = MockMvcRequestBuilders .put("/internal/applications/appointment/{preRegistrationId}", "98765432101234") - .accept(MediaType.APPLICATION_JSON_UTF8).contentType(MediaType.APPLICATION_JSON_UTF8); + .accept(MediaType.APPLICATION_JSON).contentType(MediaType.APPLICATION_JSON); mockmvc.perform(request).andExpect(MockMvcResultMatchers.status().isOk()); } @@ -140,8 +142,8 @@ public void deleteAppointmentForPridTest() throws Exception { Mockito.when(appointmentService.cancelAppointment(Mockito.anyString())).thenReturn(response); RequestBuilder request = MockMvcRequestBuilders.delete("/applications/appointment") - .param("preRegistrationId", "39241705740136").accept(MediaType.APPLICATION_JSON_UTF8) - .contentType(MediaType.APPLICATION_JSON_UTF8); + .param("preRegistrationId", "39241705740136").accept(MediaType.APPLICATION_JSON) + .contentType(MediaType.APPLICATION_JSON); mockmvc.perform(request).andExpect(MockMvcResultMatchers.status().isOk()); } @@ -159,7 +161,7 @@ public void multiAppointmentTest() throws Exception { RequestBuilder request = MockMvcRequestBuilders.post("/applications/appointment").content( "{\"id\":\"mosip.pre-registration.booking.book\",\"request\":{\"bookingRequest\":[{\"preRegistrationId\":\"38047351465865\",\"registration_center_id\":\"10001\",\"appointment_date\":\"2021-07-19\",\"time_slot_from\":\"09:00:00\",\"time_slot_to\":\"09:15:00\"}]},\"version\":\"1.0\",\"requesttime\":\"2021-07-12T14:04:58.429Z\"}") - .accept(MediaType.APPLICATION_JSON_UTF8).contentType(MediaType.APPLICATION_JSON_UTF8).headers(header); + .accept(MediaType.APPLICATION_JSON).contentType(MediaType.APPLICATION_JSON).headers(header); mockmvc.perform(request).andExpect(MockMvcResultMatchers.status().isOk()); } diff --git a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/DemographicControllerTest.java b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/DemographicControllerTest.java index 4ee8d892ea9..8e6b06dc4a7 100644 --- a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/DemographicControllerTest.java +++ b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/DemographicControllerTest.java @@ -5,9 +5,7 @@ import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; -import java.io.File; import java.io.FileNotFoundException; -import java.io.FileReader; import java.io.IOException; import java.time.LocalDateTime; import java.util.ArrayList; @@ -16,7 +14,6 @@ import java.util.List; import java.util.Map; -import org.joda.time.DateTime; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -36,14 +33,13 @@ import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import org.springframework.test.web.servlet.result.MockMvcResultMatchers; import org.springframework.test.web.servlet.setup.MockMvcBuilders; -import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.WebDataBinder; import org.springframework.web.context.WebApplicationContext; import io.mosip.kernel.core.authmanager.authadapter.model.AuthUserDetails; import io.mosip.kernel.core.idgenerator.spi.PridGenerator; import io.mosip.preregistration.application.controller.DemographicController; -import io.mosip.preregistration.application.controller.DocumentController; -import io.mosip.preregistration.application.dto.ApplicationDetailResponseDTO; +import io.mosip.preregistration.application.dto.ApplicationInfoMetadataDTO; import io.mosip.preregistration.application.dto.DeleteApplicationDTO; import io.mosip.preregistration.application.dto.DeletePreRegistartionDTO; import io.mosip.preregistration.application.dto.DemographicCreateResponseDTO; @@ -52,14 +48,13 @@ import io.mosip.preregistration.application.dto.DemographicUpdateResponseDTO; import io.mosip.preregistration.application.dto.DemographicViewDTO; import io.mosip.preregistration.application.service.DemographicServiceIntf; -import io.mosip.preregistration.application.service.DocumentServiceIntf; import io.mosip.preregistration.core.common.dto.DemographicResponseDTO; +import io.mosip.preregistration.core.common.dto.DocumentsMetaData; import io.mosip.preregistration.core.common.dto.MainRequestDTO; import io.mosip.preregistration.core.common.dto.MainResponseDTO; import io.mosip.preregistration.core.common.dto.PreRegIdsByRegCenterIdDTO; import io.mosip.preregistration.core.common.dto.PreRegistartionStatusDTO; import io.mosip.preregistration.core.util.RequestValidator; -import net.minidev.json.parser.JSONParser; import net.minidev.json.parser.ParseException; /** @@ -107,9 +102,7 @@ public class DemographicControllerTest { private final Logger logger = LoggerFactory.getLogger(this.getClass()); - private Object jsonObject = null; - - @MockBean + @Mock private DemographicController controller; String userId = ""; @@ -123,20 +116,27 @@ public class DemographicControllerTest { @Before public void setup() throws FileNotFoundException, IOException, ParseException { mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build(); - ClassLoader classLoader = getClass().getClassLoader(); - JSONParser parser = new JSONParser(); - File file = new File(classLoader.getResource("pre-registration.json").getFile()); - jsonObject = parser.parse(new FileReader(file)); preRegistrationId = "98746563542672"; userId = "9988905333"; } + /** + * Test init binder. + */ + @Test + public void testInitBinder() { + controller.initBinder(Mockito.mock(WebDataBinder.class)); + } + + /** * @throws Exception on error */ @WithMockUser(username = "individual", authorities = { "INDIVIDUAL", "REGISTRATION_OFFICER" }) @Test public void successSave() throws Exception { + Mockito.when(requestValidator.supports(Mockito.any())).thenReturn(true); + logger.info("----------Successful save of application-------"); MainResponseDTO response = new MainResponseDTO<>(); List saveList = new ArrayList<>(); @@ -174,6 +174,8 @@ public void successSave() throws Exception { @Test @WithMockUser(username = "individual", authorities = { "INDIVIDUAL", "REGISTRATION_OFFICER" }) public void successUpdate() throws Exception { + Mockito.when(requestValidator.supports(Mockito.any())).thenReturn(true); + logger.info("----------Successful save of application-------"); MainResponseDTO response = new MainResponseDTO<>(); @@ -301,7 +303,7 @@ public void getApplicationSuccessTest() throws Exception { response.setResponse(createDto); Mockito.when(preRegistrationService.authUserDetails()).thenReturn(authUserDetails); Mockito.when(authUserDetails.getUserId()).thenReturn(userId); - Mockito.when(preRegistrationService.getDemographicData("98746563542672", false)).thenReturn(response); + Mockito.when(preRegistrationService.getDemographicData("98746563542672")).thenReturn(response); RequestBuilder requestBuilder = MockMvcRequestBuilders .get("/applications/prereg/{preRegistrationId}", createDto.getPreRegistrationId()) @@ -339,6 +341,8 @@ public void updateApplicationStatusTest() throws Exception { @WithMockUser(username = "individual", authorities = { "INDIVIDUAL", "REGISTRATION_OFFICER" }) @Test public void getUpdatedDateTimeTest() throws Exception { + Mockito.when(requestValidator.supports(Mockito.any())).thenReturn(true); + MainRequestDTO mainRequestDTO = new MainRequestDTO<>(); List list = new ArrayList<>(); list.add("98746563542672"); @@ -365,11 +369,30 @@ public void getUpdatedDateTimeTest() throws Exception { public void getPreRegDemographicDataTest() throws Exception { MainResponseDTO response = new MainResponseDTO(); String preRegistrationId = "123456"; - Mockito.when(preRegistrationService.getDemographicData(preRegistrationId, false)).thenReturn(response); + Mockito.when(preRegistrationService.getDemographicData(preRegistrationId)).thenReturn(response); RequestBuilder request = MockMvcRequestBuilders .get("/applications/prereg/{preRegistrationId}", preRegistrationId) - .param("preRegistrationId", preRegistrationId).accept(MediaType.APPLICATION_JSON_UTF8) - .contentType(MediaType.APPLICATION_JSON_UTF8); + .param("preRegistrationId", preRegistrationId).accept(MediaType.APPLICATION_JSON) + .contentType(MediaType.APPLICATION_JSON); + mockMvc.perform(request).andExpect(MockMvcResultMatchers.status().isOk()); + } + + @Test + public void getPreRegDemographicAndDocumentData() throws Exception { + MainResponseDTO response = new MainResponseDTO(); + ApplicationInfoMetadataDTO applicationInfoMetadataDTO = new ApplicationInfoMetadataDTO(); + String preRegistrationId = "123456"; + DemographicResponseDTO demographicResponseDTO = new DemographicResponseDTO(); + demographicResponseDTO.setPreRegistrationId(preRegistrationId); + applicationInfoMetadataDTO.setDemographicResponse(demographicResponseDTO); + DocumentsMetaData documentsMetaData = new DocumentsMetaData(); + applicationInfoMetadataDTO.setDocumentsMetaData(documentsMetaData); + response.setResponse(applicationInfoMetadataDTO); + Mockito.when(preRegistrationService.getPregistrationInfo(preRegistrationId)).thenReturn(response); + RequestBuilder request = MockMvcRequestBuilders + .get("/applications/prereg/info/{preRegistrationId}", preRegistrationId) + .param("preRegistrationId", preRegistrationId).accept(MediaType.APPLICATION_JSON) + .contentType(MediaType.APPLICATION_JSON); mockMvc.perform(request).andExpect(MockMvcResultMatchers.status().isOk()); } diff --git a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/GenerateQRcodeControllerTest.java b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/GenerateQRcodeControllerTest.java index cc3656c9a65..260f7a0ed04 100644 --- a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/GenerateQRcodeControllerTest.java +++ b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/GenerateQRcodeControllerTest.java @@ -3,18 +3,21 @@ import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; +import java.util.Date; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.Mock; import org.mockito.Mockito; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.annotation.Import; import org.springframework.http.MediaType; import org.springframework.security.test.context.support.WithMockUser; -import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.web.context.WebApplicationContext; @@ -26,12 +29,11 @@ import io.mosip.preregistration.application.service.GenerateQRcodeService; import io.mosip.preregistration.core.common.dto.MainRequestDTO; import io.mosip.preregistration.core.common.dto.MainResponseDTO; -import io.mosip.preregistration.core.common.dto.NotificationDTO; import io.mosip.preregistration.core.util.RequestValidator; import io.mosip.preregistration.core.util.ValidationUtil; -@RunWith(SpringRunner.class) -@WebMvcTest(GenerateQRcodeController.class) +@RunWith(SpringJUnit4ClassRunner.class) +@WebMvcTest(controllers = GenerateQRcodeController.class) @Import(GenerateQRcodeController.class) public class GenerateQRcodeControllerTest { @@ -58,9 +60,13 @@ public class GenerateQRcodeControllerTest { @MockBean private RequestValidator requestValidator; - private NotificationDTO notificationDTO; - - MainResponseDTO responseDTO = new MainResponseDTO<>(); + @Mock + private GenerateQRcodeController generateQRcodeController; + + @Value("${mosip.pre-registration.qrcode.generate.id}") + private String generateId; + + MainResponseDTO responseDTO = new MainResponseDTO(); MainRequestDTO requestdata = new MainRequestDTO<>(); @Before @@ -69,15 +75,14 @@ public void setUp() { mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build(); Mockito.when(requestValidator.supports(Mockito.any())).thenReturn(true); - notificationDTO = new NotificationDTO(); - notificationDTO.setName("sanober Noor"); - notificationDTO.setPreRegistrationId("1234567890"); - notificationDTO.setMobNum("1234567890"); - notificationDTO.setEmailID("sanober,noor2@mindtree.com"); - notificationDTO.setAppointmentDate("2019-01-22"); - notificationDTO.setAppointmentTime("22:57"); - - responseDTO.setResponse(notificationDTO); + requestdata.setRequest("123456789"); + requestdata.setId(generateId); + requestdata.setVersion("1.0"); + requestdata.setRequesttime(new Date()); + + QRCodeResponseDTO qrCodeResponseDTO = new QRCodeResponseDTO(); + qrCodeResponseDTO.setQrcode("123456789".getBytes()); + responseDTO.setResponse(qrCodeResponseDTO); responseDTO.setResponsetime(serviceUtil.getCurrentResponseTime()); } @@ -91,11 +96,13 @@ public void setUp() { @Test public void qrCodeGenerationTest() throws Exception { - MainResponseDTO response = new MainResponseDTO<>(); - String stringjson = mapper.writeValueAsString(notificationDTO); - Mockito.when(service.generateQRCode(requestdata)).thenReturn(response); + //MainResponseDTO response = new MainResponseDTO<>(); + + String stringjson = mapper.writeValueAsString(requestdata); + + Mockito.when(service.generateQRCode(requestdata)).thenReturn(responseDTO); mockMvc.perform(post("/qrCode/generate").contentType(MediaType.APPLICATION_JSON).content(stringjson)) .andExpect(status().isOk()); diff --git a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/LoginControllerTest.java b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/LoginControllerTest.java index 39fc3aca159..c42393c03c0 100644 --- a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/LoginControllerTest.java +++ b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/LoginControllerTest.java @@ -1,6 +1,5 @@ package io.mosip.preregistration.application.test.controller; -import static org.junit.Assert.assertEquals; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import java.io.FileNotFoundException; @@ -8,34 +7,34 @@ import java.util.Date; import java.util.Map; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.Mockito; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.annotation.Import; import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; +import org.springframework.security.test.context.support.WithMockUser; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.util.ReflectionTestUtils; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.RequestBuilder; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.result.MockMvcResultMatchers; import org.springframework.test.web.servlet.setup.MockMvcBuilders; -import org.springframework.validation.BeanPropertyBindingResult; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.context.WebApplicationContext; +import com.fasterxml.jackson.databind.ObjectMapper; + import io.mosip.preregistration.application.controller.LoginController; -import io.mosip.preregistration.application.dto.OtpRequestDTO; +import io.mosip.preregistration.application.dto.OTPRequestWithLangCodeAndCaptchaToken; +import io.mosip.preregistration.application.dto.OTPWithLangCodeDTO; import io.mosip.preregistration.application.dto.User; import io.mosip.preregistration.application.exception.DeprecatedException; import io.mosip.preregistration.application.service.LoginService; @@ -43,15 +42,18 @@ import io.mosip.preregistration.core.common.dto.AuthNResponse; import io.mosip.preregistration.core.common.dto.MainRequestDTO; import io.mosip.preregistration.core.common.dto.MainResponseDTO; -import io.mosip.preregistration.core.common.dto.ResponseWrapper; import io.mosip.preregistration.core.util.RequestValidator; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import net.minidev.json.parser.ParseException; @RunWith(SpringRunner.class) @WebMvcTest(LoginController.class) @Import(LoginController.class) +@WithMockUser(username = "individual", authorities = { "INDIVIDUAL", "REGISTRATION_OFFICER" }) public class LoginControllerTest { + @Autowired private MockMvc mockMvc; @Autowired @@ -66,22 +68,22 @@ public class LoginControllerTest { @MockBean private RequestValidator loginValidator; - @Autowired + @Mock private LoginController controller; - private AuthNResponse authNResposne; - @Mock private HttpServletResponse res; @Mock private HttpServletRequest req; - private MainResponseDTO serviceResponse; - private MainRequestDTO loginRequest = new MainRequestDTO<>(); - private ResponseEntity responseEntity; + @Value("${mosip.id.preregistration.login.sendotp}") + private String sendOtpId; + + @Value("${mosip.id.preregistration.login.validateotp}") + private String validateOtpId; @Before public void setup() throws URISyntaxException, FileNotFoundException, ParseException { @@ -101,32 +103,96 @@ public void testInitBinder() { controller.initBinder(Mockito.mock(WebDataBinder.class)); } - @Test(expected = DeprecatedException.class) + //@Test(expected = DeprecatedException.class) public void sendOtpTest() throws Exception { + Mockito.when(loginValidator.supports(Mockito.any())).thenReturn(true); + MainResponseDTO mainResponseDTO = new MainResponseDTO<>(); Mockito.when(loginService.sendOTP(Mockito.any(), Mockito.anyString())).thenReturn(mainResponseDTO); - MainRequestDTO userOtpRequest = new MainRequestDTO<>(); - BeanPropertyBindingResult errors = new BeanPropertyBindingResult(userOtpRequest, - "MainRequestDTO"); - ResponseEntity> responseEntity = controller.sendOTP(userOtpRequest, errors); - assertEquals(HttpStatus.OK, responseEntity.getStatusCode()); + String uri = "/login/sendOtp"; + MainRequestDTO mainRequestDto = new MainRequestDTO<>(); + OTPWithLangCodeDTO optRequestDto = new OTPWithLangCodeDTO(); + optRequestDto.setUserId("test@test.com"); + optRequestDto.setLangCode("eng"); + mainRequestDto.setId(sendOtpId); + mainRequestDto.setRequest(optRequestDto); + mainRequestDto.setVersion("1.0"); + mainRequestDto.setRequesttime(new Date()); + mockMvc.perform(MockMvcRequestBuilders.post(uri).contentType(MediaType.APPLICATION_JSON_VALUE) + .content(asJsonString(mainRequestDto)).accept(MediaType.APPLICATION_JSON_VALUE)); } - @Mock - private ResponseWrapper responseWrapped; + @Test + public void sendOTPWithLangCodeTest() throws Exception { + Mockito.when(loginValidator.supports(Mockito.any())).thenReturn(true); + + MainResponseDTO mainResponseDto = new MainResponseDTO<>(); + Mockito.when(loginService.sendOTP(Mockito.any(), Mockito.anyString())).thenReturn(mainResponseDto); + String uri = "/login/sendOtp/langcode"; + MainRequestDTO mainRequestDto = new MainRequestDTO(); + OTPWithLangCodeDTO optRequestDto = new OTPWithLangCodeDTO(); + optRequestDto.setUserId("test@test.com"); + optRequestDto.setLangCode("eng"); + mainRequestDto.setId(sendOtpId); + mainRequestDto.setRequest(optRequestDto); + mainRequestDto.setVersion("1.0"); + mainRequestDto.setRequesttime(new Date()); + mockMvc.perform(MockMvcRequestBuilders.post(uri).contentType(MediaType.APPLICATION_JSON_VALUE) + .content(asJsonString(mainRequestDto)).accept(MediaType.APPLICATION_JSON_VALUE)) + .andExpect(MockMvcResultMatchers.status().isOk()); + } + + @Test + public void sendOtpWithCaptchaTest() throws Exception { + Mockito.when(loginValidator.supports(Mockito.any())).thenReturn(true); + + MainResponseDTO mainResponseDto = new MainResponseDTO<>(); + Mockito.when(loginService.validateCaptchaAndSendOtp(Mockito.any())).thenReturn(mainResponseDto); + String uri = "/login/sendOtpWithCaptcha"; + MainRequestDTO mainRequestDto = new MainRequestDTO<>(); + OTPRequestWithLangCodeAndCaptchaToken optRequestDto = new OTPRequestWithLangCodeAndCaptchaToken(); + optRequestDto.setUserId("test@test.com"); + optRequestDto.setLangCode("eng"); + optRequestDto.setCaptchaToken("Test"); + + mainRequestDto.setId(sendOtpId); + mainRequestDto.setRequest(optRequestDto); + mainRequestDto.setVersion("1.0"); + mainRequestDto.setRequesttime(new Date()); + + mockMvc.perform(MockMvcRequestBuilders.post(uri).contentType(MediaType.APPLICATION_JSON_VALUE) + .content(asJsonString(mainRequestDto)).accept(MediaType.APPLICATION_JSON_VALUE)) + .andExpect(MockMvcResultMatchers.status().isOk()); + } @Test public void validateWithUseridOtpTest() throws Exception { - MainRequestDTO userIdOtpRequest = new MainRequestDTO<>(); - loginRequest.setId("mosip.pre-registration.login.useridotp"); + Mockito.when(loginValidator.supports(Mockito.any())).thenReturn(true); + + MainRequestDTO mainRequestDto = new MainRequestDTO<>(); + User user = new User(); + user.setUserId("test@test.com"); + user.setOtp("123456"); + mainRequestDto.setId(validateOtpId); + mainRequestDto.setRequest(user); + mainRequestDto.setVersion("1.0"); + mainRequestDto.setRequesttime(new Date()); + HttpHeaders headers = new HttpHeaders(); headers.add("Set-Cookie", "AuthToken=MOSIP"); - MainResponseDTO serviceResposne = new MainResponseDTO(); - authNResposne = new AuthNResponse("success", "success"); - serviceResposne.setResponse(authNResposne); + MainResponseDTO mainResponseDto = new MainResponseDTO<>(); + AuthNResponse authNResposne = new AuthNResponse(); + authNResposne.setStatus("success"); + authNResposne.setMessage("Successfully validated"); + mainResponseDto.setResponse(authNResposne); + + Mockito.when(loginService.validateWithUserIdOtp(Mockito.any())).thenReturn(mainResponseDto); - Mockito.when(loginService.validateWithUserIdOtp(Mockito.any())).thenReturn(serviceResponse); + String uri = "/login/validateOtp"; + mockMvc.perform(MockMvcRequestBuilders.post(uri).contentType(MediaType.APPLICATION_JSON_VALUE) + .content(asJsonString(mainRequestDto)).accept(MediaType.APPLICATION_JSON_VALUE)) + .andExpect(MockMvcResultMatchers.status().isOk()); } @Test @@ -149,15 +215,11 @@ public void getConfigTest() throws Exception { mockMvc.perform(requestBuilder).andExpect(status().isOk()); } - @Test - public void refreshConfigTest() throws Exception { - - MainResponseDTO mainResponseDTO = new MainResponseDTO<>(); - Mockito.when(loginService.refreshConfig()).thenReturn(mainResponseDTO); - RequestBuilder requestBuilder = MockMvcRequestBuilders.get("/login/refreshconfig") - .contentType(MediaType.APPLICATION_JSON_VALUE).characterEncoding("UTF-8") - .accept(MediaType.APPLICATION_JSON_VALUE); - mockMvc.perform(requestBuilder).andExpect(status().isOk()); + public static String asJsonString(final Object obj) { + try { + return new ObjectMapper().writeValueAsString(obj); + } catch (Exception e) { + throw new RuntimeException(e); + } } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/LostUINControllerTest.java b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/LostUINControllerTest.java index b32cf4d78ec..5fc87529e5f 100644 --- a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/LostUINControllerTest.java +++ b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/LostUINControllerTest.java @@ -1,35 +1,42 @@ package io.mosip.preregistration.application.test.controller; -import org.joda.time.DateTime; +import java.util.Date; + +import java.time.LocalDateTime; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.Mockito; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.annotation.Import; import org.springframework.http.MediaType; import org.springframework.security.test.context.support.WithMockUser; -import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.RequestBuilder; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import org.springframework.test.web.servlet.result.MockMvcResultMatchers; import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import org.springframework.web.bind.WebDataBinder; import org.springframework.web.context.WebApplicationContext; +import com.fasterxml.jackson.databind.ObjectMapper; + import io.mosip.preregistration.application.controller.LostUINController; import io.mosip.preregistration.application.dto.ApplicationRequestDTO; import io.mosip.preregistration.application.dto.ApplicationResponseDTO; import io.mosip.preregistration.application.dto.DeleteApplicationDTO; import io.mosip.preregistration.application.service.ApplicationServiceIntf; +import io.mosip.preregistration.core.code.BookingTypeCodes; import io.mosip.preregistration.core.common.dto.MainRequestDTO; import io.mosip.preregistration.core.common.dto.MainResponseDTO; import io.mosip.preregistration.core.util.RequestValidator; -@RunWith(SpringRunner.class) +@RunWith(SpringJUnit4ClassRunner.class) @WebMvcTest(controllers = LostUINController.class) @Import(LostUINController.class) @WithMockUser(username = "individual", authorities = { "INDIVIDUAL", "REGISTRATION_OFFICER" }) @@ -47,55 +54,80 @@ public class LostUINControllerTest { @Mock private LostUINController lostuinController; + @Autowired private MockMvc mockmvc; - private String LOST_UIN_CREATE_ID = "preregistration.lostuin.create"; + @Value("${mosip.id.preregistration.lostuin.create}") + private String createId; - MainResponseDTO responseDTO = new MainResponseDTO(); - ApplicationResponseDTO response = new ApplicationResponseDTO(); - MainRequestDTO jsonObject = new MainRequestDTO(); - ApplicationRequestDTO request = new ApplicationRequestDTO(); + @Value("${mosip.id.preregistration.lostuin.delete}") + private String deleteId; @Before public void setup() { mockmvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build(); + } - request.setLangCode("12345"); - jsonObject.setVersion("123"); - jsonObject.setId("1234"); - jsonObject.setRequest(request); - - response.setApplicationId("123456"); - response.setApplicationStatusCode("44"); - response.setBookingStatusCode("656"); - response.setBookingType("Booked"); - responseDTO.setResponse(response); - responseDTO.setId("354"); - responseDTO.setResponsetime(DateTime.now().toString()); + /** + * Test init binder. + */ + @Test + public void testInitBinder() { + lostuinController.initBinder(Mockito.mock(WebDataBinder.class)); } -// @Test -// public void addLostUinApplicationTest() throws Exception { -// Mockito.when(applicationService.addLostOrUpdateApplication(jsonObject, "LOST_FORGOTTEN_UIN")) -// .thenReturn(responseDTO); -// -// RequestBuilder request = MockMvcRequestBuilders.post("/applications/lostuin").content() -// .param("jsonObject", jsonObject.toString()).accept(MediaType.APPLICATION_JSON_UTF8) -// .contentType(MediaType.APPLICATION_JSON_UTF8); -// mockmvc.perform(request).andExpect(MockMvcResultMatchers.status().isOk()); -// } + + @Test + public void addLostUinApplicationTest() throws Exception { + + Mockito.when(requestValidator.supports(Mockito.any())).thenReturn(true); + + MainResponseDTO mainResponseDto = new MainResponseDTO(); + ApplicationResponseDTO applicationDto = new ApplicationResponseDTO(); + MainRequestDTO mainRequestDto = new MainRequestDTO(); + ApplicationRequestDTO applicationRequestDto = new ApplicationRequestDTO(); + + applicationRequestDto.setLangCode("eng"); + mainRequestDto.setVersion("1.0"); + mainRequestDto.setId(createId); + mainRequestDto.setRequest(applicationRequestDto); + mainRequestDto.setRequesttime(new Date()); + + applicationDto.setApplicationId("123456789"); + applicationDto.setApplicationStatusCode("SUBMITTED"); + applicationDto.setBookingStatusCode("Pending_Appointment"); + applicationDto.setBookingType("LOST_FORGOTTEN_UIN"); + mainResponseDto.setResponse(applicationDto); + mainResponseDto.setId(createId); + mainResponseDto.setResponsetime(LocalDateTime.now().toString()); + Mockito.when(applicationService.addLostOrUpdateApplication(Mockito.any(), Mockito.any())) + .thenReturn(mainResponseDto); + String uri = "/applications/lostuin"; + mockmvc + .perform(MockMvcRequestBuilders.post(uri).contentType(MediaType.APPLICATION_JSON_VALUE) + .content(asJsonString(mainRequestDto)).accept(MediaType.APPLICATION_JSON_VALUE)) + .andExpect(MockMvcResultMatchers.status().isOk()); + } @Test public void deleteLostUinApplicationTest() throws Exception { String applicationId = "123456789"; - String bookingType = "UPDATE_REGISTRATION"; + String bookingType = BookingTypeCodes.LOST_FORGOTTEN_UIN.toString(); MainResponseDTO response = new MainResponseDTO(); - + response.setId(deleteId); Mockito.when(applicationService.deleteLostOrUpdateApplication(applicationId, bookingType)).thenReturn(response); RequestBuilder request = MockMvcRequestBuilders.delete("/applications/lostuin/{applicationId}", applicationId) - .param("applicationId", applicationId).accept(MediaType.APPLICATION_JSON_UTF8) - .contentType(MediaType.APPLICATION_JSON_UTF8); + .param("applicationId", applicationId).accept(MediaType.APPLICATION_JSON_VALUE) + .contentType(MediaType.APPLICATION_JSON_VALUE); mockmvc.perform(request).andExpect(MockMvcResultMatchers.status().isOk()); } + public static String asJsonString(final Object obj) { + try { + return new ObjectMapper().writeValueAsString(obj); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + } diff --git a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/ProxyMasterdataControllerTest.java b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/ProxyMasterdataControllerTest.java new file mode 100644 index 00000000000..2b7b0f7ceb8 --- /dev/null +++ b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/ProxyMasterdataControllerTest.java @@ -0,0 +1,78 @@ +package io.mosip.preregistration.application.test.controller; + +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import java.io.FileNotFoundException; +import java.net.URISyntaxException; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.context.annotation.Import; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.RequestBuilder; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import org.springframework.web.context.WebApplicationContext; + +import io.mosip.preregistration.application.controller.ProxyMasterdataController; +import io.mosip.preregistration.application.service.ProxyMasterDataService; +import io.mosip.preregistration.application.util.ProxyMasterdataServiceUtil; +import net.minidev.json.parser.ParseException; + +@RunWith(SpringJUnit4ClassRunner.class) +@WebMvcTest(controllers = ProxyMasterdataController.class) +@Import(ProxyMasterdataController.class) +@WithMockUser(username = "individual", authorities = { "INDIVIDUAL", "REGISTRATION_OFFICER" }) +public class ProxyMasterdataControllerTest { + + @Autowired + private MockMvc mockMvc; + + @Autowired + private WebApplicationContext webApplicationContext; + + @MockBean + private ProxyMasterDataService proxyMasterDataService; + + @MockBean + private ProxyMasterdataServiceUtil util; + + @Mock + private ProxyMasterdataController proxyMasterdataController; + + @Before + public void setup() throws URISyntaxException, FileNotFoundException, ParseException { + mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build(); + } + + @Test + public void masterDataGetProxyControllerTest() throws Exception { + ResponseEntity response = new ResponseEntity(HttpStatus.OK); + Mockito.when(proxyMasterDataService.getMasterDataResponse(Mockito.any(), Mockito.any())).thenReturn(response); + RequestBuilder requestBuilder = MockMvcRequestBuilders.get("/proxy/test") + .contentType(MediaType.APPLICATION_JSON_VALUE).accept(MediaType.APPLICATION_JSON_VALUE); + mockMvc.perform(requestBuilder).andExpect(status().isOk()); + } + + @Test + public void masterDataPostProxyControllerTest() throws Exception { + ResponseEntity response = new ResponseEntity(HttpStatus.OK); + Mockito.when(proxyMasterDataService.getMasterDataResponse(Mockito.any(), Mockito.any())).thenReturn(response); + RequestBuilder requestBuilder = MockMvcRequestBuilders.post("/proxy/test") + .contentType(MediaType.APPLICATION_JSON_VALUE).accept(MediaType.APPLICATION_JSON_VALUE); + mockMvc.perform(requestBuilder).andExpect(status().isOk()); + } + +} diff --git a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/TransliterationControllerTest.java b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/TransliterationControllerTest.java index 5f18a67fe7f..c370d971e4a 100644 --- a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/TransliterationControllerTest.java +++ b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/TransliterationControllerTest.java @@ -16,7 +16,7 @@ import org.springframework.context.annotation.Import; import org.springframework.http.MediaType; import org.springframework.security.test.context.support.WithMockUser; -import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.RequestBuilder; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; @@ -37,7 +37,7 @@ * @since 1.0.0 * */ -@RunWith(SpringRunner.class) +@RunWith(SpringJUnit4ClassRunner.class) @WebMvcTest(controllers = TransliterationController.class) @Import(TransliterationController.class) @WithMockUser(username = "individual", authorities = { "INDIVIDUAL", "REGISTRATION_OFFICER" }) @@ -46,6 +46,7 @@ public class TransliterationControllerTest { /** * Autowired reference for {@link #MockMvc} */ + @Autowired private MockMvc mockMvc; @Autowired diff --git a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/UpdateRegistrationControllerTest.java b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/UpdateRegistrationControllerTest.java new file mode 100644 index 00000000000..798ead7fd87 --- /dev/null +++ b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/controller/UpdateRegistrationControllerTest.java @@ -0,0 +1,128 @@ +package io.mosip.preregistration.application.test.controller; + +import java.time.LocalDateTime; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.context.annotation.Import; +import org.springframework.http.MediaType; +import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.RequestBuilder; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.result.MockMvcResultMatchers; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import org.springframework.web.bind.WebDataBinder; +import org.springframework.web.context.WebApplicationContext; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import io.mosip.preregistration.application.controller.UpdateRegistrationController; +import io.mosip.preregistration.application.dto.ApplicationRequestDTO; +import io.mosip.preregistration.application.dto.ApplicationResponseDTO; +import io.mosip.preregistration.application.dto.DeleteApplicationDTO; +import io.mosip.preregistration.application.service.ApplicationServiceIntf; +import io.mosip.preregistration.core.code.BookingTypeCodes; +import io.mosip.preregistration.core.common.dto.MainRequestDTO; +import io.mosip.preregistration.core.common.dto.MainResponseDTO; +import io.mosip.preregistration.core.util.RequestValidator; + +@RunWith(SpringRunner.class) +@WebMvcTest(controllers = UpdateRegistrationController.class) +@Import(UpdateRegistrationController.class) +@WithMockUser(username = "individual", authorities = { "INDIVIDUAL", "REGISTRATION_OFFICER" }) +public class UpdateRegistrationControllerTest { + + @MockBean + ApplicationServiceIntf applicationService; + + @MockBean + private RequestValidator requestValidator; + + @Autowired + private WebApplicationContext webApplicationContext; + + @Mock + private UpdateRegistrationController updateController; + + private MockMvc mockmvc; + + @Value("${mosip.id.preregistration.updateregistration.create}") + private String createId; + + @Value("${mosip.id.preregistration.updateregistration.delete}") + private String deleteId; + + @Before + public void setup() { + mockmvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build(); + } + + /** + * Test init binder. + */ + @Test + public void testInitBinder() { + updateController.initBinder(Mockito.mock(WebDataBinder.class)); + } + + @Test + public void addLostUinApplicationTest() throws Exception { + Mockito.when(requestValidator.supports(Mockito.any())).thenReturn(true); + + MainResponseDTO mainResponseDto = new MainResponseDTO(); + ApplicationResponseDTO applicationDto = new ApplicationResponseDTO(); + MainRequestDTO mainRequestDto = new MainRequestDTO(); + ApplicationRequestDTO applicationRequestDto = new ApplicationRequestDTO(); + + applicationRequestDto.setLangCode("eng"); + mainRequestDto.setVersion("1.0"); + mainRequestDto.setId(createId); + mainRequestDto.setRequest(applicationRequestDto); + + applicationDto.setApplicationId("123456789"); + applicationDto.setApplicationStatusCode("SUBMITTED"); + applicationDto.setBookingStatusCode("Pending_Appointment"); + applicationDto.setBookingType("UPDATE_REGISTRATION"); + mainResponseDto.setResponse(applicationDto); + mainResponseDto.setId(createId); + mainResponseDto.setResponsetime(LocalDateTime.now().toString()); + + Mockito.when(applicationService.addLostOrUpdateApplication(mainRequestDto, + BookingTypeCodes.UPDATE_REGISTRATION.toString())).thenReturn(mainResponseDto); + String uri = "/applications/updateregistration"; + mockmvc.perform(MockMvcRequestBuilders.post(uri).contentType(MediaType.APPLICATION_JSON_VALUE) + .content(asJsonString(mainRequestDto)).accept(MediaType.APPLICATION_JSON_VALUE)) + .andExpect(MockMvcResultMatchers.status().isOk()); + } + + @Test + public void deleteLostUinApplicationTest() throws Exception { + String applicationId = "123456789"; + String bookingType = BookingTypeCodes.UPDATE_REGISTRATION.toString(); + MainResponseDTO response = new MainResponseDTO(); + response.setId(deleteId); + Mockito.when(applicationService.deleteLostOrUpdateApplication(applicationId, bookingType)).thenReturn(response); + RequestBuilder request = MockMvcRequestBuilders + .delete("/applications/updateregistration/{applicationId}", applicationId) + .param("applicationId", applicationId).accept(MediaType.APPLICATION_JSON) + .contentType(MediaType.APPLICATION_JSON); + mockmvc.perform(request).andExpect(MockMvcResultMatchers.status().isOk()); + } + + public static String asJsonString(final Object obj) { + try { + return new ObjectMapper().writeValueAsString(obj); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + +} diff --git a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/service/AppointmentServiceTest.java b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/service/AppointmentServiceTest.java index 3da8148f843..48e86455517 100644 --- a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/service/AppointmentServiceTest.java +++ b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/service/AppointmentServiceTest.java @@ -32,6 +32,7 @@ import io.mosip.analytics.event.anonymous.util.AnonymousProfileUtil; import io.mosip.kernel.core.authmanager.authadapter.model.AuthUserDetails; import io.mosip.preregistration.application.repository.ApplicationRepostiory; +import io.mosip.preregistration.application.repository.DocumentDAO; import io.mosip.preregistration.application.service.AppointmentServiceImpl; import io.mosip.preregistration.application.service.DemographicService; import io.mosip.preregistration.application.service.DocumentService; @@ -86,6 +87,9 @@ public class AppointmentServiceTest { @Value("${mosip.preregistration.booking.delete.id}") private String appointmentDeletelId; + @MockBean + private DocumentDAO documentDAO; + @Before public void setup() { ReflectionTestUtils.setField(appointmentService, "mosipDateTimeFormat", "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); @@ -127,7 +131,14 @@ public void fetchAppointmentDetailsTest() { response.setResponsetime(LocalDateTime.now().toString()); response.setId(""); response.setVersion("1.0"); - + + AuthUserDetails applicationUser = Mockito.mock(AuthUserDetails.class); + Authentication authentication = Mockito.mock(Authentication.class); + SecurityContext securityContext = Mockito.mock(SecurityContext.class); + Mockito.when(securityContext.getAuthentication()).thenReturn(authentication); + SecurityContextHolder.setContext(securityContext); + Mockito.when(SecurityContextHolder.getContext().getAuthentication().getPrincipal()).thenReturn(applicationUser); + BookingRegistrationDTO bookingResponse = new BookingRegistrationDTO(); bookingResponse.setRegDate("23-08-2021"); bookingResponse.setRegistrationCenterId("10001"); diff --git a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/service/DemographicServiceTest.java b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/service/DemographicServiceTest.java index 0dc8ec9916b..d3ffba673ff 100644 --- a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/service/DemographicServiceTest.java +++ b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/service/DemographicServiceTest.java @@ -912,7 +912,7 @@ // ResponseEntity> respEntity = new ResponseEntity<>(dto, HttpStatus.OK); // // HttpHeaders headers = new HttpHeaders(); -// headers.setContentType(MediaType.APPLICATION_JSON_UTF8); +// headers.setContentType(MediaType.APPLICATION_JSON); // // Mockito.when(restTemplate.exchange(Mockito.anyString(), Mockito.eq(HttpMethod.GET), Mockito.any(), // Mockito.eq(new ParameterizedTypeReference>() { @@ -1128,7 +1128,7 @@ // Mockito.when(demographicRepository.findBypreRegistrationId(preRegId)).thenReturn(null); // // HttpHeaders headers = new HttpHeaders(); -// headers.setContentType(MediaType.APPLICATION_JSON_UTF8); +// headers.setContentType(MediaType.APPLICATION_JSON); // Mockito.when(restTemplate.exchange(Mockito.anyString(), Mockito.eq(HttpMethod.DELETE), Mockito.any(), // Mockito.eq(MainResponseDTO.class))).thenThrow(exception); // preRegistrationService.deleteIndividual(preRegId, userId); @@ -1166,7 +1166,7 @@ // MainResponseDTO deleteAllByPreId1 = new MainResponseDTO<>(); // deleteAllByPreId1.setErrors(fullname); // Mockito.when(documentServiceIntf.deleteAllByPreId(Mockito.anyString())).thenReturn(deleteAllByPreId1); -// headers.setContentType(MediaType.APPLICATION_JSON_UTF8); +// headers.setContentType(MediaType.APPLICATION_JSON); // Mockito.when(restTemplate.exchange(Mockito.anyString(), Mockito.eq(HttpMethod.DELETE), Mockito.any(), // Mockito.eq(new ParameterizedTypeReference>() { // }), Mockito.anyMap())).thenReturn(res); @@ -1213,7 +1213,7 @@ // ResponseEntity> res1 = new ResponseEntity<>(delBookingResponseDTO, // HttpStatus.OK); // HttpHeaders headers = new HttpHeaders(); -// headers.setContentType(MediaType.APPLICATION_JSON_UTF8); +// headers.setContentType(MediaType.APPLICATION_JSON); // MainResponseDTO deleteAllByPreId1 = new MainResponseDTO<>(); // deleteAllByPreId1.setErrors(null); // Mockito.when(documentServiceIntf.deleteAllByPreId(Mockito.anyString())).thenReturn(deleteAllByPreId1); @@ -1267,7 +1267,7 @@ // ResponseEntity> res1 = new ResponseEntity<>(delBookingResponseDTO, // HttpStatus.OK); // HttpHeaders headers = new HttpHeaders(); -// headers.setContentType(MediaType.APPLICATION_JSON_UTF8); +// headers.setContentType(MediaType.APPLICATION_JSON); // Mockito.when(restTemplate.exchange(Mockito.anyString(), Mockito.eq(HttpMethod.DELETE), Mockito.any(), // Mockito.eq(new ParameterizedTypeReference>() { // }))).thenReturn(res); @@ -1315,7 +1315,7 @@ // ResponseEntity> res1 = new ResponseEntity<>(delBookingResponseDTO, // HttpStatus.OK); // HttpHeaders headers = new HttpHeaders(); -// headers.setContentType(MediaType.APPLICATION_JSON_UTF8); +// headers.setContentType(MediaType.APPLICATION_JSON); // Mockito.when(restTemplate.exchange(Mockito.anyString(), Mockito.eq(HttpMethod.DELETE), Mockito.any(), // Mockito.eq(new ParameterizedTypeReference>() { // }), Mockito.anyMap())).thenReturn(res); @@ -1375,7 +1375,7 @@ // // HttpStatus.OK); // // // // HttpHeaders headers = new HttpHeaders(); -// // headers.setContentType(MediaType.APPLICATION_JSON_UTF8); +// // headers.setContentType(MediaType.APPLICATION_JSON); // // // // MainResponseDTO deleteAllByPreId = new // // MainResponseDTO<>(); diff --git a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/service/GenerateQRcodeServiceTest.java b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/service/GenerateQRcodeServiceTest.java index ad333d98e3b..abe178d06f7 100644 --- a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/service/GenerateQRcodeServiceTest.java +++ b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/service/GenerateQRcodeServiceTest.java @@ -137,4 +137,9 @@ public void generateQRCodeFailureTest() throws java.io.IOException, QrcodeGenera service.generateQRCode(null); } + + @Test + public void setupBookingServiceTest() { + service.setupBookingService();; + } } diff --git a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/service/util/AppointmentUtilTest.java b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/service/util/AppointmentUtilTest.java index e75b2061831..ac262fe90fc 100644 --- a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/service/util/AppointmentUtilTest.java +++ b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/service/util/AppointmentUtilTest.java @@ -7,7 +7,7 @@ import java.util.Date; import java.util.List; -import org.joda.time.LocalDate; +import java.time.LocalDate; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mockito; diff --git a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/service/util/DocumentServiceUtilTest.java b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/service/util/DocumentServiceUtilTest.java index e8ed063ed66..f5468cd8eb3 100644 --- a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/service/util/DocumentServiceUtilTest.java +++ b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/service/util/DocumentServiceUtilTest.java @@ -103,8 +103,8 @@ public void inValidPreIDTest() throws Exception { @Test(expected = VirusScannerException.class) public void virusscannerFailureTest() throws Exception { - Mockito.when(virusScan.scanDocument(mockMultipartFile.getBytes())).thenThrow(java.io.IOException.class); - serviceUtil.isVirusScanSuccess(mockMultipartFile); + Mockito.when(virusScan.scanDocument(mockMultipartFile.getBytes())).thenThrow(VirusScannerException.class); + serviceUtil.virusScanCheck(mockMultipartFile); } } diff --git a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/util/LoginCommonUtilTest.java b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/util/LoginCommonUtilTest.java index d2d6be40ede..e682aeb9385 100644 --- a/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/util/LoginCommonUtilTest.java +++ b/pre-registration/pre-registration-application-service/src/test/java/io/mosip/preregistration/application/test/util/LoginCommonUtilTest.java @@ -1,6 +1,5 @@ package io.mosip.preregistration.application.test.util; -import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.Date; @@ -8,9 +7,6 @@ import java.util.List; import java.util.Map; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -22,6 +18,9 @@ import org.springframework.test.context.junit4.SpringRunner; import org.springframework.web.client.RestTemplate; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + import io.mosip.kernel.core.virusscanner.spi.VirusScanner; import io.mosip.preregistration.application.dto.User; import io.mosip.preregistration.application.service.DemographicServiceIntf; @@ -152,10 +151,4 @@ public void requestBodyExchangeObjectTest() { Mockito.when(commonUtil.requestBodyExchangeObject("String", JSONObject.class)).thenReturn(Object.class); } - @Test - public void getConfigParamsTest() throws IOException { - reqParams.add("String"); - commonUtil.getConfigParams(commonUtil.parsePropertiesString("String"), authHeader, reqParams); - } - } diff --git a/pre-registration/pre-registration-application-service/src/test/resources/application.properties b/pre-registration/pre-registration-application-service/src/test/resources/application.properties index 91f8ce4cdfe..2b60655d55d 100644 --- a/pre-registration/pre-registration-application-service/src/test/resources/application.properties +++ b/pre-registration/pre-registration-application-service/src/test/resources/application.properties @@ -80,8 +80,8 @@ mosip.kernel.prid.length= preregistration.preid.regex= auth.server.validate.url= -global.config.file=application-mz.properties -pre.reg.config.file=pre-registration-mz.properties +#global.config.file=application-mz.properties +#pre.reg.config.file=pre-registration-mz.properties spring.cloud.config.uri=https://dev.mosip.net/config # spring.cloud.config.label=develop @@ -92,7 +92,6 @@ spring.cloud.config.uri=https://dev.mosip.net/config management.endpoints.web.exposure.include=refresh auth.server.validate.url=https://qa.mosip.net/authmanager/v1/authorize/validateToken -ui.config.params=preregistration.login.mode,preregistration.workflow.demographic,preregistration.workflow.documentupload,preregistration.workflow.booking,preregistration.booking.offset,preregistration.auto.logout,preregistration.rebook.timespan,preregistration.cancel.timespan,preregistration.book.days,preregistration.max.file.size,preregistration.recommended.centers.locCode,preregistration.nearby.centers,mosip.regex.email,mosip.regex.postalCode,mosip.regex.textField,mosip.regex.phone,mosip.regex.DOB,mosip.regex.CNIE,mosip.supported-languages,mosip.primary-language,mosip.secondary-language,mosip.default.dob,mosip.kernel.otp.expiry-time,mosip.kernel.otp.validation-attempt-threshold,mosip.kernel.otp.default-length,mosip.kernel.sms.number.length,mosip.kernel.pin.length mosip.id.validation.identity.dateOfBirth= mosip.id.validation.identity.postalCode= @@ -397,10 +396,6 @@ validationStatus=success context=auth-otp clientId=pre-registration secretKey=149d8d00-531e-4518-8fe7-922f6a2182ad -#clientId=pre_reg_client_id -#secretKey=dcc7e4f3e1c9ef72ad54672a7a649bd3b0322a3ac504fd7b52528a5018b61e8d - -#--------- Demographic------------ #Document service URL for fetching booking details appointmentResourse.url=${booking.resource.url} @@ -423,6 +418,11 @@ mosip.preregistration.demographic.retrieve.date.id=mosip.pre-registration.demogr #id for demographic delete application mosip.preregistration.demographic.delete.id=mosip.pre-registration.demographic.delete +mosip.id.preregistration.lostuin.create=mosip.pre-registration.lostuin.create +mosip.id.preregistration.lostuin.delete=mosip.pre-registration.lostuin.delete +mosip.id.preregistration.updateregistration.create=mosip.pre-registration.updateregistration.create +mosip.id.preregistration.updateregistration.delete=mosip.pre-registration.updateregistration.delete + #page size to define the number of pages for demographic service mosip.pregistration.pagesize=20 @@ -597,7 +597,7 @@ sms.acknowledgement.template=SMS-Acknowledgement global.config.file=application-${spring.profiles.active}.properties #Pre-reg config file name -pre.reg.config.file=pre-registration-${spring.profiles.active}.properties +#pre.reg.config.file=pre-registration-${spring.profiles.active}.properties mosip.pre-registration.notification.id=mosip.pre-registration.notification.notify @@ -639,7 +639,7 @@ mosip.id.pre-registration.transliteration.transliterate=mosip.pre-registration.t mosip.pre-registration.transliteration.transliterate.id=mosip.pre-registration.transliteration.transliterate #--------UI params--------- # List of keys which UI will consume -ui.config.params=preregistration.availability.sync,preregistration.availability.noOfDays,mosip.supported-languages,mosip.primary-language,mosip.secondary-language,mosip.id.validation.identity.email,mosip.id.validation.identity.postalCode,mosip.id.validation.identity.phone,mosip.id.validation.identity.dateOfBirth,mosip.id.validation.identity.referenceIdentityNumber,mosip.default.dob.month,mosip.default.dob.day,mosip.kernel.otp.expiry-time,mosip.kernel.otp.validation-attempt-threshold,mosip.kernel.otp.default-length,mosip.kernel.sms.number.length,mosip.kernel.pin.length,preregistration.max.file.size,preregistration.recommended.centers.locCode,preregistration.nearby.centers,mosip.login.mode,preregistration.workflow.demographic,preregistration.workflow.documentupload,preregistration.workflow.booking,preregistration.auto.logout,preregistration.timespan.cancel,preregistration.timespan.rebook,preregistration.booking.offset,mosip.right_to_left_orientation,mosip.left_to_right_orientation,mosip.id.validation.identity.age,mosip.id.validation.identity.fullName.[*].value,mosip.id.validation.identity.addressLine1.[*].value,preregistration.documentupload.allowed.file.type,preregistration.documentupload.allowed.file.nameLength,preregistration.documentupload.allowed.file.size,mosip.preregistration.auto.logout.idle,mosip.preregistration.auto.logout.timeout,mosip.preregistration.auto.logout.ping,mosip.country.code,mosip.notificationtype,mosip.kernel.idobjectvalidator.masterdata.locations.locationNotAvailable,google.recaptcha.site.key +ui.config.params=preregistration.availability.sync,preregistration.availability.noOfDays,mosip.id.validation.identity.email,mosip.id.validation.identity.postalCode,mosip.id.validation.identity.phone,mosip.id.validation.identity.dateOfBirth,mosip.id.validation.identity.referenceIdentityNumber,mosip.default.dob.month,mosip.default.dob.day,mosip.kernel.otp.expiry-time,mosip.kernel.otp.validation-attempt-threshold,mosip.kernel.otp.default-length,mosip.kernel.sms.number.length,mosip.kernel.pin.length,preregistration.max.file.size,preregistration.recommended.centers.locCode,preregistration.nearby.centers,mosip.login.mode,preregistration.workflow.demographic,preregistration.workflow.documentupload,preregistration.workflow.booking,preregistration.auto.logout,preregistration.timespan.cancel,preregistration.timespan.rebook,preregistration.booking.offset,mosip.right_to_left_orientation,mosip.left_to_right_orientation,mosip.id.validation.identity.age,mosip.id.validation.identity.fullName.[*].value,mosip.id.validation.identity.addressLine1.[*].value,preregistration.documentupload.allowed.file.type,preregistration.documentupload.allowed.file.nameLength,preregistration.documentupload.allowed.file.size,mosip.preregistration.auto.logout.idle,mosip.preregistration.auto.logout.timeout,mosip.preregistration.auto.logout.ping,mosip.country.code,mosip.notificationtype,mosip.kernel.idobjectvalidator.masterdata.locations.locationNotAvailable,mosip.preregistration.captcha.sitekey,mosip.adult.age,mosip.idschema.version,mosip.preregistration.captcha.enable,preregistration.identity.name,preregistration.ui.version,preregistration.contact.email,preregistration.contact.phone # This config is used for loading recommended centers based on the value of the config. The value depicts the location hierarchy code of the hierarchy based on which the recommended centers is loaded preregistration.recommended.centers.locCode=5 @@ -676,6 +676,11 @@ mosip.preregistration.login.id.validateotp=mosip.pre-registration.login.useridot mosip.preregistration.login.id.invalidatetoken=mosip.pre-registration.login.invalidate mosip.preregistration.login.id.config=mosip.pre-registration.login.config +mosip.id.preregistration.login.sendotp: mosip.pre-registration.login.sendotp +mosip.id.preregistration.login.validateotp: mosip.pre-registration.login.useridotp +mosip.preregistration.login.service.version: 1.0 +mosip.preregistration.sendotp.id: mosip.pre-registration.login.sendotp +mosip.preregistration.validateotp.id: mosip.pre-registration.login.useridotp registrationcenter.centerdetail.rest.uri=https://dev.mosip.net/v1/masterdata/ @@ -697,7 +702,7 @@ mosip.mandatory-languages=eng mosip.optional-languages=fra,ara mosip.kernel.otp.expiry-time=1800 mosip.lang.traslate.adapter.impl.basepackage = io.mosip.kernel.transliteration.icu4j - +mosip.preregistration.sendotp.allowapi=false mosip.preregistration.captcha.resourse.url=${mosip.base.url}/preregistration/v1/captcha/validatecaptcha mosip.preregistration.captcha.enable=true mosip.preregistration.captcha.sitekey=6Lc4pewUAAAAANr3JkwuSVNCzQi9Z31g-NVKMXBX @@ -808,10 +813,19 @@ mosip.role.prereg.postappointmentmulti=REGISTRATION_OFFICER,INDIVIDUAL mosip.role.prereg.updateapplicationstatusappid=REGISTRATION_OFFICER,INDIVIDUAL mosip.role.prereg.getapplicationdetailsappid=REGISTRATION_OFFICER,INDIVIDUAL - -mosip.kernel.auth.appids.realm.map={prereg:'preregistration',ida:'mosip',registrationclient:'mosip',regproc:'mosip',partner:'mosip',resident:'mosip',admin:'mosip',crereq:'mosip',creser:'mosip',datsha:'mosip'} -mosip.id.preregistration.lostuin.delete=mosip.pre-registration.lostuin.delete -mosip.id.preregistration.updateregistration.delete=mosip.pre-registration.updateregistration.delete mosip.preregistration.applications.all.get = mosip.preregistration.applications.all -preregistration.cookie.contextpath=/preregistration/ +preregistration.cookie.contextpath=/ mosip.preregistration.booking.book.id=mosip.pre-registration.booking.book +mosip.kernel.auth.appids.realm.map={prereg:'mosip',ida:'mosip',registrationclient:'mosip',regproc:'mosip',partner:'mosip',resident:'mosip',admin:'mosip',crereq:'mosip',creser:'mosip',datsha:'mosip'} + +auth.server.admin.issuer.uri=https://iam.dev.mosip.net/auth/realms/ +mosip.iam.adapter.clientid=mosip-prereg-client +mosip.iam.adapter.clientsecret=abc123 +mosip.iam.adapter.appid=prereg + +mosip.mandatory-languages=eng +mosip.optional-languages=fra,ara +mosip.min-languages.count=1 +mosip.max-languages.count=3 + +spring.mvc.pathmatch.matching-strategy=ANT_PATH_MATCHER diff --git a/pre-registration/pre-registration-batchjob/Dockerfile b/pre-registration/pre-registration-batchjob/Dockerfile index 88fa59efc3c..63f1a3ec2d4 100644 --- a/pre-registration/pre-registration-batchjob/Dockerfile +++ b/pre-registration/pre-registration-batchjob/Dockerfile @@ -1,4 +1,4 @@ -FROM openjdk:11 +FROM eclipse-temurin:21-jre-alpine ARG SOURCE ARG COMMIT_HASH @@ -49,16 +49,16 @@ ARG container_user=mosip ARG container_user_group=mosip # can be passed during Docker build as build time environment for github branch to pickup configuration from. -ARG container_user_uid=1001 +ARG container_user_uid=1002 # can be passed during Docker build as build time environment for github branch to pickup configuration from. ARG container_user_gid=1001 # install packages and create user -RUN apt-get -y update \ -&& apt-get install -y unzip \ -&& groupadd -g ${container_user_gid} ${container_user_group} \ -&& useradd -u ${container_user_uid} -g ${container_user_group} -s /bin/sh -m ${container_user} +RUN apk -q update \ +&& apk add -q unzip wget \ +&& addgroup -g ${container_user_gid} ${container_user_group} \ +&& adduser -s /bin/sh -u ${container_user_uid} -G ${container_user_group} -h /home/${container_user} --disabled-password ${container_user} # set working directory for the user WORKDIR /home/${container_user} diff --git a/pre-registration/pre-registration-batchjob/README.md b/pre-registration/pre-registration-batchjob/README.md index 0b964d0fe31..5fe7bc1ed4c 100644 --- a/pre-registration/pre-registration-batchjob/README.md +++ b/pre-registration/pre-registration-batchjob/README.md @@ -1,4 +1,10 @@ # pre-registration-batchjob +This BatchJob is used to run few tasks on scheduled intervals. The tasks supported are: +* Generating slots for booking appointments in registration centres +* Moving the applications to Expired status once the appointment date is passed +* Moving the applications to Consumed status once the application is processed by MOSIP. +* Keeping the applications and appointments data in sync. + ## Design [Design](https://github.com/mosip/pre-registration/blob/master/design/pre-registration/pre-registration-batch-job.md) \ No newline at end of file diff --git a/pre-registration/pre-registration-batchjob/pom.xml b/pre-registration/pre-registration-batchjob/pom.xml index 321046e0231..74da143505a 100644 --- a/pre-registration/pre-registration-batchjob/pom.xml +++ b/pre-registration/pre-registration-batchjob/pom.xml @@ -1,42 +1,22 @@ + xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 4.0.0 io.mosip.preregistration pre-registration-parent - 1.2.0-SNAPSHOT + 1.2.1-java21-SNAPSHOT - 1.2.0-SNAPSHOT pre-registration-batchjob - pre-registration-batchjob + 1.2.1-java21-SNAPSHOT http://maven.apache.org - UTF-8 - 1.4.2 - - - - - org.springframework.boot - spring-boot-dependencies - ${spring.boot.version} - pom - import - - - org.projectlombok - lombok - ${lombok.version} - compile - - - @@ -78,6 +58,27 @@ micrometer-registry-prometheus ${io.micrometer.prometheus.version} + + org.junit.vintage + junit-vintage-engine + + + org.springframework.cloud + spring-cloud-starter-bootstrap + + + org.hibernate.validator + hibernate-validator + + + junit + junit + test + + + org.springframework.boot + spring-boot-starter-data-jpa + @@ -85,6 +86,7 @@ org.springframework.boot spring-boot-maven-plugin + ${spring.boot.maven.plugin.version} true ZIP @@ -100,4 +102,4 @@ - + \ No newline at end of file diff --git a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/audit/BatchjobConfig.java b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/audit/BatchjobConfig.java index a87bf4933ae..7e217e87251 100644 --- a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/audit/BatchjobConfig.java +++ b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/audit/BatchjobConfig.java @@ -12,8 +12,6 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import springfox.documentation.swagger2.annotations.EnableSwagger2; - /** * This class is used for Swagger configuration, also to configure Host and * Port. @@ -25,13 +23,12 @@ * */ @Configuration -@EnableSwagger2 @ConfigurationProperties("mosip.preregistration.batchjob") public class BatchjobConfig { - + /** The id. */ private Map id; - + /** * Sets the id. * @@ -40,7 +37,6 @@ public class BatchjobConfig { public void setId(Map id) { this.id = id; } - /** * Id. @@ -51,5 +47,4 @@ public void setId(Map id) { public Map ic() { return Collections.unmodifiableMap(id); } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/code/PreRegBatchContants.java b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/code/PreRegBatchContants.java index 53b550f66f0..49dd0a84e85 100644 --- a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/code/PreRegBatchContants.java +++ b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/code/PreRegBatchContants.java @@ -54,9 +54,9 @@ public class PreRegBatchContants { public static final String PAGE_SIZE = "&pageSize=10"; - public static final String SORT_BY = "&sortBy=createdDateTime"; + public static final String SORT_BY = "&sortBy=id"; - public static final String ORDER_BY = "&orderBy=desc"; + public static final String ORDER_BY = "&orderBy=asc"; public static final String DATA = "data"; } diff --git a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/entity/AvailabilityPK.java b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/entity/AvailabilityPK.java index f610a111c61..d47c8830ed2 100644 --- a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/entity/AvailabilityPK.java +++ b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/entity/AvailabilityPK.java @@ -8,8 +8,8 @@ import java.time.LocalDate; import java.time.LocalTime; -import javax.persistence.Column; -import javax.persistence.Embeddable; +import jakarta.persistence.Column; +import jakarta.persistence.Embeddable; import lombok.Getter; import lombok.Setter; diff --git a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/entity/AvailibityEntity.java b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/entity/AvailibityEntity.java index c312e67baa6..f7c25e024e5 100644 --- a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/entity/AvailibityEntity.java +++ b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/entity/AvailibityEntity.java @@ -10,14 +10,14 @@ import java.time.LocalDateTime; import java.time.LocalTime; -import javax.persistence.AttributeOverride; -import javax.persistence.AttributeOverrides; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.IdClass; -import javax.persistence.NamedQuery; -import javax.persistence.Table; +import jakarta.persistence.AttributeOverride; +import jakarta.persistence.AttributeOverrides; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.IdClass; +import jakarta.persistence.NamedQuery; +import jakarta.persistence.Table; import org.springframework.stereotype.Component; diff --git a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/entity/DemographicEntityConsumed.java b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/entity/DemographicEntityConsumed.java index e3ffc2faf41..2a90838b065 100644 --- a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/entity/DemographicEntityConsumed.java +++ b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/entity/DemographicEntityConsumed.java @@ -8,21 +8,16 @@ import java.time.LocalDateTime; import java.util.List; -import javax.persistence.CascadeType; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.Id; -import javax.persistence.OneToMany; -import javax.persistence.OneToOne; -import javax.persistence.Table; - import org.springframework.stereotype.Component; -import io.mosip.preregistration.core.common.entity.ApplicationEntity; import io.mosip.preregistration.core.common.entity.DocumentEntity; -import io.mosip.preregistration.core.common.entity.RegistrationBookingEntity; -import lombok.AccessLevel; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.Id; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; import lombok.NoArgsConstructor; import lombok.Setter; @@ -43,7 +38,7 @@ public class DemographicEntityConsumed implements Serializable { /** The Constant serialVersionUID. */ private static final long serialVersionUID = 6705845720255847210L; - @OneToMany(fetch = FetchType.EAGER,cascade=CascadeType.ALL, mappedBy = "demographicEntity") + @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, mappedBy = "demographicEntity") private List documentEntity; // @OneToOne(fetch = FetchType.EAGER,cascade=CascadeType.ALL, mappedBy = "applicationId") @@ -51,7 +46,7 @@ public class DemographicEntityConsumed implements Serializable { // @OneToOne(fetch = FetchType.EAGER,cascade=CascadeType.ALL, mappedBy = "demographicEntity") // private RegistrationBookingEntity registrationBookingEntity; - + /** The pre registration id. */ @Column(name = "prereg_id", nullable = false) @Id @@ -59,11 +54,11 @@ public class DemographicEntityConsumed implements Serializable { /** The JSON */ @Column(name = "demog_detail") - @Setter(AccessLevel.NONE) private byte[] applicantDetailJson; - + + // Setter methods for requesttime are overridden manually public void setApplicantDetailJson(byte[] applicantDetailJson) { - this.applicantDetailJson =applicantDetailJson !=null ? applicantDetailJson.clone():null; + this.applicantDetailJson = applicantDetailJson != null ? applicantDetailJson.clone() : null; } /** The status_code */ diff --git a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/entity/DocumentEntityConsumed.java b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/entity/DocumentEntityConsumed.java index 7e75f070a7c..3b0036d95d1 100644 --- a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/entity/DocumentEntityConsumed.java +++ b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/entity/DocumentEntityConsumed.java @@ -7,10 +7,10 @@ import java.io.Serializable; import java.time.LocalDateTime; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import lombok.NoArgsConstructor; import lombok.Setter; diff --git a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/entity/ProcessedPreRegEntity.java b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/entity/ProcessedPreRegEntity.java index e1565e02ade..13971345a27 100644 --- a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/entity/ProcessedPreRegEntity.java +++ b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/entity/ProcessedPreRegEntity.java @@ -7,10 +7,10 @@ import java.io.Serializable; import java.time.LocalDateTime; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import org.springframework.stereotype.Component; diff --git a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/entity/RegistrationBookingEntityConsumed.java b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/entity/RegistrationBookingEntityConsumed.java index 8ec85eef47a..0cccf347918 100644 --- a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/entity/RegistrationBookingEntityConsumed.java +++ b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/entity/RegistrationBookingEntityConsumed.java @@ -9,11 +9,11 @@ import java.time.LocalDateTime; import java.time.LocalTime; -import javax.persistence.Column; -import javax.persistence.Embedded; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; +import jakarta.persistence.Column; +import jakarta.persistence.Embedded; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import lombok.Setter; diff --git a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/entity/RegistrationBookingPKConsumed.java b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/entity/RegistrationBookingPKConsumed.java index 0644027f788..3eec7ebaa3c 100644 --- a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/entity/RegistrationBookingPKConsumed.java +++ b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/entity/RegistrationBookingPKConsumed.java @@ -7,8 +7,8 @@ import java.io.Serializable; import java.time.LocalDateTime; -import javax.persistence.Column; -import javax.persistence.Embeddable; +import jakarta.persistence.Column; +import jakarta.persistence.Embeddable; import lombok.NoArgsConstructor; import lombok.Setter; diff --git a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/helper/RestHelper.java b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/helper/RestHelper.java index c4e2df181da..b508780ec78 100644 --- a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/helper/RestHelper.java +++ b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/helper/RestHelper.java @@ -7,23 +7,15 @@ import java.time.LocalTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; -import java.time.format.TextStyle; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; -import java.util.Locale; import java.util.Map; import java.util.Objects; import java.util.TimeZone; -import java.util.stream.Collectors; -import javax.annotation.PostConstruct; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; +import jakarta.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; @@ -41,12 +33,16 @@ import org.springframework.web.reactive.function.client.WebClient; import org.springframework.web.util.UriComponentsBuilder; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; + import io.mosip.kernel.core.logger.spi.Logger; import io.mosip.preregistration.batchjob.code.PreRegBatchContants; import io.mosip.preregistration.batchjob.model.ExceptionalHolidayResponseDto; import io.mosip.preregistration.batchjob.model.RegistrationCenterDto; import io.mosip.preregistration.batchjob.model.RegistrationCenterHolidayDto; -import io.mosip.preregistration.batchjob.model.RegistrationCenterResponseDto; import io.mosip.preregistration.batchjob.model.WorkingDaysResponseDto; import io.mosip.preregistration.core.code.AuditLogVariables; import io.mosip.preregistration.core.common.dto.AuditRequestDto; @@ -57,7 +53,6 @@ import io.mosip.preregistration.core.common.dto.NotificationResponseDTO; import io.mosip.preregistration.core.common.dto.RequestWrapper; import io.mosip.preregistration.core.config.LoggerConfiguration; -import lombok.experimental.Tolerate; /** * @author Mahammed Taheer @@ -183,7 +178,8 @@ public List getRegistrationCenterDetails(List pag ObjectNode objectNode = objectMapper.convertValue(responseNode.get(PreRegBatchContants.RESPONSE), ObjectNode.class); List regCenterDetails = objectMapper.readValue(objectNode.get(PreRegBatchContants.DATA).toString(), new TypeReference>(){}); - LOGGER.info("Received the Registration Center details from Master Data Service."); + LOGGER.info(PreRegBatchContants.SESSIONID, PreRegBatchContants.PRE_REG_BATCH, PreRegBatchContants.EMPTY, + "Received the Registration Center details from Master Data Service."); for (RegistrationCenterDto regCenterDetail : regCenterDetails) { String regCenterId = regCenterDetail.getId(); @@ -308,9 +304,12 @@ private ObjectNode sendWebClientRequest(String anyEndPoint) { .uri(UriComponentsBuilder.fromUriString(anyEndPoint).toUriString()) .contentType(MediaType.APPLICATION_JSON) .exchange().block(); - ObjectNode responseObjNode = response.bodyToMono(ObjectNode.class).block(); - if (response.statusCode() == HttpStatus.OK) { - if (responseObjNode.has(PreRegBatchContants.ERRORS) && !responseObjNode.get(PreRegBatchContants.ERRORS).isNull()) { + ObjectNode responseObjNode = null; + if (response != null) { + responseObjNode = response.bodyToMono(ObjectNode.class).block(); + } + if (response != null && response.statusCode() == HttpStatus.OK) { + if (responseObjNode != null && responseObjNode.has(PreRegBatchContants.ERRORS) && !responseObjNode.get(PreRegBatchContants.ERRORS).isNull()) { LOGGER.error(PreRegBatchContants.SESSIONID, PreRegBatchContants.PRE_REG_BATCH, PreRegBatchContants.EMPTY, "Error in response for URL: " + anyEndPoint + ", Errors:" + responseObjNode.get(PreRegBatchContants.ERRORS).toString()); @@ -318,10 +317,17 @@ private ObjectNode sendWebClientRequest(String anyEndPoint) { } return responseObjNode; } else { - LOGGER.error(PreRegBatchContants.SESSIONID, PreRegBatchContants.PRE_REG_BATCH, PreRegBatchContants.EMPTY, - "Response Code: " + response.statusCode() + - ", Error in response for URL: " + anyEndPoint + ", Errors:" - + responseObjNode.get(PreRegBatchContants.ERRORS).toString()); + if (responseObjNode != null) { + LOGGER.error(PreRegBatchContants.SESSIONID, PreRegBatchContants.PRE_REG_BATCH, PreRegBatchContants.EMPTY, + "Response Code: " + response.statusCode() + + ", Error in response for URL: " + anyEndPoint + ", Errors:" + + responseObjNode.get(PreRegBatchContants.ERRORS).toString()); + } else { + LOGGER.error(PreRegBatchContants.SESSIONID, PreRegBatchContants.PRE_REG_BATCH, PreRegBatchContants.EMPTY, + "Error in response for URL: " + anyEndPoint + ", Errors:" + + response); + } + } } catch (Throwable t) { LOGGER.error(PreRegBatchContants.SESSIONID, PreRegBatchContants.PRE_REG_BATCH, PreRegBatchContants.EMPTY, @@ -344,10 +350,10 @@ public boolean cancelBookedApplication(String preRegId, String logIdentifier) { "Cancelling Booked Application endpoint: " + uriBuilder); ResponseEntity response = restTemplate.exchange(uriBuilder, HttpMethod.PUT, null, ObjectNode.class); - - if (response.getStatusCode().is2xxSuccessful()) { - ObjectNode responseObjNode = response.getBody(); - if (responseObjNode.has(PreRegBatchContants.ERRORS) && !responseObjNode.get(PreRegBatchContants.ERRORS).isNull()) { + ObjectNode responseObjNode = response.getBody(); + + if (responseObjNode != null && response.getStatusCode().is2xxSuccessful()) { + if (responseObjNode.has(PreRegBatchContants.ERRORS) && !responseObjNode.get(PreRegBatchContants.ERRORS).isNull()) { LOGGER.error(PreRegBatchContants.SESSIONID, PreRegBatchContants.PRE_REG_BATCH, logIdentifier, "Error in response for URL: " + uriBuilder + ", Errors:" + responseObjNode.get(PreRegBatchContants.ERRORS).toString()); @@ -359,18 +365,27 @@ public boolean cancelBookedApplication(String preRegId, String logIdentifier) { "Booked Application cancelled for pre reg Id: " + preRegId + ", Server Tranaction Id: " + cancelResponse.getTransactionId() + ", Server Response Message: " + cancelResponse.getMessage()); - return true; + return true; + } else { - LOGGER.error(PreRegBatchContants.SESSIONID, PreRegBatchContants.PRE_REG_BATCH, PreRegBatchContants.EMPTY, - "Response Code: " + response.getStatusCode() + - ", Error in response for URL: " + uriBuilder + ", Errors:" - + response.getBody().get(PreRegBatchContants.ERRORS).toString()); + if (responseObjNode != null) { + LOGGER.error(PreRegBatchContants.SESSIONID, PreRegBatchContants.PRE_REG_BATCH, PreRegBatchContants.EMPTY, + "Response Code: " + response.getStatusCode() + + ", Error in response for URL: " + uriBuilder + ", Errors:" + + responseObjNode.get(PreRegBatchContants.ERRORS).toString()); + } else { + LOGGER.error(PreRegBatchContants.SESSIONID, PreRegBatchContants.PRE_REG_BATCH, PreRegBatchContants.EMPTY, + "Response Code: " + response.getStatusCode() + + ", Error in response for URL: " + uriBuilder + ", Errors:" + + response); + } + return false; } /* ClientResponse response = webClient.method(HttpMethod.PUT) .uri(uriBuilder) - .contentType(MediaType.APPLICATION_JSON_UTF8) + .contentType(MediaType.APPLICATION_JSON) .exchange() .block(); @@ -417,9 +432,9 @@ public boolean sendCancelledNotification(String preRegId, String regDate, String String notifyEailResourseUrl = UriComponentsBuilder.fromUriString(sendNotificationURL).toUriString(); ResponseEntity response = restTemplate.exchange(notifyEailResourseUrl, HttpMethod.POST, httpEntity, ObjectNode.class); - - if (response.getStatusCode().is2xxSuccessful()) { - ObjectNode responseObjNode = response.getBody(); + ObjectNode responseObjNode = response.getBody(); + + if (responseObjNode != null && response.getStatusCode().is2xxSuccessful()) { if (responseObjNode.has(PreRegBatchContants.ERRORS) && !responseObjNode.get(PreRegBatchContants.ERRORS).isNull()) { LOGGER.error(PreRegBatchContants.SESSIONID, PreRegBatchContants.PRE_REG_BATCH, logIdentifier, "Error in response for URL: " + sendNotificationURL + ", Errors:" @@ -433,13 +448,21 @@ public boolean sendCancelledNotification(String preRegId, String regDate, String ", Notification Status: " + notifyResponse.getStatus() + ", Notification Response Message: " + notifyResponse.getMessage()); return true; - } else { - LOGGER.error(PreRegBatchContants.SESSIONID, PreRegBatchContants.PRE_REG_BATCH, PreRegBatchContants.EMPTY, - "Response Code: " + response.getStatusCode() + - ", Error in response for URL: " + sendNotificationURL + ", Errors:" - + response.getBody().get(PreRegBatchContants.ERRORS).toString()); - return false; - } + } else { + if (responseObjNode != null) { + LOGGER.error(PreRegBatchContants.SESSIONID, PreRegBatchContants.PRE_REG_BATCH, + PreRegBatchContants.EMPTY, + "Response Code: " + response.getStatusCode() + ", Error in response for URL: " + + sendNotificationURL + ", Errors:" + + responseObjNode.get(PreRegBatchContants.ERRORS).toString()); + } else { + LOGGER.error(PreRegBatchContants.SESSIONID, PreRegBatchContants.PRE_REG_BATCH, + PreRegBatchContants.EMPTY, + "Response Code: " + response.getStatusCode() + ", Error in response for URL: " + + sendNotificationURL + ", Errors:" + response); + } + return false; + } /* MultiValueMap requestValueMap = buildNotificationRequest(preRegId, regDate, regTime, langCode, logIdentifier); ClientResponse response = webClient.method(HttpMethod.POST) @@ -518,14 +541,13 @@ public boolean sendAuditDetails(String eventId, String eventName, String eventTy RequestWrapper requestAudit = new RequestWrapper<>(); requestAudit.setRequest(requestDto); HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON_UTF8); + headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity> requestEntity = new HttpEntity<>(requestAudit, headers); String notifyEailResourseUrl = UriComponentsBuilder.fromUriString(auditEntryURL).toUriString(); ResponseEntity response = restTemplate.exchange(notifyEailResourseUrl, HttpMethod.POST, requestEntity, ObjectNode.class); - - if (response.getStatusCode().is2xxSuccessful()) { - ObjectNode responseObjNode = response.getBody(); + ObjectNode responseObjNode = response.getBody(); + if (responseObjNode != null && response.getStatusCode().is2xxSuccessful()) { if (responseObjNode.has(PreRegBatchContants.ERRORS) && !responseObjNode.get(PreRegBatchContants.ERRORS).isNull()) { LOGGER.error(PreRegBatchContants.SESSIONID, PreRegBatchContants.PRE_REG_BATCH, PreRegBatchContants.EMPTY, "Error in response for URL: " + sendNotificationURL + ", Errors:" @@ -539,10 +561,18 @@ public boolean sendAuditDetails(String eventId, String eventName, String eventTy ", Notification Status: " + auditResponse.isStatus()); return true; } else { - LOGGER.error(PreRegBatchContants.SESSIONID, PreRegBatchContants.PRE_REG_BATCH, PreRegBatchContants.EMPTY, - "Response Code: " + response.getStatusCode() + - ", Error in response for URL: " + sendNotificationURL + ", Errors:" - + response.getBody().get(PreRegBatchContants.ERRORS).toString()); + if (responseObjNode != null) { + LOGGER.error(PreRegBatchContants.SESSIONID, PreRegBatchContants.PRE_REG_BATCH, + PreRegBatchContants.EMPTY, + "Response Code: " + response.getStatusCode() + ", Error in response for URL: " + + sendNotificationURL + ", Errors:" + + responseObjNode.get(PreRegBatchContants.ERRORS).toString()); + } else { + LOGGER.error(PreRegBatchContants.SESSIONID, PreRegBatchContants.PRE_REG_BATCH, + PreRegBatchContants.EMPTY, + "Response Code: " + response.getStatusCode() + ", Error in response for URL: " + + sendNotificationURL + ", Errors:" + response); + } return false; } } catch (Throwable t) { diff --git a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/impl/SlotAvailabilityGenerator.java b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/impl/SlotAvailabilityGenerator.java index c51bffb1686..d9f4f44cf99 100644 --- a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/impl/SlotAvailabilityGenerator.java +++ b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/impl/SlotAvailabilityGenerator.java @@ -6,6 +6,7 @@ import java.time.LocalTime; import java.time.Period; import java.time.format.DateTimeFormatter; +import java.time.temporal.TemporalAmount; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -325,6 +326,45 @@ private void purgeAndCalculateFullDaySlotsThenSave(RegistrationCenterDto regCent private void checkAndReCalculateFullDaySlotsThenSave(RegistrationCenterDto regCenterDetails, LocalDate slotGenCurrentDay, String logIdentifier, List slotsAvailableList, Map cancelledTracker, Map notifierTracker) { + + // First, Check for change in Kiosk time, if there is any change + // 1. Cancel the appointment & Notify the resident. + // 2. Delete all the existing slots & add fresh slots for the full day. + LocalTime regCenterKioskTime = regCenterDetails.getPerKioskProcessTime(); + LocalTime prevRegCenterKioskTime = LocalTime.of(0, (int)MINUTES.between(slotsAvailableList.get(0).getFromTime(), + slotsAvailableList.get(0).getToTime()), 0); + if (!regCenterKioskTime.equals(prevRegCenterKioskTime)) { + LOGGER.info(PreRegBatchContants.SESSIONID, PreRegBatchContants.PRE_REG_BATCH, logIdentifier, + "Found change in Kiosk Process Time, Previous Time: " + prevRegCenterKioskTime + ", Current Configured Time: " + + regCenterKioskTime + ", for date: " + slotGenCurrentDay); + cancelAndNotifySlots(regCenterDetails, slotGenCurrentDay, logIdentifier, cancelledTracker, notifierTracker); + batchServiceDAO.deleteSlots(regCenterDetails.getId(), slotGenCurrentDay); + calculateFullDaySlotsAndSave(regCenterDetails, slotGenCurrentDay, logIdentifier); + // No need to execute further code because full day slots has been recalculated with the latest start, lunch & end time. + return; + } + + // Second, check for change in number of kiosks, if there is any change. + // 1. if number of kiosks has increased, simply add update the kiosk number to the increased one. + // 2. if number of kiosks has decreased, Cancel, Notify, and update the kiosk number. + int noOfKiosks = regCenterDetails.getNumberOfKiosks(); + int previousNoOfKiosks = slotsAvailableList.get(0).getAvailableKiosks(); + if (noOfKiosks != previousNoOfKiosks) { + LOGGER.info(PreRegBatchContants.SESSIONID, PreRegBatchContants.PRE_REG_BATCH, logIdentifier, + "Found change in Number of Kiosks, Previous Number: " + previousNoOfKiosks + ", Current Number: " + + noOfKiosks + ", for date: " + slotGenCurrentDay); + if (noOfKiosks < previousNoOfKiosks) { + cancelAndNotifySlots(regCenterDetails, slotGenCurrentDay, logIdentifier, cancelledTracker, notifierTracker); + } + slotsAvailableList.forEach(availibityEntity -> { + if (availibityEntity.getAvailableKiosks() != 0) { + availibityEntity.setAvailableKiosks(noOfKiosks); + batchServiceDAO.saveAvailability(availibityEntity); + } + }); + } + + LOGGER.info(PreRegBatchContants.SESSIONID, PreRegBatchContants.PRE_REG_BATCH, logIdentifier, "Checking existing slots for change in start, lunch & end time for date: " + slotGenCurrentDay); @@ -337,13 +377,16 @@ private void checkAndReCalculateFullDaySlotsThenSave(RegistrationCenterDto regCe LocalTime lastSlotEndTime = slotsAvailableList.get(slotsAvailableList.size() - 1).getToTime(); // To Handle already generated slots. Existing slots generation did not have the lunch slot. - LocalTime lunchSlotStartTime = centerLunchStartTime; - LocalTime lunchSlotEndTime = centerLunchEndTime; + LocalTime lunchSlotStartTime = LocalTime.MIDNIGHT; + LocalTime lunchSlotEndTime = LocalTime.MIDNIGHT; + LocalTime midnightTime = LocalTime.MIDNIGHT; + boolean foundLunchSlots = false; Optional lunchSlotTiming = slotsAvailableList.stream().filter(slot -> slot.getAvailableKiosks() == 0).findFirst(); if (lunchSlotTiming.isPresent()) { lunchSlotStartTime = lunchSlotTiming.get().getFromTime(); lunchSlotEndTime = lunchSlotTiming.get().getToTime(); + foundLunchSlots = true; } else { Object[] lunchTime = findLunchTimes(slotsAvailableList); if (Objects.nonNull(lunchTime[0])) { @@ -365,6 +408,7 @@ private void checkAndReCalculateFullDaySlotsThenSave(RegistrationCenterDto regCe // save lunch slot, will be useful in next calculation. batchDBHelper.saveAvailability(regCenterDetails.getId(), regCenterDetails.getContactPerson(), PreRegBatchContants.ZERO_KIOSK, slotGenCurrentDay, lunchSlotStartTime, lunchSlotEndTime); + foundLunchSlots = true; } } @@ -401,33 +445,87 @@ private void checkAndReCalculateFullDaySlotsThenSave(RegistrationCenterDto regCe cancelledTracker, notifierTracker); } + // Scenario - Previously no lunch hours configured, now configured lunch hours. + // Need to cancel all the appointment and send notification to residents. + // Added lunch hour entry in the DB with Zero Kiosk. + if (!foundLunchSlots && lunchSlotStartTime.equals(midnightTime) && lunchSlotStartTime.equals(lunchSlotEndTime)) { + long diffMins = MINUTES.between(centerLunchStartTime, centerLunchEndTime); + if (diffMins > 0) { + List regBookingEntityList = batchServiceDAO.findAllPreIdsBydateAndBetweenHours(regCenterDetails.getId(), + slotGenCurrentDay, centerLunchStartTime, centerLunchEndTime); + LOGGER.info(PreRegBatchContants.SESSIONID, PreRegBatchContants.PRE_REG_BATCH, logIdentifier, + "Total Number of bookings available between hours(lunch hours): " + regBookingEntityList.size()); + final AtomicInteger counter = new AtomicInteger(); + regBookingEntityList.stream().forEach(bookedSlot -> { + LOGGER.info(PreRegBatchContants.SESSIONID, PreRegBatchContants.PRE_REG_BATCH, logIdentifier, + "Cancelling Application for PreReg Id(lunch hours): " + bookedSlot.getPreregistrationId()); + counter.incrementAndGet(); + cancelAndNotifyHelper.cancelAndNotifyApplicant(bookedSlot, logIdentifier, cancelledTracker, notifierTracker); + }); + LocalTime newCenterLunchEndTime = centerLunchEndTime.minusMinutes(1); + int deleted = batchServiceDAO.deleteSlotsBetweenHours(regCenterDetails.getId(), slotGenCurrentDay, + centerLunchStartTime, newCenterLunchEndTime); + LOGGER.info(PreRegBatchContants.SESSIONID, PreRegBatchContants.PRE_REG_BATCH, logIdentifier, + "Total Number of bookings cancel & notified between hours(lunch hours): " + counter.get()); + LOGGER.info(PreRegBatchContants.SESSIONID, PreRegBatchContants.PRE_REG_BATCH, logIdentifier, + "Total Number of slots deleted(lunch hours): " + deleted); + batchDBHelper.saveAvailability(regCenterDetails.getId(), regCenterDetails.getContactPerson(), + PreRegBatchContants.ZERO_KIOSK, slotGenCurrentDay, centerLunchStartTime, centerLunchEndTime); + return; + } + } + // Lunch Start Time. if (!centerLunchStartTime.equals(lunchSlotStartTime)) { - // certerConfiguredTime = 13:30 (centerLunchStartTime) - // slotCalculatedTime = 13:00 (lunchSlotStartTime) - // add new slots from 13:00 to 13:30 -> 30 mins. - - // certerConfiguredTime = 13:00 (centerLunchStartTime) - // slotCalculatedTime = 13:30 (lunchSlotStartTime) - // cancel/notify the slots from 13:00 to 13:30 -> 30 mins. - recalculateSlots(lunchSlotStartTime, centerLunchStartTime, regCenterDetails, slotGenCurrentDay, logIdentifier, - cancelledTracker, notifierTracker); + // previously lunch hours configured, updated now as no lunch hours (removed lunch hours) + // add new slots for the lunch hour. + if (centerLunchStartTime.equals(midnightTime) && centerLunchStartTime.equals(centerLunchEndTime)) { + batchServiceDAO.deleteSlotForStartTimeEndTime(regCenterDetails.getId(), slotGenCurrentDay, lunchSlotStartTime, lunchSlotEndTime); + int totalSlotAdded = calculateAndSaveSlot(lunchSlotStartTime, lunchSlotEndTime, regCenterDetails.getPerKioskProcessTime(), + regCenterDetails, slotGenCurrentDay, logIdentifier); + LOGGER.info(PreRegBatchContants.SESSIONID, PreRegBatchContants.PRE_REG_BATCH, logIdentifier, + "Total Number of new bookings slots added between hours(removed lunch hours): " + totalSlotAdded); + } else { + // certerConfiguredTime = 13:30 (centerLunchStartTime) + // slotCalculatedTime = 13:00 (lunchSlotStartTime) + // add new slots from 13:00 to 13:30 -> 30 mins. + + // certerConfiguredTime = 13:00 (centerLunchStartTime) + // slotCalculatedTime = 13:30 (lunchSlotStartTime) + // cancel/notify the slots from 13:00 to 13:30 -> 30 mins. + recalculateSlots(lunchSlotStartTime, centerLunchStartTime, regCenterDetails, slotGenCurrentDay, logIdentifier, + cancelledTracker, notifierTracker); + } } // Lunch End Time. if (!centerLunchEndTime.equals(lunchSlotEndTime)) { - // certerConfiguredTime = 14:30 (centerLunchStartTime) - // slotCalculatedTime = 14:00 (lunchSlotStartTime) - // cancel/notify the slots from 14:00 to 14:30 -> 30 mins. - - // certerConfiguredTime = 13:30 (centerLunchStartTime) - // slotCalculatedTime = 14:00 (lunchSlotStartTime) - // add new slots from 13:30 to 14:00 -> 30 mins. - recalculateSlots(centerLunchEndTime, lunchSlotEndTime, regCenterDetails, slotGenCurrentDay, logIdentifier, - cancelledTracker, notifierTracker); + if (!(centerLunchStartTime.equals(midnightTime) && centerLunchStartTime.equals(centerLunchEndTime))) { + // certerConfiguredTime = 14:30 (centerLunchStartTime) + // slotCalculatedTime = 14:00 (lunchSlotStartTime) + // cancel/notify the slots from 14:00 to 14:30 -> 30 mins. + + // certerConfiguredTime = 13:30 (centerLunchStartTime) + // slotCalculatedTime = 14:00 (lunchSlotStartTime) + // add new slots from 13:30 to 14:00 -> 30 mins. + recalculateSlots(centerLunchEndTime, lunchSlotEndTime, regCenterDetails, slotGenCurrentDay, logIdentifier, + cancelledTracker, notifierTracker); + } } } + private void cancelAndNotifySlots(RegistrationCenterDto regCenterDetails, LocalDate slotGenCurrentDay, String logIdentifier, + Map cancelledTracker, Map notifierTracker) { + + List regBookingEntityList = batchServiceDAO.findAllPreIds(regCenterDetails.getId(), + slotGenCurrentDay); + LOGGER.info(PreRegBatchContants.SESSIONID, PreRegBatchContants.PRE_REG_BATCH, logIdentifier, + "For Cancel & Notify, Total Number of bookings available on the day: " + regBookingEntityList.size()); + regBookingEntityList.stream().forEach(bookedSlot -> { + cancelAndNotifyHelper.cancelAndNotifyApplicant(bookedSlot, logIdentifier, cancelledTracker, notifierTracker); + }); + } + private void recalculateSlots(LocalTime centerConfiguredTime, LocalTime slotCalculatedTime, RegistrationCenterDto regCenterDetails, LocalDate slotGenCurrentDay, String logIdentifier, Map cancelledTracker, Map notifierTracker) { diff --git a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/impl/SlotAvailabilityPartitioner.java b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/impl/SlotAvailabilityPartitioner.java index 04943a51835..e076c438543 100644 --- a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/impl/SlotAvailabilityPartitioner.java +++ b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/impl/SlotAvailabilityPartitioner.java @@ -14,7 +14,6 @@ import io.mosip.preregistration.batchjob.code.PreRegBatchContants; import io.mosip.preregistration.batchjob.helper.RegCenterIdsHolder; import io.mosip.preregistration.batchjob.helper.RestHelper; -import io.mosip.preregistration.batchjob.model.RegistrationCenterDto; import io.mosip.preregistration.core.config.LoggerConfiguration; /** diff --git a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/job/PreRegistrationBatchJobConfig.java b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/job/PreRegistrationBatchJobConfig.java index 62e961a0685..eb655656466 100644 --- a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/job/PreRegistrationBatchJobConfig.java +++ b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/job/PreRegistrationBatchJobConfig.java @@ -8,12 +8,12 @@ import org.springframework.batch.core.Job; import org.springframework.batch.core.Step; -import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing; -import org.springframework.batch.core.configuration.annotation.JobBuilderFactory; -import org.springframework.batch.core.configuration.annotation.StepBuilderFactory; import org.springframework.batch.core.configuration.annotation.StepScope; +import org.springframework.batch.core.job.builder.JobBuilder; import org.springframework.batch.core.launch.support.RunIdIncrementer; import org.springframework.batch.core.partition.support.Partitioner; +import org.springframework.batch.core.repository.JobRepository; +import org.springframework.batch.core.step.builder.StepBuilder; import org.springframework.batch.core.step.tasklet.Tasklet; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -21,6 +21,8 @@ import org.springframework.context.annotation.Configuration; import org.springframework.core.task.SimpleAsyncTaskExecutor; import org.springframework.core.task.TaskExecutor; +import org.springframework.jdbc.datasource.DataSourceTransactionManager; +import org.springframework.transaction.PlatformTransactionManager; import io.mosip.preregistration.batchjob.impl.SlotAvailabilityPartitioner; import io.mosip.preregistration.batchjob.tasklets.ApplicationsBookingCheckTasklet; @@ -28,25 +30,19 @@ import io.mosip.preregistration.batchjob.tasklets.ConsumedStatusTasklet; import io.mosip.preregistration.batchjob.tasklets.ExpiredStatusTasklet; import io.mosip.preregistration.batchjob.tasklets.PurgeExpiredRegCentersSlotsTasklet; +import javax.sql.DataSource; /** - * @author Kishan Rathore + * @author Aiham Hasan * @since 1.0.0 * */ @Configuration -@EnableBatchProcessing public class PreRegistrationBatchJobConfig { @Value("${preregistration.slots.generate.thread.count:20}") private int concurrencyLimit; - @Autowired - private JobBuilderFactory jobBuilderFactory; - - @Autowired - private StepBuilderFactory stepBuilderFactory; - @Autowired private ConsumedStatusTasklet consumedStatusTasklet; @@ -55,71 +51,81 @@ public class PreRegistrationBatchJobConfig { @Autowired private ExpiredStatusTasklet expiredStatusTasklet; - + @Autowired private ApplicationsBookingCheckTasklet applicationBookingCheckTasklet; @Bean - public Step consumedStatusStep() { - return stepBuilderFactory.get("consumedStatusStep").tasklet(consumedStatusTasklet).build(); + public PlatformTransactionManager transactionManager(DataSource dataSource) { + return new DataSourceTransactionManager(dataSource); } @Bean - public Step purgeExpiredSlotsStep() { - return stepBuilderFactory.get("purgeExpiredSlotsStep").tasklet(purgeRegCenterSlotsTasklet).build(); + public Step consumedStatusStep(JobRepository jobRepository, PlatformTransactionManager transactionManager) { + return new StepBuilder("consumedStatusStep", jobRepository).tasklet(consumedStatusTasklet, transactionManager) + .build(); } @Bean - public Step expiredStatusStep() { - return stepBuilderFactory.get("expiredStatusStep").tasklet(expiredStatusTasklet).build(); + public Step purgeExpiredSlotsStep(JobRepository jobRepository, PlatformTransactionManager transactionManager) { + return new StepBuilder("purgeExpiredSlotsStep", jobRepository) + .tasklet(purgeRegCenterSlotsTasklet, transactionManager).build(); } @Bean - public Step updateBookingInApplicationsStep() { - return stepBuilderFactory.get("updateBookingInApplicationsStep").tasklet(applicationBookingCheckTasklet).build(); + public Step expiredStatusStep(JobRepository jobRepository, PlatformTransactionManager transactionManager) { + return new StepBuilder("expiredStatusStep", jobRepository).tasklet(expiredStatusTasklet, transactionManager) + .build(); } @Bean - public Job purgeExpiredSlotsJob() { - return this.jobBuilderFactory.get("purgeExpiredSlotsJob").incrementer(new RunIdIncrementer()) - .start(purgeExpiredSlotsStep()).build(); + public Step updateBookingInApplicationsStep(JobRepository jobRepository, + PlatformTransactionManager transactionManager) { + return new StepBuilder("updateBookingInApplicationsStep", jobRepository) + .tasklet(applicationBookingCheckTasklet, transactionManager).build(); } @Bean - public Job consumedStatusJob() { - return this.jobBuilderFactory.get("consumedStatusJob").incrementer(new RunIdIncrementer()) - .start(consumedStatusStep()).build(); + public Job purgeExpiredSlotsJob(JobRepository jobRepository, Step purgeExpiredSlotsStep) { + return new JobBuilder("purgeExpiredSlotsJob", jobRepository).incrementer(new RunIdIncrementer()) + .start(purgeExpiredSlotsStep).build(); } @Bean - public Job expiredStatusJob() { - return this.jobBuilderFactory.get("expiredStatusJob").incrementer(new RunIdIncrementer()) - .start(expiredStatusStep()).build(); + public Job consumedStatusJob(JobRepository jobRepository, Step consumedStatusStep) { + return new JobBuilder("consumedStatusJob", jobRepository).incrementer(new RunIdIncrementer()) + .start(consumedStatusStep).build(); } @Bean - public Job updateApplicationForBookingCheckJob() { - return this.jobBuilderFactory.get("updateApplicationForBookingCheckJob").incrementer(new RunIdIncrementer()) - .start(updateBookingInApplicationsStep()).build(); + public Job expiredStatusJob(JobRepository jobRepository, Step expiredStatusStep) { + return new JobBuilder("expiredStatusJob", jobRepository).incrementer(new RunIdIncrementer()) + .start(expiredStatusStep).build(); } - @Bean(name="regCenterPartitionerJob") - public Job regCenterPartitionerJob() { - return this.jobBuilderFactory.get("regCenterPartitionerJob") - .preventRestart() - .incrementer(new RunIdIncrementer()) - .start(slotGenerationStep()) - .build(); + @Bean + public Job updateApplicationForBookingCheckJob(JobRepository jobRepository, Step updateBookingInApplicationsStep) { + return new JobBuilder("updateApplicationForBookingCheckJob", jobRepository).incrementer(new RunIdIncrementer()) + .start(updateBookingInApplicationsStep).build(); + } + + @Bean(name = "regCenterPartitionerJob") + public Job regCenterPartitionerJob(JobRepository jobRepository, Step slotGenerationStep) { + return new JobBuilder("regCenterPartitionerJob", jobRepository) + .preventRestart() + .incrementer(new RunIdIncrementer()) + .start(slotGenerationStep) + .build(); } @Bean - public Step slotGenerationStep() { - return stepBuilderFactory.get("slotGenerationStep") - .partitioner("regCenterPartitionerMasterStep", partitionerMasterStep()) - .step(slaveSlotGenerationStep()) - .gridSize(concurrencyLimit) - .taskExecutor(taskExecutor()) - .build(); + public Step slotGenerationStep(JobRepository jobRepository, PlatformTransactionManager transactionManager) { + return new StepBuilder("slotGenerationStep", jobRepository) + .partitioner("regCenterPartitionerMasterStep", partitionerMasterStep()) + .step(slaveSlotGenerationStep(jobRepository, transactionManager)) + .gridSize(concurrencyLimit) + .taskExecutor(taskExecutor()) + .build(); } @Bean @@ -128,24 +134,24 @@ public Partitioner partitionerMasterStep() { } @Bean - public Step slaveSlotGenerationStep() { - return stepBuilderFactory.get("slaveSlotGenerationStep") - .tasklet(slotGenerateTasklet(null, null)) - .build(); + public Step slaveSlotGenerationStep(JobRepository jobRepository, PlatformTransactionManager transactionManager) { + return new StepBuilder("slaveSlotGenerationStep", jobRepository) + .tasklet(slotGenerateTasklet(null, null), transactionManager) + .build(); } @SuppressWarnings({ "unchecked" }) @Bean @StepScope - public Tasklet slotGenerateTasklet(@Value("#{stepExecutionContext['name']}") String name, - @Value("#{stepExecutionContext['regCenterIdsPartList']}") Object regCenterIdsPartListObj) { + public Tasklet slotGenerateTasklet(@Value("#{stepExecutionContext['name']}") String name, + @Value("#{stepExecutionContext['regCenterIdsPartList']}") Object regCenterIdsPartListObj) { List regCenterPartList = (List) regCenterIdsPartListObj; AvailabilitySyncTasklet slotGeneratorTasklet = new AvailabilitySyncTasklet(name, regCenterPartList); return slotGeneratorTasklet; } - @Bean - public TaskExecutor taskExecutor(){ + @Bean + public TaskExecutor taskExecutor() { SimpleAsyncTaskExecutor asyncTaskExecutor = new SimpleAsyncTaskExecutor("SlotGenerator"); asyncTaskExecutor.setConcurrencyLimit(concurrencyLimit); return asyncTaskExecutor; diff --git a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/model/ExceptionalHolidayDto.java b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/model/ExceptionalHolidayDto.java index 73e922003c5..056b80ecb26 100644 --- a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/model/ExceptionalHolidayDto.java +++ b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/model/ExceptionalHolidayDto.java @@ -3,9 +3,9 @@ import java.io.Serializable; import java.time.LocalDate; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; import lombok.Data; diff --git a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/model/ResponseWrapper.java b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/model/ResponseWrapper.java index c727229d70b..547ad8185a3 100644 --- a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/model/ResponseWrapper.java +++ b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/model/ResponseWrapper.java @@ -9,8 +9,8 @@ import java.util.ArrayList; import java.util.List; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; import com.fasterxml.jackson.annotation.JsonFormat; diff --git a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/repository/AvailabilityRepository.java b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/repository/AvailabilityRepository.java index 609d474a6e2..3d333b90a3a 100644 --- a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/repository/AvailabilityRepository.java +++ b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/repository/AvailabilityRepository.java @@ -118,4 +118,12 @@ public AvailibityEntity findByFromTimeAndToTimeAndRegDateAndRegcntrId( */ public int deleteByRegcntrIdAndRegDateGreaterThanEqual(String regcntrId, LocalDate regDate); + /** + * + * @param regDate + * @param regcntrId + * @return deleted number of slots + */ + public int deleteByRegcntrIdAndRegDateAndFromTimeAndToTime( String regcntrId ,LocalDate regDate, LocalTime startTime,LocalTime endTime); + } diff --git a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/repository/utils/BatchJpaRepositoryImpl.java b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/repository/utils/BatchJpaRepositoryImpl.java index e33b292c62c..82475c05eba 100644 --- a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/repository/utils/BatchJpaRepositoryImpl.java +++ b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/repository/utils/BatchJpaRepositoryImpl.java @@ -428,6 +428,24 @@ public int deleteSlotsBetweenHours(String regId, LocalDate regDate, LocalTime fr return deletedSlots; } + /** + * + * @param regId + * @param regDate + * @return number of deleted items + */ + public int deleteSlotForStartTimeEndTime(String regId, LocalDate regDate, LocalTime fromTime, LocalTime toTime) { + int deletedSlots = 0; + try { + deletedSlots = availabilityRepository.deleteByRegcntrIdAndRegDateAndFromTimeAndToTime(regId, regDate, + fromTime, toTime); + } catch (DataAccessLayerException e) { + throw new TableNotAccessibleException(ErrorCodes.PRG_PAM_BAT_013.getCode(), + ErrorMessages.AVAILABILITY_TABLE_NOT_ACCESSABLE.getMessage()); + } + return deletedSlots; + } + /** * * @param regDate diff --git a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/utils/AvailabilityUtil.java b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/utils/AvailabilityUtil.java index 3e1b8c7a4b8..20845a1d6b4 100644 --- a/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/utils/AvailabilityUtil.java +++ b/pre-registration/pre-registration-batchjob/src/main/java/io/mosip/preregistration/batchjob/utils/AvailabilityUtil.java @@ -14,7 +14,7 @@ import java.util.stream.Collectors; import java.util.stream.Stream; -import javax.annotation.PostConstruct; +import jakarta.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -87,7 +87,7 @@ public class AvailabilityUtil { * Reference for ${preregistration.availability.sync} from property file */ @Value("${preregistration.availability.sync}") - int syncDays; + long syncDays; @Value("${version}") String versionUrl; @@ -421,12 +421,16 @@ private boolean cancelBooking(String preRegistrationId, HttpHeaders headers, Lis HttpMethod.PUT, httpEntity, new ParameterizedTypeReference>() { }); - - if (respEntity.getBody().getErrors() != null) { - for (ExceptionJSONInfoDTO dto : respEntity.getBody().getErrors()) { - throw new NoRecordFoundException(dto.getErrorCode(), dto.getMessage()); + MainResponseDTO body = respEntity.getBody(); + if (body != null) { + if (body.getErrors() != null && !body.getErrors().isEmpty()) { + for (ExceptionJSONInfoDTO dto : body.getErrors()) { + if (dto != null) { + throw new NoRecordFoundException(dto.getErrorCode(), dto.getMessage()); + } + } } - } + } } catch (Exception ex) { log.error("sessionId", "idType", "id", "Exception in cancelBooking method of Availability Util - ", ex); @@ -454,11 +458,16 @@ public List getRegCenterMasterData(HttpHeaders headers) { uriBuilder, HttpMethod.GET, entity, new ParameterizedTypeReference>() { }); - if (responseEntity.getBody().getErrors() != null && !responseEntity.getBody().getErrors().isEmpty()) { - throw new NoRecordFoundException(responseEntity.getBody().getErrors().get(0).getErrorCode(), - responseEntity.getBody().getErrors().get(0).getMessage()); + ResponseWrapper body = responseEntity.getBody(); + if (body != null) { + if (body.getErrors() != null && !body.getErrors().isEmpty()) { + throw new NoRecordFoundException(body.getErrors().get(0).getErrorCode(), + body.getErrors().get(0).getMessage()); + } + if (body.getResponse() != null) { + regCenter = body.getResponse().getRegistrationCenters(); + } } - regCenter = responseEntity.getBody().getResponse().getRegistrationCenters(); if (regCenter == null || regCenter.isEmpty()) { throw new NoRecordFoundException(ErrorCodes.PRG_PAM_BAT_011.getCode(), ErrorMessages.MASTER_DATA_NOT_FOUND.getMessage()); @@ -498,16 +507,21 @@ public List getHolidayListMasterData(RegistrationCenterDto regDto, HttpH uriBuilder, HttpMethod.GET, httpHolidayEntity, new ParameterizedTypeReference>() { }); - if (responseEntity1.getBody().getErrors() != null && !responseEntity1.getBody().getErrors().isEmpty()) { - throw new NoRecordFoundException(responseEntity1.getBody().getErrors().get(0).getErrorCode(), - responseEntity1.getBody().getErrors().get(0).getMessage()); - } + ResponseWrapper body1 = responseEntity1.getBody(); holidaylist = new ArrayList<>(); - if (!responseEntity1.getBody().getResponse().getHolidays().isEmpty()) { - for (HolidayDto holiday : responseEntity1.getBody().getResponse().getHolidays()) { - holidaylist.add(holiday.getHolidayDate()); + if (body1 != null) { + if (body1.getErrors() != null && !body1.getErrors().isEmpty()) { + throw new NoRecordFoundException(body1.getErrors().get(0).getErrorCode(), + body1.getErrors().get(0).getMessage()); } + if (body1.getResponse() != null && body1.getResponse().getHolidays() != null + && !body1.getResponse().getHolidays().isEmpty()) { + for (HolidayDto holiday : body1.getResponse().getHolidays()) { + holidaylist.add(holiday.getHolidayDate()); + } + } } + /** Rest call to master for exceptional holidays. */ String exceptionalHolidayUrl = exceptionalHolidayListUrl + regDto.getId() + "/" @@ -520,18 +534,23 @@ public List getHolidayListMasterData(RegistrationCenterDto regDto, HttpH uriBuilder2, HttpMethod.GET, httpExceptionalHolidayEntity, new ParameterizedTypeReference>() { }); - if (responseEntity2.getBody().getErrors() != null && !responseEntity2.getBody().getErrors().isEmpty()) { - log.error("sessionId", "idType", "id", - "In get exceptional holiday fetch call of Booking Service Util for HttpClientErrorException- " - + responseEntity2.getBody().getErrors().get(0).getErrorCode() - + responseEntity2.getBody().getErrors().get(0).getMessage()); - } else if (responseEntity2.getBody().getResponse().getExceptionalHolidayList() != null - && !responseEntity2.getBody().getResponse().getExceptionalHolidayList().isEmpty()) { - for (ExceptionalHolidayDto exceptionalHoliday : responseEntity2.getBody().getResponse() - .getExceptionalHolidayList()) { - holidaylist.add(exceptionalHoliday.getHolidayDate().toString()); + ResponseWrapper body2 = responseEntity2.getBody(); + if (body2 != null) { + if (body2.getErrors() != null && !body2.getErrors().isEmpty()) { + log.error("sessionId", "idType", "id", + "In get exceptional holiday fetch call of Booking Service Util for HttpClientErrorException- " + + body2.getErrors().get(0).getErrorCode() + + body2.getErrors().get(0).getMessage()); } + if (body2.getResponse() != null && body2.getResponse().getExceptionalHolidayList() != null + && !body2.getResponse().getExceptionalHolidayList().isEmpty()) { + for (ExceptionalHolidayDto exceptionalHoliday : body2.getResponse() + .getExceptionalHolidayList()) { + holidaylist.add(exceptionalHoliday.getHolidayDate().toString()); + } + } } + /** Rest call to master for working holidays. */ String workingDayUrl = workingDayListUrl + regDto.getId() + "/" + regDto.getLangCode(); @@ -543,12 +562,15 @@ public List getHolidayListMasterData(RegistrationCenterDto regDto, HttpH HttpMethod.GET, httpWorkingDayEntity, new ParameterizedTypeReference>() { }); - - if (responseEntity3.getBody().getErrors() != null && !responseEntity3.getBody().getErrors().isEmpty()) { - throw new NoRecordFoundException(responseEntity3.getBody().getErrors().get(0).getErrorCode(), - responseEntity3.getBody().getErrors().get(0).getMessage()); + ResponseWrapper body3 = responseEntity3.getBody(); + if (body3 != null) { + if (body3.getErrors() != null && !body3.getErrors().isEmpty()) { + throw new NoRecordFoundException(body3.getErrors().get(0).getErrorCode(), + body3.getErrors().get(0).getMessage()); + } + } - + // Code to retrive date of days and add it to holidays. /* if (responseEntity3.getBody().getResponse().getWeekdays() != null) { List workingDays = responseEntity3.getBody().getResponse().getWeekdays().stream() @@ -778,13 +800,16 @@ public void emailNotification(NotificationDTO notificationDTO, String langCode, emailResourseUrl, HttpMethod.POST, httpEntity, new ParameterizedTypeReference>() { }); - - if (respEntity.getBody().getErrors() != null) { - List validationErrorList = ExceptionUtils.getServiceErrorList(respEntity.getBody().toString()); - if (validationErrorList != null && !validationErrorList.isEmpty()) { - throw new NotificationException(validationErrorList, null); + MainResponseDTO body = respEntity.getBody(); + if (body != null) { + if (body.getErrors() != null) { + List validationErrorList = ExceptionUtils.getServiceErrorList(body.toString()); + if (validationErrorList != null && !validationErrorList.isEmpty()) { + throw new NotificationException(validationErrorList, null); + } } - } + } + } catch (Exception ex) { log.error("sessionId", "idType", "id", diff --git a/pre-registration/pre-registration-batchjob/src/main/resources/application.properties b/pre-registration/pre-registration-batchjob/src/main/resources/application.properties index 1395bd86aa1..d8c6fa7deac 100644 --- a/pre-registration/pre-registration-batchjob/src/main/resources/application.properties +++ b/pre-registration/pre-registration-batchjob/src/main/resources/application.properties @@ -57,11 +57,12 @@ document.service.env: ${mosip.base.url} document.service.version: v1 email.acknowledgement.subject.template: Acknowledgement-email-subject email.acknowledgement.template: Email-Acknowledgement +cancel.appointment.email.subject: cancel-appointment-email-subject email.service.contextpath: notifier email.service.env: ${mosip.base.url} emailResourse.url: ${mosip.base.url}/v1/notifier/email/send expiredStatus.url: ${mosip.base.url}/preregistration/v1/batch/expiredStatus -global.config.file: application.properties +#global.config.file: application.properties google.recaptcha.secret.key: 6LckJrsZAAAAALvljaAYG767llIAPdVFwRTeD_bQ google.recaptcha.site.key: 6LckJrsZAAAAANEZDeHcKteBRT2iMKE42ou4idGG google.recaptcha.verify.url: https://www.google.com/recaptcha/api/siteverify @@ -145,7 +146,7 @@ mosip.kernel.crypto.hash-algorithm-name: PBKDF2WithHmacSHA512 mosip.kernel.crypto.hash-iteration: 100000 mosip.kernel.crypto.hash-symmetric-key-length: 256 mosip.kernel.crypto.sign-algorithm-name: RS256 -mosip.kernel.crypto.symmetric-algorithm-name: AES/GCM/PKCS5Padding +mosip.kernel.crypto.symmetric-algorithm-name: AES/GCM/NoPadding mosip.kernel.cryptomanager.request_id: CRYPTOMANAGER.REQUEST mosip.kernel.cryptomanager.request_version: v1.0 mosip.kernel.data-key-splitter: #KEY_SPLITTER# @@ -339,7 +340,7 @@ poa.url: proofOfAddress pod.url: proofOfDateOfBirth poi.url: proofOfIdentity por.url: proofOfRelationship -pre.reg.config.file: pre-registration-${spring.profiles.active}.properties +#pre.reg.config.file: pre-registration-${spring.profiles.active}.properties preregistration.config.identityjson: identity-mapping.json preregistration.demographicDetails: demographicDetails preregistration.identity: identity @@ -371,7 +372,7 @@ regCenter.url: ${mosip.base.url}/v1/masterdata/registrationcenters resource.template.url: ${mosip.base.url}/v1/masterdata/templates secretKey: abc123 sendOtp.resource.url: ${mosip.base.url}/v1/authmanager -server.max-http-header-size: 10000000 +server.max-http-request-header-size: 10000000 sms.acknowledgement.template: SMS-Acknowledgement sms.service.contextpath: notifier sms.service.env: ${mosip.base.url} @@ -405,10 +406,10 @@ mosip.iam.adapter.clientsecret=abc123 mosip.iam.adapter.appid=prereg # URL to get new Auth Token from OIDC provider & to do online validation of auth token with OIDC provider. -auth.server.admin.issuer.uri=${mosip.base.url}/keycloak/auth/realms/ +auth.server.admin.issuer.uri=https://iam.dev.mosip.net/auth/realms/ # Map to find the realm for the inputted appid to get the token from OIDC provider. -mosip.kernel.auth.appids.realm.map={prereg:'preregistration',ida:'mosip',registrationclient:'mosip',regproc:'mosip',partner:'mosip',resident:'mosip',admin:'mosip',crereq:'mosip',creser:'mosip',datsha:'mosip'} +mosip.kernel.auth.appids.realm.map={prereg:'mosip',ida:'mosip',registrationclient:'mosip',regproc:'mosip',partner:'mosip',resident:'mosip',admin:'mosip',crereq:'mosip',creser:'mosip',datsha:'mosip'} # To validate the issued audience/azp of the auth token in offline token validation.t auth.server.admin.allowed.audience= @@ -416,4 +417,6 @@ auth.server.admin.allowed.audience= #the custom auth provider component names list #mosip.security.authentication.provider.beans.list=customJWTAuthProvider mosip.security.authentication.provider.beans.list.pre-registration-application-service=customJWTAuthProvider -mosip.security.authentication.provider.beans.list.pre-registration-booking-service=customJWTAuthProvider \ No newline at end of file +mosip.security.authentication.provider.beans.list.pre-registration-booking-service=customJWTAuthProvider + +spring.mvc.pathmatch.matching-strategy=ANT_PATH_MATCHER \ No newline at end of file diff --git a/pre-registration/pre-registration-captcha-service/Dockerfile b/pre-registration/pre-registration-captcha-service/Dockerfile index a3eaa7517d0..6304196eb15 100644 --- a/pre-registration/pre-registration-captcha-service/Dockerfile +++ b/pre-registration/pre-registration-captcha-service/Dockerfile @@ -1,4 +1,4 @@ -FROM openjdk:11 +FROM eclipse-temurin:21-jre-alpine ARG SOURCE ARG COMMIT_HASH @@ -46,16 +46,16 @@ ARG container_user=mosip ARG container_user_group=mosip # can be passed during Docker build as build time environment for github branch to pickup configuration from. -ARG container_user_uid=1001 +ARG container_user_uid=1002 # can be passed during Docker build as build time environment for github branch to pickup configuration from. ARG container_user_gid=1001 # install packages and create user -RUN apt-get -y update \ -&& apt-get install -y unzip \ -&& groupadd -g ${container_user_gid} ${container_user_group} \ -&& useradd -u ${container_user_uid} -g ${container_user_group} -s /bin/sh -m ${container_user} +RUN apk -q update \ +&& apk add -q unzip wget \ +&& addgroup -g ${container_user_gid} ${container_user_group} \ +&& adduser -s /bin/sh -u ${container_user_uid} -G ${container_user_group} -h /home/${container_user} --disabled-password ${container_user} # set working directory for the user WORKDIR /home/${container_user} diff --git a/pre-registration/pre-registration-captcha-service/README.md b/pre-registration/pre-registration-captcha-service/README.md new file mode 100644 index 00000000000..1f30e249db7 --- /dev/null +++ b/pre-registration/pre-registration-captcha-service/README.md @@ -0,0 +1,3 @@ +# pre-registration-captcha-service + +This service is used to validate the Captcha in the Login flow. diff --git a/pre-registration/pre-registration-captcha-service/pom.xml b/pre-registration/pre-registration-captcha-service/pom.xml index 6bc7d1aa5c4..28c7c53888e 100644 --- a/pre-registration/pre-registration-captcha-service/pom.xml +++ b/pre-registration/pre-registration-captcha-service/pom.xml @@ -6,40 +6,31 @@ io.mosip.preregistration pre-registration-parent - 1.2.0-SNAPSHOT + 1.2.1-java21-SNAPSHOT + io.mosip.preregistration.captcha pre-registration-captcha-service + 1.2.1-java21-SNAPSHOT pre-registration-captcha-service A pre-registration service to generate and validate captcha - 1.2.0-SNAPSHOT - + - 11 - 3.0.2 - 1.4.2 - 1.2.0-SNAPSHOT + + 1.2.1-java21-SNAPSHOT + 1.2.1-java21-SNAPSHOT + 1.2.1-java21-SNAPSHOT + 1.2.1-java21-SNAPSHOT + - - - - org.springframework.boot - spring-boot-dependencies - ${spring.boot.version} - pom - import - - - org.projectlombok - lombok - ${lombok.version} - compile - - - + + org.projectlombok + lombok + provided + org.springframework.boot spring-boot-starter-web @@ -53,6 +44,10 @@ spring-cloud-starter-config ${spring-cloud-config.version} + + org.springframework.cloud + spring-cloud-starter-bootstrap + org.springframework.boot spring-boot-devtools @@ -83,6 +78,10 @@ io.micrometer micrometer-registry-prometheus + + org.springframework.boot + spring-boot-starter-data-jpa + @@ -90,6 +89,7 @@ org.springframework.boot spring-boot-maven-plugin + ${spring.boot.maven.plugin.version} true @@ -115,12 +115,21 @@ io.mosip.kernel kernel-ref-idobjectvalidator - 1.2.0-rc1 + ${kernel.idobjectvalidator.version} io.mosip.kernel kernel-transliteration-icu4j - 1.2.0-rc1 + ${kernel.transliteration.icu4j.version} + + + org.junit.vintage + junit-vintage-engine + + + junit + junit + test @@ -128,7 +137,7 @@ org.springframework.boot spring-boot-maven-plugin - ${spring.boot.version} + ${spring.boot.maven.plugin.version} true ZIP @@ -165,7 +174,7 @@ org.springdoc springdoc-openapi-maven-plugin - 0.2 + ${springdoc.openapi.maven.plugin} integration-test @@ -175,8 +184,9 @@ - http://localhost:9089/preregistration/v1/captcha/v3/api-docs/Pre-Registration-captcha - openapi.json + + http://localhost:9089/preregistration/v1/captcha/v3/api-docs/Pre-Registration-captcha + ${artifactId}-openapi.json ${project.build.directory} false @@ -185,4 +195,4 @@ - + \ No newline at end of file diff --git a/pre-registration/pre-registration-captcha-service/src/main/java/io/mosip/preregistration/captcha/config/SwaggerConfig.java b/pre-registration/pre-registration-captcha-service/src/main/java/io/mosip/preregistration/captcha/config/SwaggerConfig.java index 2ec2c1a4075..950b3b35769 100644 --- a/pre-registration/pre-registration-captcha-service/src/main/java/io/mosip/preregistration/captcha/config/SwaggerConfig.java +++ b/pre-registration/pre-registration-captcha-service/src/main/java/io/mosip/preregistration/captcha/config/SwaggerConfig.java @@ -1,26 +1,38 @@ package io.mosip.preregistration.captcha.config; -import io.swagger.v3.oas.models.Components; -import io.swagger.v3.oas.models.OpenAPI; -import io.swagger.v3.oas.models.info.Info; -import io.swagger.v3.oas.models.info.License; -import io.swagger.v3.oas.models.servers.Server; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springdoc.core.GroupedOpenApi; +import java.security.KeyManagementException; +import java.security.KeyStoreException; +import java.security.NoSuchAlgorithmException; +import java.util.Collections; +import java.util.Map; + +import org.apache.hc.client5.http.impl.classic.HttpClientBuilder; +import org.apache.hc.client5.http.impl.classic.HttpClients; +import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManagerBuilder; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; import org.springframework.web.client.RestTemplate; -import java.util.Collections; -import java.util.Map; +import io.swagger.v3.oas.models.Components; +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.info.Info; +import io.swagger.v3.oas.models.info.License; +import io.swagger.v3.oas.models.servers.Server; @Configuration @ConfigurationProperties("mosip.preregistration.captcha") public class SwaggerConfig { + @Value("${preregistration.captchaservice.httpclient.connections.max.per.host:20}") + private int maxConnectionPerRoute; + + @Value("${preregistration.captchaservice.httpclient.connections.max:100}") + private int totalMaxConnection; + /** The id. */ private Map id; @@ -53,39 +65,30 @@ public Map ic() { private static final String DESCRIPTION = " Captcha Service for Generating and validating captcha"; @Bean - public RestTemplate restTemplateBean() { - return new RestTemplate(); + public RestTemplate restTemplateBean() throws KeyManagementException, NoSuchAlgorithmException, KeyStoreException { + var connnectionManagerBuilder = PoolingHttpClientConnectionManagerBuilder.create() + .setMaxConnPerRoute(maxConnectionPerRoute) + .setMaxConnTotal(totalMaxConnection); + var connectionManager = connnectionManagerBuilder.build(); + HttpClientBuilder httpClientBuilder = HttpClients.custom() + .setConnectionManager(connectionManager) + .disableCookieManagement(); + HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); + requestFactory.setHttpClient(httpClientBuilder.build()); + return new RestTemplate(requestFactory); } - private static final Logger logger = LoggerFactory.getLogger(SwaggerConfig.class); - - @Autowired - private OpenApiProperties openApiProperties; - @Bean - public OpenAPI openApi() { - OpenAPI api = new OpenAPI() - .components(new Components()) - .info(new Info() - .title(openApiProperties.getInfo().getTitle()) + public OpenAPI openApi(@Autowired OpenApiProperties openApiProperties) { + OpenAPI api = new OpenAPI().components(new Components()) + .info(new Info().title(openApiProperties.getInfo().getTitle()) .version(openApiProperties.getInfo().getVersion()) .description(openApiProperties.getInfo().getDescription()) - .license(new License() - .name(openApiProperties.getInfo().getLicense().getName()) + .license(new License().name(openApiProperties.getInfo().getLicense().getName()) .url(openApiProperties.getInfo().getLicense().getUrl()))); - openApiProperties.getService().getServers().forEach(server -> { - api.addServersItem(new Server().description(server.getDescription()).url(server.getUrl())); - }); - logger.info("swagger open api bean is ready"); + openApiProperties.getService().getServers().forEach( + server -> api.addServersItem(new Server().description(server.getDescription()).url(server.getUrl()))); return api; } - - @Bean - public GroupedOpenApi groupedOpenApi() { - return GroupedOpenApi.builder().group(openApiProperties.getGroup().getName()) - .pathsToMatch(openApiProperties.getGroup().getPaths().stream().toArray(String[]::new)) - .build(); - } - } diff --git a/pre-registration/pre-registration-captcha-service/src/main/java/io/mosip/preregistration/captcha/controller/CaptchaController.java b/pre-registration/pre-registration-captcha-service/src/main/java/io/mosip/preregistration/captcha/controller/CaptchaController.java index e65277e9c9d..1c598f682a6 100644 --- a/pre-registration/pre-registration-captcha-service/src/main/java/io/mosip/preregistration/captcha/controller/CaptchaController.java +++ b/pre-registration/pre-registration-captcha-service/src/main/java/io/mosip/preregistration/captcha/controller/CaptchaController.java @@ -1,7 +1,5 @@ package io.mosip.preregistration.captcha.controller; -import io.swagger.v3.oas.annotations.media.Content; -import io.swagger.v3.oas.annotations.media.Schema; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; @@ -9,7 +7,6 @@ import org.springframework.validation.Errors; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.WebDataBinder; -import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -22,14 +19,15 @@ import io.mosip.preregistration.core.config.LoggerConfiguration; import io.mosip.preregistration.core.util.DataValidationUtil; import io.mosip.preregistration.core.util.RequestValidator; +import io.swagger.annotations.ApiParam; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; import io.swagger.v3.oas.annotations.tags.Tag; -import springfox.documentation.annotations.ApiIgnore; @RestController -@CrossOrigin("*") @Tag(name = "captcha-controller", description = "Captcha Controller") public class CaptchaController { @@ -56,12 +54,11 @@ public void initBinder(WebDataBinder binder) { @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) public ResponseEntity validateCaptcha(@Validated @RequestBody MainRequestDTO captchaRequest, - @ApiIgnore Errors errors) { + @ApiParam(hidden = true) Errors errors) { log.info("sessionId", "idType", "id", "In pre-registration captcha controller to validate the recaptcha token" + captchaRequest); requestValidator.validateId(VALIDATE, captchaRequest.getId(), errors); DataValidationUtil.validate(errors, VALIDATE); return new ResponseEntity<>(this.captchaService.validateCaptcha(captchaRequest.getRequest()), HttpStatus.OK); } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-captcha-service/src/main/java/io/mosip/preregistration/captcha/dto/CaptchaRequestDTO.java b/pre-registration/pre-registration-captcha-service/src/main/java/io/mosip/preregistration/captcha/dto/CaptchaRequestDTO.java index 6d80a8f962a..2b7d1697671 100644 --- a/pre-registration/pre-registration-captcha-service/src/main/java/io/mosip/preregistration/captcha/dto/CaptchaRequestDTO.java +++ b/pre-registration/pre-registration-captcha-service/src/main/java/io/mosip/preregistration/captcha/dto/CaptchaRequestDTO.java @@ -2,7 +2,7 @@ import java.io.Serializable; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import lombok.Data; diff --git a/pre-registration/pre-registration-captcha-service/src/main/java/io/mosip/preregistration/captcha/exceptionutils/CaptchaExceptionHandler.java b/pre-registration/pre-registration-captcha-service/src/main/java/io/mosip/preregistration/captcha/exceptionutils/CaptchaExceptionHandler.java index 49821aeb588..aa1c2fa2da2 100644 --- a/pre-registration/pre-registration-captcha-service/src/main/java/io/mosip/preregistration/captcha/exceptionutils/CaptchaExceptionHandler.java +++ b/pre-registration/pre-registration-captcha-service/src/main/java/io/mosip/preregistration/captcha/exceptionutils/CaptchaExceptionHandler.java @@ -4,7 +4,7 @@ import java.util.Date; import java.util.Map; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; diff --git a/pre-registration/pre-registration-captcha-service/src/main/java/io/mosip/preregistration/captcha/serviceimpl/CaptchaServiceImpl.java b/pre-registration/pre-registration-captcha-service/src/main/java/io/mosip/preregistration/captcha/serviceimpl/CaptchaServiceImpl.java index 656984f3685..8e85c04a9ce 100644 --- a/pre-registration/pre-registration-captcha-service/src/main/java/io/mosip/preregistration/captcha/serviceimpl/CaptchaServiceImpl.java +++ b/pre-registration/pre-registration-captcha-service/src/main/java/io/mosip/preregistration/captcha/serviceimpl/CaptchaServiceImpl.java @@ -71,17 +71,21 @@ public Object validateCaptcha(Object captchaRequest) { + ((CaptchaRequestDTO) captchaRequest).getCaptchaToken() + " " + recaptchaVerifyUrl); captchaResponse = this.restTemplate.postForObject(recaptchaVerifyUrl, param, GoogleCaptchaDTO.class); - log.debug("sessionId", "idType", "id", captchaResponse.toString()); + if (captchaResponse != null) { + log.debug("sessionId", "idType", "id", captchaResponse.toString()); + } } catch (RestClientException ex) { log.error("sessionId", "idType", "id", "In pre-registration captcha service to validate the token request via a google verify site rest call has failed --->" + ((CaptchaRequestDTO) captchaRequest).getCaptchaToken() + " " + recaptchaVerifyUrl + " " + ex); + if (captchaResponse != null && captchaResponse.getErrorCodes() !=null) { throw new CaptchaException(captchaResponse.getErrorCodes().get(0).getErrorCode(), captchaResponse.getErrorCodes().get(0).getMessage()); + } } - if (captchaResponse.isSuccess()) { + if (captchaResponse!=null && captchaResponse.isSuccess()) { log.info("sessionId", "idType", "id", "In pre-registration captcha service token request has been successfully verified --->" + captchaResponse.isSuccess()); @@ -93,8 +97,11 @@ public Object validateCaptcha(Object captchaRequest) { response.setSuccess(captchaResponse.isSuccess()); mainResponse.setResponse(response); } else { - log.error("sessionId", "idType", "id", - "In pre-registration captcha service token request has failed --->" + captchaResponse.isSuccess()); + if (captchaResponse != null) { + log.error("sessionId", "idType", "id", + "In pre-registration captcha service token request has failed --->" + + captchaResponse.isSuccess()); + } mainResponse.setId(mosipcaptchaValidateId); mainResponse.setResponsetime(getCurrentResponseTime()); mainResponse.setVersion(version); diff --git a/pre-registration/pre-registration-captcha-service/src/main/resources/application.properties b/pre-registration/pre-registration-captcha-service/src/main/resources/application.properties index d989483a2ed..c88a4af54aa 100644 --- a/pre-registration/pre-registration-captcha-service/src/main/resources/application.properties +++ b/pre-registration/pre-registration-captcha-service/src/main/resources/application.properties @@ -300,14 +300,17 @@ email.acknowledgement.template=Email-Acknowledgement # Email template subject email.acknowledgement.subject.template=Acknowledgement-email-subject +# Email subject template for Cancel Appointment +cancel.appointment.email.subject: cancel-appointment-email-subject + # sms template sms.acknowledgement.template=SMS-Acknowledgement # Global config file name -global.config.file=application-${spring.profiles.active}.properties +#global.config.file=application-${spring.profiles.active}.properties #Pre-reg config file name -pre.reg.config.file=pre-registration-${spring.profiles.active}.properties +#pre.reg.config.file=pre-registration-${spring.profiles.active}.properties mosip.pre-registration.notification.id=mosip.pre-registration.notification.notify diff --git a/pre-registration/pre-registration-captcha-service/src/test/java/io/mosip/preregistration/captcha/serviceimpl/test/CaptchaServiceImplTest.java b/pre-registration/pre-registration-captcha-service/src/test/java/io/mosip/preregistration/captcha/serviceimpl/test/CaptchaServiceImplTest.java index e745bf99ce5..4b32186076a 100644 --- a/pre-registration/pre-registration-captcha-service/src/test/java/io/mosip/preregistration/captcha/serviceimpl/test/CaptchaServiceImplTest.java +++ b/pre-registration/pre-registration-captcha-service/src/test/java/io/mosip/preregistration/captcha/serviceimpl/test/CaptchaServiceImplTest.java @@ -55,9 +55,11 @@ public void setUp() { ReflectionTestUtils.setField(captchaServiceImpl, "recaptchaVerifyUrl", "https://www.google.com/recaptcha/api/siteverify"); ReflectionTestUtils.setField(captchaServiceImpl, "mosipcaptchaValidateId", "123"); + ReflectionTestUtils.setField(captchaServiceImpl, "version", "2.0"); } - @Test(expected = NullPointerException.class) + + @Test public void validateCaptchaTest() { CaptchaRequestDTO captchaRequest = new CaptchaRequestDTO(); MainResponseDTO mainResponse = new MainResponseDTO<>(); @@ -75,10 +77,12 @@ public void validateCaptchaTest() { res.setMessage("captcha scuccessfully set"); res.setSuccess(true); mainResponse.setResponse(res); + mainResponse.setId(mosipcaptchaValidateId); + mainResponse.setVersion(version); Mockito.when(restTemplate.postForObject("https://www.google.com/recaptcha/api/siteverify", "{secret=[demo], response=[aRsasahksasa]}", GoogleCaptchaDTO.class)).thenReturn(captchaResponse); - captchaServiceImpl.validateCaptcha(captchaRequest); + assertNotNull(captchaServiceImpl.validateCaptcha(captchaRequest)); } @Test(expected = InvalidRequestCaptchaException.class) diff --git a/pre-registration/pre-registration-core/pom.xml b/pre-registration/pre-registration-core/pom.xml index 63c993f462b..9a4bd1fba48 100644 --- a/pre-registration/pre-registration-core/pom.xml +++ b/pre-registration/pre-registration-core/pom.xml @@ -7,30 +7,25 @@ io.mosip.preregistration pre-registration-parent - 1.2.0-SNAPSHOT + 1.2.1-java21-SNAPSHOT - 1.2.0-SNAPSHOT - pre-registration-core - + 1.2.1-java21-SNAPSHOT pre-registration-core Maven project of MOSIP Pre-Registration Service - 1.2.0-SNAPSHOT - UTF-8 - 1.2.0-SNAPSHOT - 1.2.0-SNAPSHOT - 1.2.0-SNAPSHOT - + + 1.2.1-java21-SNAPSHOT + 1.2.1-java21-SNAPSHOT + 1.2.1-java21-SNAPSHOT org.springframework.boot spring-boot-starter-web - ${spring.boot.version} com.fasterxml.jackson.datatype @@ -41,13 +36,11 @@ org.apache.httpcomponents httpclient - ${apache.httpclient.version} junit junit test - ${junit.version} io.mosip.kernel @@ -69,12 +62,6 @@ - - org.projectlombok - lombok - ${lombok.version} - compile - io.mosip.kernel kernel-logger-logback @@ -94,33 +81,15 @@ org.postgresql postgresql - ${postgresql.version} org.springdoc - springdoc-openapi-ui - 1.5.8 - - - org.springframework - spring-webmvc - - - - - io.springfox - springfox-swagger2 - ${swagger.version} - - - io.springfox - springfox-swagger-ui - ${swagger.version} + springdoc-openapi-starter-webmvc-ui + ${springdoc.openapi.starter.webmvc.ui.version} com.h2database h2 - ${h2.version} test @@ -131,18 +100,26 @@ org.springframework.boot spring-boot-starter-actuator - ${spring.boot.version} com.googlecode.json-simple json-simple - ${jsonsimple.version} org.apache.commons commons-collections4 - ${commons-collections4.version} - + + org.junit.vintage + junit-vintage-engine + + + org.springframework.cloud + spring-cloud-starter-bootstrap + + + org.springframework.boot + spring-boot-starter-data-jpa + - + \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/analytics/event/anonymous/dto/RegistrationProfileDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/analytics/event/anonymous/dto/RegistrationProfileDTO.java index 95f3c1c9f70..dbe7f26cf10 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/analytics/event/anonymous/dto/RegistrationProfileDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/analytics/event/anonymous/dto/RegistrationProfileDTO.java @@ -72,10 +72,10 @@ public class RegistrationProfileDTO { */ private String enrollmentCenterId; - /** - * The device details used while creating the Anonymous Registration Profile. - */ - private RegistrationProfileDeviceDTO device; + // /** + // * The device details used while creating the Anonymous Registration Profile. + // */ + // private RegistrationProfileDeviceDTO device; /** * The types of documents uploaded by the Anonymous Registration Profile. diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/analytics/event/anonymous/entity/AnonymousProfileEntity.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/analytics/event/anonymous/entity/AnonymousProfileEntity.java index 392aa1472b7..c062cd39c1b 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/analytics/event/anonymous/entity/AnonymousProfileEntity.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/analytics/event/anonymous/entity/AnonymousProfileEntity.java @@ -3,10 +3,10 @@ import java.io.Serializable; import java.time.LocalDateTime; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/analytics/event/anonymous/service/AnonymousProfileService.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/analytics/event/anonymous/service/AnonymousProfileService.java index 49e13944279..2a19c3f8767 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/analytics/event/anonymous/service/AnonymousProfileService.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/analytics/event/anonymous/service/AnonymousProfileService.java @@ -3,6 +3,7 @@ import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; +import java.util.Objects; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -31,6 +32,9 @@ public class AnonymousProfileService implements AnonymousProfileServiceIntf { @Value("${mosip.utc-datetime-pattern}") private String utcDateTimePattern; + @Value("${mosip.preregistration.anonymous-profile-username}") + private String anonymousProfileUsername; + /** * Autowired reference for {@link #AnonymousProfileRepostiory} */ @@ -67,9 +71,9 @@ public AnonymousProfileResponseDTO saveAnonymousProfile(AnonymousProfileRequestD AnonymousProfileEntity requestEntity = new AnonymousProfileEntity(); requestEntity.setId(UUIDGeneratorUtil.generateId()); requestEntity.setProfile(requestDto.getProfileDetails()); - requestEntity.setCreatedBy(authUserDetails().getUserId()); + requestEntity.setCreatedBy(anonymousProfileUsername); requestEntity.setCreateDateTime(currentDateTime); - requestEntity.setUpdatedBy(authUserDetails().getUserId()); + requestEntity.setUpdatedBy(anonymousProfileUsername); requestEntity.setUpdateDateTime(currentDateTime); requestEntity.setIsDeleted(false); @@ -91,6 +95,8 @@ public AnonymousProfileResponseDTO saveAnonymousProfile(AnonymousProfileRequestD } public String getLocalDateString(LocalDateTime date) { + if (Objects.isNull(date)) + date = LocalDateTime.now(); DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(utcDateTimePattern); return date.format(dateTimeFormatter); } diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/analytics/event/anonymous/util/AnonymousProfileUtil.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/analytics/event/anonymous/util/AnonymousProfileUtil.java index ab117f9dc77..c88b493a75e 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/analytics/event/anonymous/util/AnonymousProfileUtil.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/analytics/event/anonymous/util/AnonymousProfileUtil.java @@ -9,11 +9,6 @@ import java.util.ArrayList; import java.util.List; -import javax.annotation.PostConstruct; - -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; - import org.apache.commons.lang3.exception.ExceptionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; @@ -22,9 +17,11 @@ import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; + import io.mosip.analytics.event.anonymous.dto.AnonymousProfileRequestDTO; import io.mosip.analytics.event.anonymous.dto.RegistrationProfileDTO; -import io.mosip.analytics.event.anonymous.dto.RegistrationProfileDeviceDTO; import io.mosip.analytics.event.anonymous.errorcodes.AnonymousProfileErrorCodes; import io.mosip.analytics.event.anonymous.errorcodes.AnonymousProfileErrorMessages; import io.mosip.analytics.event.anonymous.exception.AnonymousProfileException; @@ -38,6 +35,7 @@ import io.mosip.preregistration.core.common.dto.identity.DemographicIdentityRequestDTO; import io.mosip.preregistration.core.common.dto.identity.Identity; import io.mosip.preregistration.core.config.LoggerConfiguration; +import jakarta.annotation.PostConstruct; /** * This class provides generic methods required to create the anonymous profile @@ -49,6 +47,8 @@ @Service public class AnonymousProfileUtil { + private static final String BLANK_STRING = ""; + private static final String VALUE_ATTRIBUTE = "value"; private static final String PHONE = "phone"; @@ -98,7 +98,7 @@ public class AnonymousProfileUtil { /** * Identity mapping JSON string */ - private String identityMappingJsonString = ""; + private String identityMappingJsonString = BLANK_STRING; /** * Root attribute name under for which identity mapping fields are available @@ -170,7 +170,7 @@ public void saveAnonymousProfile(DemographicResponseDTO demographicData, Documen try { DemographicIdentityRequestDTO identityDto = populateIdentityMappingDto(); if (!isNull(identityDto) && !isNull(identityDto.getIdentity()) && !isNull(demographicData)) { - Identity identityMapping = populateIdentityMappingDto().getIdentity(); + Identity identityMapping = identityDto.getIdentity(); JsonNode identityData = objectMapper.readTree(demographicData.getDemographicDetails().toJSONString()); identityData = identityData.get(identityKey); RegistrationProfileDTO registrationProfile = new RegistrationProfileDTO(); @@ -181,23 +181,16 @@ public void saveAnonymousProfile(DemographicResponseDTO demographicData, Documen getValueFromDemographicData(identityMapping.getDob().getValue(), identityData))); registrationProfile .setGender(getValueFromDemographicData(identityMapping.getGender().getValue(), identityData)); - registrationProfile.setPreferredLanguage( - getValueFromDemographicData(identityMapping.getPreferredLanguage().getValue(), identityData)); + registrationProfile.setPreferredLanguage(demographicData.getLangCode()); if (!isNull(bookingData)) { registrationProfile.setEnrollmentCenterId(bookingData.getRegistrationCenterId()); } else { - registrationProfile.setEnrollmentCenterId(""); + registrationProfile.setEnrollmentCenterId(BLANK_STRING); } registrationProfile.setLocation(getLocations(identityMapping, identityData)); registrationProfile.setChannel(getChannels(identityMapping, identityData)); registrationProfile.setDocuments(getDocumentTypesList(documentsData)); registrationProfile.setStatus(demographicData.getStatusCode()); - RegistrationProfileDeviceDTO device = new RegistrationProfileDeviceDTO(); - if (!isNull(browserData)) { - device.setBrowser(browserData.getBrowserName()); - device.setBrowserVersion(browserData.getBrowserVersion()); - } - registrationProfile.setDevice(device); AnonymousProfileRequestDTO requestDto = new AnonymousProfileRequestDTO(); String profileJsonString = objectMapper.writeValueAsString(registrationProfile); requestDto.setProfileDetails(profileJsonString); @@ -243,7 +236,7 @@ private DemographicIdentityRequestDTO populateIdentityMappingDto() { private String getValueFromDemographicData(String key, JsonNode identityData) { JsonNode arrayNode = identityData.get(key); int index = 0; - String value = ""; + String value = BLANK_STRING; if (arrayNode != null) { if (arrayNode.isArray()) { for (JsonNode jsonNode : arrayNode) { @@ -322,7 +315,7 @@ private List getDocumentTypesList(DocumentsMetaData documentsMetaData) { private boolean isNull(Object key) { log.info("sessionId", "idType", "id", "In isNull method of datasync service util"); if (key instanceof String) { - if (key.equals("")) + if (key.equals(BLANK_STRING)) return true; } else if (key instanceof List) { if (((List) key).isEmpty()) @@ -341,13 +334,13 @@ private boolean isNull(Object key) { * @return */ private String extractYear(String dateOfBirthStr) { - String yearStr = ""; - if (dateOfBirthStr != "") { + String yearStr = BLANK_STRING; + if (!dateOfBirthStr.equals(BLANK_STRING)) { try { DateTimeFormatter formatter = DateTimeFormatter.ofPattern(DATE_FORMAT_DEMOGRAPHIC_DATA); LocalDate date = LocalDate.parse(dateOfBirthStr, formatter); int year = date.getYear(); - yearStr = "" + year; + yearStr = BLANK_STRING + year; } catch (DateTimeParseException pe) { // ignore } diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/ApplicationStatusCode.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/ApplicationStatusCode.java index d9454bb1310..935333aeccb 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/ApplicationStatusCode.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/ApplicationStatusCode.java @@ -1,7 +1,6 @@ package io.mosip.preregistration.core.code; public enum ApplicationStatusCode { - DRAFT("DRAFT"), SUBMITTED("SUBMITTED"), @@ -17,5 +16,4 @@ public enum ApplicationStatusCode { public String getApplicationStatusCode() { return applicationStatusCode; } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/AuditLogEventCodes.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/AuditLogEventCodes.java index 3ea5c4c6957..b206a152353 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/AuditLogEventCodes.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/AuditLogEventCodes.java @@ -16,14 +16,12 @@ @NoArgsConstructor @AllArgsConstructor public class AuditLogEventCodes implements Serializable { - - /** - * - */ + /** The Constant serialVersionUID. */ private static final long serialVersionUID = -4812141703022119560L; private String eventId; + private String eventType; - private String eventName; -} + private String eventName; +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/AuditLogVariables.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/AuditLogVariables.java index f56fa2cc3c4..14e58fc7831 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/AuditLogVariables.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/AuditLogVariables.java @@ -55,4 +55,4 @@ public enum AuditLogVariables { CONSUMED_BATCH_SERVICE, EXPIRED_BATCH_SERVICE -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/BookingTypeCodes.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/BookingTypeCodes.java index f09a8932e68..8c0b36e6f05 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/BookingTypeCodes.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/BookingTypeCodes.java @@ -17,5 +17,4 @@ public enum BookingTypeCodes { public String getBookingTypeCode() { return bookingTypeCode; } - } diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/EventId.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/EventId.java index 4ab6713250c..9479dc71f12 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/EventId.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/EventId.java @@ -51,6 +51,4 @@ public enum EventId { /** Id for UI event ex. consent . */ PRE_414; - - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/EventName.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/EventName.java index 9b75f7c2ff0..78224c71ba1 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/EventName.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/EventName.java @@ -46,5 +46,4 @@ public enum EventName { /** Triggering batch-service for expired status . */ EXPIREDSTATUS - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/EventType.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/EventType.java index 782ad90fab5..e9e0e9a94f4 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/EventType.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/EventType.java @@ -16,5 +16,4 @@ public enum EventType { /** The security. */ SECURITY, - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/RequestCodes.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/RequestCodes.java index be5a3898bd3..6ee611c9255 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/RequestCodes.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/RequestCodes.java @@ -20,7 +20,7 @@ public final class RequestCodes { public static final String TO_DATE = "toDate"; public static final String SMS = "sms"; public static final String EMAIL = "email"; + private RequestCodes() { } } - diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/StatusCodes.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/StatusCodes.java index 9314500970c..6f8c09cce73 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/StatusCodes.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/StatusCodes.java @@ -29,11 +29,11 @@ public enum StatusCodes { EXPIRED("Expired"), /* Consumed */ - CONSUMED("Consumed"), - + CONSUMED("Consumed"), + /* Prefetched */ - PREFETCHED("Prefetched"), - + PREFETCHED("Prefetched"), + /** * Canceled */ diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/StatusMessages.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/StatusMessages.java index 8d21f7100aa..4fbe92cc515 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/StatusMessages.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/code/StatusMessages.java @@ -2,14 +2,24 @@ public enum StatusMessages { USER_ID_INVALID, + USER_OTP_GENERATED, + USER_OTP_GENERATION_FAILED, + USER_ALREADY_EXIST, + OTP_VALIDATION_SUCESSFUL, + OTP_VALIDATION_FAILED, + USER_OTP_INVALID, + USER_UPDATED, + USER_UPDATION_FAILED, + USER_INSERTION_FAILED, + SERVER_CONNECTION_FAILED -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/AuditRequestDto.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/AuditRequestDto.java index 173d4420543..318bc03bb64 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/AuditRequestDto.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/AuditRequestDto.java @@ -2,11 +2,10 @@ import java.time.LocalDateTime; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; - import com.fasterxml.jackson.annotation.JsonFormat; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -23,7 +22,6 @@ @NoArgsConstructor @AllArgsConstructor public class AuditRequestDto { - @NotNull @Size(min = 1, max = 64) private String eventId; @@ -83,6 +81,4 @@ public class AuditRequestDto { @Size(max = 2048) private String description; - - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/AuditResponseDto.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/AuditResponseDto.java index cc6f4568361..e029652c4bc 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/AuditResponseDto.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/AuditResponseDto.java @@ -18,10 +18,8 @@ @NoArgsConstructor @AllArgsConstructor public class AuditResponseDto { - /** * The boolean audit status */ private boolean status; - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/AuthNResponse.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/AuthNResponse.java index e273ae41f28..eb69295cc43 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/AuthNResponse.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/AuthNResponse.java @@ -1,6 +1,5 @@ package io.mosip.preregistration.core.common.dto; - import java.io.Serializable; import lombok.AllArgsConstructor; @@ -10,7 +9,13 @@ @Data @AllArgsConstructor @NoArgsConstructor -public class AuthNResponse implements Serializable { +public class AuthNResponse implements Serializable { + /** + * constant serialVersion UID + */ + private static final long serialVersionUID = -1505080809049335366L; + private String message; + private String status; -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/AuthorizedRolesDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/AuthorizedRolesDTO.java index 195ebcfe5b5..84c373ddbdd 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/AuthorizedRolesDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/AuthorizedRolesDTO.java @@ -5,109 +5,103 @@ import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; -import lombok.Getter; -import lombok.Setter; - +import lombok.Data; @Component("authorizedRoles") @ConfigurationProperties(prefix = "mosip.role.prereg") -@Getter -@Setter +@Data public class AuthorizedRolesDTO { + private List putapplications; + + private List postapplications; + + private List getapplications; + + private List putapplicationsstatus; + + private List getapplicationsall; + + private List getapplicationsstatus; + + private List deleteapplications; + + private List preregdemodeleteapplications; + + private List postapplicationsupdatedtime; + + private List getapplicationsconfig; + + private List getapplicationsinfo; + + private List postlogaudit; + + private List postdocumentspreregistrationid; + + private List putdocumentspreregistrationid; + + private List getdocumentspreregistrationid; + + private List getdocumentsdocumentid; + + private List deletedocumentsdocumentid; + + private List deletedocumentspreregistrationid; + + private List putdocumentsdocumentid; + + private List postqrcodegenerate; + + private List getrefreshconfig; + + private List postnotificationnotify; + + private List postnotification; + + private List posttransliterationtransliterate; + + private List getuispeclatest; + + private List getuispecall; + + private List postpreregsync; + + private List getsyncpreregistrationid; + + private List getsyncpreregistrationidmachineid; + + private List postsyncconsumedpreregids; + + private List getslotsavailablity; + + private List getappointmentdetailspreregid; + + private List postappointmentpregid; + + private List deleteappointmentpreregid; + + private List cancelappointmentpreregid; + + private List postappointmentmulti; + + private List updateapplicationstatusappid; + + private List getapplicationdetailsappid; + + private List getappointmentavailability; + + private List postappointmentpreregistrationid; + + private List postappointment; + + private List getappointmentpreregistrationid; + + private List putappointmentpreregistrationid; + + private List putbatchappointmentpreregistrationid; + + private List deleteappointment; + + private List getappointmentpreregistrationidregistrationcenterid; - - private List putapplications; - - private List postapplications; - - private List getapplications; - - private List putapplicationsstatus; - - private List getapplicationsall; - - private List getapplicationsstatus; - - private List deleteapplications; - - private List preregdemodeleteapplications; - - private List postapplicationsupdatedtime; - - private List getapplicationsconfig; - - private List getapplicationsinfo; - - private List postlogaudit; - - private List postdocumentspreregistrationid; - - private List putdocumentspreregistrationid; - - private List getdocumentspreregistrationid; - - private List getdocumentsdocumentid; - - private List deletedocumentsdocumentid; - - private List deletedocumentspreregistrationid; - - private List putdocumentsdocumentid; - - private List postqrcodegenerate; - - private List getrefreshconfig; - - private List postnotificationnotify; - - private List postnotification; - - private List posttransliterationtransliterate; - - private List getuispeclatest; - - private List getuispecall; - - private List postpreregsync; - - private List getsyncpreregistrationid; - - private List getsyncpreregistrationidmachineid; - - private List postsyncconsumedpreregids; - - private List getslotsavailablity; - - private List getappointmentdetailspreregid; - - private List postappointmentpregid; - - private List deleteappointmentpreregid; - - private List cancelappointmentpreregid; - - private List postappointmentmulti; - - private List updateapplicationstatusappid; - - private List getapplicationdetailsappid; - - private List getappointmentavailability; - - private List postappointmentpreregistrationid; - - private List postappointment; - - private List getappointmentpreregistrationid; - - private List putappointmentpreregistrationid; - - private List putbatchappointmentpreregistrationid; - - private List deleteappointment; - - private List getappointmentpreregistrationidregistrationcenterid; - - private List getappointmentregistrationcenterid; - -} + private List getappointmentregistrationcenterid; +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/BookingDataByRegIdDto.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/BookingDataByRegIdDto.java index 0b3a680dc9d..bc96da73320 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/BookingDataByRegIdDto.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/BookingDataByRegIdDto.java @@ -4,16 +4,10 @@ import java.util.Map; import lombok.Data; -import lombok.Getter; -import lombok.Setter; @Data -@Getter -@Setter public class BookingDataByRegIdDto { - private String registrationCenterId; private Map> idsWithAppointmentDate; - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/BookingRegistrationDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/BookingRegistrationDTO.java index a75049e564d..113442a3150 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/BookingRegistrationDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/BookingRegistrationDTO.java @@ -1,19 +1,15 @@ package io.mosip.preregistration.core.common.dto; import java.io.Serializable; -import java.time.LocalDate; -import java.time.LocalTime; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; +import lombok.Data; import lombok.ToString; +@Data @ToString -@Getter -@Setter public class BookingRegistrationDTO implements Serializable { /** * @@ -43,5 +39,4 @@ public class BookingRegistrationDTO implements Serializable { @JsonProperty("time_slot_to") @ApiModelProperty(value = "To Time Slot", position = 4) private String slotToTime; - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/BrowserInfoDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/BrowserInfoDTO.java index 7ebd91f60f8..500fa2f9432 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/BrowserInfoDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/BrowserInfoDTO.java @@ -1,8 +1,7 @@ package io.mosip.preregistration.core.common.dto; -import lombok.Getter; +import lombok.Data; import lombok.NoArgsConstructor; -import lombok.Setter; import lombok.ToString; /** @@ -12,16 +11,13 @@ * @since 1.2.0 * */ -@Getter -@Setter +@Data @NoArgsConstructor @ToString public class BrowserInfoDTO { - /** The browserName. */ private String browserName; - + /** The browserVersion. */ private String browserVersion; - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/CancelBookingResponseDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/CancelBookingResponseDTO.java index d0a3538b2b5..512c863d448 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/CancelBookingResponseDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/CancelBookingResponseDTO.java @@ -1,16 +1,14 @@ package io.mosip.preregistration.core.common.dto; - import lombok.AllArgsConstructor; -import lombok.Getter; +import lombok.Data; import lombok.NoArgsConstructor; -import lombok.Setter; -@Getter -@Setter +@Data @AllArgsConstructor @NoArgsConstructor public class CancelBookingResponseDTO { private String transactionId; + private String message; -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/CryptoManagerRequestDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/CryptoManagerRequestDTO.java index 7f5535e8318..1f0dd619632 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/CryptoManagerRequestDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/CryptoManagerRequestDTO.java @@ -5,17 +5,16 @@ import lombok.Data; - @Data public class CryptoManagerRequestDTO implements Serializable { /** * */ private static final long serialVersionUID = -1614969246905533759L; + /** * Application id of decrypting module */ - private String applicationId; /** @@ -33,7 +32,6 @@ public class CryptoManagerRequestDTO implements Serializable { */ private LocalDateTime timeStamp; - - private boolean prependThumbprint; -} + private boolean prependThumbprint; +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/CryptoManagerResponseDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/CryptoManagerResponseDTO.java index 81f560be7c2..d635c511f30 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/CryptoManagerResponseDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/CryptoManagerResponseDTO.java @@ -8,6 +8,5 @@ @AllArgsConstructor @NoArgsConstructor public class CryptoManagerResponseDTO { - private String data; -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DeleteBookingDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DeleteBookingDTO.java index 3a9910d15da..e44ae6bbbdb 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DeleteBookingDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DeleteBookingDTO.java @@ -3,10 +3,8 @@ import java.io.Serializable; import java.util.Date; -import lombok.AccessLevel; -import lombok.Getter; +import lombok.Data; import lombok.NoArgsConstructor; -import lombok.Setter; import lombok.ToString; /** @@ -16,14 +14,13 @@ * @author Tapaswini Behera * @since 1.0.0 */ -@Getter -@Setter +@Data @NoArgsConstructor @ToString public class DeleteBookingDTO implements Serializable { - /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; + /** The pre-registration-Id. */ private String preRegistrationId; @@ -31,17 +28,14 @@ public class DeleteBookingDTO implements Serializable { private String deletedBy; /** The create date time. */ - @Setter(AccessLevel.NONE) - @Getter(AccessLevel.NONE) private Date deletedDateTime; + // Getter and Setter methods for requesttime are overridden manually public Date getDeletedDateTime() { - return deletedDateTime!=null? new Date(deletedDateTime.getTime()):null; + return deletedDateTime != null ? new Date(deletedDateTime.getTime()) : null; } public void setDeletedDateTime(Date deletedDateTime) { - this.deletedDateTime =deletedDateTime !=null ? new Date(deletedDateTime.getTime()):null; + this.deletedDateTime = deletedDateTime != null ? new Date(deletedDateTime.getTime()) : null; } - -} - +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DemographicResponseDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DemographicResponseDTO.java index d5b7ed23a64..e64977ff23f 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DemographicResponseDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DemographicResponseDTO.java @@ -8,9 +8,8 @@ import org.json.simple.JSONObject; -import lombok.Getter; +import lombok.Data; import lombok.NoArgsConstructor; -import lombok.Setter; import lombok.ToString; /** @@ -21,8 +20,7 @@ * @since 1.0.0 * */ -@Getter -@Setter +@Data @NoArgsConstructor @ToString public class DemographicResponseDTO implements Serializable { @@ -59,5 +57,4 @@ public class DemographicResponseDTO implements Serializable { * Demographic Json details */ private JSONObject demographicDetails; - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DocumentDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DocumentDTO.java index af9de5f2d9c..aaff4b5c9c7 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DocumentDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DocumentDTO.java @@ -2,6 +2,7 @@ import java.io.Serializable; +import lombok.Data; import lombok.NoArgsConstructor; /** @@ -10,23 +11,22 @@ * @author Rajath Kumar * @since 1.0.0 */ +@Data @NoArgsConstructor public class DocumentDTO implements Serializable { - /** The Constant serialVersionUID. */ private static final long serialVersionUID = 7070542323407937205L; - + /** * File content */ private byte[] document; - + public byte[] getDocument() { - return document !=null ? document.clone():null; + return document != null ? document.clone() : null; } public void setDocument(byte[] document) { - this.document =document!=null ? document.clone():null; + this.document = document != null ? document.clone() : null; } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DocumentDeleteDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DocumentDeleteDTO.java index ed0a1ca3667..1524d79b9b4 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DocumentDeleteDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DocumentDeleteDTO.java @@ -6,9 +6,8 @@ import java.io.Serializable; -import lombok.Getter; +import lombok.Data; import lombok.NoArgsConstructor; -import lombok.Setter; /** * This DTO class is used to define Document Id and message. @@ -16,8 +15,7 @@ * @author Tapaswini Behera * @since 1.0.0 */ -@Getter -@Setter +@Data @NoArgsConstructor public class DocumentDeleteDTO implements Serializable { /** The Constant serialVersionUID. */ @@ -32,5 +30,4 @@ public class DocumentDeleteDTO implements Serializable { * Response Message */ private String resMsg; - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DocumentDeleteResponseDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DocumentDeleteResponseDTO.java index 3fbee58014e..6cc5ec15304 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DocumentDeleteResponseDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DocumentDeleteResponseDTO.java @@ -6,9 +6,8 @@ import java.io.Serializable; -import lombok.Getter; +import lombok.Data; import lombok.NoArgsConstructor; -import lombok.Setter; /** * This DTO class is used to define the values for document deletion. @@ -16,18 +15,14 @@ * @author Kishan Rathore * @since 1.0.0 */ -@Getter -@Setter +@Data @NoArgsConstructor public class DocumentDeleteResponseDTO implements Serializable { - /** The Constant serialVersionUID. */ private static final long serialVersionUID = 7070542323407937205L; - /** * Delete response Message */ private String message; - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DocumentIdentity.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DocumentIdentity.java index 2fd1acc3a01..621390d8bc2 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DocumentIdentity.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DocumentIdentity.java @@ -5,20 +5,18 @@ @Data public class DocumentIdentity { - /** Proof of Address. */ private IdentityJsonValues poa; - + /** Proof of Identity. */ private IdentityJsonValues poi; - + /** Proff of Birth. */ private IdentityJsonValues pob; - + /** Proof of exception. */ private IdentityJsonValues poe; - + /** Proof of Relation. */ private IdentityJsonValues por; - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DocumentMultipartResponseDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DocumentMultipartResponseDTO.java index ed61741aed9..eab4e8f41d6 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DocumentMultipartResponseDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DocumentMultipartResponseDTO.java @@ -12,7 +12,8 @@ import lombok.ToString; /** - * This DTO class is used to define the response values when document details are fetched. + * This DTO class is used to define the response values when document details + * are fetched. * * @author Kishan Rathore * @since 1.0.0 @@ -25,18 +26,17 @@ public class DocumentMultipartResponseDTO implements Serializable { /** The Constant serialVersionUID. */ private static final long serialVersionUID = 7070542323407937205L; - /** * Document Name */ private String docName; - + /** * Document Id */ private String documentId; - + /** * Document category */ @@ -46,15 +46,14 @@ public class DocumentMultipartResponseDTO implements Serializable { * Document Type */ private String docTypCode; - + /** * Language Code */ private String langCode; - + /** * Document Reference */ private String refNumber; - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DocumentsMetaData.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DocumentsMetaData.java index 8cf2a9b0a2f..fe8fbeb21a4 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DocumentsMetaData.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/DocumentsMetaData.java @@ -19,9 +19,8 @@ @NoArgsConstructor @ToString public class DocumentsMetaData implements Serializable { - /** The Constant serialVersionUID. */ private static final long serialVersionUID = 7070542323407937205L; - + List documentsMetaData; -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/EmailRequestDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/EmailRequestDTO.java index d9a41790ad6..30e07df1767 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/EmailRequestDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/EmailRequestDTO.java @@ -4,17 +4,16 @@ @Data public class EmailRequestDTO { -/** - * - */ -private String emaild; -/** - * - */ -private String ccEmail; -/** - * - */ -private String bccEmail; - -} + /** + * + */ + private String emaild; + /** + * + */ + private String ccEmail; + /** + * + */ + private String bccEmail; +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/ExceptionJSONInfoDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/ExceptionJSONInfoDTO.java index eee586fd98e..355c1d3d943 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/ExceptionJSONInfoDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/ExceptionJSONInfoDTO.java @@ -7,24 +7,22 @@ import java.io.Serializable; import lombok.AllArgsConstructor; -import lombok.Getter; +import lombok.Data; import lombok.NoArgsConstructor; -import lombok.Setter; import lombok.ToString; /** - * This DTO class defines the errorcodes and errormessages during exception handling. + * This DTO class defines the errorcodes and errormessages during exception + * handling. * * @author Rajath KR * @since 1.0.0 */ -@Getter -@Setter +@Data @NoArgsConstructor @ToString @AllArgsConstructor public class ExceptionJSONInfoDTO implements Serializable { - /** The Constant serialVersionUID. */ private static final long serialVersionUID = 3999014525078508265L; @@ -32,10 +30,9 @@ public class ExceptionJSONInfoDTO implements Serializable { * Error Code */ private String errorCode; - + /** * Error Message */ private String message; - } diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/KeyValuePairDto.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/KeyValuePairDto.java index ad61987adbc..4d18638d511 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/KeyValuePairDto.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/KeyValuePairDto.java @@ -7,13 +7,10 @@ @Data public class KeyValuePairDto implements Serializable { - /** - * - */ + /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; private T key; private R value; - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/LoginUser.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/LoginUser.java index 309b96ad728..3ff9342a83c 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/LoginUser.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/LoginUser.java @@ -14,9 +14,9 @@ */ @Data public class LoginUser { - private String clientId; + private String secretKey; - private String appId; -} + private String appId; +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/MainRequestDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/MainRequestDTO.java index 7e4898908b9..49fea59bc0f 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/MainRequestDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/MainRequestDTO.java @@ -10,10 +10,8 @@ import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; -import lombok.AccessLevel; -import lombok.Getter; +import lombok.Data; import lombok.NoArgsConstructor; -import lombok.Setter; import lombok.ToString; /** @@ -24,8 +22,7 @@ * @since 1.0.0 * */ -@Getter -@Setter +@Data @NoArgsConstructor @ToString public class MainRequestDTO implements Serializable { @@ -46,23 +43,22 @@ public class MainRequestDTO implements Serializable { /** * Request Date Time */ - + @ApiModelProperty(value = "request time", position = 3) @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'") - @Setter(AccessLevel.NONE) - @Getter(AccessLevel.NONE) private Date requesttime; /** * Request Object */ @ApiModelProperty(value = "request", position = 4) private T request; - + + // Getter and Setter methods for requesttime are overridden manually public Date getRequesttime() { - return requesttime!=null ? new Date(requesttime.getTime()):null; + return requesttime != null ? new Date(requesttime.getTime()) : null; } + public void setRequesttime(Date requesttime) { - this.requesttime =requesttime!=null ? new Date(requesttime.getTime()):null; + this.requesttime = requesttime != null ? new Date(requesttime.getTime()) : null; } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/MainResponseDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/MainResponseDTO.java index 7e59406973f..6bac5788690 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/MainResponseDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/MainResponseDTO.java @@ -4,9 +4,8 @@ import java.util.List; import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; +import lombok.Data; import lombok.NoArgsConstructor; -import lombok.Setter; import lombok.ToString; /** @@ -16,12 +15,11 @@ * * @param */ -@Getter -@Setter +@Data @NoArgsConstructor @ToString -public class MainResponseDTO implements Serializable{ - +public class MainResponseDTO implements Serializable { + /** The Constant serialVersionUID. */ private static final long serialVersionUID = 3384945682672832638L; /** @@ -40,8 +38,8 @@ public class MainResponseDTO implements Serializable{ @ApiModelProperty(value = "Response", position = 4) private T response; - + /** The error details. */ @ApiModelProperty(value = "Error Details", position = 5) private List errors; -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/NotificationDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/NotificationDTO.java index 9805539ea20..6f9bbc9cf3a 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/NotificationDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/NotificationDTO.java @@ -3,17 +3,15 @@ import java.io.Serializable; import java.util.List; -import lombok.Getter; +import lombok.Data; import lombok.NoArgsConstructor; -import lombok.Setter; import lombok.ToString; /** * @author Sanober Noor * */ -@Getter -@Setter +@Data @NoArgsConstructor @ToString public class NotificationDTO implements Serializable { @@ -49,18 +47,17 @@ public class NotificationDTO implements Serializable { * additionalRecipient for notififcation */ private boolean additionalRecipient; - + /** * batch config field */ private Boolean isBatch; - + private String languageCode; - - private List> fullName; - - private List> registrationCenterName; - - private List> address; - -} + + private List> fullName; + + private List> registrationCenterName; + + private List> address; +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/NotificationResponseDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/NotificationResponseDTO.java index bee2acd513d..50cc6b74092 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/NotificationResponseDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/NotificationResponseDTO.java @@ -4,10 +4,11 @@ /** * @author Sanober Noor - *@since 1.0.0 + * @since 1.0.0 */ @Data public class NotificationResponseDTO { -private String status; -private String message; -} + private String status; + + private String message; +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/PageDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/PageDTO.java index e93b7753a61..4a80ed19e3e 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/PageDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/PageDTO.java @@ -18,11 +18,15 @@ @AllArgsConstructor @NoArgsConstructor public class PageDTO { - private int pageNo; + private int pageSize; + private Sort sort; + private long totalItems; + private int totalPages; + private List data; } \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/PreRegIdsByRegCenterIdDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/PreRegIdsByRegCenterIdDTO.java index 3fe4e6186af..6c28321482f 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/PreRegIdsByRegCenterIdDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/PreRegIdsByRegCenterIdDTO.java @@ -3,20 +3,31 @@ import java.io.Serializable; import java.util.List; +import org.springframework.stereotype.Component; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; +import lombok.Data; import lombok.ToString; -@Getter -@Setter +/** + * The {@code Identity} class represents an identity with various personal + * information fields. It implements {@link Serializable} for allowing instances + * to be serialized. The class is annotated with {@link Data} to generate + * getters, setters, and other utility methods. The {@link Component} annotation + * makes it a Spring bean, and {@link JsonIgnoreProperties} is used to ignore + * unknown JSON properties during deserialization. + * + * @author Jagadishwari S + * @since 1.0.0 + */ + +@Data @ToString public class PreRegIdsByRegCenterIdDTO implements Serializable { - /** - * - */ + /** The Constant serialVersionUID. */ private static final long serialVersionUID = -8012017032440020062L; /** * registration Center Id @@ -24,12 +35,11 @@ public class PreRegIdsByRegCenterIdDTO implements Serializable { @JsonProperty("registartion_center_id") @ApiModelProperty(value = "Registartion Center ID", position = 1) private String registrationCenterId; - - + /** * pre-registration id */ @JsonProperty("pre_registration_ids") @ApiModelProperty(value = "List of Pre-Registartion IDs", position = 2) private List preRegistrationIds; -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/PreRegIdsByRegCenterIdResponseDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/PreRegIdsByRegCenterIdResponseDTO.java index 62e973376c7..db5a6118a36 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/PreRegIdsByRegCenterIdResponseDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/PreRegIdsByRegCenterIdResponseDTO.java @@ -6,26 +6,33 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; +import lombok.Data; -@Getter -@Setter -public class PreRegIdsByRegCenterIdResponseDTO implements Serializable { - /** - * - */ +/** + * The {@code PreRegIdsByRegCenterIdResponseDTO} class represents a response + * containing a list of pre-registration IDs associated with a specific + * registration center ID. + * + * @author Jagadishwari S + * @since 1.0.0 + */ + +@Data +public class PreRegIdsByRegCenterIdResponseDTO implements Serializable { + /** The Constant serialVersionUID. */ private static final long serialVersionUID = 8225498964365164064L; + /** - * registration Center Id + * The registration center ID. */ @JsonProperty("registration_center_id") @ApiModelProperty(value = "Registration Center ID", position = 1) private String registrationCenterId; + /** - * pre-registration id + * The list of pre-registration IDs. */ @JsonProperty("pre_registration_ids") @ApiModelProperty(value = "List of Pre-Registartion IDs", position = 2) private List preRegistrationIds; -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/PreRegistartionStatusDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/PreRegistartionStatusDTO.java index a0fa7562be1..ec56cfbfc8e 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/PreRegistartionStatusDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/PreRegistartionStatusDTO.java @@ -5,21 +5,21 @@ package io.mosip.preregistration.core.common.dto; import java.io.Serializable; -import java.util.Date; -import lombok.Getter; +import lombok.Data; import lombok.NoArgsConstructor; -import lombok.Setter; import lombok.ToString; /** - * This DTO class is used to define the Preregistration Id and Status code + * The {@code PreRegistartionStatusDTO} class represents the status information + * of a pre-registration. It includes the pre-registration ID and the status + * code associated with the pre-registration. * * @author Jagadishwari S * @since 1.0.0 */ -@Getter -@Setter + +@Data @NoArgsConstructor @ToString public class PreRegistartionStatusDTO implements Serializable { @@ -28,14 +28,12 @@ public class PreRegistartionStatusDTO implements Serializable { private static final long serialVersionUID = -1088172470058130997L; /** - * PreRegistartion Id + * The pre-registration ID. */ private String PreRegistartionId; /** - * Status Code + * The status code of the pre-registration. */ private String StatusCode; - - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/RequestWrapper.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/RequestWrapper.java index 8feaf570e8d..09656972fc2 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/RequestWrapper.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/RequestWrapper.java @@ -2,23 +2,50 @@ import java.time.LocalDateTime; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; - import com.fasterxml.jackson.annotation.JsonFormat; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; import lombok.Data; +/** + * The {@code RequestWrapper} class is a generic wrapper for requests, + * encapsulating the request data, metadata, and other related information. It + * includes information such as an identifier, version, request time, metadata, + * and the actual request payload. + * + * @param the type of the request object + * + * @since 1.0.0 + */ + @Data public class RequestWrapper { + /** + * The unique identifier for the request. + */ private String id; + + /** + * The version of the request. + */ private String version; + + /** + * The time at which the request was generated. + */ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'") private LocalDateTime requesttime; - + + /** + * Additional metadata related to the request. + */ private Object metadata; - + + /** + * The actual request payload. + */ @NotNull @Valid private T request; -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/ResponseWrapper.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/ResponseWrapper.java index 4c92fdb7c5a..b29c03030e5 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/ResponseWrapper.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/ResponseWrapper.java @@ -5,25 +5,55 @@ import java.util.ArrayList; import java.util.List; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; - import com.fasterxml.jackson.annotation.JsonFormat; import io.mosip.kernel.core.exception.ServiceError; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; import lombok.Data; +/** + * /** The {@code ResponseWrapper} class is a generic wrapper for responses, + * encapsulating the response data, metadata, and any potential errors. It + * includes information such as an identifier, version, response time, metadata, + * the actual response payload, and a list of service errors. + * + * @param the type of the response object + * + * @since 1.0.0 + */ + @Data public class ResponseWrapper { - + /** + * The unique identifier for the response. + */ private String id; + + /** + * The version of the response. + */ private String version; + + /** + * The time at which the response was generated. + */ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'") private LocalDateTime responsetime = LocalDateTime.now(ZoneId.of("UTC")); + /** + * Additional metadata related to the response. + */ private Object metadata; + + /** + * The actual response payload. + */ @NotNull @Valid private T response; + /** + * A list of service errors, if any occurred. + */ private List errors = new ArrayList<>(); -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/SMSRequestDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/SMSRequestDTO.java index 4eadae4996a..8219c58c424 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/SMSRequestDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/SMSRequestDTO.java @@ -4,16 +4,11 @@ /** * @author Sanober Noor - *@since 1.0.0 + * @since 1.0.0 */ @Data public class SMSRequestDTO { -/** - * - */ -private String message; -/** - * - */ -private String number; -} + private String message; + + private String number; +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/SlotTimeDto.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/SlotTimeDto.java index a9d94919aeb..17eedb8a3e4 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/SlotTimeDto.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/SlotTimeDto.java @@ -3,20 +3,14 @@ import java.time.LocalTime; import lombok.Data; -import lombok.Getter; import lombok.NoArgsConstructor; -import lombok.Setter; import lombok.ToString; @Data -@Getter -@Setter @NoArgsConstructor @ToString public class SlotTimeDto { - private LocalTime fromTime; - - private LocalTime toTime; -} + private LocalTime toTime; +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/TemplateResponseDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/TemplateResponseDTO.java index 648bab2b9c4..cf3c5a68c66 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/TemplateResponseDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/TemplateResponseDTO.java @@ -1,6 +1,7 @@ package io.mosip.preregistration.core.common.dto; import lombok.Data; + @Data public class TemplateResponseDTO { private String id; @@ -15,17 +16,13 @@ public class TemplateResponseDTO { private String fileText; - private String moduleId; - private String moduleName; private String templateTypeCode; - private String langCode; private Boolean isActive; - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/TemplateResponseListDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/TemplateResponseListDTO.java index 60a719936f6..d7707fd5aa0 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/TemplateResponseListDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/TemplateResponseListDTO.java @@ -3,7 +3,9 @@ import java.util.List; import lombok.Data; + + @Data public class TemplateResponseListDTO { -List templates; -} + List templates; +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/ValidDocumentsResponseDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/ValidDocumentsResponseDTO.java index 8285964636f..6d064887dd9 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/ValidDocumentsResponseDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/ValidDocumentsResponseDTO.java @@ -13,5 +13,4 @@ public class ValidDocumentsResponseDTO { private String docCategoryCode; private Boolean isActive; - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/identity/DemographicIdentityRequestDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/identity/DemographicIdentityRequestDTO.java index 62f9847e74c..d65eaa52904 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/identity/DemographicIdentityRequestDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/identity/DemographicIdentityRequestDTO.java @@ -2,16 +2,21 @@ import java.io.Serializable; +import org.springframework.stereotype.Component; + import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import io.mosip.preregistration.core.common.dto.DocumentIdentity; import lombok.Data; /** + * The {@code DemographicIdentityRequestDTO} class represents the data transfer + * object (DTO) for a demographic identity request. It implements + * {@link Serializable} to allow instances to be serialized. + * * * @author Jagadishwari S * @since 1.0.0 - * */ @Data @@ -22,8 +27,13 @@ public class DemographicIdentityRequestDTO implements Serializable { */ private static final long serialVersionUID = -912216321976514052L; + /** + * The identity information. + */ private Identity identity; - /** Documents. */ + /** + * The documents associated with the identity. + */ private DocumentIdentity documents; -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/identity/DocumentResponseDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/identity/DocumentResponseDTO.java index b983d1fd7ef..2aeae9add35 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/identity/DocumentResponseDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/identity/DocumentResponseDTO.java @@ -6,18 +6,26 @@ import java.io.Serializable; -import lombok.Getter; +import org.springframework.stereotype.Component; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +import lombok.Data; import lombok.NoArgsConstructor; -import lombok.Setter; /** - * This DTO class is used to accept the response values for document upload. + * The {@code Identity} class represents an identity with various personal + * information fields. It implements {@link Serializable} for allowing instances + * to be serialized. The class is annotated with {@link Data} to generate + * getters, setters, and other utility methods. The {@link Component} annotation + * makes it a Spring bean, and {@link JsonIgnoreProperties} is used to ignore + * unknown JSON properties during deserialization. * * @author Kishan Rathore * @since 1.0.0 */ -@Getter -@Setter + +@Data @NoArgsConstructor public class DocumentResponseDTO implements Serializable { @@ -25,28 +33,32 @@ public class DocumentResponseDTO implements Serializable { private static final long serialVersionUID = 7070542323407937205L; /** - * PreRegistration Id + * The PreRegistration ID associated with the document. */ private String preRegistrationId; + /** - * Document Id + * The Document Id */ private String docId; + /** - * Document Name + * The Document Name */ private String docName; + /** - * Document Category + * The Document Category Code. */ private String docCatCode; + /** - * Document Type + * The Document Type Code */ private String docTypCode; - /** - * Response Message - */ + + /** + * The Document File Format. + */ private String docFileFormat; - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/identity/Identity.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/identity/Identity.java index 86e5773897d..6f4ce7f27fb 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/identity/Identity.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/identity/Identity.java @@ -6,17 +6,19 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import io.mosip.preregistration.core.common.dto.DocumentIdentity; import lombok.Data; /** - * Instantiates a new identity. - */ -/** + * The {@code Identity} class represents an identity with various personal information fields. + * It implements {@link Serializable} for allowing instances to be serialized. + * The class is annotated with {@link Data} to generate getters, setters, and other utility methods. + * The {@link Component} annotation makes it a Spring bean, and {@link JsonIgnoreProperties} is used + * to ignore unknown JSON properties during deserialization. + * * @author Jagadishwari S * @since 1.0.0 - * */ + @Data @Component @JsonIgnoreProperties(ignoreUnknown = true) @@ -39,7 +41,7 @@ public class Identity implements Serializable { /** The preferredLanguages. */ private IdentityJsonValues preferredLanguage; - /** The locationHierarchyForProfiling fields. */ + /** The location hierarchy for profiling. */ private IdentityJsonValues locationHierarchyForProfiling; /** The phone. */ @@ -47,5 +49,4 @@ public class Identity implements Serializable { /** The email. */ private IdentityJsonValues email; - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/identity/IdentityJsonValues.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/identity/IdentityJsonValues.java index 9ebd2cc65a1..264ccbc7137 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/identity/IdentityJsonValues.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/dto/identity/IdentityJsonValues.java @@ -4,16 +4,25 @@ import lombok.Data; +/** + * The {@code IdentityJsonValues} class represents an identity JSON value with + * a mandatory check. + * It implements {@link Serializable} for allowing instances to be serialized. + * + * @author Jagadishwari S + * @since 1.0.0 + */ + @Data -public class IdentityJsonValues implements Serializable{ +public class IdentityJsonValues implements Serializable { /** * constant serialVersion UID */ private static final long serialVersionUID = 8450727654084571180L; - /** The value. */ + /** The value of the identity JSON. */ private String value; - /* Mandatory check */ + /** Indicates whether the value is mandatory. */ private Boolean isMandatory; -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/entity/ApplicationEntity.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/entity/ApplicationEntity.java index 7da9ebc50a7..6a680c779ce 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/entity/ApplicationEntity.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/entity/ApplicationEntity.java @@ -4,10 +4,10 @@ import java.time.LocalDateTime; import java.time.LocalTime; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import lombok.Getter; import lombok.Setter; @@ -17,7 +17,6 @@ @Setter @Table(name = "applications", schema = "prereg") public class ApplicationEntity { - @Id @Column(name = "application_id") private String applicationId; @@ -80,5 +79,4 @@ public class ApplicationEntity { */ @Column(name = "upd_dtimes") private LocalDateTime updDtime; - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/entity/DemographicEntity.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/entity/DemographicEntity.java index a22be2c2533..aabcc19837a 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/entity/DemographicEntity.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/entity/DemographicEntity.java @@ -8,16 +8,17 @@ import java.time.LocalDateTime; import java.util.List; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.Id; -import javax.persistence.OneToMany; -import javax.persistence.Table; - +import org.hibernate.annotations.JdbcTypeCode; import org.hibernate.annotations.NamedQuery; import org.springframework.stereotype.Component; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.Id; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; +import lombok.Data; import lombok.NoArgsConstructor; /** @@ -36,6 +37,7 @@ * */ @Component +@Data @Entity @Table(name = "applicant_demographic", schema = "prereg") @NoArgsConstructor @@ -43,7 +45,6 @@ @NamedQuery(name = "DemographicEntity.findByCreatedBy", query = "SELECT e FROM DemographicEntity e WHERE e.createdBy=:userId and e.statusCode <>:statusCode order by e.createDateTime desc") @NamedQuery(name = "DemographicEntity.findBypreRegistrationId", query = "SELECT r FROM DemographicEntity r WHERE r.preRegistrationId=:preRegId") public class DemographicEntity implements Serializable { - /** The Constant serialVersionUID. */ private static final long serialVersionUID = 6705845720255847210L; @@ -56,7 +57,8 @@ public class DemographicEntity implements Serializable { private String preRegistrationId; /** The JSON */ - @Column(name = "demog_detail") + @JdbcTypeCode(java.sql.Types.BINARY) + @Column(name = "demog_detail", columnDefinition = "bytea") private byte[] applicantDetailJson; /** The status_code */ @@ -95,106 +97,4 @@ public class DemographicEntity implements Serializable { @Column(name = "demog_detail_hash") private String demogDetailHash; - - public byte[] getApplicantDetailJson() { - return (byte[]) applicantDetailJson.clone(); - } - - public void setApplicantDetailJson(byte[] applicantDetailJson) { - this.applicantDetailJson = (byte[]) applicantDetailJson.clone(); - } - - public String getStatusCode() { - return statusCode; - } - - public void setStatusCode(String statusCode) { - this.statusCode = statusCode; - } - - public String getLangCode() { - return langCode; - } - - public void setLangCode(String langCode) { - this.langCode = langCode; - } - - public String getCreatedBy() { - return createdBy; - } - - public void setCreatedBy(String createdBy) { - this.createdBy = createdBy; - } - - public String getCrAppuserId() { - return crAppuserId; - } - - public void setCrAppuserId(String crAppuserId) { - this.crAppuserId = crAppuserId; - } - - public LocalDateTime getCreateDateTime() { - return createDateTime; - } - - public void setCreateDateTime(LocalDateTime createDateTime) { - this.createDateTime = createDateTime; - } - - public String getUpdatedBy() { - return updatedBy; - } - - public void setUpdatedBy(String updatedBy) { - this.updatedBy = updatedBy; - } - - public LocalDateTime getUpdateDateTime() { - return updateDateTime; - } - - public void setUpdateDateTime(LocalDateTime updateDateTime) { - this.updateDateTime = updateDateTime; - } - - public LocalDateTime getEncryptedDateTime() { - return encryptedDateTime; - } - - public void setEncryptedDateTime(LocalDateTime encryptedDateTime) { - this.encryptedDateTime = encryptedDateTime; - } - - public String getDemogDetailHash() { - return demogDetailHash; - } - - public void setDemogDetailHash(String demogDetailHash) { - this.demogDetailHash = demogDetailHash; - } - - public static long getSerialversionuid() { - return serialVersionUID; - } - - public List getDocumentEntity() { - return documentEntity; - } - - public void setDocumentEntity(List documentEntity) { - this.documentEntity = documentEntity; - } - - public String getPreRegistrationId() { - return preRegistrationId; - } - - public void setPreRegistrationId(String preRegistrationId) { - this.preRegistrationId = preRegistrationId; - } - - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/entity/DocumentEntity.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/entity/DocumentEntity.java index c9579a96393..b758eb5df38 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/entity/DocumentEntity.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/entity/DocumentEntity.java @@ -7,19 +7,17 @@ import java.io.Serializable; import java.time.LocalDateTime; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.persistence.NamedQuery; -import javax.persistence.Table; - +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.NamedQuery; +import jakarta.persistence.Table; import lombok.AllArgsConstructor; -import lombok.Getter; +import lombok.Data; import lombok.NoArgsConstructor; -import lombok.Setter; /** * This entity class defines the database table details for Document. @@ -32,14 +30,12 @@ * */ @Entity -@Getter -@Setter +@Data @NoArgsConstructor @AllArgsConstructor @Table(name = "applicant_document", schema = "prereg") @NamedQuery(name = "DocumentEntity.findSingleDocument", query = "SELECT d FROM DocumentEntity d WHERE d.demographicEntity.preRegistrationId= :preId AND d.docCatCode= :catCode") public class DocumentEntity implements Serializable { - /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1692781286748263575L; @@ -144,6 +140,4 @@ public class DocumentEntity implements Serializable { */ @Column(name = "doc_ref_id") private String refNumber; - - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/entity/RegistrationBookingEntity.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/entity/RegistrationBookingEntity.java index 6f70b47eb7b..b712ea4eb90 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/entity/RegistrationBookingEntity.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/entity/RegistrationBookingEntity.java @@ -9,14 +9,11 @@ import java.time.LocalDateTime; import java.time.LocalTime; -import javax.persistence.Column; -import javax.persistence.Embedded; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -import lombok.Getter; -import lombok.Setter; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import lombok.Data; /** * This entity class defines the database table details for Booking application. @@ -27,12 +24,10 @@ * @since 1.0.0 * */ -@Getter -@Setter +@Data @Entity @Table(name = "reg_appointment", schema = "prereg") public class RegistrationBookingEntity implements Serializable { - /** The Constant serialVersionUID. */ private static final long serialVersionUID = 7886669943207769620L; @@ -92,5 +87,4 @@ public class RegistrationBookingEntity implements Serializable { /** Updated date time. */ @Column(name = "upd_dtimes") private LocalDateTime updDate; - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/entity/RegistrationBookingPK.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/entity/RegistrationBookingPK.java index 5c6f41f330e..55fb18dfe3f 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/entity/RegistrationBookingPK.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/common/entity/RegistrationBookingPK.java @@ -7,13 +7,11 @@ import java.io.Serializable; import java.time.LocalDateTime; -import javax.persistence.Column; -import javax.persistence.Embeddable; - +import jakarta.persistence.Column; +import jakarta.persistence.Embeddable; import lombok.AllArgsConstructor; -import lombok.Getter; +import lombok.Data; import lombok.NoArgsConstructor; -import lombok.Setter; /** * This entity class defines the database table details for Booking application. @@ -25,12 +23,10 @@ * */ @Embeddable -@Getter -@Setter +@Data @NoArgsConstructor @AllArgsConstructor -public class RegistrationBookingPK implements Serializable{ - +public class RegistrationBookingPK implements Serializable { /** The Constant serialVersionUID. */ private static final long serialVersionUID = -4604149554069906933L; @@ -39,11 +35,11 @@ public class RegistrationBookingPK implements Serializable{ // */ // @Column(name="prereg_id") // private String preregistrationId; - + /** * Booking date and time */ - @Column(name="booking_dtimes") + @Column(name = "booking_dtimes") private LocalDateTime bookingDateTime; - + } diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/config/LoggerConfiguration.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/config/LoggerConfiguration.java index 72cddcdf5b4..4d86f0c0519 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/config/LoggerConfiguration.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/config/LoggerConfiguration.java @@ -4,16 +4,13 @@ import io.mosip.kernel.logger.logback.factory.Logfactory; public final class LoggerConfiguration { - /** - * Instantiates a new pre-reg logger. + * Instantiates a new pre-reg logger. */ private LoggerConfiguration() { - } public static Logger logConfig(Class clazz) { return Logfactory.getSlf4jLogger(clazz); } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/config/SSLConfig.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/config/SSLConfig.java index aca83a8f697..3364ac8513d 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/config/SSLConfig.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/config/SSLConfig.java @@ -14,9 +14,10 @@ @Configuration public class SSLConfig { - @Bean - public SimpleClientHttpRequestFactory simpleClientHttpRequestFactory() { - return new SimpleClientHttpRequestFactory(); - } + //Commenting it as its used from Auth Adapter + // @Bean + // public SimpleClientHttpRequestFactory simpleClientHttpRequestFactory() { + // return new SimpleClientHttpRequestFactory(); + // } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/config/TemplateConfiguration.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/config/TemplateConfiguration.java index be846575bbb..ad6368aa1a2 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/config/TemplateConfiguration.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/config/TemplateConfiguration.java @@ -1,4 +1,5 @@ package io.mosip.preregistration.core.config; + import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -6,14 +7,22 @@ import io.mosip.kernel.core.templatemanager.spi.TemplateManagerBuilder; /** + * + * Configuration class for setting up the TemplateManager bean. + * * @author Sanober Noor - *@since 1.0.0 + * @since 1.0.0 */ @Configuration public class TemplateConfiguration { + /** + * Creates a TemplateManager bean using the provided TemplateManagerBuilder. + * + * @param templateManagerBuilder the builder used to create the TemplateManager + * @return the configured TemplateManager instance + */ @Bean - public TemplateManager templateManager(TemplateManagerBuilder templateManagerBuilder){ - - return templateManagerBuilder.build(); - } -} + public TemplateManager templateManager(TemplateManagerBuilder templateManagerBuilder) { + return templateManagerBuilder.build(); + } +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/errorcodes/ErrorCodes.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/errorcodes/ErrorCodes.java index 1811444115b..227c05d600d 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/errorcodes/ErrorCodes.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/errorcodes/ErrorCodes.java @@ -30,6 +30,7 @@ public enum ErrorCodes { PRG_CORE_REQ_021("PRG_CORE_REQ_021"), PRG_CORE_REQ_022("PRG_CORE_REQ_022"), PRG_CORE_REQ_023("PRG_CORE_REQ_023"); + private ErrorCodes(String code) { this.code = code; diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/AppointmentBookException.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/AppointmentBookException.java index 611117ce936..00eecde3a7a 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/AppointmentBookException.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/AppointmentBookException.java @@ -5,41 +5,85 @@ import lombok.Getter; /** + * The AppointmentBookException class represents an exception that occurs when + * appointment booking fails. This class extends {@link BaseUncheckedException} + * and includes various constructors for different use cases, as well as a + * {@link MainResponseDTO} object for additional error information. + * * @author Kishan Rathore * */ @Getter public class AppointmentBookException extends BaseUncheckedException { + /** The Constant serialVersionUID. */ + private static final long serialVersionUID = 1L; - /** - * - */ - private static final long serialVersionUID = 5135952690225019228L; + /** The main response DTO associated with the exception. */ private MainResponseDTO mainResponseDTO; - public AppointmentBookException(String msg) { - super("", msg); + /** + * Default Constructor + */ + public AppointmentBookException() { + super(); } - public AppointmentBookException(String msg, Throwable cause) { - super("", msg, cause); + /** + * Constructs a new {@code AppointmentBookException} with the specified error + * errorMessage + * + * @param errorMessage the detailed error errorMessage. + */ + public AppointmentBookException(String errorMessage) { + super("", errorMessage); } + /** + * Constructs a new {@code AppointmentBookException} with the specified error + * code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + */ public AppointmentBookException(String errorCode, String errorMessage) { super(errorCode, errorMessage, null); } - - public AppointmentBookException(String errorCode, String errorMessage,MainResponseDTO response) { + + /** + * Constructs a new {@code AppointmentBookException} with the specified error + * message, and rootCause. + * + * @param errorMessage the detailed error message. + * @param rootCause the rootCause of the error. + */ + public AppointmentBookException(String errorMessage, Throwable rootCause) { + super("", errorMessage, rootCause); + } + + /** + * Constructs a new {@code AppointmentBookException} with the specified error + * code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public AppointmentBookException(String errorCode, String errorMessage, MainResponseDTO response) { super(errorCode, errorMessage, null); - this.mainResponseDTO=response; + this.mainResponseDTO = response; } + /** + * Constructs a new {@code AppointmentBookException} with the specified error + * code, error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. + */ public AppointmentBookException(String errorCode, String errorMessage, Throwable rootCause) { super(errorCode, errorMessage, rootCause); } - - public AppointmentBookException() { - super(); - } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/AppointmentCancelException.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/AppointmentCancelException.java index ee56416cb79..5fd69e2ea59 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/AppointmentCancelException.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/AppointmentCancelException.java @@ -5,42 +5,85 @@ import lombok.Getter; /** + * The AppointmentCancelException class represents an exception that occurs when + * appointment cancel fails. This class extends {@link BaseUncheckedException} + * and includes various constructors for different use cases, as well as a + * {@link MainResponseDTO} object for additional error information. + * * @author Kishan Rathore * */ @Getter public class AppointmentCancelException extends BaseUncheckedException { + /** The Constant serialVersionUID. */ + private static final long serialVersionUID = 1L; + + /** The main response DTO associated with the exception. */ + private MainResponseDTO mainResponseDTO; /** - * + * Default Constructor */ - private static final long serialVersionUID = 8898932631567778670L; - private MainResponseDTO mainResponseDTO; - - public AppointmentCancelException(String msg) { - super("", msg); + public AppointmentCancelException() { + super(); } - public AppointmentCancelException(String msg, Throwable cause) { - super("", msg, cause); + /** + * Constructs a new {@code AppointmentCancelException} with the specified error + * errorMessage + * + * @param errorMessage the detailed error errorMessage. + */ + public AppointmentCancelException(String errorMessage) { + super("", errorMessage); } + /** + * Constructs a new {@code AppointmentCancelException} with the specified error + * code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + */ public AppointmentCancelException(String errorCode, String errorMessage) { super(errorCode, errorMessage, null); } - - public AppointmentCancelException(String errorCode, String errorMessage,MainResponseDTO response) { + + /** + * Constructs a new {@code AppointmentCancelException} with the specified error + * message, and rootCause. + * + * @param errorMessage the detailed error message. + * @param rootCause the rootCause of the error. + */ + public AppointmentCancelException(String errorMessage, Throwable rootCause) { + super("", errorMessage, rootCause); + } + + /** + * Constructs a new {@code AppointmentCancelException} with the specified error + * code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public AppointmentCancelException(String errorCode, String errorMessage, MainResponseDTO response) { super(errorCode, errorMessage, null); - this.mainResponseDTO=response; + this.mainResponseDTO = response; } + /** + * Constructs a new {@code AppointmentCancelException} with the specified error + * code, error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. + */ public AppointmentCancelException(String errorCode, String errorMessage, Throwable rootCause) { super(errorCode, errorMessage, rootCause); } - - public AppointmentCancelException() { - super(); - } - } diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/AppointmentReBookException.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/AppointmentReBookException.java index d4ef6070f37..49fd99213dd 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/AppointmentReBookException.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/AppointmentReBookException.java @@ -5,41 +5,86 @@ import lombok.Getter; /** + * The AppointmentReBookException class represents an exception that occurs when + * appointment rebooking fails. This class extends + * {@link BaseUncheckedException} and includes various constructors for + * different use cases, as well as a {@link MainResponseDTO} object for + * additional error information. + * * @author Kishan Rathore * */ @Getter public class AppointmentReBookException extends BaseUncheckedException { + /** The Constant serialVersionUID. */ + private static final long serialVersionUID = 1L; - /** - * - */ - private static final long serialVersionUID = 5135952690225019228L; + /** The main response DTO associated with the exception. */ private MainResponseDTO mainResponseDTO; - public AppointmentReBookException(String msg) { - super("", msg); + /** + * Default Constructor + */ + public AppointmentReBookException() { + super(); } - public AppointmentReBookException(String msg, Throwable cause) { - super("", msg, cause); + /** + * Constructs a new {@code AppointmentReBookException} with the specified error + * errorMessage + * + * @param errorMessage the detailed error errorMessage. + */ + public AppointmentReBookException(String errorMessage) { + super("", errorMessage); } + /** + * Constructs a new {@code AppointmentReBookException} with the specified error + * code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + */ public AppointmentReBookException(String errorCode, String errorMessage) { super(errorCode, errorMessage, null); } - - public AppointmentReBookException(String errorCode, String errorMessage,MainResponseDTO response) { + + /** + * Constructs a new {@code AppointmentReBookException} with the specified error + * message, and rootCause. + * + * @param errorMessage the detailed error message. + * @param rootCause the rootCause of the error. + */ + public AppointmentReBookException(String errorMessage, Throwable rootCause) { + super("", errorMessage, rootCause); + } + + /** + * Constructs a new {@code AppointmentReBookException} with the specified error + * code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public AppointmentReBookException(String errorCode, String errorMessage, MainResponseDTO response) { super(errorCode, errorMessage, null); - this.mainResponseDTO=response; + this.mainResponseDTO = response; } + /** + * Constructs a new {@code AppointmentReBookException} with the specified error + * code, error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. + */ public AppointmentReBookException(String errorCode, String errorMessage, Throwable rootCause) { super(errorCode, errorMessage, rootCause); } - - public AppointmentReBookException() { - super(); - } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/DatabaseOperationException.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/DatabaseOperationException.java index 021d8931df5..8bb15853c6c 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/DatabaseOperationException.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/DatabaseOperationException.java @@ -3,19 +3,46 @@ import io.mosip.kernel.core.exception.BaseUncheckedException; import io.mosip.preregistration.core.exception.util.PreIssuanceExceptionCodes; -public class DatabaseOperationException extends BaseUncheckedException { +/** + * The DatabaseOperationException class represents an exception that occurs when + * database operation fails. This class extends {@link BaseUncheckedException} and + * includes various constructors for different use cases. + * + * + * @author Jagadishwari S + * @since 1.0.0 + * + */ +public class DatabaseOperationException extends BaseUncheckedException { + /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; + /** + * Default Constructor + */ public DatabaseOperationException() { super(); } - public DatabaseOperationException(String message) { - super(PreIssuanceExceptionCodes.USER_INSERTION, message); + /** + * Constructs a new {@code DatabaseOperationException} with the specified error + * errorMessage + * + * @param errorMessage the detailed error errorMessage. + */ + public DatabaseOperationException(String errorMessage) { + super(PreIssuanceExceptionCodes.USER_INSERTION, errorMessage); } - public DatabaseOperationException(String message, Throwable cause) { - super(PreIssuanceExceptionCodes.USER_INSERTION, message, cause); + /** + * Constructs a new {@code DatabaseOperationException} with the specified error + * message, and rootCause. + * + * @param errorMessage the detailed error message. + * @param rootCause the rootCause of the error. + */ + public DatabaseOperationException(String errorMessage, Throwable rootCause) { + super(PreIssuanceExceptionCodes.USER_INSERTION, errorMessage, rootCause); } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/DecryptionFailedException.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/DecryptionFailedException.java index 66f2fad41c7..543bb012da7 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/DecryptionFailedException.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/DecryptionFailedException.java @@ -4,41 +4,88 @@ import io.mosip.preregistration.core.common.dto.MainResponseDTO; import lombok.Getter; + /** + * The DecryptionFailedException class represents an exception that occurs when + * decryption fails. This class extends {@link BaseUncheckedException} and + * includes various constructors for different use cases, as well as a + * {@link MainResponseDTO} object for additional error information. + * + * * @author Jagadishwari S * @since 1.0.0 * */ @Getter public class DecryptionFailedException extends BaseUncheckedException { + /** The Constant serialVersionUID. */ + private static final long serialVersionUID = 1L; + + /** The main response DTO associated with the exception. */ + private MainResponseDTO mainresponseDTO; /** - * + * Default Constructor */ - private static final long serialVersionUID = 5135952690225019228L; - private MainResponseDTO mainresponseDTO; + public DecryptionFailedException() { + super(); + } - public DecryptionFailedException(String msg) { - super("", msg); + /** + * Constructs a new {@code DecryptionFailedException} with the specified error + * errorMessage + * + * @param errorMessage the detailed error errorMessage. + */ + public DecryptionFailedException(String errorMessage) { + super("", errorMessage); } - public DecryptionFailedException(String msg, Throwable cause) { - super("", msg, cause); + /** + * Constructs a new {@code DecryptionFailedException} with the specified error + * message, and rootCause. + * + * @param errorMessage the detailed error message. + * @param rootCause the rootCause of the error. + */ + public DecryptionFailedException(String errorMessage, Throwable rootCause) { + super("", errorMessage, rootCause); } + /** + * Constructs a new {@code DecryptionFailedException} with the specified error + * code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + */ public DecryptionFailedException(String errorCode, String errorMessage) { super(errorCode, errorMessage, null); } - public DecryptionFailedException(String errorCode, String errorMessage,MainResponseDTO response) { + + /** + * Constructs a new {@code DecryptionFailedException} with the specified error + * code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public DecryptionFailedException(String errorCode, String errorMessage, MainResponseDTO response) { super(errorCode, errorMessage, null); - this.mainresponseDTO=response; + this.mainresponseDTO = response; } + /** + * Constructs a new {@code DecryptionFailedException} with the specified error + * code, error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. + */ public DecryptionFailedException(String errorCode, String errorMessage, Throwable rootCause) { super(errorCode, errorMessage, rootCause); } - - public DecryptionFailedException() { - super(); - } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/EncryptionFailedException.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/EncryptionFailedException.java index 2c0f2ea8419..bab5ae34ece 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/EncryptionFailedException.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/EncryptionFailedException.java @@ -8,48 +8,103 @@ import lombok.Getter; /** + * The EncryptionFailedException class represents an exception that occurs when + * encryption fails. This class extends {@link BaseUncheckedException} and + * includes various constructors for different use cases, as well as a + * {@link MainResponseDTO} object for additional error information. + * + * * @author Jagadishwari S * @since 1.0.0 * */ @Getter public class EncryptionFailedException extends BaseUncheckedException { + /** The Constant serialVersionUID. */ + private static final long serialVersionUID = 1L; + + /** The main response DTO associated with the exception. */ + private MainResponseDTO mainresponseDTO; + + /** The List of exception as ServiceError. */ + private List validationErrorList; /** - * + * Default Constructor */ - private static final long serialVersionUID = 5135952690225019228L; - private MainResponseDTO mainresponseDTO; - private List validationErrorList; - - public EncryptionFailedException(String msg) { - super("", msg); + public EncryptionFailedException() { + super(); } - public EncryptionFailedException(String msg, Throwable cause) { - super("", msg, cause); + /** + * Constructs a new {@code EncryptionFailedException} with the specified error + * errorMessage + * + * @param errorMessage the detailed error errorMessage. + */ + public EncryptionFailedException(String errorMessage) { + super("", errorMessage); } + /** + * Constructs a new {@code EncryptionFailedException} with the specified error + * code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + */ public EncryptionFailedException(String errorCode, String errorMessage) { super(errorCode, errorMessage, null); } - public EncryptionFailedException(String errorCode, String errorMessage,MainResponseDTO response) { + + /** + * Constructs a new {@code EncryptionFailedException} with the specified error + * message, and rootCause. + * + * @param errorMessage the detailed error message. + * @param rootCause the rootCause of the error. + */ + public EncryptionFailedException(String errorMessage, Throwable rootCause) { + super("", errorMessage, rootCause); + } + + /** + * Constructs a new {@code EncryptionFailedException} with the specified error + * code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public EncryptionFailedException(String errorCode, String errorMessage, MainResponseDTO response) { super(errorCode, errorMessage, null); - this.mainresponseDTO=response; + this.mainresponseDTO = response; } + /** + * Constructs a new {@code EncryptionFailedException} with the specified error + * code, error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. + */ public EncryptionFailedException(String errorCode, String errorMessage, Throwable rootCause) { super(errorCode, errorMessage, rootCause); } - public EncryptionFailedException() { - super(); - } - - public EncryptionFailedException(List list,MainResponseDTO response) { + /** + * Constructs a new {@code EncryptionFailedException} with the specified list, + * and response. + * + * @param list the List of exception as ServiceError. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public EncryptionFailedException(List list, MainResponseDTO response) { super(); - this.validationErrorList=list; - this.mainresponseDTO=response; + this.validationErrorList = list; + this.mainresponseDTO = response; } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/HashingException.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/HashingException.java index 0ef1bbdd09b..b454219d6c5 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/HashingException.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/HashingException.java @@ -5,38 +5,74 @@ import lombok.Getter; /** + * The HashingException class represents an exception that occurs when a hashing + * operation fails. This class extends {@link BaseUncheckedException} and + * includes various constructors for different use cases, as well as a + * {@link MainResponseDTO} object for additional error information. + * * @author Sanober Noor * @since 1.0.0 * */ @Getter public class HashingException extends BaseUncheckedException { + /** The Constant serialVersionUID. */ + private static final long serialVersionUID = 1L; + + /** The main response DTO associated with the exception. */ + private MainResponseDTO mainresponseDTO; /** - * + * Default Constructor */ - private static final long serialVersionUID = 43021822814026167L; - private MainResponseDTO mainresponseDTO; - public HashingException() { super(); } - public HashingException(String arg0, String arg1, Throwable arg2) { - super(arg0, arg1, arg2); + /** + * Constructs a new {@code HashingException} with the specified error + * errorMessage + * + * @param errorMessage the detailed error errorMessage. + */ + public HashingException(String errorMessage) { + super(errorMessage); } + /** + * Constructs a new {@code HashingException} with the specified error code and + * error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + */ public HashingException(String errorCode, String errorMessage) { super(errorCode, errorMessage); } - public HashingException(String errorCode, String errorMessage,MainResponseDTO response) { - super(errorCode, errorMessage); - this.mainresponseDTO=response; - } - public HashingException(String errorMessage) { - super(errorMessage); + /** + * Constructs a new {@code HashingException} with the specified error code, + * error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. + */ + public HashingException(String errorCode, String errorMessage, Throwable rootCause) { + super(errorCode, errorMessage, rootCause); } - -} + /** + * Constructs a new {@code HashingException} with the specified error code, + * error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public HashingException(String errorCode, String errorMessage, MainResponseDTO response) { + super(errorCode, errorMessage); + this.mainresponseDTO = response; + } +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/IllegalParamException.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/IllegalParamException.java index 3c1609618b6..590c8f8f2be 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/IllegalParamException.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/IllegalParamException.java @@ -1,53 +1,65 @@ - -/* - * Copyright - * - */ package io.mosip.preregistration.core.exception; -import io.mosip.kernel.core.exception.BaseUncheckedException; -import io.mosip.preregistration.core.common.dto.MainResponseDTO; -import lombok.Getter; - /** - * This class defines the IllegalParamException + * The IllegalParamException class represents an exception + * occurs when an illegal request parameter is encountered.. This class extends + * {@link BaseUncheckedException} and includes various constructors for + * different use cases, as well as a {@link MainResponseDTO} object for additional error information. * * @author Sanober Noor * @since 1.0.0 * */ -@Getter -public class IllegalParamException extends BaseUncheckedException{ +import io.mosip.kernel.core.exception.BaseUncheckedException; +import io.mosip.preregistration.core.common.dto.MainResponseDTO; +import lombok.Getter; +@Getter +public class IllegalParamException extends BaseUncheckedException { /** The Constant serialVersionUID. */ - private static final long serialVersionUID = 6810058264320216283L; + private static final long serialVersionUID = 1L; + + /** The main response DTO associated with the exception. */ private MainResponseDTO mainResponseDto; /** - * @param msg + * Constructs a new {@code IllegalParamException} with the specified + * error message, and response. + * + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public IllegalParamException(String msg,MainResponseDTO response) { - super("", msg); - this.mainResponseDto=response; + public IllegalParamException(String errorMessage, MainResponseDTO response) { + super("", errorMessage); + this.mainResponseDto = response; } /** - * @param errCode - * @param msg + * Constructs a new {@code IllegalParamException} with the specified + * error code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public IllegalParamException(String errCode, String msg,MainResponseDTO response) { - super(errCode, msg); - this.mainResponseDto=response; + public IllegalParamException(String errorCode, String errorMessage, MainResponseDTO response) { + super(errorCode, errorMessage); + this.mainResponseDto = response; } /** - * @param errCode - * @param msg - * @param cause + * Constructs a new {@code IllegalParamException} with the specified + * error code, error message, rootCause, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the rootCause of the error. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public IllegalParamException(String errCode, String msg, Throwable cause,MainResponseDTO response) { - super(errCode, msg, cause); - this.mainResponseDto=response; + public IllegalParamException(String errorCode, String errorMessage, Throwable rootCause, MainResponseDTO response) { + super(errorCode, errorMessage, rootCause); + this.mainResponseDto = response; } - -} - +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/InvalidPreRegistrationIdException.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/InvalidPreRegistrationIdException.java index 88e63b0a7a2..846fbd1ede5 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/InvalidPreRegistrationIdException.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/InvalidPreRegistrationIdException.java @@ -3,17 +3,26 @@ import io.mosip.kernel.core.exception.BaseUncheckedException; /** + * The InvalidPreRegistrationIdException class represents an exception that + * occurs when an invalid pre-registration ID is encountered. This class extends + * {@link BaseUncheckedException} and includes various constructors for + * different use cases. + * * @author M1046129 * */ public class InvalidPreRegistrationIdException extends BaseUncheckedException { + /** The Constant serialVersionUID. */ + private static final long serialVersionUID = -3898906527162403384L; /** + * Constructs a new {@code InvalidPreRegistrationIdException} with the specified + * error code and error message. * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. */ - private static final long serialVersionUID = -3898906527162403384L; - - public InvalidPreRegistrationIdException(String errCode, String errMessage) { - super(errCode, errMessage); + public InvalidPreRegistrationIdException(String errorCode, String errorMessage) { + super(errorCode, errorMessage); } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/InvalidRequestException.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/InvalidRequestException.java index f60fd2ca33d..b889e757233 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/InvalidRequestException.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/InvalidRequestException.java @@ -8,42 +8,95 @@ import lombok.Getter; import lombok.Setter; - +/** + * The InvalidRequestException class represents an exception that occurs when an + * invalid request parameter is encountered.. This class extends + * {@link BaseUncheckedException} and includes various constructors for + * different use cases, as well as a {@link MainResponseDTO} and + * {@link ExceptionJSONInfoDTO} object for additional error information. + * + * @author M1046129 + * + */ @Getter @Setter public class InvalidRequestException extends BaseUncheckedException { + /** The Constant serialVersionUID. */ + private static final long serialVersionUID = 1L; - /** - * - */ - private static final long serialVersionUID = -3898906527162403384L; - + /** The main response DTO associated with the exception. */ private MainResponseDTO mainResponseDto; + + /** List of detailed exception information. */ private List exptionList; + + /** The operation during which the exception occurred. */ private String operation; - + + /** + * Default constructor. + */ public InvalidRequestException() { super(); } - public InvalidRequestException(String errCode, String errMessage,MainResponseDTO response) { - super(errCode, errMessage); - this.mainResponseDto=response; + /** + * Constructs a new {@code InvalidRequestException} with the specified + * error code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public InvalidRequestException(String errorCode, String errorMessage, MainResponseDTO response) { + super(errorCode, errorMessage); + this.mainResponseDto = response; } - public InvalidRequestException(String errorCode, String errorMessage, Throwable rootCause,MainResponseDTO response) { + + /** + * Constructs a new {@code InvalidRequestException} with the specified + * error code, error message, rootCause, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public InvalidRequestException(String errorCode, String errorMessage, Throwable rootCause, + MainResponseDTO response) { super(errorCode, errorMessage, rootCause); - this.mainResponseDto=response; + this.mainResponseDto = response; } - - - public InvalidRequestException(List exptionList,MainResponseDTO response) { - this.mainResponseDto=response; - this.exptionList=exptionList; + + /** + * Constructs a new {@code InvalidRequestException} with the specified + * exptionList, and response. + * + * @param exptionList the list of detailed exception information. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public InvalidRequestException(List exptionList, MainResponseDTO response) { + this.mainResponseDto = response; + this.exptionList = exptionList; } + - public InvalidRequestException(List exptionList,String operation,MainResponseDTO response) { - this.mainResponseDto=response; - this.exptionList=exptionList; - this.operation=operation; + /** + * Constructs a new {@code InvalidRequestException} with the specified + * exptionList, operation, and response. + * + * @param exptionList the list of detailed exception information. + * @param operation the operation during which the exception occurred. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public InvalidRequestException(List exptionList, String operation, + MainResponseDTO response) { + this.mainResponseDto = response; + this.exptionList = exptionList; + this.operation = operation; } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/InvalidRequestParameterException.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/InvalidRequestParameterException.java index da2314999fb..5a39370cd01 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/InvalidRequestParameterException.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/InvalidRequestParameterException.java @@ -9,6 +9,12 @@ import lombok.Setter; /** + * The InvalidRequestParameterException class represents an exception that + * occurs an invalid request parameter is encountered.. This class extends + * {@link BaseUncheckedException} and includes various constructors for + * different use cases, as well as a {@link MainResponseDTO} and + * {@link ExceptionJSONInfoDTO} object for additional error information. + * * @author M1046129 * */ @@ -16,38 +22,81 @@ @Getter @Setter public class InvalidRequestParameterException extends BaseUncheckedException { + /** The Constant serialVersionUID. */ + private static final long serialVersionUID = 1L; - /** - * - */ - private static final long serialVersionUID = -3898906527162403384L; - + /** The main response DTO associated with the exception. */ private MainResponseDTO mainResponseDto; + + /** List of detailed exception information. */ private List exptionList; + + /** The operation during which the exception occurred. */ private String operation; - + + /** + * Default constructor. + */ public InvalidRequestParameterException() { super(); } - public InvalidRequestParameterException(String errCode, String errMessage,MainResponseDTO response) { - super(errCode, errMessage); - this.mainResponseDto=response; + /** + * Constructs a new {@code InvalidRequestParameterException} with the specified + * error code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public InvalidRequestParameterException(String errorCode, String errorMessage, MainResponseDTO response) { + super(errorCode, errorMessage); + this.mainResponseDto = response; } - public InvalidRequestParameterException(String errorCode, String errorMessage, Throwable rootCause,MainResponseDTO response) { + + /** + * Constructs a new {@code InvalidRequestParameterException} with the specified + * error code, error message, rootCause, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public InvalidRequestParameterException(String errorCode, String errorMessage, Throwable rootCause, + MainResponseDTO response) { super(errorCode, errorMessage, rootCause); - this.mainResponseDto=response; + this.mainResponseDto = response; } - - - public InvalidRequestParameterException(List exptionList,MainResponseDTO response) { - this.mainResponseDto=response; - this.exptionList=exptionList; + + /** + * Constructs a new {@code InvalidRequestParameterException} with the specified + * exptionList, and response. + * + * @param exptionList the list of detailed exception information. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public InvalidRequestParameterException(List exptionList, MainResponseDTO response) { + this.mainResponseDto = response; + this.exptionList = exptionList; } - - public InvalidRequestParameterException(List exptionList,String operation,MainResponseDTO response) { - this.mainResponseDto=response; - this.exptionList=exptionList; - this.operation=operation; + + /** + * Constructs a new {@code InvalidRequestParameterException} with the specified + * exptionList, operation, and response. + * + * @param exptionList the list of detailed exception information. + * @param operation the operation during which the exception occurred. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public InvalidRequestParameterException(List exptionList, String operation, + MainResponseDTO response) { + this.mainResponseDto = response; + this.exptionList = exptionList; + this.operation = operation; } } diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/LoginServiceException.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/LoginServiceException.java index c3579b3a5ef..f46e8fe542e 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/LoginServiceException.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/LoginServiceException.java @@ -8,32 +8,33 @@ import io.mosip.kernel.core.exception.BaseUncheckedException; import io.mosip.kernel.core.exception.ServiceError; - +import lombok.Getter; /** - * - * This class defines the LoginServiceException + * The LoginServiceException class represents an exception that occurs when + * Login service throws error. This class extends {@link BaseUncheckedException} + * and includes various constructors for different use cases. * * @author Kishan Rathore * @since 1.0.0 * */ +@Getter public class LoginServiceException extends BaseUncheckedException { + /** The Constant serialVersionUID. */ + private static final long serialVersionUID = 1L; + + /** The List of Exception as ServiceError. */ + private List validationErrorList; /** + * Constructs a new {@code LoginServiceException} with the specified + * validationErrorList * + * @param validationErrorList The List of Exception as ServiceError. */ - private static final long serialVersionUID = 1L; - - private List validationErrorList; - - - public List getValidationErrorList() { - return validationErrorList; - } - public LoginServiceException(List validationErrorList) { + super(); this.validationErrorList = validationErrorList; } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/MasterDataNotAvailableException.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/MasterDataNotAvailableException.java index 87d2fc8c2bc..a3538551605 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/MasterDataNotAvailableException.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/MasterDataNotAvailableException.java @@ -4,38 +4,85 @@ import io.mosip.preregistration.core.common.dto.MainResponseDTO; import lombok.Getter; +/** + * The MasterDataNotAvailableException class represents an exception that occurs + * when Master data not available. This class extends + * {@link BaseUncheckedException} and includes various constructors for + * different use cases, as well as a {@link MainResponseDTO} object for + * additional error information. + * + */ @Getter public class MasterDataNotAvailableException extends BaseUncheckedException { + /** The Constant serialVersionUID. */ + private static final long serialVersionUID = 1L; + + /** The main response DTO associated with the exception. */ + private MainResponseDTO mainResponseDTO; /** - * + * Default Constructor */ - private static final long serialVersionUID = -2782261618399872549L; - private MainResponseDTO mainResponseDTO; + public MasterDataNotAvailableException() { + super(); + } - public MasterDataNotAvailableException(String msg) { - super("", msg); + /** + * Constructs a new {@code MasterDataNotAvailableException} with the specified error + * errorMessage + * + * @param errorMessage the detailed error errorMessage. + */ + public MasterDataNotAvailableException(String errorMessage) { + super("", errorMessage); } - public MasterDataNotAvailableException(String msg, Throwable cause) { - super("", msg, cause); + /** + * Constructs a new {@code MasterDataNotAvailableException} with the specified error + * message, and rootCause. + * + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. + */ + public MasterDataNotAvailableException(String errorMessage, Throwable rootCause) { + super("", errorMessage, rootCause); } + /** + * Constructs a new {@code MasterDataNotAvailableException} with the specified error + * code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + */ public MasterDataNotAvailableException(String errorCode, String errorMessage) { super(errorCode, errorMessage, null); } - public MasterDataNotAvailableException(String errorCode, String errorMessage,MainResponseDTO response) { + /** + * Constructs a new {@code MasterDataNotAvailableException} with the specified error + * code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public MasterDataNotAvailableException(String errorCode, String errorMessage, MainResponseDTO response) { super(errorCode, errorMessage, null); - this.mainResponseDTO=response; + this.mainResponseDTO = response; } + /** + * Constructs a new {@code MasterDataNotAvailableException} with the specified error + * code, error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. + */ public MasterDataNotAvailableException(String errorCode, String errorMessage, Throwable rootCause) { super(errorCode, errorMessage, rootCause); } - - public MasterDataNotAvailableException() { - super(); - } } diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/NotificationException.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/NotificationException.java index 8b0de091184..34aba71f39e 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/NotificationException.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/NotificationException.java @@ -7,49 +7,85 @@ import io.mosip.preregistration.core.common.dto.MainResponseDTO; import lombok.Getter; +/** + * The NotificationException class represents an exception that occurs when + * Notification error occurs. This class extends {@link BaseUncheckedException} + * and includes various constructors for different use cases, as well as a + * {@link MainResponseDTO} object for additional error information. + * + */ @Getter public class NotificationException extends BaseUncheckedException { + /** The Constant serialVersionUID. */ + private static final long serialVersionUID = 1L; - /** - * - */ - private static final long serialVersionUID = 8039562312343751179L; - + /** The main response DTO associated with the exception. */ + private MainResponseDTO mainResponseDTO; - -private List validationErrorList; - private MainResponseDTO mainResponseDTO; + /** The List of exception as ServiceError */ + private List validationErrorList; - public List getValidationErrorList() { - return validationErrorList; + /** + * Default Constructor + */ + public NotificationException() { + super(); } - public NotificationException(List validationErrorList,MainResponseDTO response) { + /** + * Constructs a new {@code NotificationException} with the specified + * validationErrorList, and response. + * + * @param validationErrorList The List of exception as ServiceError. + * @param response the {@link MainResponseDTO} object containing + * additional information about the error. + */ + public NotificationException(List validationErrorList, MainResponseDTO response) { this.validationErrorList = validationErrorList; - this.mainResponseDTO=response; - } - - public MainResponseDTO getMainResposneDTO() { - return mainResponseDTO; - } - public NotificationException() { - super(); + this.mainResponseDTO = response; } - public NotificationException(String arg0, String arg1, Throwable arg2,MainResponseDTO response) { - super(arg0, arg1, arg2); - this.mainResponseDTO=response; + /** + * Constructs a new {@code NotificationException} with the specified error code, + * error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public NotificationException(String errorCode, String errorMessage, Throwable rootCause, + MainResponseDTO response) { + super(errorCode, errorMessage, rootCause); + this.mainResponseDTO = response; } - public NotificationException(String errorCode, String errorMessage,MainResponseDTO response) { + /** + * Constructs a new {@code NotificationException} with the specified error code, + * error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public NotificationException(String errorCode, String errorMessage, MainResponseDTO response) { super(errorCode, errorMessage); - this.mainResponseDTO=response; + this.mainResponseDTO = response; } - public NotificationException(String errorMessage,MainResponseDTO response) { + /** + * Constructs a new {@code NotificationException} with the specified error + * message, and response. + * + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public NotificationException(String errorMessage, MainResponseDTO response) { super(errorMessage); - this.mainResponseDTO=response; + this.mainResponseDTO = response; } -} - +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/PreIdInvalidForUserIdException.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/PreIdInvalidForUserIdException.java index 1864f106a02..d2f76db6676 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/PreIdInvalidForUserIdException.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/PreIdInvalidForUserIdException.java @@ -5,6 +5,12 @@ import lombok.Getter; /** + * The PreIdInvalidForUserIdException class represents an exception that occurs + * when the pre-registration ID is invalid for the given user ID. This class + * extends {@link BaseUncheckedException} and includes various constructors for + * different use cases, as well as a {@link MainResponseDTO} object for + * additional error information. + * * @author Jagadishwari * @since 1.0.0 * @@ -14,6 +20,9 @@ public class PreIdInvalidForUserIdException extends BaseUncheckedException { /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; + /** The main response DTO associated with the exception. */ + private MainResponseDTO mainresponseDTO; + /** * Default constructore */ @@ -21,31 +30,35 @@ public PreIdInvalidForUserIdException() { super(); } - private MainResponseDTO mainresponseDTO; - /** - * @param errorMessage - * pass the error message + * Constructs a new {@code PreIdInvalidForUserIdException} with the specified + * error errorMessage + * + * @param errorMessage the detailed error errorMessage. */ public PreIdInvalidForUserIdException(String errorMessage) { super("", errorMessage); } /** - * @param errorCode - * pass the error code - * @param errorMessage - * pass the error message + * Constructs a new {@code PreIdInvalidForUserIdException} with the specified + * error code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. */ public PreIdInvalidForUserIdException(String errorCode, String errorMessage) { super(errorCode, errorMessage, null); } /** - * @param errorCode - * pass the error code - * @param errorMessage - * pass the error message + * Constructs a new {@code PreIdInvalidForUserIdException} with the specified + * error code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ public PreIdInvalidForUserIdException(String errorCode, String errorMessage, MainResponseDTO response) { super(errorCode, errorMessage, null); @@ -53,24 +66,25 @@ public PreIdInvalidForUserIdException(String errorCode, String errorMessage, Mai } /** - * @param errorMessage - * pass the error message - * @param rootCause - * pass the cause + * Constructs a new {@code PreIdInvalidForUserIdException} with the specified + * error message, and rootCause. + * + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ public PreIdInvalidForUserIdException(String errorMessage, Throwable rootCause) { super("", errorMessage, rootCause); } /** - * @param errorCode - * pass the error code - * @param errorMessage - * pass the error message - * @param rootCause - * pass the cause + * Constructs a new {@code PreIdInvalidForUserIdException} with the specified + * error code, error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ public PreIdInvalidForUserIdException(String errorCode, String errorMessage, Throwable rootCause) { super(errorCode, errorMessage, rootCause); } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/PreRegistrationException.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/PreRegistrationException.java index 6b196464e17..ab6cfb55188 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/PreRegistrationException.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/PreRegistrationException.java @@ -4,55 +4,67 @@ import io.mosip.preregistration.core.common.dto.MainResponseDTO; import lombok.Getter; +/** + * The PreRegistrationException class represents an exception that occurs when + * Pre Registration process occurs. This class extends + * {@link BaseUncheckedException} and includes various constructors for + * different use cases, as well as a {@link MainResponseDTO} object for + * additional error information. + * + */ + @Getter public class PreRegistrationException extends BaseUncheckedException { + /** The Constant serialVersionUID. */ + private static final long serialVersionUID = 1L; - /** - * - */ - private static final long serialVersionUID = -2195117679715213502L; - + /** The main response DTO associated with the exception. */ private MainResponseDTO mainresponseDTO; /** - * @param msg - * pass the error message + * Constructs a new {@code PreRegistrationException} with the specified error + * errorMessage + * + * @param errorMessage the detailed error errorMessage. */ - public PreRegistrationException(String msg) { - super("", msg); + public PreRegistrationException(String errorMessage) { + super("", errorMessage); } /** - * @param errCode - * pass the error code - * @param msg - * pass the error message + * Constructs a new {@code PreRegistrationException} with the specified error + * code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. */ - public PreRegistrationException(String errCode, String msg) { - super(errCode, msg); + public PreRegistrationException(String errorCode, String errorMessage) { + super(errorCode, errorMessage); } /** - * @param errCode - * pass the error code - * @param msg - * pass the error message + * Constructs a new {@code TableNotAccessibleException} with the specified error + * code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. */ - public PreRegistrationException(String errCode, String msg, MainResponseDTO response) { - super(errCode, msg); + public PreRegistrationException(String errorCode, String errorMessage, MainResponseDTO response) { + super(errorCode, errorMessage); this.mainresponseDTO = response; } /** - * @param errCode - * pass the error code - * @param msg - * pass the error message - * @param cause - * pass the cause + * Constructs a new {@code TableNotAccessibleException} with the specified error + * code, error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ - public PreRegistrationException(String errCode, String msg, Throwable cause) { - super(errCode, msg, cause); + public PreRegistrationException(String errorCode, String errorMessage, Throwable rootCause) { + super(errorCode, errorMessage, rootCause); } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/RecordFailedToDeleteException.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/RecordFailedToDeleteException.java index b212627f702..ddf73fa610b 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/RecordFailedToDeleteException.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/RecordFailedToDeleteException.java @@ -9,7 +9,11 @@ import lombok.Getter; /** - * This class defines the RecordFailedToDeleteException + * The RecordFailedToDeleteException class represents an exception that occurs + * when record fails to delete. This class extends + * {@link BaseUncheckedException} and includes various constructors for + * different use cases, as well as a {@link MainResponseDTO} object for + * additional error information. * * @author Rajath KR * @since 1.0.0 @@ -20,7 +24,10 @@ public class RecordFailedToDeleteException extends BaseUncheckedException { /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; + + /** The main response DTO associated with the exception. */ private MainResponseDTO mainResponseDTO; + /** * Default constructor */ @@ -29,39 +36,60 @@ public RecordFailedToDeleteException() { } /** - * @param errorMessage pass the error message + * Constructs a new {@code RecordFailedToDeleteException} with the specified error + * errorMessage + * + * @param errorMessage the detailed error errorMessage. */ public RecordFailedToDeleteException(String errorMessage) { super("", errorMessage); } /** - * @param errorCode pass the error code - * @param errorMessage pass the error message + * Constructs a new {@code RecordFailedToDeleteException} with the specified error + * code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. */ public RecordFailedToDeleteException(String errorCode, String errorMessage) { super(errorCode, errorMessage, null); } - - public RecordFailedToDeleteException(String errorCode, String errorMessage,MainResponseDTO response) { + + /** + * Constructs a new {@code RecordFailedToDeleteException} with the specified error + * code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public RecordFailedToDeleteException(String errorCode, String errorMessage, MainResponseDTO response) { super(errorCode, errorMessage, null); - this.mainResponseDTO=response; + this.mainResponseDTO = response; } /** - * @param errorMessage pass the error message - * @param rootCause pass the cause + * Constructs a new {@code RecordFailedToDeleteException} with the specified error + * message, and rootCause. + * + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ public RecordFailedToDeleteException(String errorMessage, Throwable rootCause) { super("", errorMessage, rootCause); } /** - * @param errorCode pass the error code - * @param errorMessage pass the error message - * @param rootCause pass the cause + * Constructs a new {@code RecordFailedToDeleteException} with the specified error + * code, error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. */ public RecordFailedToDeleteException(String errorCode, String errorMessage, Throwable rootCause) { super(errorCode, errorMessage, rootCause); } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/RestCallException.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/RestCallException.java index d0fd301fc5e..0a481586b8b 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/RestCallException.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/RestCallException.java @@ -5,38 +5,86 @@ import lombok.Getter; /** + * The TablenotAccessibleException class represents an exception that occurs + * system is not able to access registration table. This class extends + * {@link BaseUncheckedException} and includes various constructors for + * different use cases, as well as a {@link MainResponseDTO} object for + * additional error information. + * * @author M1046129 * */ @Getter public class RestCallException extends BaseUncheckedException { - + /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; + + /** The main response DTO associated with the exception. */ private MainResponseDTO mainResponseDTO; - public RestCallException(String msg) { - super("", msg); + /** + * Default Constructor + */ + public RestCallException() { + super(); + } + + /** + * Constructs a new {@code RestCallException} with the specified error + * errorMessage + * + * @param errorMessage the detailed error errorMessage. + */ + public RestCallException(String errorMessage) { + super("", errorMessage); } - public RestCallException(String msg, Throwable cause) { - super("", msg, cause); + /** + * Constructs a new {@code RestCallException} with the specified error + * message, and rootCause. + * + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. + */ + public RestCallException(String errorMessage, Throwable rootCause) { + super("", errorMessage, rootCause); } + /** + * Constructs a new {@code RestCallException} with the specified error + * code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + */ public RestCallException(String errorCode, String errorMessage) { super(errorCode, errorMessage, null); } - - public RestCallException(String errorCode, String errorMessage,MainResponseDTO response) { + + /** + * Constructs a new {@code RestCallException} with the specified error + * code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public RestCallException(String errorCode, String errorMessage, MainResponseDTO response) { super(errorCode, errorMessage, null); - this.mainResponseDTO=response; + this.mainResponseDTO = response; } + /** + * Constructs a new {@code RestCallException} with the specified error + * code, error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. + */ public RestCallException(String errorCode, String errorMessage, Throwable rootCause) { super(errorCode, errorMessage, rootCause); } - - public RestCallException() { - super(); - } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/TableNotAccessibleException.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/TableNotAccessibleException.java index 7d398fa7092..541d75fd895 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/TableNotAccessibleException.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/TableNotAccessibleException.java @@ -7,37 +7,84 @@ import lombok.Setter; /** - * TablenotAccessibleException occurs when system is not able to access registration table. + * The TablenotAccessibleException class represents an exception that occurs + * system is not able to access registration table. This class extends + * {@link BaseUncheckedException} and includes various constructors for + * different use cases, as well as a {@link MainResponseDTO} object for + * additional error information. * */ @Setter @Getter public class TableNotAccessibleException extends BaseUncheckedException { - + /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; + + /** The main response DTO associated with the exception. */ private MainResponseDTO mainResposneDTO; + /** + * Default Constructor + */ public TableNotAccessibleException() { super(); } - public TableNotAccessibleException(String message) { - super(PreIssuanceExceptionCodes.TABLE_NOT_FOUND_EXCEPTION, message); + /** + * Constructs a new {@code TableNotAccessibleException} with the specified error + * errorMessage + * + * @param errorMessage the detailed error errorMessage. + */ + public TableNotAccessibleException(String errorMessage) { + super(PreIssuanceExceptionCodes.TABLE_NOT_FOUND_EXCEPTION, errorMessage); } - public TableNotAccessibleException(String message, Throwable cause) { - super(PreIssuanceExceptionCodes.TABLE_NOT_FOUND_EXCEPTION+ EMPTY_SPACE, message, cause); + /** + * Constructs a new {@code TableNotAccessibleException} with the specified error + * message, and rootCause. + * + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. + */ + public TableNotAccessibleException(String errorMessage, Throwable rootCause) { + super(PreIssuanceExceptionCodes.TABLE_NOT_FOUND_EXCEPTION + EMPTY_SPACE, errorMessage, rootCause); } - - public TableNotAccessibleException(String errorCode,String message) { - super(errorCode, message); + + /** + * Constructs a new {@code TableNotAccessibleException} with the specified error + * code and error message. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + */ + public TableNotAccessibleException(String errorCode, String errorMessage) { + super(errorCode, errorMessage); } - public TableNotAccessibleException(String errorCode,String message, MainResponseDTO response) { - super(errorCode, message); - this.mainResposneDTO=response; + + /** + * Constructs a new {@code TableNotAccessibleException} with the specified error + * code, error message, and response. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param response the {@link MainResponseDTO} object containing additional + * information about the error. + */ + public TableNotAccessibleException(String errorCode, String errorMessage, MainResponseDTO response) { + super(errorCode, errorMessage); + this.mainResposneDTO = response; } - - public TableNotAccessibleException(String errorCode,String message, Throwable cause) { - super(errorCode, message, cause); + + /** + * Constructs a new {@code TableNotAccessibleException} with the specified error + * code, error message, and rootCause. + * + * @param errorCode the error code representing the specific error condition. + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. + */ + public TableNotAccessibleException(String errorCode, String errorMessage, Throwable rootCause) { + super(errorCode, errorMessage, rootCause); } } \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/UserAlreadyExistsException.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/UserAlreadyExistsException.java index aa0c1150c8a..5c65a70befb 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/UserAlreadyExistsException.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/UserAlreadyExistsException.java @@ -4,22 +4,41 @@ import io.mosip.preregistration.core.exception.util.PreIssuanceExceptionCodes; /** - * UserAlreadyExists occurs when the user already registered + * The UserAlreadyExistsException class represents an exception that occurs when + * the user already registered. This class extends + * {@link BaseUncheckedException} and includes various constructors for + * different use case. * */ public class UserAlreadyExistsException extends BaseUncheckedException { - + /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; + /** + * Default Constructor + */ public UserAlreadyExistsException() { super(); } - public UserAlreadyExistsException(String message) { - super(PreIssuanceExceptionCodes.USER_ALREADY_EXIST, message); + /** + * Constructs a new {@code UserAlreadyExistsException} with the specified + * error errorMessage + * + * @param errorMessage the detailed error errorMessage. + */ + public UserAlreadyExistsException(String errorMessage) { + super(PreIssuanceExceptionCodes.USER_ALREADY_EXIST, errorMessage); } - public UserAlreadyExistsException(String message, Throwable cause) { - super(PreIssuanceExceptionCodes.USER_ALREADY_EXIST, message, cause); + /** + * Constructs a new {@code UserNameNotValidException} with the specified + * error message, and rootCause. + * + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. + */ + public UserAlreadyExistsException(String errorMessage, Throwable rootCause) { + super(PreIssuanceExceptionCodes.USER_ALREADY_EXIST, errorMessage, rootCause); } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/UserNameNotValidException.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/UserNameNotValidException.java index ebea634fefd..f371b2d6583 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/UserNameNotValidException.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/exception/UserNameNotValidException.java @@ -4,22 +4,45 @@ import io.mosip.preregistration.core.exception.util.PreIssuanceExceptionCodes; /** - * UserNameNotValidException occurs when the user name is not valid - * + * The UserNameNotValidException class represents an exception that occurs + * when the user name is not valid. This class extends + * {@link BaseUncheckedException} and includes various constructors for + * different use case. + * + * @author Rajath KR + * @since 1.0.0 + * */ -public class UserNameNotValidException extends BaseUncheckedException { +public class UserNameNotValidException extends BaseUncheckedException { + /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; + /** + * Default Constructor + */ public UserNameNotValidException() { super(); } - public UserNameNotValidException(String message) { - super(PreIssuanceExceptionCodes.INVALID_USER_NAME, message); + /** + * Constructs a new {@code UserNameNotValidException} with the specified + * error errorMessage + * + * @param errorMessage the detailed error errorMessage. + */ + public UserNameNotValidException(String errorMessage) { + super(PreIssuanceExceptionCodes.INVALID_USER_NAME, errorMessage); } - public UserNameNotValidException(String message, Throwable cause) { - super(PreIssuanceExceptionCodes.INVALID_USER_NAME, message, cause); + /** + * Constructs a new {@code UserNameNotValidException} with the specified + * error message, and rootCause. + * + * @param errorMessage the detailed error message. + * @param rootCause the cause of the error. + */ + public UserNameNotValidException(String errorMessage, Throwable rootCause) { + super(PreIssuanceExceptionCodes.INVALID_USER_NAME, errorMessage, rootCause); } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/AuditLogUtil.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/AuditLogUtil.java index 1a13e07e949..879374337b7 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/AuditLogUtil.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/AuditLogUtil.java @@ -7,7 +7,7 @@ import java.time.LocalDateTime; import java.time.ZoneId; -import javax.annotation.PostConstruct; +import jakarta.annotation.PostConstruct; import org.apache.commons.lang3.exception.ExceptionUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -143,7 +143,7 @@ public boolean callAuditManager(AuditRequestDto auditRequestDto) { RequestWrapper requestKernel = new RequestWrapper<>(); requestKernel.setRequest(auditRequestDto); HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON_UTF8); + headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity> requestEntity = new HttpEntity<>(requestKernel, headers); String uriBuilder = builder.build().encode(StandardCharsets.UTF_8).toUriString(); @@ -254,7 +254,10 @@ public boolean callAuditManager(AuditRequestDto auditRequestDto, HttpHeaders hea HttpMethod.POST, requestEntity, new ParameterizedTypeReference>() { }); - auditFlag = responseEntity2.getBody().getResponse().isStatus(); + ResponseWrapper body = responseEntity2.getBody(); + if (body != null) { + auditFlag = body.getResponse().isStatus(); + } } catch (HttpClientErrorException ex) { log.error("sessionId", "idType", "id", "In callAuditManager method of AugitLogUtil Util for HttpClientErrorException- " diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/BaseValidator.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/BaseValidator.java index e3fcaa0fe9c..4e1a5414bfd 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/BaseValidator.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/BaseValidator.java @@ -6,7 +6,7 @@ import java.util.Map; import java.util.Objects; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; @@ -81,14 +81,17 @@ protected void validateReqTime(Date reqTime, Errors errors) { * the errors */ protected void validateVersion(String ver, Errors errors) { + String envVersion = env.getProperty("version"); if (Objects.isNull(ver)) { mosipLogger.error("", "", "validateVersion", "version is null"); errors.rejectValue(VER, ErrorCodes.PRG_CORE_REQ_002.toString(), String.format(ErrorMessages.INVALID_REQUEST_VERSION.getMessage(), VER)); - } else if (!env.getProperty("version").equalsIgnoreCase(ver)) { - mosipLogger.error("", "", "validateVersion", "version is not correct"); - errors.rejectValue(VER, ErrorCodes.PRG_CORE_REQ_002.toString(), - String.format(ErrorMessages.INVALID_REQUEST_VERSION.getMessage(), VER)); + } else if (envVersion !=null) { + if (!envVersion.equalsIgnoreCase(ver)) { + mosipLogger.error("", "", "validateVersion", "version is not correct"); + errors.rejectValue(VER, ErrorCodes.PRG_CORE_REQ_002.toString(), + String.format(ErrorMessages.INVALID_REQUEST_VERSION.getMessage(), VER)); + } } } diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/CryptoUtil.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/CryptoUtil.java index 272dc6491fc..08b1801087f 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/CryptoUtil.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/CryptoUtil.java @@ -79,12 +79,15 @@ public byte[] encrypt(byte[] originalInput, LocalDateTime localDateTime) { new ParameterizedTypeReference>() { }); log.info("sessionId", "idType", "id", "encrypt response of " + response); - - if (!(response.getBody().getErrors() == null || response.getBody().getErrors().isEmpty())) { - throw new EncryptionFailedException(response.getBody().getErrors(), null); + ResponseWrapper body = response.getBody(); + if (body != null) { + if (!(body.getErrors() == null || body.getErrors().isEmpty())) { + throw new EncryptionFailedException(body.getErrors(), null); + } + if (body.getResponse() != null) { + encryptedBytes = body.getResponse().getData().getBytes(); + } } - encryptedBytes = response.getBody().getResponse().getData().getBytes(); - } catch (Exception ex) { log.debug("sessionId", "idType", "id", ExceptionUtils.getStackTrace(ex)); log.error("sessionId", "idType", "id", @@ -119,11 +122,15 @@ public byte[] decrypt(byte[] originalInput, LocalDateTime localDateTime) { response = restTemplate.exchange(cryptoResourceUrl + "/decrypt", HttpMethod.POST, request, new ParameterizedTypeReference>() { }); - if (!(response.getBody().getErrors() == null || response.getBody().getErrors().isEmpty())) { - throw new EncryptionFailedException(response.getBody().getErrors(), null); + ResponseWrapper body = response.getBody(); + if (body != null) { + if (!(body.getErrors() == null || body.getErrors().isEmpty())) { + throw new EncryptionFailedException(body.getErrors(), null); + } + if (body.getResponse() != null) { + decodedBytes = Base64.decodeBase64(body.getResponse().getData().getBytes()); + } } - decodedBytes = Base64.decodeBase64(response.getBody().getResponse().getData().getBytes()); - } catch (Exception ex) { log.debug("sessionId", "idType", "id", ExceptionUtils.getStackTrace(ex)); log.error("sessionId", "idType", "id", diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/DataValidationUtil.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/DataValidationUtil.java index b42a415ae26..dadcc9cfb42 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/DataValidationUtil.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/DataValidationUtil.java @@ -4,7 +4,7 @@ import java.util.List; import java.util.Map; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/GenericUtil.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/GenericUtil.java index efa26a71254..af84ebdb0b4 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/GenericUtil.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/GenericUtil.java @@ -13,37 +13,36 @@ import io.mosip.preregistration.core.common.dto.MainRequestDTO; import io.mosip.preregistration.core.common.dto.MainResponseDTO; - public class GenericUtil { - + private GenericUtil() { } - + private static String dateTimeFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"; - + public static String getCurrentResponseTime() { return DateUtils.formatDate(new Date(System.currentTimeMillis()), dateTimeFormat); } - + /** * This method will return the MainResponseDTO with id and version * * @param mainRequestDto * @return MainResponseDTO */ - public MainResponseDTO getMainResponseDto(MainRequestDTO mainRequestDto ){ - MainResponseDTO response=new MainResponseDTO<>(); + public MainResponseDTO getMainResponseDto(MainRequestDTO mainRequestDto) { + MainResponseDTO response = new MainResponseDTO<>(); response.setId(mainRequestDto.getId()); response.setVersion(mainRequestDto.getVersion()); - + return response; } - - public static ResponseEntity> errorResponse(final T e,MainResponseDTO response){ - ExceptionJSONInfoDTO errorDetails = new ExceptionJSONInfoDTO(e.getErrorCode(), - e.getErrorText()); + + public static ResponseEntity> errorResponse(final T e, + MainResponseDTO response) { + ExceptionJSONInfoDTO errorDetails = new ExceptionJSONInfoDTO(e.getErrorCode(), e.getErrorText()); MainResponseDTO errorRes = response; - List errorList=new ArrayList<>(); + List errorList = new ArrayList<>(); errorList.add(errorDetails); errorRes.setErrors(errorList); errorRes.setResponsetime(getCurrentResponseTime()); diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/NotificationUtil.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/NotificationUtil.java index 8571a7cf1f0..6f5aaa12b7f 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/NotificationUtil.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/NotificationUtil.java @@ -55,6 +55,9 @@ public class NotificationUtil { @Value("${email.acknowledgement.subject.template}") private String emailAcknowledgementSubject; + @Value("${cancel.appointment.email.subject}") + private String cancelAppointmentEmailSubject; + @Value("${sms.acknowledgement.template}") private String smsAcknowledgement; @@ -75,16 +78,16 @@ public class NotificationUtil { private String dateTimeFormat; public MainResponseDTO notify(String notificationType, NotificationDTO acknowledgementDTO, - MultipartFile file) throws IOException { + MultipartFile file, String bookingType) throws IOException { log.info("sessionId", "idType", "id", "In notify method of NotificationUtil service:" + notificationType); MainResponseDTO response = new MainResponseDTO<>(); if (notificationType.equals(RequestCodes.SMS)) { - response = smsNotification(acknowledgementDTO); + response = smsNotification(bookingType, acknowledgementDTO); } if (notificationType.equals(RequestCodes.EMAIL)) { - response = emailNotification(acknowledgementDTO, null); + response = emailNotification(bookingType, acknowledgementDTO, null); } return response; @@ -98,8 +101,8 @@ public MainResponseDTO notify(String notificationType, * @return * @throws IOException */ - public MainResponseDTO emailNotification(NotificationDTO acknowledgementDTO, - MultipartFile file) throws IOException { + public MainResponseDTO emailNotification(String bookingType, + NotificationDTO acknowledgementDTO, MultipartFile file) throws IOException { log.info("sessionId", "idType", "id", "In emailNotification method of NotificationUtil service"); HttpEntity doc = null; String fileText = null; @@ -123,12 +126,12 @@ public MainResponseDTO emailNotification(NotificationDT // fileText.concat(System.lineSeparator() + System.lineSeparator()); } - String languageWiseTemplate = templateUtil.templateMerge(fileText, acknowledgementDTO, + String languageWiseTemplate = templateUtil.templateMerge(bookingType, fileText, acknowledgementDTO, (String) keyValuePair.getKey()); if (mergeTemplate == null) { mergeTemplate = languageWiseTemplate + System.lineSeparator(); } else { - mergeTemplate += System.lineSeparator() + languageWiseTemplate +System.lineSeparator(); + mergeTemplate += System.lineSeparator() + languageWiseTemplate + System.lineSeparator(); } } @@ -137,7 +140,12 @@ public MainResponseDTO emailNotification(NotificationDT MultiValueMap emailMap = new LinkedMultiValueMap<>(); emailMap.add("attachments", doc); emailMap.add("mailContent", mergeTemplate); - emailMap.add("mailSubject", getEmailSubject(acknowledgementDTO)); + if (acknowledgementDTO.getIsBatch() && cancelAppointmentEmailSubject != null) { + emailMap.add("mailSubject", + getEmailSubject(bookingType, acknowledgementDTO, cancelAppointmentEmailSubject)); + } else { + emailMap.add("mailSubject", getEmailSubject(bookingType, acknowledgementDTO, emailAcknowledgementSubject)); + } emailMap.add("mailTo", acknowledgementDTO.getEmailID()); HttpEntity> httpEntity = new HttpEntity<>(emailMap, headers); log.info("sessionId", "idType", "id", @@ -150,9 +158,12 @@ public MainResponseDTO emailNotification(NotificationDT throw new RestCallException(e.getMessage(), e.getCause()); } + ResponseWrapper body = resp.getBody(); NotificationResponseDTO notifierResponse = new NotificationResponseDTO(); - notifierResponse.setMessage(resp.getBody().getResponse().getMessage()); - notifierResponse.setStatus(resp.getBody().getResponse().getStatus()); + if (body != null) { + notifierResponse.setMessage(body.getResponse().getMessage()); + notifierResponse.setStatus(body.getResponse().getStatus()); + } response.setResponse(notifierResponse); response.setResponsetime(getCurrentResponseTime()); @@ -163,16 +174,18 @@ public MainResponseDTO emailNotification(NotificationDT * This method will give the email subject * * @param acknowledgementDTO - * @return + * @param templateTypeCode + * @return emailSubject * @throws IOException */ - public String getEmailSubject(NotificationDTO acknowledgementDTO) throws IOException { + public String getEmailSubject(String bookingType, NotificationDTO acknowledgementDTO, String templateTypeCode) + throws IOException { log.info("sessionId", "idType", "id", "In getEmailSubject method of NotificationUtil service"); String emailSubject = ""; int noOfLang = acknowledgementDTO.getFullName().size(); for (KeyValuePairDto keyValuePair : acknowledgementDTO.getFullName()) { - emailSubject = emailSubject + templateUtil.templateMerge( - templateUtil.getTemplate(keyValuePair.getKey(), emailAcknowledgementSubject), acknowledgementDTO, + emailSubject = emailSubject + templateUtil.templateMerge(bookingType, + templateUtil.getTemplate(keyValuePair.getKey(), templateTypeCode), acknowledgementDTO, (String) keyValuePair.getKey()); if (noOfLang > 1) { noOfLang--; @@ -189,8 +202,8 @@ public String getEmailSubject(NotificationDTO acknowledgementDTO) throws IOExcep * @return * @throws IOException */ - public MainResponseDTO smsNotification(NotificationDTO acknowledgementDTO) - throws IOException { + public MainResponseDTO smsNotification(String bookingType, + NotificationDTO acknowledgementDTO) throws IOException { log.info("sessionId", "idType", "id", "In smsNotification method of NotificationUtil service"); MainResponseDTO response = new MainResponseDTO<>(); ResponseEntity> resp = null; @@ -198,11 +211,11 @@ public MainResponseDTO smsNotification(NotificationDTO for (KeyValuePairDto keyValuePair : acknowledgementDTO.getFullName()) { String languageWiseTemplate = null; if (acknowledgementDTO.getIsBatch()) { - languageWiseTemplate = templateUtil.templateMerge( + languageWiseTemplate = templateUtil.templateMerge(bookingType, templateUtil.getTemplate(keyValuePair.getKey(), cancelAppoinment), acknowledgementDTO, (String) keyValuePair.getKey()); } else { - languageWiseTemplate = templateUtil.templateMerge( + languageWiseTemplate = templateUtil.templateMerge(bookingType, templateUtil.getTemplate(keyValuePair.getKey(), smsAcknowledgement), acknowledgementDTO, (String) keyValuePair.getKey()); } @@ -228,9 +241,12 @@ public MainResponseDTO smsNotification(NotificationDTO new ParameterizedTypeReference>() { }); + ResponseWrapper body = resp.getBody(); NotificationResponseDTO notifierResponse = new NotificationResponseDTO(); - notifierResponse.setMessage(resp.getBody().getResponse().getMessage()); - notifierResponse.setStatus(resp.getBody().getResponse().getStatus()); + if (body != null) { + notifierResponse.setMessage(body.getResponse().getMessage()); + notifierResponse.setStatus(body.getResponse().getStatus()); + } response.setResponse(notifierResponse); response.setResponsetime(getCurrentResponseTime()); return response; @@ -250,11 +266,14 @@ public MainResponseDTO getAppointmentDetails(String preR new ParameterizedTypeReference>() { }); log.debug("sessionId", "idType", "id", responseEntity.toString()); - if (responseEntity.getBody().getErrors() != null && !responseEntity.getBody().getErrors().isEmpty()) { - log.error("sessionId", "idType", "id", responseEntity.getBody().getErrors().toString()); - response.setErrors(responseEntity.getBody().getErrors()); - } else { - response.setResponse(responseEntity.getBody().getResponse()); + MainResponseDTO body = responseEntity.getBody(); + if (body != null) { + if (body.getErrors() != null && !body.getErrors().isEmpty()) { + log.error("sessionId", "idType", "id", body.getErrors().toString()); + response.setErrors(body.getErrors()); + } else { + response.setResponse(body.getResponse()); + } } log.info("sessionId", "idType", "id", "In call to booking rest service :" + url); } catch (Exception ex) { diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/TemplateUtil.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/TemplateUtil.java index 968c2bc3529..6dff1838455 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/TemplateUtil.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/TemplateUtil.java @@ -10,6 +10,7 @@ import java.time.ZoneId; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -20,6 +21,7 @@ import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.ParameterizedTypeReference; +import org.springframework.core.env.Environment; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; @@ -29,6 +31,7 @@ import io.mosip.kernel.core.logger.spi.Logger; import io.mosip.kernel.core.templatemanager.spi.TemplateManager; +import io.mosip.preregistration.core.code.BookingTypeCodes; import io.mosip.preregistration.core.common.dto.NotificationDTO; import io.mosip.preregistration.core.common.dto.RequestWrapper; import io.mosip.preregistration.core.common.dto.ResponseWrapper; @@ -53,7 +56,7 @@ public class TemplateUtil { @Value("${mosip.notification.timezone}") private String timeZone; - + /** * Autowired reference for {@link #restTemplateBuilder} */ @@ -64,15 +67,19 @@ public class TemplateUtil { @Autowired private TemplateManager templateManager; + @Autowired + private Environment env; + /** * This method is used for getting template * - * @param object + * @param langCode * @param templatetypecode * @return */ public String getTemplate(Object langCode, String templatetypecode) { + List response = new ArrayList(); String url = resourceUrl + "/" + (String) langCode + "/" + templatetypecode; HttpHeaders headers = new HttpHeaders(); HttpEntity> httpEntity = new HttpEntity<>(headers); @@ -80,11 +87,13 @@ public String getTemplate(Object langCode, String templatetypecode) { ResponseEntity> respEntity = restTemplate.exchange(url, HttpMethod.GET, httpEntity, new ParameterizedTypeReference>() { }); - - List response = respEntity.getBody().getResponse().getTemplates(); - - return response.get(0).getFileText().replaceAll("^\"|\"$", ""); - + String template = null; + ResponseWrapper body = respEntity.getBody(); + if (body != null) { + response = body.getResponse().getTemplates(); + } + template = response.get(0).getFileText().replaceAll("(^\")|(\"$)", ""); + return template; } /** @@ -95,11 +104,11 @@ public String getTemplate(Object langCode, String templatetypecode) { * @return * @throws IOException */ - public String templateMerge(String fileText, NotificationDTO acknowledgementDTO, String langCode) + public String templateMerge(String bookingType, String fileText, NotificationDTO acknowledgementDTO, String langCode) throws IOException { log.info("sessionId", "idType", "id", "In templateMerge method of TemplateUtil service "); String mergeTemplate = null; - Map map = mapSetting(langCode, acknowledgementDTO); + Map map = mapSetting(bookingType, langCode, acknowledgementDTO); InputStream templateInputStream = new ByteArrayInputStream(fileText.getBytes(Charset.forName("UTF-8"))); InputStream resultedTemplate = templateManager.merge(templateInputStream, map); @@ -115,7 +124,7 @@ public String templateMerge(String fileText, NotificationDTO acknowledgementDTO, * @param acknowledgementDTO * @return */ - public Map mapSetting(String langCode, NotificationDTO acknowledgementDTO) { + public Map mapSetting(String bookingType, String langCode, NotificationDTO acknowledgementDTO) { Map responseMap = new HashMap<>(); log.info("sessionId", "idType", "id", "In mapSetting method of TemplateUtil service {}", acknowledgementDTO); DateTimeFormatter dateFormate = DateTimeFormatter.ofPattern("dd MMM yyyy"); @@ -128,11 +137,13 @@ public Map mapSetting(String langCode, NotificationDTO acknowled responseMap.put("name", acknowledgementDTO.getFullName().stream().filter(name -> name.getKey().equals(langCode)) .map(name -> name.getValue()).collect(Collectors.toList()).get(0)); - responseMap.put("PRID", acknowledgementDTO.getPreRegistrationId()); + responseMap.put("ApplicationId", acknowledgementDTO.getPreRegistrationId()); responseMap.put("Date", dateFormate.format(now)); responseMap.put("Time", timeFormate.format(nowCountryTime)); responseMap.put("Appointmentdate", acknowledgementDTO.getAppointmentDate()); responseMap.put("Appointmenttime", acknowledgementDTO.getAppointmentTime()); + responseMap.put("ApplicationDetails", + getApplicationDetails(bookingType, langCode, acknowledgementDTO.getPreRegistrationId())); if (acknowledgementDTO.getRegistrationCenterName() != null) { responseMap.put("RegistrationCenterName", acknowledgementDTO.getRegistrationCenterName().stream() @@ -148,4 +159,37 @@ public Map mapSetting(String langCode, NotificationDTO acknowled return responseMap; } + /** + * This method will give ApplicationDetails based on Booking Type, Language by + * applicationId + * + * @param langCode + * @param applicationId + * @return applicationDetails + */ + public String getApplicationDetails(String bookingType, String langCode, String applicationId) { + String applicationDetails = null; + try { + if (bookingType.equals(BookingTypeCodes.NEW_PREREGISTRATION.toString())) { + String str = "mosip.prereg.applicationdetails"; + str += "." + langCode; + applicationDetails = env.getProperty(str); + } else if (bookingType.equals(BookingTypeCodes.UPDATE_REGISTRATION.toString())) { + String str = "mosip.updateregistration.applicationdetails"; + str += "." + langCode; + applicationDetails = env.getProperty(str); + } else if (bookingType.equals(BookingTypeCodes.LOST_FORGOTTEN_UIN.toString())) { + String str = "mosip.lostuin.applicationdetails"; + str += "." + langCode; + applicationDetails = env.getProperty(str); + } + log.info("Application Details : {} Based on Booking Type: {} by Application Id:{}", applicationDetails, + bookingType, applicationId); + } catch (Exception ex) { + log.error("Error while Getting the ApplicationDetails for applicationId ", applicationId); + log.error("Exception trace", ex); + } + return applicationDetails; + } + } diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/ValidationUtil.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/ValidationUtil.java index 0cd763efcfa..92a2dffb0c7 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/ValidationUtil.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/core/util/ValidationUtil.java @@ -15,7 +15,7 @@ import java.util.Set; import java.util.stream.IntStream; -import javax.persistence.LockModeType; +import jakarta.persistence.LockModeType; import org.apache.commons.collections.map.MultiValueMap; import org.apache.commons.lang3.exception.ExceptionUtils; @@ -288,13 +288,15 @@ public Map getDocumentTypeNameByTypeCode(String langCode, String @SuppressWarnings("unchecked") ResponseWrapper>>> responseBody = restTemplate .getForObject(uri, ResponseWrapper.class); - if (Objects.isNull(responseBody.getErrors()) || responseBody.getErrors().isEmpty()) { - ArrayList> response = responseBody.getResponse().get(DOCUMENTS); - IntStream.range(0, response.size()).filter(index -> (Boolean) response.get(index).get(IS_ACTIVE)) - .forEach(index -> { - documentTypeMap.put(String.valueOf(response.get(index).get(CODE)), - String.valueOf(response.get(index).get(NAME))); - }); + if (responseBody != null) { + if (Objects.isNull(responseBody.getErrors()) || responseBody.getErrors().isEmpty()) { + ArrayList> response = responseBody.getResponse().get(DOCUMENTS); + IntStream.range(0, response.size()).filter(index -> (Boolean) response.get(index).get(IS_ACTIVE)) + .forEach(index -> { + documentTypeMap.put(String.valueOf(response.get(index).get(CODE)), + String.valueOf(response.get(index).get(NAME))); + }); + } } return documentTypeMap; } @@ -330,26 +332,25 @@ public void getAllDocCategoriesAndTypes() { uri + "&pageNumber=" + pageNo, HttpMethod.GET, entity, new ParameterizedTypeReference>>() { }); - - if (Objects.isNull(response.getBody().getErrors())) { - - PageDTO resp = response.getBody().getResponse(); - - totalPage = resp.getTotalPages(); - - resp.getData().stream().filter(docs -> docs.getIsActive()).forEach(activeDocs -> validDocsMap - .put(activeDocs.getDocCategoryCode(), activeDocs.getDocTypeCode())); - log.info("validDocsMap {}", validDocsMap); - } else { - log.debug("sessionId", "idType", "id", - "inside getAllDocCategories inside else preRegistrationId "); - log.debug("sessionId", "idType", "id", " cat code" + response.getBody().getErrors().toString()); - throw new MasterDataNotAvailableException(response.getBody().getErrors().get(0).getErrorCode(), - response.getBody().getErrors().get(0).getMessage()); + ResponseWrapper> body = response.getBody(); + if (body != null) { + if (body.getErrors() != null && !body.getErrors().isEmpty()) { + log.debug("sessionId", "idType", "id", + "inside getAllDocCategories inside else preRegistrationId "); + log.debug("sessionId", "idType", "id", " cat code" + body.getErrors().toString()); + throw new MasterDataNotAvailableException(body.getErrors().get(0).getErrorCode(), + body.getErrors().get(0).getMessage()); + } + PageDTO resp = body.getResponse(); + if (resp != null) { + totalPage = resp.getTotalPages(); + resp.getData().stream().filter(docs -> docs.getIsActive()).forEach(activeDocs -> validDocsMap + .put(activeDocs.getDocCategoryCode(), activeDocs.getDocTypeCode())); + } } pageNo++; } while (pageNo != totalPage); - + log.info("validDocsMap {}", validDocsMap); } catch (RestClientException e) { log.debug("sessionId", "idType", "id", "inside getAllDocCategories inside catch preRegistrationId "); log.debug("sessionId", "idType", "id", "---- " + ExceptionUtils.getStackTrace(e)); diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/demographic/dto/DemographicCreateResponseDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/demographic/dto/DemographicCreateResponseDTO.java index 856542f3988..86a209f7ba4 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/demographic/dto/DemographicCreateResponseDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/demographic/dto/DemographicCreateResponseDTO.java @@ -8,9 +8,8 @@ import org.json.simple.JSONObject; -import lombok.Getter; +import lombok.Data; import lombok.NoArgsConstructor; -import lombok.Setter; import lombok.ToString; /** @@ -21,8 +20,7 @@ * @since 1.0.0 * */ -@Getter -@Setter +@Data @NoArgsConstructor @ToString public class DemographicCreateResponseDTO implements Serializable { @@ -50,5 +48,4 @@ public class DemographicCreateResponseDTO implements Serializable { * Demographic Json details */ private JSONObject demographicDetails; - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/demographic/dto/DemographicMetadataDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/demographic/dto/DemographicMetadataDTO.java index a1ef9b0067c..419ba696004 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/demographic/dto/DemographicMetadataDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/demographic/dto/DemographicMetadataDTO.java @@ -7,9 +7,8 @@ import java.io.Serializable; import java.util.List; -import lombok.Getter; +import lombok.Data; import lombok.NoArgsConstructor; -import lombok.Setter; import lombok.ToString; /** @@ -19,8 +18,7 @@ * @since 1.0.0 */ -@Getter -@Setter +@Data @NoArgsConstructor @ToString public class DemographicMetadataDTO implements Serializable { @@ -35,4 +33,4 @@ public class DemographicMetadataDTO implements Serializable { private String noOfRecords; private String pageIndex; -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/demographic/dto/DemographicRequestDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/demographic/dto/DemographicRequestDTO.java index 93e6c2c347e..13991a2286e 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/demographic/dto/DemographicRequestDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/demographic/dto/DemographicRequestDTO.java @@ -8,9 +8,8 @@ import org.json.simple.JSONObject; -import lombok.Getter; +import lombok.Data; import lombok.NoArgsConstructor; -import lombok.Setter; import lombok.ToString; /** @@ -21,8 +20,7 @@ * @since 1.0.0 * */ -@Getter -@Setter +@Data @NoArgsConstructor @ToString public class DemographicRequestDTO implements Serializable { @@ -39,5 +37,4 @@ public class DemographicRequestDTO implements Serializable { * Demographic Json details */ private JSONObject demographicDetails; - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/demographic/dto/DemographicUpdateResponseDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/demographic/dto/DemographicUpdateResponseDTO.java index d3457d8a541..e93a7e0cca0 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/demographic/dto/DemographicUpdateResponseDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/demographic/dto/DemographicUpdateResponseDTO.java @@ -8,9 +8,8 @@ import org.json.simple.JSONObject; -import lombok.Getter; +import lombok.Data; import lombok.NoArgsConstructor; -import lombok.Setter; import lombok.ToString; /** @@ -21,8 +20,7 @@ * @since 1.0.0 * */ -@Getter -@Setter +@Data @NoArgsConstructor @ToString public class DemographicUpdateResponseDTO implements Serializable { @@ -50,5 +48,4 @@ public class DemographicUpdateResponseDTO implements Serializable { * Demographic Json details */ private JSONObject demographicDetails; - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/demographic/dto/DemographicViewDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/demographic/dto/DemographicViewDTO.java index 24c3c648600..470c64838b4 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/demographic/dto/DemographicViewDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/demographic/dto/DemographicViewDTO.java @@ -9,9 +9,8 @@ import org.json.simple.JSONObject; import io.mosip.preregistration.core.common.dto.BookingRegistrationDTO; -import lombok.Getter; +import lombok.Data; import lombok.NoArgsConstructor; -import lombok.Setter; import lombok.ToString; /** @@ -21,8 +20,7 @@ * @since 1.0.0 */ -@Getter -@Setter +@Data @NoArgsConstructor @ToString public class DemographicViewDTO implements Serializable { @@ -47,5 +45,4 @@ public class DemographicViewDTO implements Serializable { * Document response DTO */ private JSONObject demographicMetadata; - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/document/dto/DocumentCopyResponseDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/document/dto/DocumentCopyResponseDTO.java index 3e231661399..3d7ea62a02b 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/document/dto/DocumentCopyResponseDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/document/dto/DocumentCopyResponseDTO.java @@ -7,9 +7,8 @@ import java.io.Serializable; import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; +import lombok.Data; import lombok.NoArgsConstructor; -import lombok.Setter; import lombok.ToString; /** @@ -18,22 +17,21 @@ * @author Kishan Rathore * @since 1.0.0 */ -@Getter -@Setter +@Data @NoArgsConstructor @ToString public class DocumentCopyResponseDTO implements Serializable { /** The Constant serialVersionUID. */ private static final long serialVersionUID = 7070542323407937205L; - + /** * source PreRegistration Id */ @ApiModelProperty(value = "Source PreReg ID", position = 1) private String sourcePreRegId; /** - * source Document Id + * source Document Id */ @ApiModelProperty(value = "Source Document ID", position = 2) @@ -43,11 +41,10 @@ public class DocumentCopyResponseDTO implements Serializable { */ @ApiModelProperty(value = "Destination PreReg ID", position = 3) private String destPreRegId; - + /** * destination Document Id */ @ApiModelProperty(value = "Destination Document ID", position = 4) private String destDocumentId; - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/document/dto/DocumentRequestDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/document/dto/DocumentRequestDTO.java index b044eb98705..5a737861609 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/document/dto/DocumentRequestDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/document/dto/DocumentRequestDTO.java @@ -5,14 +5,12 @@ package io.mosip.preregistration.document.dto; import java.io.Serializable; -import java.util.Date; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.AllArgsConstructor; -import lombok.Getter; +import lombok.Data; import lombok.NoArgsConstructor; -import lombok.Setter; import lombok.ToString; /** @@ -21,8 +19,7 @@ * @author Kishan Rathore * @since 1.0.0 */ -@Getter -@Setter +@Data @NoArgsConstructor @ToString @AllArgsConstructor @@ -31,7 +28,6 @@ public class DocumentRequestDTO implements Serializable { /** The Constant serialVersionUID. */ private static final long serialVersionUID = 7070542323407937205L; - /** * Document Category */ @@ -52,5 +48,4 @@ public class DocumentRequestDTO implements Serializable { @JsonProperty("docReferenceNo") private String docReferenceNo; - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/document/dto/DocumentResponseDTO.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/document/dto/DocumentResponseDTO.java index aa2bad8e38b..725cae39963 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/document/dto/DocumentResponseDTO.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/document/dto/DocumentResponseDTO.java @@ -6,9 +6,8 @@ import java.io.Serializable; -import lombok.Getter; +import lombok.Data; import lombok.NoArgsConstructor; -import lombok.Setter; /** * This DTO class is used to accept the response values for document upload. @@ -16,8 +15,7 @@ * @author Kishan Rathore * @since 1.0.0 */ -@Getter -@Setter +@Data @NoArgsConstructor public class DocumentResponseDTO implements Serializable { @@ -48,5 +46,4 @@ public class DocumentResponseDTO implements Serializable { * Response Message */ private String docFileFormat; - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/document/dto/LoginUser.java b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/document/dto/LoginUser.java index 0369e02a73b..483296d7656 100644 --- a/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/document/dto/LoginUser.java +++ b/pre-registration/pre-registration-core/src/main/java/io/mosip/preregistration/document/dto/LoginUser.java @@ -14,9 +14,9 @@ */ @Data public class LoginUser { - private String clientId; + private String secretKey; - private String appId; -} + private String appId; +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/test/java/io/mosip/analytics/event/anonymous/service/test/AnonymousProfileServiceTest.java b/pre-registration/pre-registration-core/src/test/java/io/mosip/analytics/event/anonymous/service/test/AnonymousProfileServiceTest.java index 5ac060de5fe..efce6323c63 100644 --- a/pre-registration/pre-registration-core/src/test/java/io/mosip/analytics/event/anonymous/service/test/AnonymousProfileServiceTest.java +++ b/pre-registration/pre-registration-core/src/test/java/io/mosip/analytics/event/anonymous/service/test/AnonymousProfileServiceTest.java @@ -42,6 +42,9 @@ public class AnonymousProfileServiceTest { @Value("${mosip.utc-datetime-pattern}") private String utcDateTimePattern; + @Value("${mosip.preregistration.anonymous-profile-username}") + private String anonymousProfileUsername; + AnonymousProfileResponseDTO responseDto = new AnonymousProfileResponseDTO(); LocalDateTime currentDateTime = LocalDateTime.now(ZoneId.of("UTC")); @@ -70,9 +73,9 @@ public void saveAnonymousProfileTest() { requestEntity.setId(id); requestEntity.setProfile(requestDto.getProfileDetails()); - requestEntity.setCreatedBy(anonymousProfileService.authUserDetails().getUserId()); + requestEntity.setCreatedBy(anonymousProfileUsername); requestEntity.setCreateDateTime(currentDateTime); - requestEntity.setUpdatedBy(anonymousProfileService.authUserDetails().getUserId()); + requestEntity.setUpdatedBy(anonymousProfileUsername); requestEntity.setUpdateDateTime(currentDateTime); requestEntity.setIsDeleted(false); requestDto.setProfileDetails(profile); @@ -95,9 +98,9 @@ public void saveAnonymousProfileExceptionTest() throws Exception { requestEntity.setId(id); requestEntity.setProfile(requestDto.getProfileDetails()); - requestEntity.setCreatedBy(anonymousProfileService.authUserDetails().getUserId()); + requestEntity.setCreatedBy(anonymousProfileUsername); requestEntity.setCreateDateTime(currentDateTime); - requestEntity.setUpdatedBy(anonymousProfileService.authUserDetails().getUserId()); + requestEntity.setUpdatedBy(anonymousProfileUsername); requestEntity.setUpdateDateTime(currentDateTime); requestEntity.setIsDeleted(false); requestDto.setProfileDetails(profile); diff --git a/pre-registration/pre-registration-core/src/test/java/io/mosip/preregistration/core/config/TestConfig.java b/pre-registration/pre-registration-core/src/test/java/io/mosip/preregistration/core/config/TestConfig.java index dbf4c331b76..64e5442647c 100644 --- a/pre-registration/pre-registration-core/src/test/java/io/mosip/preregistration/core/config/TestConfig.java +++ b/pre-registration/pre-registration-core/src/test/java/io/mosip/preregistration/core/config/TestConfig.java @@ -7,9 +7,11 @@ import javax.net.ssl.SSLContext; -import org.apache.http.conn.ssl.SSLConnectionSocketFactory; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClients; +import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory; +import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; +import org.apache.hc.client5.http.impl.classic.HttpClients; +import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManagerBuilder; +import org.apache.hc.client5.http.io.HttpClientConnectionManager; import org.apache.http.ssl.TrustStrategy; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -21,54 +23,54 @@ public class TestConfig { @Bean public RestTemplate selfTokenRestTemplate() throws KeyManagementException, NoSuchAlgorithmException, KeyStoreException { - - TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true; + TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true; - SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom() - .loadTrustMaterial(null, acceptingTrustStrategy).build(); + SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy) + .build(); - SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext); + SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext); + HttpClientConnectionManager connectionManager = PoolingHttpClientConnectionManagerBuilder.create() + .setSSLSocketFactory(csf).build(); + CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(connectionManager).build(); + HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); - CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(csf).build(); - HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); - - requestFactory.setHttpClient(httpClient); - return new RestTemplate(requestFactory); + requestFactory.setHttpClient(httpClient); + return new RestTemplate(requestFactory); } @Bean - public RestTemplate restTemplate() - throws KeyManagementException, NoSuchAlgorithmException, KeyStoreException { - - TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true; + public RestTemplate restTemplate() throws KeyManagementException, NoSuchAlgorithmException, KeyStoreException { + TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true; - SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom() - .loadTrustMaterial(null, acceptingTrustStrategy).build(); + SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy) + .build(); - SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext); + SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext); - CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(csf).build(); - HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); + HttpClientConnectionManager connectionManager = PoolingHttpClientConnectionManagerBuilder.create() + .setSSLSocketFactory(csf).build(); + CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(connectionManager).build(); + HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); - requestFactory.setHttpClient(httpClient); - return new RestTemplate(requestFactory); + requestFactory.setHttpClient(httpClient); + return new RestTemplate(requestFactory); } @Bean - public RestTemplate plainRestTemplate() - throws KeyManagementException, NoSuchAlgorithmException, KeyStoreException { - - TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true; + public RestTemplate plainRestTemplate() throws KeyManagementException, NoSuchAlgorithmException, KeyStoreException { + TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true; - SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom() - .loadTrustMaterial(null, acceptingTrustStrategy).build(); + SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy) + .build(); - SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext); + SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext); - CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(csf).build(); - HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); + HttpClientConnectionManager connectionManager = PoolingHttpClientConnectionManagerBuilder.create() + .setSSLSocketFactory(csf).build(); + CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(connectionManager).build(); + HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); - requestFactory.setHttpClient(httpClient); - return new RestTemplate(requestFactory); + requestFactory.setHttpClient(httpClient); + return new RestTemplate(requestFactory); } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-core/src/test/java/io/mosip/preregistration/core/config/TestSecurityConfig.java b/pre-registration/pre-registration-core/src/test/java/io/mosip/preregistration/core/config/TestSecurityConfig.java index b8fba7530c8..d18d0135077 100644 --- a/pre-registration/pre-registration-core/src/test/java/io/mosip/preregistration/core/config/TestSecurityConfig.java +++ b/pre-registration/pre-registration-core/src/test/java/io/mosip/preregistration/core/config/TestSecurityConfig.java @@ -4,43 +4,45 @@ import java.util.Arrays; import java.util.List; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletResponse; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; +import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.builders.WebSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; -import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.provisioning.InMemoryUserDetailsManager; import org.springframework.security.web.AuthenticationEntryPoint; +import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.firewall.DefaultHttpFirewall; import org.springframework.security.web.firewall.HttpFirewall; @Configuration @EnableWebSecurity -@EnableGlobalMethodSecurity(prePostEnabled = true) -public class TestSecurityConfig extends WebSecurityConfigurerAdapter { - - - - - @Bean +@EnableMethodSecurity +public class TestSecurityConfig { + + @Bean public HttpFirewall defaultHttpFirewall() { return new DefaultHttpFirewall(); } - @Override - public void configure(WebSecurity webSecurity) throws Exception { - webSecurity.ignoring().antMatchers(allowedEndPoints()); - super.configure(webSecurity); + @Bean + protected SecurityFilterChain configureSecurityFilterChain(final HttpSecurity httpSecurity) throws Exception { + httpSecurity.authorizeHttpRequests(http -> http.anyRequest().permitAll()); + return httpSecurity.build(); + } + + @Bean + public WebSecurity configure(WebSecurity webSecurity) throws Exception { + webSecurity.ignoring().requestMatchers(allowedEndPoints()); webSecurity.httpFirewall(defaultHttpFirewall()); + return webSecurity; } private String[] allowedEndPoints() { @@ -49,13 +51,15 @@ private String[] allowedEndPoints() { "/*/configuration/security", "/*/swagger-resources/**", "/*/swagger-ui.html" }; } - @Override - protected void configure(final HttpSecurity httpSecurity) throws Exception { - httpSecurity.csrf().disable(); - httpSecurity.httpBasic().and().authorizeRequests().anyRequest().authenticated().and().sessionManagement() - .sessionCreationPolicy(SessionCreationPolicy.STATELESS).and().exceptionHandling() - .authenticationEntryPoint(unauthorizedEntryPoint()); - } + // @Bean + // protected HttpSecurity configure(final HttpSecurity httpSecurity) throws + // Exception { + // httpSecurity.csrf().disable(); + // httpSecurity.httpBasic().and().authorizeRequests().anyRequest().authenticated().and().sessionManagement() + // .sessionCreationPolicy(SessionCreationPolicy.STATELESS).and().exceptionHandling() + // .authenticationEntryPoint(unauthorizedEntryPoint()); + // return httpSecurity; + // } @Bean public AuthenticationEntryPoint unauthorizedEntryPoint() { diff --git a/pre-registration/pre-registration-core/src/test/java/io/mosip/preregistration/core/util/test/AuditLogUtilTest.java b/pre-registration/pre-registration-core/src/test/java/io/mosip/preregistration/core/util/test/AuditLogUtilTest.java index 3f7e030dda1..ec18582c093 100644 --- a/pre-registration/pre-registration-core/src/test/java/io/mosip/preregistration/core/util/test/AuditLogUtilTest.java +++ b/pre-registration/pre-registration-core/src/test/java/io/mosip/preregistration/core/util/test/AuditLogUtilTest.java @@ -7,6 +7,7 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.Mock; import org.mockito.Mockito; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; @@ -14,13 +15,19 @@ import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestContext; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.web.client.RestTemplate; +import org.springframework.web.context.WebApplicationContext; + +import com.fasterxml.jackson.databind.ObjectMapper; import io.mosip.preregistration.core.code.AuditLogVariables; import io.mosip.preregistration.core.common.dto.AuditRequestDto; import io.mosip.preregistration.core.common.dto.AuditResponseDto; import io.mosip.preregistration.core.common.dto.ResponseWrapper; +import io.mosip.preregistration.core.config.TestConfig; import io.mosip.preregistration.core.util.AuditLogUtil; import io.mosip.preregistration.core.util.RequestValidator; @@ -34,12 +41,13 @@ @RunWith(SpringRunner.class) @SpringBootTest @AutoConfigureMockMvc +@ContextConfiguration(classes = {ObjectMapper.class, AuditLogUtil.class, TestConfig.class, TestContext.class, WebApplicationContext.class }) public class AuditLogUtilTest { @Autowired AuditLogUtil auditUtil; - @MockBean + @Mock private RequestValidator validator; private AuditLogUtil auditLogUtilSpy; diff --git a/pre-registration/pre-registration-core/src/test/java/io/mosip/preregistration/core/util/test/CryptoUtilTest.java b/pre-registration/pre-registration-core/src/test/java/io/mosip/preregistration/core/util/test/CryptoUtilTest.java index af9ccb727c1..abd4235e7df 100644 --- a/pre-registration/pre-registration-core/src/test/java/io/mosip/preregistration/core/util/test/CryptoUtilTest.java +++ b/pre-registration/pre-registration-core/src/test/java/io/mosip/preregistration/core/util/test/CryptoUtilTest.java @@ -15,12 +15,16 @@ import org.springframework.http.HttpMethod; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestContext; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.client.RestTemplate; +import org.springframework.web.context.WebApplicationContext; import io.mosip.preregistration.core.common.dto.CryptoManagerResponseDTO; import io.mosip.preregistration.core.common.dto.ResponseWrapper; +import io.mosip.preregistration.core.config.TestConfig; import io.mosip.preregistration.core.util.CryptoUtil; import io.mosip.preregistration.core.util.RequestValidator; @@ -33,6 +37,7 @@ */ @RunWith(SpringRunner.class) @SpringBootTest +@ContextConfiguration(classes = { TestConfig.class, TestContext.class, WebApplicationContext.class, CryptoUtil.class }) public class CryptoUtilTest { @Autowired diff --git a/pre-registration/pre-registration-core/src/test/java/io/mosip/preregistration/core/util/test/NotificationUtilTest.java b/pre-registration/pre-registration-core/src/test/java/io/mosip/preregistration/core/util/test/NotificationUtilTest.java index f71cf62456d..47a41f997cc 100644 --- a/pre-registration/pre-registration-core/src/test/java/io/mosip/preregistration/core/util/test/NotificationUtilTest.java +++ b/pre-registration/pre-registration-core/src/test/java/io/mosip/preregistration/core/util/test/NotificationUtilTest.java @@ -9,8 +9,9 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; import org.mockito.Mockito; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.MockBean; @@ -21,12 +22,19 @@ import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.mock.web.MockMultipartFile; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestContext; +import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.util.ReflectionTestUtils; import org.springframework.web.client.RestTemplate; +import org.springframework.web.context.WebApplicationContext; import org.springframework.web.multipart.MultipartFile; import com.fasterxml.jackson.databind.ObjectMapper; +import io.mosip.kernel.core.templatemanager.spi.TemplateManager; +import io.mosip.preregistration.core.code.BookingTypeCodes; import io.mosip.preregistration.core.common.dto.KeyValuePairDto; import io.mosip.preregistration.core.common.dto.MainResponseDTO; import io.mosip.preregistration.core.common.dto.NotificationDTO; @@ -34,33 +42,59 @@ import io.mosip.preregistration.core.common.dto.ResponseWrapper; import io.mosip.preregistration.core.common.dto.TemplateResponseDTO; import io.mosip.preregistration.core.common.dto.TemplateResponseListDTO; +import io.mosip.preregistration.core.common.entity.ApplicationEntity; +import io.mosip.preregistration.core.config.TestConfig; import io.mosip.preregistration.core.util.NotificationUtil; import io.mosip.preregistration.core.util.RequestValidator; import io.mosip.preregistration.core.util.TemplateUtil; @RunWith(SpringRunner.class) @SpringBootTest +@TestPropertySource("classpath:application.properties") +@ContextConfiguration(classes = { TestConfig.class, TestContext.class, WebApplicationContext.class, + ObjectMapper.class, TemplateManager.class}) public class NotificationUtilTest { - + @Value("${emailResourse.url}") private String emailResourseUrl; @Value("${smsResourse.url}") private String smsResourseUrl; + + @Value("${email.acknowledgement.template}") + private String emailAcknowledgement; + + @Value("${email.acknowledgement.subject.template}") + private String emailAcknowledgementSubject; + + @Value("${cancel.appointment.email.subject}") + private String cancelAppointmentEmailSubject; + + @Value("${sms.acknowledgement.template}") + private String smsAcknowledgement; + + @Value("${cancel.appoinment.template}") + private String cancelAppoinment; + @Value("${booking.resource.url}") + private String getAppointmentResourseUrl; + + @Value("${mosip.utc-datetime-pattern}") + private String dateTimeFormat; + @MockBean private RequestValidator validator; - @Autowired + @Mock private TemplateUtil templateUtil; - @Autowired + @Mock private ObjectMapper mapper; - @MockBean(name = "selfTokenRestTemplate") + @Mock(name = "selfTokenRestTemplate") RestTemplate restTemplate; - @Autowired + @InjectMocks NotificationUtil notificationUtil; private NotificationDTO notificationDTO; @@ -71,6 +105,7 @@ public class NotificationUtilTest { List tepmlateList = new ArrayList<>(); TemplateResponseListDTO templateResponseListDTO = new TemplateResponseListDTO(); ResponseEntity resp = null; + MainResponseDTO appEntity = new MainResponseDTO<>(); @Before public void setUp() throws Exception { @@ -91,7 +126,7 @@ public void setUp() throws Exception { registrationCenterAdd.setValue("xyz"); regCenterAddress.add(registrationCenterAdd); regCenterName.add(registrationCenterName); - KeyValuePairDto address= new KeyValuePairDto(); + KeyValuePairDto address = new KeyValuePairDto(); notificationDTO = new NotificationDTO(); notificationDTO.setName("sanober Noor"); notificationDTO.setPreRegistrationId("1234567890"); @@ -115,6 +150,21 @@ public void setUp() throws Exception { notificationResponseDTO.setStatus("True"); templateResponseListDTO.setTemplates(tepmlateList); + + ApplicationEntity appEntityResp = new ApplicationEntity(); + appEntityResp.setApplicationId("423288662552"); + appEntityResp.setBookingType(BookingTypeCodes.LOST_FORGOTTEN_UIN.toString()); + appEntity.setResponse(appEntityResp); + + ReflectionTestUtils.setField(notificationUtil, "emailResourseUrl", "emailResourseUrl"); + ReflectionTestUtils.setField(notificationUtil, "smsResourseUrl", "smsResourseUrl"); + ReflectionTestUtils.setField(notificationUtil, "emailAcknowledgement", "emailAcknowledgement"); + ReflectionTestUtils.setField(notificationUtil, "emailAcknowledgementSubject", "emailAcknowledgementSubject"); + ReflectionTestUtils.setField(notificationUtil, "cancelAppointmentEmailSubject", "cancelAppointmentEmailSubject"); + ReflectionTestUtils.setField(notificationUtil, "smsAcknowledgement", "smsAcknowledgement"); + ReflectionTestUtils.setField(notificationUtil, "cancelAppoinment", "cancelAppoinment"); + ReflectionTestUtils.setField(notificationUtil, "getAppointmentResourseUrl", "getAppointmentResourseUrl"); + ReflectionTestUtils.setField(notificationUtil, "dateTimeFormat", "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); } @Test @@ -140,8 +190,9 @@ public void notifyEmailsuccessTest() throws IOException { Mockito.when(restTemplate.exchange(Mockito.anyString(), Mockito.eq(HttpMethod.POST), Mockito.any(), Mockito.eq(new ParameterizedTypeReference>() { }))).thenReturn(resp); - - MainResponseDTO response = notificationUtil.notify("email", notificationDTO, file); + + MainResponseDTO response = notificationUtil.notify("email", notificationDTO, file, + appEntity.getResponse().getBookingType()); assertEquals(notificationResponseDTO.getMessage(), response.getResponse().getMessage()); } @@ -169,7 +220,8 @@ public void notifySMSsuccessTest() throws IOException { Mockito.eq(new ParameterizedTypeReference>() { }))).thenReturn(resp); - MainResponseDTO response = notificationUtil.notify("sms", notificationDTO, file); + MainResponseDTO response = notificationUtil.notify("sms", notificationDTO, file, + appEntity.getResponse().getBookingType()); assertEquals(notificationResponseDTO.getMessage(), response.getResponse().getMessage()); } diff --git a/pre-registration/pre-registration-core/src/test/java/io/mosip/preregistration/core/util/test/ValidationUtilTest.java b/pre-registration/pre-registration-core/src/test/java/io/mosip/preregistration/core/util/test/ValidationUtilTest.java index 4b458184410..b0bee9ed185 100644 --- a/pre-registration/pre-registration-core/src/test/java/io/mosip/preregistration/core/util/test/ValidationUtilTest.java +++ b/pre-registration/pre-registration-core/src/test/java/io/mosip/preregistration/core/util/test/ValidationUtilTest.java @@ -10,20 +10,28 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.Mock; import org.mockito.Mockito; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestContext; +import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.web.context.WebApplicationContext; import io.mosip.preregistration.core.code.RequestCodes; import io.mosip.preregistration.core.common.dto.MainRequestDTO; +import io.mosip.preregistration.core.config.TestConfig; import io.mosip.preregistration.core.exception.InvalidRequestException; import io.mosip.preregistration.core.util.RequestValidator; import io.mosip.preregistration.core.util.ValidationUtil; @RunWith(SpringRunner.class) @SpringBootTest +@TestPropertySource("classpath:application.properties") +@ContextConfiguration(classes = { TestConfig.class, TestContext.class, WebApplicationContext.class, + ValidationUtil.class }) public class ValidationUtilTest { Map requestMap = null; Map requiredRequestMap = null; @@ -31,7 +39,7 @@ public class ValidationUtilTest { @Autowired ValidationUtil validationUtil; - @MockBean + @Mock private RequestValidator validator; @Before diff --git a/pre-registration/pre-registration-core/src/test/resources/application.properties b/pre-registration/pre-registration-core/src/test/resources/application.properties index b225cedb524..4818dea4d47 100644 --- a/pre-registration/pre-registration-core/src/test/resources/application.properties +++ b/pre-registration/pre-registration-core/src/test/resources/application.properties @@ -22,6 +22,7 @@ email.acknowledgement.template=Email-Acknowledgement email.acknowledgement.subject.template=Acknowledgement-email-subject sms.acknowledgement.template=SMS-Acknowledgement cancel.appoinment.template=cancel-appointment +cancel.appointment.email.subject=cancel-appointment-email-subject #Pre-registration Id length prereg_id.length=16 @@ -81,3 +82,7 @@ spring.cloud.config.uri=${dev.dns.url}/config spring.cloud.config.label=develop spring.cloud.config.name=pre-registration spring.profiles.active=mz + +mosip.preregistration.anonymous-profile-username:admin + +spring.mvc.pathmatch.matching-strategy=ANT_PATH_MATCHER diff --git a/pre-registration/pre-registration-datasync-service/Dockerfile b/pre-registration/pre-registration-datasync-service/Dockerfile index 5ef3d1d948d..1dd6d2cd3d3 100644 --- a/pre-registration/pre-registration-datasync-service/Dockerfile +++ b/pre-registration/pre-registration-datasync-service/Dockerfile @@ -1,4 +1,4 @@ -FROM openjdk:11 +FROM eclipse-temurin:21-jre-alpine ARG SOURCE ARG COMMIT_HASH @@ -49,16 +49,16 @@ ARG container_user=mosip ARG container_user_group=mosip # can be passed during Docker build as build time environment for github branch to pickup configuration from. -ARG container_user_uid=1001 +ARG container_user_uid=1002 # can be passed during Docker build as build time environment for github branch to pickup configuration from. ARG container_user_gid=1001 # install packages and create user -RUN apt-get -y update \ -&& apt-get install -y unzip \ -&& groupadd -g ${container_user_gid} ${container_user_group} \ -&& useradd -u ${container_user_uid} -g ${container_user_group} -s /bin/sh -m ${container_user} +RUN apk -q update \ +&& apk add -q unzip wget \ +&& addgroup -g ${container_user_gid} ${container_user_group} \ +&& adduser -s /bin/sh -u ${container_user_uid} -G ${container_user_group} -h /home/${container_user} --disabled-password ${container_user} # set working directory for the user WORKDIR /home/${container_user} diff --git a/pre-registration/pre-registration-datasync-service/pom.xml b/pre-registration/pre-registration-datasync-service/pom.xml index 14474fb74cc..4b44a2dac44 100644 --- a/pre-registration/pre-registration-datasync-service/pom.xml +++ b/pre-registration/pre-registration-datasync-service/pom.xml @@ -7,41 +7,22 @@ io.mosip.preregistration pre-registration-parent - 1.2.0-SNAPSHOT + 1.2.1-java21-SNAPSHOT - - pre-registration-datasync-service + 1.2.1-java21-SNAPSHOT pre-registration-datasync-service - 1.2.0-SNAPSHOT - UTF-8 - UTF-8 - 11 - 1.2.0-SNAPSHOT - 1.2.0-SNAPSHOT - 1.4.2 + + 1.2.1-java21-SNAPSHOT + 1.2.1-java21-SNAPSHOT + 1.2.1-java21-SNAPSHOT + 1.2.1-java21-SNAPSHOT + 1.2.1-java21-SNAPSHOT - - - - org.springframework.boot - spring-boot-dependencies - ${spring.boot.version} - pom - import - - - org.projectlombok - lombok - ${lombok.version} - compile - - - org.springframework.boot @@ -54,7 +35,6 @@ org.springframework.cloud spring-cloud-starter-config - ${spring-cloud-config.version} com.h2database @@ -100,6 +80,19 @@ io.micrometer micrometer-registry-prometheus + + org.springframework.cloud + spring-cloud-starter-bootstrap + + + org.springframework.boot + spring-boot-starter-data-jpa + + + io.mosip.preregistration + pre-registration-application-service + ${pre.application.service.version} + @@ -134,12 +127,21 @@ io.mosip.kernel kernel-ref-idobjectvalidator - 1.2.0-rc1 + ${kernel.ref.idobjectvalidator.version} io.mosip.kernel kernel-transliteration-icu4j - 1.2.0-rc1 + ${kernel.transliteration.icu4j.version} + + + org.junit.vintage + junit-vintage-engine + + + junit + junit + test @@ -147,7 +149,7 @@ org.springframework.boot spring-boot-maven-plugin - ${spring.boot.version} + ${spring.boot.maven.plugin.version} true ZIP @@ -184,7 +186,7 @@ org.springdoc springdoc-openapi-maven-plugin - 0.2 + ${springdoc.openapi.maven.plugin} integration-test @@ -194,8 +196,9 @@ - http://localhost:9094/preregistration/v1/v3/api-docs/Pre-Registration-Datasync - openapi.json + + http://localhost:9094/preregistration/v1/v3/api-docs/Pre-Registration-Datasync + ${artifactId}-openapi.json ${project.build.directory} false @@ -204,4 +207,4 @@ - + \ No newline at end of file diff --git a/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/config/CorsFilter.java b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/config/CorsFilter.java deleted file mode 100644 index d5a544079cf..00000000000 --- a/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/config/CorsFilter.java +++ /dev/null @@ -1,66 +0,0 @@ -package io.mosip.preregistration.datasync.config; - -import java.io.IOException; - -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -/** - * This class is a filter for giving Access Headers to solve CORS - * - * @author Mindtree Ltd. - * - */ -@SuppressWarnings("findsecbugs:PERMISSIVE_CORS") -public class CorsFilter implements Filter { - /** - * Default Constructor - */ - public CorsFilter() { - // Default Constructor - } - - @SuppressWarnings("findbugs:HRS_REQUEST_PARAMETER_TO_HTTP_HEADER") - @Override - public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) - throws IOException, ServletException { - HttpServletRequest request = (HttpServletRequest) req; - HttpServletResponse response = (HttpServletResponse) res; - String origin = request.getHeader("Origin"); - if (origin != null && !origin.isEmpty()) { - response.setHeader("Access-Control-Allow-Origin", origin); - } - response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, PUT, PATCH"); - response.setHeader("Access-Control-Max-Age", "3600"); - response.setHeader("Access-Control-Allow-Headers", - "Date, Content-Type, Accept, X-Requested-With, Authorization, From, X-Auth-Token, Request-Id"); - response.setHeader("Access-Control-Expose-Headers", "Date, Response-Signature"); - response.setHeader("Access-Control-Allow-Credentials", "true"); - /* - * response.setHeader("X-Frame-Options", "SAMEORIGIN"); - * response.setHeader("X-Content-Type-Options", "nosniff"); - * response.setHeader("X-XSS-Protection", "1; mode=block"); - * response.setHeader("Cache-Control", "No-store"); response.setHeader("Pragma", - * "no-cache"); - */ - if (!"OPTIONS".equalsIgnoreCase(request.getMethod())) { - chain.doFilter(req, res); - } - } - - @Override - public void init(FilterConfig filterConfig) { - // init method from Filter - } - - @Override - public void destroy() { - // destroy method from Filter - } -} \ No newline at end of file diff --git a/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/config/DataSyncConfig.java b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/config/DataSyncConfig.java index 2c4bab69f47..3ae4a8c7112 100644 --- a/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/config/DataSyncConfig.java +++ b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/config/DataSyncConfig.java @@ -1,23 +1,23 @@ package io.mosip.preregistration.datasync.config; -import io.swagger.v3.oas.models.Components; -import io.swagger.v3.oas.models.OpenAPI; -import io.swagger.v3.oas.models.info.Info; -import io.swagger.v3.oas.models.info.License; -import io.swagger.v3.oas.models.servers.Server; +import java.util.Collections; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springdoc.core.GroupedOpenApi; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import java.util.Collections; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; +import io.swagger.v3.oas.models.Components; +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.info.Info; +import io.swagger.v3.oas.models.info.License; +import io.swagger.v3.oas.models.servers.Server; /** * Config for Data sync @@ -77,33 +77,17 @@ private Set protocols() { return protocols; } - @Autowired - private OpenApiProperties openApiProperties; - @Bean - public OpenAPI openApi() { - OpenAPI api = new OpenAPI() - .components(new Components()) - .info(new Info() - .title(openApiProperties.getInfo().getTitle()) + public OpenAPI openApi(@Autowired OpenApiProperties openApiProperties) { + OpenAPI api = new OpenAPI().components(new Components()) + .info(new Info().title(openApiProperties.getInfo().getTitle()) .version(openApiProperties.getInfo().getVersion()) .description(openApiProperties.getInfo().getDescription()) - .license(new License() - .name(openApiProperties.getInfo().getLicense().getName()) + .license(new License().name(openApiProperties.getInfo().getLicense().getName()) .url(openApiProperties.getInfo().getLicense().getUrl()))); - openApiProperties.getService().getServers().forEach(server -> { - api.addServersItem(new Server().description(server.getDescription()).url(server.getUrl())); - }); - logger.info("swagger open api bean is ready"); + openApiProperties.getService().getServers().forEach( + server -> api.addServersItem(new Server().description(server.getDescription()).url(server.getUrl()))); return api; } - - @Bean - public GroupedOpenApi groupedOpenApi() { - return GroupedOpenApi.builder().group(openApiProperties.getGroup().getName()) - .pathsToMatch(openApiProperties.getGroup().getPaths().stream().toArray(String[]::new)) - .build(); - } - } diff --git a/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/controller/DataSyncController.java b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/controller/DataSyncController.java index 3d35c24fd2b..029af9f81d2 100644 --- a/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/controller/DataSyncController.java +++ b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/controller/DataSyncController.java @@ -1,13 +1,12 @@ package io.mosip.preregistration.datasync.controller; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -20,6 +19,7 @@ import io.mosip.preregistration.core.common.dto.MainResponseDTO; import io.mosip.preregistration.core.config.LoggerConfiguration; import io.mosip.preregistration.core.util.ResponseFilter; +import io.mosip.preregistration.datasync.dto.ApplicationsDTO; import io.mosip.preregistration.datasync.dto.DataSyncRequestDTO; import io.mosip.preregistration.datasync.dto.PreRegArchiveDTO; import io.mosip.preregistration.datasync.dto.PreRegistrationIdsDTO; @@ -43,7 +43,6 @@ @RestController @RequestMapping("/") @Tag(name = "Data-Sync", description = "Data-Sync Controller") -@CrossOrigin("*") public class DataSyncController { @Autowired @@ -74,6 +73,30 @@ public ResponseEntity> retrieveAllPreRegi "In Datasync controller for retreiving all the pre-registrations for object " + dataSyncDto); return ResponseEntity.status(HttpStatus.OK).body(dataSyncService.retrieveAllPreRegIds(dataSyncDto)); } + + /** + * This POST API used to retrieve all appointments for a registration + * center id, booked between a from date and to date + * + * @param MainRequestDTO + * @return ResponseEntity> + */ + //@PreAuthorize("hasAnyRole('REGISTRATION_OFFICER','REGISTRATION_SUPERVISOR','REGISTRATION_ ADMIN')") + @PreAuthorize("hasAnyRole(@authorizedRoles.getPostpreregsync())") + @ResponseFilter + @PostMapping(path = "/syncV2", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) + @Operation(summary = "Fetch all application ids for all booking types", description = "Fetch all Application Ids for all booking types", tags = "Data-Sync") + @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "All Application Ids for all booking types fetched successfully"), + @ApiResponse(responseCode = "201", description = "Created", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "403", description = "Forbidden", content = @Content(schema = @Schema(hidden = true))), + @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(hidden = true))) }) + public ResponseEntity> retrieveAllAppointmentsSyncV2( + @RequestBody(required = true) MainRequestDTO dataSyncDto) { + log.info("sessionId", "idType", "id", + "In Datasync controller for retreiving all the appointments for " + dataSyncDto); + return ResponseEntity.status(HttpStatus.OK).body(dataSyncService.retrieveAllAppointmentsSyncV2(dataSyncDto)); + } /** * This Get api use to retrieve the details for an PreRegistrationId diff --git a/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/dto/ApplicationDTO.java b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/dto/ApplicationDTO.java new file mode 100644 index 00000000000..57d83fc93dc --- /dev/null +++ b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/dto/ApplicationDTO.java @@ -0,0 +1,22 @@ +package io.mosip.preregistration.datasync.dto; + +import java.io.Serializable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@Setter +@NoArgsConstructor +public class ApplicationDTO implements Serializable { + + private static final long serialVersionUID = -3846790016362370645L; + @ApiModelProperty(value = "Transaction ID", position = 1) + private String applicationId; + @ApiModelProperty(value = "Appointment Dt Time", position = 2) + private String appointmentDtTime; + @ApiModelProperty(value = "Booking Type", position = 3) + private String bookingType; +} diff --git a/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/dto/ApplicationDetailResponseDTO.java b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/dto/ApplicationDetailResponseDTO.java new file mode 100644 index 00000000000..47fec3983fb --- /dev/null +++ b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/dto/ApplicationDetailResponseDTO.java @@ -0,0 +1,32 @@ +package io.mosip.preregistration.datasync.dto; + +import lombok.Data; +import lombok.Getter; +import lombok.Setter; + +@Data +@Getter +@Setter +public class ApplicationDetailResponseDTO { + + private String applicationId; + + private String applicationStatusCode; + + private String bookingStatusCode; + + private String appointmentDate; + + private String slotFromTime; + + private String slotToTime; + + private String crBy; + + private String crDtime; + + private String registrationCenterId; + + private String bookingType; + +} diff --git a/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/dto/ApplicationsDTO.java b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/dto/ApplicationsDTO.java new file mode 100644 index 00000000000..31d6200b79d --- /dev/null +++ b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/dto/ApplicationsDTO.java @@ -0,0 +1,21 @@ +package io.mosip.preregistration.datasync.dto; + +import java.io.Serializable; +import java.util.List; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@Setter +@NoArgsConstructor +public class ApplicationsDTO implements Serializable { + + private static final long serialVersionUID = 1898616434106604338L; + + @ApiModelProperty(value = "Application Ids", position = 1) + private List applications; + +} diff --git a/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/entity/DemographicEntityConsumed.java b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/entity/DemographicEntityConsumed.java new file mode 100644 index 00000000000..333131b9ca7 --- /dev/null +++ b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/entity/DemographicEntityConsumed.java @@ -0,0 +1,94 @@ +/* + * Copyright + * + */ +package io.mosip.preregistration.datasync.entity; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.List; + +import org.springframework.stereotype.Component; + +import io.mosip.preregistration.core.common.entity.DocumentEntity; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.Id; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * This entity class defines the database table details for PreRegistration. + * + * @author Aiham Hasan + * @since 1.2.0 + * + */ +@Component +@Entity +@Table(name = "applicant_demographic_consumed", schema = "prereg") +@Setter +@NoArgsConstructor +public class DemographicEntityConsumed implements Serializable { + + /** The Constant serialVersionUID. */ + private static final long serialVersionUID = 6705845720255847210L; + + //@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, mappedBy = "demographicEntity") + //private List documentEntity; + + /** The pre registration id. */ + @Column(name = "prereg_id", nullable = false) + @Id + private String preRegistrationId; + + /** The JSON */ + @Column(name = "demog_detail", nullable = false, columnDefinition = "bytea") + private byte[] applicantDetailJson; + + // Getter and Setter methods for requesttime are overridden manually + public void setApplicantDetailJson(byte[] applicantDetailJson) { + this.applicantDetailJson = applicantDetailJson != null ? applicantDetailJson.clone() : null; + } + + /** The status_code */ + @Column(name = "status_code", nullable = false) + private String statusCode; + + /** The lang_code */ + @Column(name = "lang_code", nullable = false) + private String langCode; + + /** The created by. */ + @Column(name = "cr_by") + private String createdBy; + + /** The created appuser by. */ + @Column(name = "cr_appuser_id") + private String crAppuserId; + + /** The create date time. */ + @Column(name = "cr_dtimes") + private LocalDateTime createDateTime; + + /** The updated by. */ + @Column(name = "upd_by") + private String updatedBy; + + /** The update date time. */ + @Column(name = "upd_dtimes") + private LocalDateTime updateDateTime; + + /** + * Encrypted Date Time + */ + @Column(name = "encrypted_dtimes") + private LocalDateTime encryptedDateTime; + + @Column(name = "demog_detail_hash") + private String demogDetailHash; +} diff --git a/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/entity/InterfaceDataSyncEntity.java b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/entity/InterfaceDataSyncEntity.java index f6b310758f6..6b1793f1d2d 100644 --- a/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/entity/InterfaceDataSyncEntity.java +++ b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/entity/InterfaceDataSyncEntity.java @@ -3,11 +3,11 @@ import java.io.Serializable; import java.time.LocalDateTime; -import javax.persistence.Column; -import javax.persistence.EmbeddedId; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; +import jakarta.persistence.Column; +import jakarta.persistence.EmbeddedId; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import org.springframework.stereotype.Component; diff --git a/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/entity/InterfaceDataSyncTablePK.java b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/entity/InterfaceDataSyncTablePK.java index c2201471513..48b238b28d2 100644 --- a/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/entity/InterfaceDataSyncTablePK.java +++ b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/entity/InterfaceDataSyncTablePK.java @@ -3,8 +3,8 @@ import java.io.Serializable; import java.time.LocalDateTime; -import javax.persistence.Column; -import javax.persistence.Embeddable; +import jakarta.persistence.Column; +import jakarta.persistence.Embeddable; import lombok.Getter; import lombok.NoArgsConstructor; diff --git a/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/entity/ProcessedPreRegEntity.java b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/entity/ProcessedPreRegEntity.java index 24f62cf3afd..82417e0a160 100644 --- a/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/entity/ProcessedPreRegEntity.java +++ b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/entity/ProcessedPreRegEntity.java @@ -3,10 +3,10 @@ import java.io.Serializable; import java.time.LocalDateTime; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import lombok.Getter; import lombok.NoArgsConstructor; diff --git a/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/errorcodes/ErrorCodes.java b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/errorcodes/ErrorCodes.java index 7d68bff82a7..659cec147f4 100644 --- a/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/errorcodes/ErrorCodes.java +++ b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/errorcodes/ErrorCodes.java @@ -26,7 +26,9 @@ public enum ErrorCodes { PRG_DATA_SYNC_018("PRG_DATA_SYNC_018"),//Failed to fetch machine encryptionpublickey PRG_DATA_SYNC_019("PRG_DATA_SYNC_019"),//Failed to fetch machine encryptionpublickey PRG_DATA_SYNC_020("PRG_DATA_SYNC_020"),//Failed to fetch machine encryptionpublickey - PRG_DATA_SYNC_021("PRG_DATA_SYNC_021"); // Update prefetched status failed + PRG_DATA_SYNC_021("PRG_DATA_SYNC_021"), // Update prefetched status failed + PRG_DATA_SYNC_022("PRG_DATA_SYNC_022"); // PRID has been consumed + /** * @param code diff --git a/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/errorcodes/ErrorMessages.java b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/errorcodes/ErrorMessages.java index e76895993c7..fdd80d09341 100644 --- a/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/errorcodes/ErrorMessages.java +++ b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/errorcodes/ErrorMessages.java @@ -59,7 +59,12 @@ public enum ErrorMessages { UNABLE_TO_SIGN_DATA("Failed to sign the data"), - PREFETCHED_UPDATE_FAILED("Prefetch update failed"); + PREFETCHED_UPDATE_FAILED("Prefetch update failed"), + + /** + * ErrorMessage for PRG_DATA_SYNC_022 + */ + PRID_CONSUMED("Preregistration-Id has been consumed"); private ErrorMessages(String message) { this.message = message; diff --git a/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/exception/util/DataSyncExceptionCatcher.java b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/exception/util/DataSyncExceptionCatcher.java index 0418a821b58..d19594ec657 100644 --- a/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/exception/util/DataSyncExceptionCatcher.java +++ b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/exception/util/DataSyncExceptionCatcher.java @@ -36,9 +36,12 @@ public class DataSyncExceptionCatcher { * pass the exception */ public void handle(Exception ex, MainResponseDTO mainResponsedto) { - if (ex instanceof DataAccessLayerException || ex instanceof ReverseDataFailedToStoreException) { + if (ex instanceof DataAccessLayerException) { throw new ReverseDataFailedToStoreException(((DataAccessLayerException) ex).getErrorCode(), mainResponsedto); + } else if (ex instanceof ReverseDataFailedToStoreException) { + throw new ReverseDataFailedToStoreException(((ReverseDataFailedToStoreException) ex).getErrorCode(), + mainResponsedto); } else if (ex instanceof DocumentGetDetailsException) { throw new DocumentGetDetailsException(((DocumentGetDetailsException) ex).getErrorCode(), ((DocumentGetDetailsException) ex).getErrorText(), mainResponsedto); diff --git a/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/exception/util/DataSyncExceptionHandler.java b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/exception/util/DataSyncExceptionHandler.java index bff5710d5e8..86e61e00faa 100644 --- a/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/exception/util/DataSyncExceptionHandler.java +++ b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/exception/util/DataSyncExceptionHandler.java @@ -7,7 +7,7 @@ import java.util.Date; import java.util.List; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; diff --git a/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/repository/DemographicConsumedRepository.java b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/repository/DemographicConsumedRepository.java new file mode 100644 index 00000000000..8507976706f --- /dev/null +++ b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/repository/DemographicConsumedRepository.java @@ -0,0 +1,15 @@ +package io.mosip.preregistration.datasync.repository; + +import org.springframework.data.jpa.repository.Query; +import org.springframework.stereotype.Repository; + +import io.mosip.kernel.core.dataaccess.spi.repository.BaseRepository; +import io.mosip.preregistration.datasync.entity.DemographicEntityConsumed; + +@Repository("demographicConsumedRepository") +public interface DemographicConsumedRepository extends BaseRepository { + + @Query("SELECT e FROM DemographicEntityConsumed e WHERE e.preRegistrationId = ?1") + public DemographicEntityConsumed findByPrid(String preRegistrationId); + +} diff --git a/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/service/DataSyncService.java b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/service/DataSyncService.java index d3bbb363796..9b9a64f80a6 100644 --- a/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/service/DataSyncService.java +++ b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/service/DataSyncService.java @@ -1,12 +1,16 @@ package io.mosip.preregistration.datasync.service; import java.time.LocalDate; +import java.time.LocalTime; import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeParseException; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Map.Entry; -import javax.annotation.PostConstruct; +import jakarta.annotation.PostConstruct; import org.apache.commons.lang3.exception.ExceptionUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -36,6 +40,9 @@ import io.mosip.preregistration.core.config.LoggerConfiguration; import io.mosip.preregistration.core.util.AuditLogUtil; import io.mosip.preregistration.core.util.ValidationUtil; +import io.mosip.preregistration.datasync.dto.ApplicationDetailResponseDTO; +import io.mosip.preregistration.datasync.dto.ApplicationDTO; +import io.mosip.preregistration.datasync.dto.ApplicationsDTO; import io.mosip.preregistration.datasync.dto.ApplicationInfoMetadataDTO; import io.mosip.preregistration.datasync.dto.DataSyncRequestDTO; import io.mosip.preregistration.datasync.dto.PreRegArchiveDTO; @@ -183,6 +190,72 @@ public MainResponseDTO retrieveAllPreRegIds( } return responseDto; } + + /** + * This method is use to retrieve all appointments for a registration center id, + * booked between a from date and to date + * + * @param dataSyncRequest + * @return list of preRgistrationDto + */ + public MainResponseDTO retrieveAllAppointmentsSyncV2( + MainRequestDTO dataSyncRequest) { + + MainResponseDTO responseDto = new MainResponseDTO<>(); + log.info("sessionId", "idType", "id", "In retrieveAllAppointmentsSyncV2 method of datasync service "); + boolean isRetrieveAllSuccess = false; + responseDto.setId(fetchAllId); + responseDto.setVersion(version); + requiredRequestMap.put("id", fetchAllId); + try { + validationUtil.requestValidator(dataSyncRequest); + if (validationUtil.requestValidator(serviceUtil.prepareRequestMap(dataSyncRequest), requiredRequestMap)) { + serviceUtil.validateDataSyncRequest(dataSyncRequest.getRequest(), responseDto); + DataSyncRequestDTO dataSyncRequestDTO = dataSyncRequest.getRequest(); + if (serviceUtil.isNull(dataSyncRequestDTO.getToDate())) { + dataSyncRequestDTO.setToDate(dataSyncRequestDTO.getFromDate()); + } + List applicationsList = new ArrayList(); + List applicationDetailResponseList = serviceUtil + .getAllBookedApplicationIds(dataSyncRequestDTO.getFromDate(), + dataSyncRequestDTO.getToDate(), + dataSyncRequestDTO.getRegistrationCenterId()); + for (ApplicationDetailResponseDTO applicationDetails : applicationDetailResponseList) { + ApplicationDTO application = new ApplicationDTO(); + application.setApplicationId(applicationDetails.getApplicationId()); + application.setAppointmentDtTime(getUTCTimeStamp(applicationDetails.getAppointmentDate(), + applicationDetails.getSlotFromTime())); + application.setBookingType(applicationDetails.getBookingType()); + applicationsList.add(application); + } + ApplicationsDTO applications = new ApplicationsDTO(); + applications.setApplications(applicationsList); + responseDto.setResponsetime(serviceUtil.getCurrentResponseTime()); + responseDto.setResponse(applications); + } + isRetrieveAllSuccess = true; + } catch ( + + Exception ex) { + log.debug("sessionId", "idType", "id", ExceptionUtils.getStackTrace(ex)); + log.error("sessionId", "idType", "id", + "In retrieveAllAppointmentsSyncV2 method of datasync service - " + ex.getMessage()); + new DataSyncExceptionCatcher().handle(ex, responseDto); + } finally { + if (isRetrieveAllSuccess) { + setAuditValues(EventId.PRE_406.toString(), EventName.SYNC.toString(), EventType.BUSINESS.toString(), + "Retrieval of all the Application Ids is successfull", AuditLogVariables.MULTIPLE_ID.toString(), + authUserDetails().getUserId(), authUserDetails().getUsername(), + dataSyncRequest.getRequest().getRegistrationCenterId()); + } else { + setAuditValues(EventId.PRE_405.toString(), EventName.EXCEPTION.toString(), EventType.SYSTEM.toString(), + "Retrieval of all the Application Ids is unsuccessfull", AuditLogVariables.NO_ID.toString(), + authUserDetails().getUserId(), authUserDetails().getUsername(), + dataSyncRequest.getRequest().getRegistrationCenterId()); + } + } + return responseDto; + } /** * @@ -205,11 +278,30 @@ private Map getIdsWithTime(BookingDataByRegIdDto preRegIdsDTO) { * @return */ private String getUTCTimeStamp(Map value) { + String timestamp = null; for (Entry v : value.entrySet()) { - return v.getKey().atTime(v.getValue().getFromTime()) - .format(DateTimeFormatter.ofPattern(UTC_DATETIME_PATTERN)); + timestamp = v.getKey().atTime(v.getValue().getFromTime()).format(DateTimeFormatter.ofPattern(UTC_DATETIME_PATTERN)); + } + return timestamp; + } + + /** + * Assuming one pre-reg id will have one appointTime and single time slot + * + * @param value + * @return + */ + private String getUTCTimeStamp(String appointmentDt, String fromTime) { + String timestamp = null; + try { + LocalDate appDate = LocalDate.parse(appointmentDt); + LocalTime fromLocalTime = LocalTime.parse(fromTime); + timestamp = appDate.atTime(fromLocalTime).format(DateTimeFormatter.ofPattern(UTC_DATETIME_PATTERN)); + } catch (Exception ex) { + log.error("sessionId", "idType", "id", ExceptionUtils.getStackTrace(ex)); + return null; } - return null; + return timestamp; } /** diff --git a/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/service/util/DataSyncServiceUtil.java b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/service/util/DataSyncServiceUtil.java index 1b3503dd809..018a080f56e 100644 --- a/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/service/util/DataSyncServiceUtil.java +++ b/pre-registration/pre-registration-datasync-service/src/main/java/io/mosip/preregistration/datasync/service/util/DataSyncServiceUtil.java @@ -17,7 +17,7 @@ import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; -import javax.annotation.PostConstruct; +import jakarta.annotation.PostConstruct; import org.apache.commons.lang3.exception.ExceptionUtils; import org.json.simple.JSONObject; @@ -75,6 +75,7 @@ import io.mosip.preregistration.core.util.UUIDGeneratorUtil; import io.mosip.preregistration.core.util.ValidationUtil; import io.mosip.preregistration.datasync.code.RequestCodes; +import io.mosip.preregistration.datasync.dto.ApplicationDetailResponseDTO; import io.mosip.preregistration.datasync.dto.ApplicationInfoMetadataDTO; import io.mosip.preregistration.datasync.dto.ClientPublickeyDTO; import io.mosip.preregistration.datasync.dto.DataSyncRequestDTO; @@ -94,6 +95,7 @@ import io.mosip.preregistration.datasync.exception.RecordNotFoundForDateRange; import io.mosip.preregistration.datasync.exception.ZipFileCreationException; import io.mosip.preregistration.datasync.exception.system.SystemFileIOException; +import io.mosip.preregistration.datasync.repository.DemographicConsumedRepository; import io.mosip.preregistration.datasync.repository.InterfaceDataSyncRepo; import io.mosip.preregistration.datasync.repository.ProcessedDataSyncRepo; @@ -118,6 +120,9 @@ public class DataSyncServiceUtil { */ @Autowired private ProcessedDataSyncRepo processedDataSyncRepo; + + @Autowired + private DemographicConsumedRepository demographicConsumedRepository; /** * Autowired reference for {@link #RestTemplate} @@ -199,14 +204,18 @@ public class DataSyncServiceUtil { /** * Autowired reference for {@link #ValidationUtil} */ - @Autowired - ValidationUtil validationUtil; + private ValidationUtil validationUtil; /** * ObjectMapper global object creation */ private ObjectMapper mapper; + @Autowired + public DataSyncServiceUtil(ValidationUtil validationUtil) { + this.validationUtil = validationUtil; + } + @PostConstruct public void init() { mapper = JsonMapper.builder().addModule(new AfterburnerModule()).build(); @@ -297,7 +306,7 @@ public BookingDataByRegIdDto getBookedPreIdsByDateAndRegCenterIdRestService(Stri .queryParam("to_date", toDate); HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON_UTF8); + headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity> httpEntity = new HttpEntity<>(headers); String uriBuilder = builder.build().encode(StandardCharsets.UTF_8).toUriString(); log.info("sessionId", "idType", "id", "In callGetPreIdsRestService method URL- " + uriBuilder); @@ -305,16 +314,19 @@ public BookingDataByRegIdDto getBookedPreIdsByDateAndRegCenterIdRestService(Stri HttpMethod.GET, httpEntity, new ParameterizedTypeReference>() { }, params); - if (respEntity.getBody().getErrors() != null) { - for (ExceptionJSONInfoDTO exceptionJSONInfoDTO : respEntity.getBody().getErrors()) { - if (exceptionJSONInfoDTO != null) { - throw new RecordNotFoundForDateRange(exceptionJSONInfoDTO.getErrorCode(), - exceptionJSONInfoDTO.getMessage(), null); + MainResponseDTO body = respEntity.getBody(); + if (body != null) { + if (body.getErrors() != null) { + for (ExceptionJSONInfoDTO exceptionJSONInfoDTO : body.getErrors()) { + if (exceptionJSONInfoDTO != null) { + throw new RecordNotFoundForDateRange(exceptionJSONInfoDTO.getErrorCode(), + exceptionJSONInfoDTO.getMessage(), null); + } } + } else { + preRegIdsByRegCenterIdResponseDTO = mapper.convertValue(body.getResponse(), + BookingDataByRegIdDto.class); } - } else { - preRegIdsByRegCenterIdResponseDTO = mapper.convertValue(respEntity.getBody().getResponse(), - BookingDataByRegIdDto.class); } } catch (RestClientException ex) { log.debug("sessionId", "idType", "id", ExceptionUtils.getStackTrace(ex)); @@ -326,6 +338,62 @@ public BookingDataByRegIdDto getBookedPreIdsByDateAndRegCenterIdRestService(Stri } return preRegIdsByRegCenterIdResponseDTO; } + + /** + * This method invokes booking API through rest template to fetch the list of + * application ids for the date range and reg center Id + * + * @param appointmentDate + * @param regCenterId + * @return List + */ + public List getAllBookedApplicationIds(String fromDate,String toDate, String regCenterId) { + log.info("sessionId", "idType", "id", "In getAllBookedApplicationIds method of datasync service util"); + List applicationDetailResponseList = new ArrayList(); + try { + UriComponentsBuilder builder = UriComponentsBuilder + .fromHttpUrl(demographicResourceUrl + "/applications/bookings/{registrationCenterId}"); + Map params = new HashMap<>(); + params.put("registrationCenterId", regCenterId); + URI uri = builder.buildAndExpand(params).toUri(); + UriComponentsBuilder builderFull = UriComponentsBuilder.fromUri(uri).queryParam("appointmentDate", + fromDate); + if (toDate != null && !"".equals(toDate.trim())) { + builderFull = UriComponentsBuilder.fromUri(uri).queryParam("appointmentDate", fromDate) + .queryParam("appointmentToDate", toDate); + } + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); + HttpEntity>> httpEntity = new HttpEntity<>(headers); + String uriBuilder = builderFull.build().encode(StandardCharsets.UTF_8).toUriString(); + log.info("sessionId", "idType", "id", "In getAllBookedApplicationIds method URL- " + uriBuilder); + ResponseEntity>> respEntity = selfTokenRestTemplate + .exchange(uriBuilder, HttpMethod.GET, httpEntity, + new ParameterizedTypeReference>>() { + }, params); + MainResponseDTO> body = respEntity.getBody(); + if (body != null) { + if (body.getErrors() != null) { + for (ExceptionJSONInfoDTO exceptionJSONInfoDTO : body.getErrors()) { + if (exceptionJSONInfoDTO != null) { + throw new RecordNotFoundForDateRange(exceptionJSONInfoDTO.getErrorCode(), + exceptionJSONInfoDTO.getMessage(), null); + } + } + } else { + applicationDetailResponseList = body.getResponse(); + } + } + } catch (RestClientException ex) { + log.debug("sessionId", "idType", "id", ExceptionUtils.getStackTrace(ex)); + log.error("sessionId", "idType", "id", + "In getAllBookedApplicationIds method of datasync service util - " + ex.getMessage()); + throw new RecordNotFoundForDateRange(ErrorCodes.PRG_DATA_SYNC_016.getCode(), + ErrorMessages.BOOKING_NOT_FOUND.getMessage(), null); + + } + return applicationDetailResponseList; + } /** * This method invokes document API through rest template to fetch the document @@ -343,7 +411,7 @@ public DocumentsMetaData getDocDetails(String preId) { UriComponentsBuilder builder = UriComponentsBuilder .fromHttpUrl(documentResourceUrl + "/documents/preregistration/"); HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON_UTF8); + headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity> httpEntity = new HttpEntity<>(headers); String uriBuilder = builder.build().encode().toUriString(); uriBuilder += "{preRegistrationId}"; @@ -351,12 +419,15 @@ public DocumentsMetaData getDocDetails(String preId) { ResponseEntity> respEntity = selfTokenRestTemplate.exchange(uriBuilder, HttpMethod.GET, httpEntity, new ParameterizedTypeReference>() { }, params); - if (respEntity.getBody().getErrors() != null) { - log.info("sessionId", "idType", "id", - "In callGetDocRestService method of datasync service util - Document not found for the pre_registration_id"); - } else { - Object obj = respEntity.getBody().getResponse(); - responsestatusDto = mapper.convertValue(obj, DocumentsMetaData.class); + MainResponseDTO body = respEntity.getBody(); + if (body != null) { + if (body.getErrors() != null) { + log.info("sessionId", "idType", "id", + "In callGetDocRestService method of datasync service util - Document not found for the pre_registration_id"); + } else { + Object obj = body.getResponse(); + responsestatusDto = mapper.convertValue(obj, DocumentsMetaData.class); + } } } catch (RestClientException ex) { log.debug("sessionId", "idType", "id", ExceptionUtils.getStackTrace(ex)); @@ -389,19 +460,22 @@ public DocumentDTO getDocBytesDetails(String docId, String preId) { URI uri = uriComponentsBuilder.buildAndExpand(params).toUri(); UriComponentsBuilder builder = UriComponentsBuilder.fromUri(uri).queryParam("preRegistrationId", preId); HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON_UTF8); + headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity> httpEntity = new HttpEntity<>(headers); String uriBuilder = builder.build().encode().toUriString(); log.info("sessionId", "idType", "id", "In callGetBytesDocRestService method URL- " + uriBuilder); ResponseEntity> respEntity = selfTokenRestTemplate.exchange(uriBuilder, HttpMethod.GET, httpEntity, new ParameterizedTypeReference>() { }, params); - if (respEntity.getBody().getErrors() != null) { - log.info("sessionId", "idType", "id", - "In callGetBytesDocRestService method of datasync service util - Document not found for the documentId"); - } else { - Object obj = respEntity.getBody().getResponse(); - responsestatusDto = mapper.convertValue(obj, DocumentDTO.class); + MainResponseDTO body = respEntity.getBody(); + if (body != null) { + if (body.getErrors() != null) { + log.info("sessionId", "idType", "id", + "In callGetBytesDocRestService method of datasync service util - Document not found for the documentId"); + } else { + Object obj = body.getResponse(); + responsestatusDto = mapper.convertValue(obj, DocumentDTO.class); + } } } catch (RestClientException ex) { log.debug("sessionId", "idType", "id", ExceptionUtils.getStackTrace(ex)); @@ -430,7 +504,7 @@ public DemographicResponseDTO getPreRegistrationData(String preId) { UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(demographicResourceUrl + "/applications/prereg/"); HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON_UTF8); + headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity> httpEntity = new HttpEntity<>(headers); String uriBuilder = builder.build().encode().toUriString(); uriBuilder += "{preRegistrationId}"; @@ -439,17 +513,18 @@ public DemographicResponseDTO getPreRegistrationData(String preId) { HttpMethod.GET, httpEntity, new ParameterizedTypeReference>() { }, params); - if (respEntity.getBody().getErrors() != null) { - for (ExceptionJSONInfoDTO exceptionJSONInfoDTO : respEntity.getBody().getErrors()) { - if (exceptionJSONInfoDTO != null) { - throw new DemographicGetDetailsException(exceptionJSONInfoDTO.getErrorCode(), - exceptionJSONInfoDTO.getMessage(), null); + MainResponseDTO body = respEntity.getBody(); + if (body != null) { + if (body.getErrors() != null) { + for (ExceptionJSONInfoDTO exceptionJSONInfoDTO : body.getErrors()) { + if (exceptionJSONInfoDTO != null) { + throw new DemographicGetDetailsException(exceptionJSONInfoDTO.getErrorCode(), + exceptionJSONInfoDTO.getMessage(), null); + } } + } else { + responsestatusDto = mapper.convertValue(body.getResponse(), DemographicResponseDTO.class); } - - } else { - responsestatusDto = mapper.convertValue(respEntity.getBody().getResponse(), - DemographicResponseDTO.class); } } catch (RestClientException ex) { log.debug("sessionId", "idType", "id", ExceptionUtils.getStackTrace(ex)); @@ -479,7 +554,7 @@ public BookingRegistrationDTO getAppointmentDetails(String preId) { params.put("preRegistrationId", preId); UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(bookingResourceUrl + "/appointment/"); HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON_UTF8); + headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity> httpEntity = new HttpEntity<>(headers); String uriBuilder = builder.build().encode().toUriString(); uriBuilder += "{preRegistrationId}"; @@ -488,19 +563,21 @@ public BookingRegistrationDTO getAppointmentDetails(String preId) { HttpMethod.GET, httpEntity, new ParameterizedTypeReference>() { }, params); - if (respEntity.getBody().getErrors() != null) { - for (ExceptionJSONInfoDTO exceptionJSONInfoDTO : respEntity.getBody().getErrors()) { - if (exceptionJSONInfoDTO != null) { - throw new DemographicGetDetailsException(exceptionJSONInfoDTO.getErrorCode(), - exceptionJSONInfoDTO.getMessage(), null); + MainResponseDTO body = respEntity.getBody(); + if (body != null) { + if (body.getErrors() != null) { + for (ExceptionJSONInfoDTO exceptionJSONInfoDTO : body.getErrors()) { + if (exceptionJSONInfoDTO != null) { + throw new DemographicGetDetailsException(exceptionJSONInfoDTO.getErrorCode(), + exceptionJSONInfoDTO.getMessage(), null); + } + } + } else { + bookingRegistrationDTO = mapper.convertValue(body.getResponse(), BookingRegistrationDTO.class); + if (bookingRegistrationDTO == null) { + throw new RecordNotFoundForDateRange(ErrorCodes.PRG_DATA_SYNC_001.getCode(), + ErrorMessages.RECORDS_NOT_FOUND_FOR_DATE_RANGE.getMessage(), null); } - } - } else { - bookingRegistrationDTO = mapper.convertValue(respEntity.getBody().getResponse(), - BookingRegistrationDTO.class); - if (bookingRegistrationDTO == null) { - throw new RecordNotFoundForDateRange(ErrorCodes.PRG_DATA_SYNC_001.getCode(), - ErrorMessages.RECORDS_NOT_FOUND_FOR_DATE_RANGE.getMessage(), null); } } } catch (RestClientException ex) { @@ -763,18 +840,21 @@ public Map getPreregistrationUpdatedTime(PreRegIdsByRegCenterIdD UriComponentsBuilder builder = UriComponentsBuilder .fromHttpUrl(demographicResourceUrl + "/applications/prereg/updatedTime"); HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON_UTF8); + headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity>> httpEntity = new HttpEntity(mainRequestDTO, headers); String uriBuilder = builder.build().encode().toUriString(); ResponseEntity>> respEntity = selfTokenRestTemplate.exchange(uriBuilder, HttpMethod.POST, httpEntity, new ParameterizedTypeReference>>() { }); - if (respEntity.getBody().getErrors() != null) { - throw new DemographicGetDetailsException(ErrorCodes.PRG_DATA_SYNC_011.getCode(), - ErrorMessages.INVALID_REQUESTED_PRE_REG_ID_LIST.getMessage(), null); - } else { - response = mapper.convertValue(respEntity.getBody().getResponse(), Map.class); + MainResponseDTO> body = respEntity.getBody(); + if (body != null) { + if (body.getErrors() != null) { + throw new DemographicGetDetailsException(ErrorCodes.PRG_DATA_SYNC_011.getCode(), + ErrorMessages.INVALID_REQUESTED_PRE_REG_ID_LIST.getMessage(), null); + } else { + response = mapper.convertValue(body.getResponse(), Map.class); + } } } catch (RestClientException ex) { log.debug("sessionId", "idType", "id", ExceptionUtils.getStackTrace(ex)); @@ -910,7 +990,7 @@ public String getEncryptionKey(String machineId) { UriComponentsBuilder builder = UriComponentsBuilder .fromHttpUrl(syncdataResourceUrl + "/tpm/publickey/" + machineId); HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON_UTF8); + headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity> httpEntity = new HttpEntity<>(headers); String uriBuilder = builder.build().encode().toUriString(); log.info("sessionId", "idType", "id", "In callGetMachinePublickey method URL-{} " + uriBuilder); @@ -918,12 +998,17 @@ public String getEncryptionKey(String machineId) { HttpMethod.GET, httpEntity, new ParameterizedTypeReference>() { }); - if (respEntity.getBody().getErrors() != null) { - log.info("sessionId", "idType", "id", - "In callGetMachinePublickey method of datasync service util - unable to get envryption publickey for the machineID"); - } else { - encryptionPublickey = respEntity.getBody().getResponse().getEncryptionPublicKey(); - } + MainResponseDTO body = respEntity.getBody(); + if (body != null) { + if (body.getErrors() != null) { + log.info("sessionId", "idType", "id", + "In callGetMachinePublickey method of datasync service util - unable to get envryption publickey for the machineID"); + } else { + if (body.getResponse() != null) { + encryptionPublickey = body.getResponse().getEncryptionPublicKey(); + } + } + } } } catch (RestClientException ex) { @@ -958,7 +1043,7 @@ public ApplicationInfoMetadataDTO getPreRegistrationInfo(String prid) { UriComponentsBuilder builder = UriComponentsBuilder .fromHttpUrl(demographicResourceUrl + "/applications/prereg/info/" + prid); HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON_UTF8); + headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity httpEntity = new HttpEntity<>(headers); String uriBuilder = builder.build().encode().toUriString(); log.info("In getPreRegistrationInfo method URL- {}", uriBuilder); @@ -966,12 +1051,20 @@ public ApplicationInfoMetadataDTO getPreRegistrationInfo(String prid) { HttpMethod.GET, httpEntity, new ParameterizedTypeReference>() { }); - if (respEntity.getBody().getErrors() != null) { - log.info("unable to get preregistration data for the prid {}", prid); - throw new DataSyncRecordNotFoundException(ErrorCodes.PRG_DATA_SYNC_019.getCode(), - ErrorMessages.FAILED_TO_FETCH_INFO_FOR_PRID.getMessage(), null); - } else { - applicationInfo = respEntity.getBody().getResponse(); + MainResponseDTO body = respEntity.getBody(); + if (body != null) { + if (body.getErrors() != null) { + if (demographicConsumedRepository.findByPrid(prid) != null) + { + log.info("PRID has been Consumed{}", prid); + throw new PreRegistrationException(ErrorCodes.PRG_DATA_SYNC_022.getCode(), + ErrorMessages.PRID_CONSUMED.getMessage()); + } + log.info("unable to get preregistration data for the prid {}", prid); + throw new DataSyncRecordNotFoundException(ErrorCodes.PRG_DATA_SYNC_019.getCode(), + ErrorMessages.FAILED_TO_FETCH_INFO_FOR_PRID.getMessage(), null); + } + applicationInfo = body.getResponse(); } } catch (RestClientException ex) { log.error("In getPreRegistrationInfo method of datasync service util ", ex); @@ -986,6 +1079,7 @@ public ApplicationInfoMetadataDTO getPreRegistrationInfo(String prid) { public String signData(String data) { log.info("In SignData method of datasync service util"); JWTSignatureResponseDto signatureResponse = null; + String jwtSignedData = null; JWTSignatureRequestDto request = new JWTSignatureRequestDto(); request.setApplicationId(signAppId); request.setReferenceId(signRefId); @@ -998,7 +1092,7 @@ public String signData(String data) { try { UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(keymanagerResourceUrl + "/jwtSign"); HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON_UTF8); + headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity httpEntity = new HttpEntity>(mainRequestDTO, headers); String uriBuilder = builder.build().encode().toUriString(); log.info("In signData method URL- {}", uriBuilder); @@ -1006,23 +1100,29 @@ public String signData(String data) { HttpMethod.POST, httpEntity, new ParameterizedTypeReference>() { }); - if (respEntity.getBody().getErrors() != null) { - log.error("In signData method of datasync service util - unable to get sign data {}", - respEntity.getBody().getErrors()); - } else { - signatureResponse = respEntity.getBody().getResponse(); - log.debug(" Sign Response : --> {}", signatureResponse); + MainResponseDTO body = respEntity.getBody(); + if (body != null) { + if (body.getErrors() != null) { + log.error("In signData method of datasync service util - unable to get sign data {}", + body.getErrors()); + } + if (body.getResponse() != null) { + signatureResponse = body.getResponse(); + log.debug(" Sign Response : --> {}", signatureResponse); + jwtSignedData = signatureResponse.getJwtSignedData(); + } } } catch (RestClientException ex) { log.error("In signData method of datasync service util -", ex); throw new PreRegistrationException(ErrorCodes.PRG_DATA_SYNC_020.getCode(), ErrorMessages.UNABLE_TO_SIGN_DATA.getMessage()); } - return signatureResponse.getJwtSignedData(); + return jwtSignedData; } public boolean updateApplicationStatusToPreFectched(String preId) { + boolean returnFlag = false; log.info("In updateApplicationStatusToPreFectched method of datasync service util"); ResponseEntity> respEntity = null; try { @@ -1030,17 +1130,23 @@ public boolean updateApplicationStatusToPreFectched(String preId) { .fromHttpUrl(demographicResourceUrl + "/applications/prereg/status/" + preId) .queryParam("statusCode", StatusCodes.PREFETCHED.getCode()); HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON_UTF8); + headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity httpEntity = new HttpEntity<>(headers); String uriBuilder = builder.build().encode().toUriString(); log.info("In updateApplicationStatusToPreFectched method URL- {}", uriBuilder); respEntity = selfTokenRestTemplate.exchange(uriBuilder, HttpMethod.PUT, httpEntity, new ParameterizedTypeReference>() { }); - if (respEntity.getBody().getErrors() != null) { - log.info("unable to update preregistration status to prefetched for the prid {}", preId); - throw new DataSyncRecordNotFoundException(ErrorCodes.PRG_DATA_SYNC_021.getCode(), - ErrorMessages.PREFETCHED_UPDATE_FAILED.getMessage(), null); + MainResponseDTO body = respEntity.getBody(); + if (body != null) { + if (body.getErrors() != null) { + log.info("unable to update preregistration status to prefetched for the prid {}", preId); + throw new DataSyncRecordNotFoundException(ErrorCodes.PRG_DATA_SYNC_021.getCode(), + ErrorMessages.PREFETCHED_UPDATE_FAILED.getMessage(), null); + } + if (body.getResponse() != null) { + returnFlag = true; + } } } catch (RestClientException ex) { log.error("In updateApplicationStatusToPreFectched method of datasync service util ", ex); @@ -1048,7 +1154,7 @@ public boolean updateApplicationStatusToPreFectched(String preId) { throw new DataSyncRecordNotFoundException(ErrorCodes.PRG_DATA_SYNC_021.getCode(), ErrorMessages.PREFETCHED_UPDATE_FAILED.getMessage(), null); } - return respEntity.getBody().getResponse() != null ? true : false; + return returnFlag; } diff --git a/pre-registration/pre-registration-datasync-service/src/main/resources/application.properties b/pre-registration/pre-registration-datasync-service/src/main/resources/application.properties index 89fb22eaa7d..8d191b952e7 100644 --- a/pre-registration/pre-registration-datasync-service/src/main/resources/application.properties +++ b/pre-registration/pre-registration-datasync-service/src/main/resources/application.properties @@ -1,4 +1,4 @@ -spring.cloud.config.uri=https://dev.mosip.net/config +spring.cloud.config.uri=https://localhost:8080 spring.cloud.config.label=develop spring.cloud.config.name=pre-registration spring.application.name=pre-registration-datasync-service @@ -26,13 +26,13 @@ mosip.preregistration.demographic.id.create=mosip.pre-registration.demographic.c mosip.preregistration.demographic.id.update=mosip.pre-registration.demographic.update mosip.preregistration.demographic.id.retrieve.date=mosip.pre-registration.demographic.retrieve.date appId: prereg -mosip.base.url=https://dev.mosip.net +mosip.base.url=https://api-internal.qa4.mosip.net application.id: pre-registration appointmentResourse.url: ${mosip.base.url}/preregistration/v1 audit.service.contextpath: auditmanager audit.service.env: http://kernel-auditmanager-service audit.url: ${mosip.base.url}/v1/auditmanager/audits -auth-token-generator.rest.issuerUrl:${mosip.base.url}/keycloak/auth/realms/preregistration +auth-token-generator.rest.issuerUrl:https://iam.qa4.mosip.net/auth/realms/mosip auth.server.admin.validate.url:${mosip.base.url}/v1/authmanager/authorize/admin/validateToken auth.server.validate.url: ${mosip.base.url}/v1/authmanager/authorize/admin/validateToken batch.appointment.cancel: ${mosip.base.url}/preregistration/v1/internal/applications/appointment/{preRegistrationId} @@ -63,11 +63,12 @@ document.service.env: ${mosip.base.url} document.service.version: v1 email.acknowledgement.subject.template: Acknowledgement-email-subject email.acknowledgement.template: Email-Acknowledgement +cancel.appointment.email.subject: cancel-appointment-email-subject email.service.contextpath: notifier email.service.env: ${mosip.base.url} emailResourse.url: ${mosip.base.url}/v1/notifier/email/send expiredStatus.url: ${mosip.base.url}/preregistration/v1/batch/expiredStatus -global.config.file: application.properties +#global.config.file: application.properties google.recaptcha.secret.key: 6LckJrsZAAAAALvljaAYG767llIAPdVFwRTeD_bQ google.recaptcha.site.key: 6LckJrsZAAAAANEZDeHcKteBRT2iMKE42ou4idGG google.recaptcha.verify.url: https://www.google.com/recaptcha/api/siteverify @@ -81,8 +82,8 @@ holiday.url: ${mosip.base.url}/v1/masterdata/getregistrationcenterholidays/ javax.persistence.jdbc.driver: org.postgresql.Driver -javax.persistence.jdbc.password: mosip123 -javax.persistence.jdbc.url=jdbc:postgresql://dev.mosip.net:30090/mosip_prereg?useSSL=false +javax.persistence.jdbc.password: +javax.persistence.jdbc.url=jdbc:postgresql://api-internal.qa4.mosip.net:5432/mosip_prereg?useSSL=false javax.persistence.jdbc.user: postgres kernel.auth.contextpath: authmanager @@ -106,7 +107,7 @@ masterdata.service.version: v1 max.file.size: 2 mosip.adult.age: 5 mosip.batch.token.authmanager.appId: prereg -mosip.batch.token.authmanager.password: abc123 +mosip.batch.token.authmanager.password: mosip.batch.token.authmanager.url: ${mosip.base.url}/v1/authmanager/authenticate/clientidsecretkey mosip.batch.token.authmanager.userName: mosip-prereg-client mosip.batch.token.request.id: @@ -155,7 +156,7 @@ mosip.kernel.crypto.hash-algorithm-name: PBKDF2WithHmacSHA512 mosip.kernel.crypto.hash-iteration: 100000 mosip.kernel.crypto.hash-symmetric-key-length: 256 mosip.kernel.crypto.sign-algorithm-name: RS256 -mosip.kernel.crypto.symmetric-algorithm-name: AES/GCM/PKCS5Padding +mosip.kernel.crypto.symmetric-algorithm-name: AES/GCM/NoPadding mosip.kernel.cryptomanager.request_id: CRYPTOMANAGER.REQUEST mosip.kernel.cryptomanager.request_version: v1.0 mosip.kernel.data-key-splitter: #KEY_SPLITTER# @@ -349,7 +350,7 @@ poa.url: proofOfAddress pod.url: proofOfDateOfBirth poi.url: proofOfIdentity por.url: proofOfRelationship -pre.reg.config.file: pre-registration-${spring.profiles.active}.properties +#pre.reg.config.file: pre-registration-${spring.profiles.active}.properties preregistration.config.identityjson: identity-mapping.json preregistration.demographicDetails: demographicDetails preregistration.identity: identity @@ -379,9 +380,9 @@ preregistration.workflow.documentupload: true/false qrversion: V1 regCenter.url: ${mosip.base.url}/v1/masterdata/registrationcenters resource.template.url: ${mosip.base.url}/v1/masterdata/templates -secretKey: abc123 +secretKey: sendOtp.resource.url: ${mosip.base.url}/v1/authmanager -server.max-http-header-size: 10000000 +server.max-http-request-header-size: 10000000 sms.acknowledgement.template: SMS-Acknowledgement sms.service.contextpath: notifier sms.service.env: ${mosip.base.url} @@ -403,25 +404,26 @@ preregistration.crypto.PrependThumbprint=false preregistration.crypto.applicationId=PRE_REGISTRATION mosip.mandatory-languages=ara,eng mosip.optional-languages=fra,ara -mosip.role.prereg.postpreregsync=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.getsyncpreregistrationid=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.getsyncpreregistrationidmachineid=REGISTRATION_OFFICER,INDIVIDUAL -mosip.role.prereg.postsyncconsumedpreregids=REGISTRATION_OFFICER,INDIVIDUAL +mosip.role.prereg.postpreregsync=REGISTRATION_OFFICER,REGISTRATION_SUPERVISOR,REGISTRATION_ADMIN +mosip.role.prereg.getsyncpreregistrationid=REGISTRATION_OFFICER,REGISTRATION_SUPERVISOR,REGISTRATION_ADMIN +mosip.role.prereg.getsyncpreregistrationidmachineid=REGISTRATION_OFFICER,REGISTRATION_SUPERVISOR,REGISTRATION_ADMIN +mosip.role.prereg.postsyncconsumedpreregids=REGISTRATION_OFFICER,REGISTRATION_SUPERVISOR,REGISTRATION_ADMIN,REGISTRATION_PROCESSOR mosip.preregistration.sync.sign.appid=KERNEL mosip.preregistration.sync.sign.refid=SIGN +mosip.preregistration.miscellaneouspurpose.length=200 # To generate token from keycloak in PreReg Data Sync Service. Used by kernel auth adapter. mosip.iam.adapter.clientid.pre-registration-datasync-service=mosip-reg-client -mosip.iam.adapter.clientsecret.pre-registration-datasync-service=abc123 +mosip.iam.adapter.clientsecret.pre-registration-datasync-service= mosip.iam.adapter.appid.pre-registration-datasync-service=registrationclient # URL to get new Auth Token from OIDC provider & to do online validation of auth token with OIDC provider. -auth.server.admin.issuer.uri=${mosip.base.url}/keycloak/auth/realms/ +auth.server.admin.issuer.uri=https://iam.dev.mosip.net/auth/realms/ # Map to find the realm for the inputted appid to get the token from OIDC provider. -mosip.kernel.auth.appids.realm.map={prereg:'preregistration',ida:'mosip',registrationclient:'mosip',regproc:'mosip',partner:'mosip',resident:'mosip',admin:'mosip',crereq:'mosip',creser:'mosip',datsha:'mosip'} +mosip.kernel.auth.appids.realm.map={prereg:'mosip',ida:'mosip',registrationclient:'mosip',regproc:'mosip',partner:'mosip',resident:'mosip',admin:'mosip',crereq:'mosip',creser:'mosip',datsha:'mosip'} # To validate the issued audience/azp of the auth token in offline token validation.t auth.server.admin.allowed.audience=mosip-regproc-client,mosip-prereg-client,mosip-admin-client,mosip-reg-client @@ -429,4 +431,6 @@ auth.server.admin.allowed.audience=mosip-regproc-client,mosip-prereg-client,mosi #the custom auth provider component names list #mosip.security.authentication.provider.beans.list=customJWTAuthProvider mosip.security.authentication.provider.beans.list.pre-registration-application-service=customJWTAuthProvider -mosip.security.authentication.provider.beans.list.pre-registration-booking-service=customJWTAuthProvider \ No newline at end of file +mosip.security.authentication.provider.beans.list.pre-registration-booking-service=customJWTAuthProvider + +spring.mvc.pathmatch.matching-strategy=ANT_PATH_MATCHER \ No newline at end of file diff --git a/pre-registration/pre-registration-datasync-service/src/test/java/io/mosip/preregistration/datasync/DataSyncApplicationTest.java b/pre-registration/pre-registration-datasync-service/src/test/java/io/mosip/preregistration/datasync/DataSyncApplicationTest.java index b7adbdb46f5..259efa0eea2 100644 --- a/pre-registration/pre-registration-datasync-service/src/test/java/io/mosip/preregistration/datasync/DataSyncApplicationTest.java +++ b/pre-registration/pre-registration-datasync-service/src/test/java/io/mosip/preregistration/datasync/DataSyncApplicationTest.java @@ -1,7 +1,14 @@ package io.mosip.preregistration.datasync; import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Import; + +import io.mosip.kernel.dataaccess.hibernate.config.HibernateDaoConfig; /** * Data sync Application @@ -9,12 +16,16 @@ * @author M1046129 - Jagadishwari * */ -@SpringBootApplication(scanBasePackages = { "io.mosip.preregistration.core.*,io.mosip.preregistration.document.*" - + ",io.mosip.preregistration.application.*,io.mosip.preregistration.datasync.*" - + ",io.mosip.kernel.emailnotifier.*,io.mosip.kernel.smsnotifier.*,io.mosip.kernel.cryotomanager.*,io.mosip.kernel.auditmanger.*,io.mosip.kernel.idgenerator.*" }) +@ComponentScan(basePackages = { "io.mosip.preregistration.core.*", "io.mosip.preregistration.document.*", + "io.mosip.preregistration.datasync.*", "io.mosip.kernel.core.*", "io.mosip.kernel.templatemanager.velocity.*", + "io.mosip.kernel.emailnotifier.*", "io.mosip.kernel.smsnotifier.*", "io.mosip.kernel.cryotomanager.*", + "io.mosip.kernel.auditmanger.*", "io.mosip.kernel.idgenerator.*", "io.mosip.analytics.event.anonymous.*" + }) +@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class }) +@Import({ HibernateDaoConfig.class }) +@SpringBootApplication public class DataSyncApplicationTest { - public static void main(String[] args) { SpringApplication.run(DataSyncApplicationTest.class, args); } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-datasync-service/src/test/java/io/mosip/preregistration/datasync/test/config/TestConfig.java b/pre-registration/pre-registration-datasync-service/src/test/java/io/mosip/preregistration/datasync/test/config/TestConfig.java index 3ed9599be71..94630d43b0c 100644 --- a/pre-registration/pre-registration-datasync-service/src/test/java/io/mosip/preregistration/datasync/test/config/TestConfig.java +++ b/pre-registration/pre-registration-datasync-service/src/test/java/io/mosip/preregistration/datasync/test/config/TestConfig.java @@ -7,9 +7,11 @@ import javax.net.ssl.SSLContext; -import org.apache.http.conn.ssl.SSLConnectionSocketFactory; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClients; +import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory; +import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; +import org.apache.hc.client5.http.impl.classic.HttpClients; +import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManagerBuilder; +import org.apache.hc.client5.http.io.HttpClientConnectionManager; import org.apache.http.ssl.TrustStrategy; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -21,18 +23,37 @@ public class TestConfig { @Bean public RestTemplate selfTokenRestTemplate() throws KeyManagementException, NoSuchAlgorithmException, KeyStoreException { - - TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true; + TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true; - SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom() - .loadTrustMaterial(null, acceptingTrustStrategy).build(); + SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy) + .build(); - SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext); + SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext); - CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(csf).build(); - HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); + HttpClientConnectionManager connectionManager = PoolingHttpClientConnectionManagerBuilder.create() + .setSSLSocketFactory(csf).build(); + CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(connectionManager).build(); + HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); - requestFactory.setHttpClient(httpClient); - return new RestTemplate(requestFactory); + requestFactory.setHttpClient(httpClient); + return new RestTemplate(requestFactory); } -} + + @Bean + public RestTemplate plainRestTemplate() throws KeyManagementException, NoSuchAlgorithmException, KeyStoreException { + TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true; + + SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy) + .build(); + + SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext); + + HttpClientConnectionManager connectionManager = PoolingHttpClientConnectionManagerBuilder.create() + .setSSLSocketFactory(csf).build(); + CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(connectionManager).build(); + HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); + + requestFactory.setHttpClient(httpClient); + return new RestTemplate(requestFactory); + } +} \ No newline at end of file diff --git a/pre-registration/pre-registration-datasync-service/src/test/java/io/mosip/preregistration/datasync/test/config/TestSecurityConfig.java b/pre-registration/pre-registration-datasync-service/src/test/java/io/mosip/preregistration/datasync/test/config/TestSecurityConfig.java index fbddd898362..d7bd97e37da 100644 --- a/pre-registration/pre-registration-datasync-service/src/test/java/io/mosip/preregistration/datasync/test/config/TestSecurityConfig.java +++ b/pre-registration/pre-registration-datasync-service/src/test/java/io/mosip/preregistration/datasync/test/config/TestSecurityConfig.java @@ -4,57 +4,42 @@ import java.util.Arrays; import java.util.List; -import javax.servlet.http.HttpServletResponse; - import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; +import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.builders.WebSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; -import org.springframework.security.config.http.SessionCreationPolicy; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.provisioning.InMemoryUserDetailsManager; import org.springframework.security.web.AuthenticationEntryPoint; +import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.firewall.DefaultHttpFirewall; import org.springframework.security.web.firewall.HttpFirewall; +import jakarta.servlet.http.HttpServletResponse; + @Configuration @EnableWebSecurity -@EnableGlobalMethodSecurity(prePostEnabled = true) -public class TestSecurityConfig extends WebSecurityConfigurerAdapter { - - - - - @Bean +@EnableMethodSecurity +public class TestSecurityConfig { + @Bean public HttpFirewall defaultHttpFirewall() { return new DefaultHttpFirewall(); } - @Override - public void configure(WebSecurity webSecurity) throws Exception { - webSecurity.ignoring().antMatchers(allowedEndPoints()); - super.configure(webSecurity); - webSecurity.httpFirewall(defaultHttpFirewall()); - } - - private String[] allowedEndPoints() { - return new String[] { "/assets/**", "/icons/**", "/screenshots/**", "/favicon**", "/**/favicon**", "/css/**", - "/js/**", "/*/error**", "/*/webjars/**", "/*/v2/api-docs", "/*/configuration/ui", - "/*/configuration/security", "/*/swagger-resources/**", "/*/swagger-ui.html" }; - } - - @Override - protected void configure(final HttpSecurity httpSecurity) throws Exception { - httpSecurity.csrf().disable(); - httpSecurity.httpBasic().and().authorizeRequests().anyRequest().authenticated().and().sessionManagement() - .sessionCreationPolicy(SessionCreationPolicy.STATELESS).and().exceptionHandling() - .authenticationEntryPoint(unauthorizedEntryPoint()); + @Bean + protected SecurityFilterChain configureSecurityFilterChain(final HttpSecurity httpSecurity) throws Exception { + httpSecurity.httpBasic(AbstractHttpConfigurer::disable); + /* + * Disabling CSRF protection because this is a stateless API that uses token-based authentication + */ + httpSecurity.csrf(AbstractHttpConfigurer::disable); // NOSONAR + httpSecurity.authorizeHttpRequests(http -> http.anyRequest().permitAll()); + return httpSecurity.build(); } @Bean @@ -65,7 +50,7 @@ public AuthenticationEntryPoint unauthorizedEntryPoint() { @Bean public UserDetailsService userDetailsService() { List users = new ArrayList<>(); - users.add(new User("reg-officer", "mosip", + users.add(new User("reg-officer", "admin", Arrays.asList(new SimpleGrantedAuthority("ROLE_REGISTRATION_OFFICER")))); users.add(new User("reg-supervisor", "mosip", Arrays.asList(new SimpleGrantedAuthority("ROLE_REGISTRATION_SUPERVISOR")))); @@ -77,5 +62,4 @@ public UserDetailsService userDetailsService() { users.add(new User("test", "mosip", Arrays.asList(new SimpleGrantedAuthority("ROLE_TEST")))); return new InMemoryUserDetailsManager(users); } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-datasync-service/src/test/java/io/mosip/preregistration/datasync/test/controller/DataSyncControllerTest.java b/pre-registration/pre-registration-datasync-service/src/test/java/io/mosip/preregistration/datasync/test/controller/DataSyncControllerTest.java index 2b23289078d..89d32c451d8 100644 --- a/pre-registration/pre-registration-datasync-service/src/test/java/io/mosip/preregistration/datasync/test/controller/DataSyncControllerTest.java +++ b/pre-registration/pre-registration-datasync-service/src/test/java/io/mosip/preregistration/datasync/test/controller/DataSyncControllerTest.java @@ -9,7 +9,6 @@ import java.net.URI; import java.net.URISyntaxException; import java.sql.Timestamp; -import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.time.ZoneOffset; @@ -60,15 +59,14 @@ public class DataSyncControllerTest { @Autowired private MockMvc mockMvc; - private SignatureResponse signResponse; - + @Mock private RequestValidator requestValidator; @MockBean private DataSyncService dataSyncService; - + @MockBean ClientCryptoManagerService clientCryptoManagerService; @@ -93,8 +91,8 @@ public class DataSyncControllerTest { MainResponseDTO mainReverseDataSyncResponseDTO = new MainResponseDTO<>(); @Before - public void setUp() throws URISyntaxException, FileNotFoundException, IOException, ParseException, - org.json.simple.parser.ParseException { + public void setUp() + throws URISyntaxException, org.json.simple.parser.ParseException, FileNotFoundException, IOException { bytes = new byte[1024]; resTime = new Timestamp(System.currentTimeMillis()); @@ -122,7 +120,7 @@ public void setUp() throws URISyntaxException, FileNotFoundException, IOExceptio reverseDataSyncRequestDTO.setPreRegistrationIds(pre_registration_ids); mainReverseDataSyncRequestDTO.setRequest(reverseDataSyncRequestDTO); - signResponse=new SignatureResponse(); + signResponse = new SignatureResponse(); signResponse.setData("asdasdsadf4e"); signResponse.setTimestamp(LocalDateTime.now(ZoneOffset.UTC)); } @@ -140,20 +138,16 @@ public void successRetrievePreidsTest() throws Exception { preRegArchiveDTO.setTimeSlotTo("09:46"); preRegArchiveDTO.setZipBytes(bytes); mainPreRegArchiveDTO.setResponse(preRegArchiveDTO); - mainPreRegArchiveDTO - .setResponsetime(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").format(new Date())); -// Mockito.when(signingService.sign(Mockito.any())).thenReturn(signResponse); + mainPreRegArchiveDTO.setResponsetime(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").format(new Date())); Mockito.when(dataSyncService.getPreRegistrationData("97285429827016")).thenReturn(mainPreRegArchiveDTO); RequestBuilder requestBuilder = MockMvcRequestBuilders.get("/sync/{preRegistrationId}", "97285429827016") .contentType(MediaType.APPLICATION_JSON); mockMvc.perform(requestBuilder).andExpect(status().isOk()); - } @WithUserDetails("reg-officer") @Test public void retrieveAllpregIdSuccessTest() throws Exception { - Map list = new HashMap<>(); list.put("97285429827016", "2019-01-17T13:24:53.419Z"); list.put("56014280251746", "2019-01-17T13:24:51.665Z"); @@ -196,4 +190,4 @@ public void reverseDatasyncSuccessTest() throws Exception { mockMvc.perform(requestBuilder).andExpect(status().isOk()); } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-datasync-service/src/test/java/io/mosip/preregistration/datasync/test/service/DataSyncServiceTest.java b/pre-registration/pre-registration-datasync-service/src/test/java/io/mosip/preregistration/datasync/test/service/DataSyncServiceTest.java index 3fbad08a389..b8c3f6ba848 100644 --- a/pre-registration/pre-registration-datasync-service/src/test/java/io/mosip/preregistration/datasync/test/service/DataSyncServiceTest.java +++ b/pre-registration/pre-registration-datasync-service/src/test/java/io/mosip/preregistration/datasync/test/service/DataSyncServiceTest.java @@ -2,8 +2,6 @@ import static org.junit.Assert.assertEquals; -import java.io.IOException; -import java.net.URISyntaxException; import java.sql.Timestamp; import java.text.SimpleDateFormat; import java.time.LocalDate; @@ -30,7 +28,10 @@ import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContext; import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestContext; import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.web.context.WebApplicationContext; import io.mosip.analytics.event.anonymous.util.AnonymousProfileUtil; import io.mosip.kernel.clientcrypto.service.spi.ClientCryptoManagerService; @@ -63,8 +64,10 @@ import io.mosip.preregistration.datasync.repository.ProcessedDataSyncRepo; import io.mosip.preregistration.datasync.service.DataSyncService; import io.mosip.preregistration.datasync.service.util.DataSyncServiceUtil; +import io.mosip.preregistration.datasync.test.config.TestConfig; @RunWith(SpringRunner.class) +@ContextConfiguration(classes = {TestConfig.class, TestContext.class, WebApplicationContext.class}) @SpringBootTest(classes = { DataSyncApplicationTest.class }) public class DataSyncServiceTest { @@ -163,8 +166,7 @@ public class DataSyncServiceTest { ApplicationInfoMetadataDTO preRegInfo = new ApplicationInfoMetadataDTO(); @Before - public void setUp() throws URISyntaxException, IOException, org.json.simple.parser.ParseException, ParseException, - java.text.ParseException { + public void setUp() throws ParseException{ List preRegIds = new ArrayList(); preRegIds.add("23587986034785"); @@ -362,5 +364,4 @@ public void fetchPreRegistrationDataPendingStatusTest() { MainResponseDTO response = dataSyncService.fetchPreRegistrationData(preregId, machineId); assertEquals(mainResponseDTO.getId().length(), response.getId().length()); } - -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-datasync-service/src/test/java/io/mosip/preregistration/datasync/test/service/util/DataSyncServiceUtilTest.java b/pre-registration/pre-registration-datasync-service/src/test/java/io/mosip/preregistration/datasync/test/service/util/DataSyncServiceUtilTest.java index a6703795eb3..3fd42d32970 100644 --- a/pre-registration/pre-registration-datasync-service/src/test/java/io/mosip/preregistration/datasync/test/service/util/DataSyncServiceUtilTest.java +++ b/pre-registration/pre-registration-datasync-service/src/test/java/io/mosip/preregistration/datasync/test/service/util/DataSyncServiceUtilTest.java @@ -35,8 +35,11 @@ import org.springframework.http.HttpMethod; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestContext; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.web.client.RestTemplate; +import org.springframework.web.context.WebApplicationContext; import io.mosip.analytics.event.anonymous.util.AnonymousProfileUtil; import io.mosip.kernel.clientcrypto.service.spi.ClientCryptoManagerService; @@ -69,8 +72,10 @@ import io.mosip.preregistration.datasync.repository.InterfaceDataSyncRepo; import io.mosip.preregistration.datasync.repository.ProcessedDataSyncRepo; import io.mosip.preregistration.datasync.service.util.DataSyncServiceUtil; +import io.mosip.preregistration.datasync.test.config.TestConfig; @RunWith(SpringRunner.class) +@ContextConfiguration(classes = {TestConfig.class, TestContext.class, /*TemplateConfiguration.class, */ WebApplicationContext.class}) @SpringBootTest(classes = { DataSyncApplicationTest.class }) public class DataSyncServiceUtilTest { @@ -199,8 +204,6 @@ public void setUp() throws Exception { ClassLoader classLoader = getClass().getClassLoader(); URI uri = new URI(classLoader.getResource("Doc.pdf").getFile().trim().replaceAll("\\u0020", "%20")); file = new File(uri.getPath()); - // mockMultipartFile = new MockMultipartFile("file", "Doc.pdf", - // "mixed/multipart", new FileInputStream(file)); } @Test @@ -436,7 +439,6 @@ public void callGetPreRegInfoRestServiceFailureTest() { mainResponseDTO.setResponsetime(resTime); List exceptionJSONInfoDTOs = new ArrayList<>(); ExceptionJSONInfoDTO exceptionJSONInfoDTO = new ExceptionJSONInfoDTO(); -// exceptionJSONInfoDTO.setErrorCode(ErrorCodes.PRG_PAM_APP_002.toString()); exceptionJSONInfoDTO.setMessage(ErrorMessages.DEMOGRAPHIC_GET_RECORD_FAILED.toString()); exceptionJSONInfoDTOs.add(exceptionJSONInfoDTO); mainResponseDTO.setErrors(exceptionJSONInfoDTOs); @@ -476,7 +478,6 @@ public void callGetAppointmentDetailsRestFailureTest() { responseDTO.setResponsetime(resTime); List exceptionJSONInfoDTOs = new ArrayList<>(); ExceptionJSONInfoDTO exceptionJSONInfoDTO = new ExceptionJSONInfoDTO(); -// exceptionJSONInfoDTO.setErrorCode(ErrorCodes.PRG_PAM_APP_002.toString()); exceptionJSONInfoDTO.setMessage(ErrorMessages.BOOKING_NOT_FOUND.toString()); exceptionJSONInfoDTOs.add(exceptionJSONInfoDTO); responseDTO.setErrors(exceptionJSONInfoDTOs); @@ -521,7 +522,7 @@ public void preparePreRegArchiveDTOTest() { private JSONParser parser = null; @Test - public void archivingFilesTest() throws FileNotFoundException, IOException, ParseException { + public void archivingFilesTest() throws IOException, ParseException { parser = new JSONParser(); ClassLoader classLoader = getClass().getClassLoader(); @@ -597,7 +598,6 @@ public void archivingFilesFailureTest() throws FileNotFoundException, IOExceptio multipartResponseDTOs.setDocTypCode("RNC"); multipartResponseDTOs.setLangCode("ENG"); responsestatusDto.add(multipartResponseDTOs); - // documentDTO.setDocument(file.toString().getBytes()); documentDTO = null; responsestatusDto.add(multipartResponseDTOs); documentsMetaData.setDocumentsMetaData(responsestatusDto); @@ -710,4 +710,4 @@ public void storeReverseDataSyncTest() { assertEquals("1", reponse.getCountOfStoredPreRegIds()); } -} +} \ No newline at end of file diff --git a/pre-registration/pre-registration-datasync-service/src/test/resources/application.properties b/pre-registration/pre-registration-datasync-service/src/test/resources/application.properties index e3a49738cf9..59459b62aff 100644 --- a/pre-registration/pre-registration-datasync-service/src/test/resources/application.properties +++ b/pre-registration/pre-registration-datasync-service/src/test/resources/application.properties @@ -28,6 +28,7 @@ booking.service.env=booking dev.dns.url=http://localhost email.acknowledgement.template=Email-Acknowledgement email.acknowledgement.subject.template=Acknowledgement-email-subject +cancel.appointment.email.subject=cancel-appointment-email-subject sms.acknowledgement.template=SMS-Acknowledgement demographic.resource.url=${dev.dns.url}:9092/pre-registration/${demographic.service.version}/${demographic.service.env} document.resource.url=${dev.dns.url}:9093/pre-registration/${document.service.version}/${documnet.service.env} @@ -95,7 +96,7 @@ mosip.kernel.masterdata.validdoc.rest.uri==https://dev.mosip.net/masterdata/vali mosip.kernel.crypto.asymmetric-algorithm-name=RSA/ECB/OAEPWITHSHA-256ANDMGF1PADDING #Crypto symmetric algorithm name -mosip.kernel.crypto.symmetric-algorithm-name=AES/GCM/PKCS5Padding +mosip.kernel.crypto.symmetric-algorithm-name=AES/GCM/NoPadding #Keygenerator asymmetric algorithm name mosip.kernel.keygenerator.asymmetric-algorithm-name=RSA #Keygenerator symmetric algorithm name @@ -142,7 +143,11 @@ mosip.preregistration.sync.sign.appid=KERNEL mosip.preregistration.sync.sign.refid=SIGN mosip.auth.adapter.impl.basepackage=io.mosip.kernel.auth.defaultadapter -mosip.kernel.auth.appids.realm.map={prereg:'preregistration',ida:'mosip',registrationclient:'mosip',regproc:'mosip',partner:'mosip',resident:'mosip',admin:'mosip',crereq:'mosip',creser:'mosip',datsha:'mosip'} +mosip.kernel.auth.appids.realm.map={prereg:'mosip',ida:'mosip',registrationclient:'mosip',regproc:'mosip',partner:'mosip',resident:'mosip',admin:'mosip',crereq:'mosip',creser:'mosip',datsha:'mosip'} preregistration.config.identityjson= -preregistration.identity= \ No newline at end of file +preregistration.identity= + +mosip.preregistration.anonymous-profile-username=admin + +spring.mvc.pathmatch.matching-strategy=ANT_PATH_MATCHER