diff --git a/.cursorignore b/.cursorignore new file mode 100644 index 0000000..2eea525 --- /dev/null +++ b/.cursorignore @@ -0,0 +1 @@ +.env \ No newline at end of file diff --git a/.github/workflows/qa-prod-deployment.yaml b/.github/workflows/qa-prod-deployment.yaml index 11a4343..247ed72 100644 --- a/.github/workflows/qa-prod-deployment.yaml +++ b/.github/workflows/qa-prod-deployment.yaml @@ -18,22 +18,12 @@ jobs: environment: ${{ github.event.inputs.environment }} steps: - # Step 1: Checkout code - name: Check out repository - uses: actions/checkout@v2 + uses: actions/checkout@v4 - # Step 2: Set TAG environment variable - - name: Set TAG environment variable - run: | - TAG="${{ github.event.inputs.tag }}" - echo "TAG=$TAG" >> $GITHUB_ENV - - # Step 3: Debug TAG value - - name: Debug TAG value - run: | - echo "TAG value: ${{ env.TAG }}" + - name: Set TAG + run: echo "TAG=${{ github.event.inputs.tag }}" >> $GITHUB_ENV - # Step 4: Configure AWS credentials - name: Configure AWS credentials uses: aws-actions/configure-aws-credentials@v4 with: @@ -41,37 +31,27 @@ jobs: aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-region: ${{ secrets.AWS_REGION }} - # Step 5: Decode ConfigMap manifest from secret - name: Write ConfigMap manifest run: | mkdir -p manifest echo "${{ secrets.ENV_FILE_CONTENT }}" | base64 -d > manifest/configmap.yaml - echo "Generated ConfigMap:" - cat manifest/configmap.yaml - # Step 6: Update Deployment Manifest - name: Update Deployment Manifest env: - IMAGE_TAG: ${{ env.TAG }} + IMAGE_TAG: ${{ github.event.inputs.tag }} ECR_REPOSITORY: ${{ secrets.ECR_REPOSITORY }} run: | - mkdir -p manifest envsubst < manifest/tracking-service.yaml > manifest/tracking-service-updated.yaml - echo "Updated deployment manifest:" - cat manifest/tracking-service-updated.yaml - # Step 7: Deploy to AWS EKS - name: Deploy to AWS EKS env: EKS_CLUSTER_NAME: ${{ secrets.EKS_CLUSTER_NAME }} AWS_REGION: ${{ secrets.AWS_REGION }} - NAMESPACE: ${{ github.event.inputs.environment == 'prod' && 'default' || 'microservices-qa' }} + NAMESPACE: ${{ github.event.inputs.environment == 'prod' && 'microservices' || 'microservices-qa' }} run: | aws eks update-kubeconfig --name $EKS_CLUSTER_NAME --region $AWS_REGION + kubectl get ns $NAMESPACE >/dev/null 2>&1 || kubectl create ns $NAMESPACE kubectl apply -f manifest/configmap.yaml -n $NAMESPACE kubectl apply -f manifest/tracking-service-updated.yaml -n $NAMESPACE - # Force pods to reload config after update - kubectl rollout restart deployment trackingmanagement -n $NAMESPACE - sleep 10 - echo "Pods status:" - kubectl get pods -n $NAMESPACE | grep tracking + kubectl delete pod -l app=trackingmanagement -n $NAMESPACE --ignore-not-found=true + kubectl get pods -n $NAMESPACE -l app=trackingmanagement diff --git a/src/modules/tracking_assessment/tracking_assessment.service.ts b/src/modules/tracking_assessment/tracking_assessment.service.ts index 6d9e4f4..b4ded13 100644 --- a/src/modules/tracking_assessment/tracking_assessment.service.ts +++ b/src/modules/tracking_assessment/tracking_assessment.service.ts @@ -646,6 +646,9 @@ export class TrackingAssessmentService { }); } + //for courseId, unitId, contentId + if(searchFilter?.courseId && searchFilter?.unitId && searchFilter?.contentId) + { let output_result = []; let contentIdArray = searchFilter?.contentId; let contentId_text = ''; @@ -772,6 +775,57 @@ export class TrackingAssessmentService { message: 'success', data: output_result, }); + } + else{ + let output_result = []; + let userIdArray = searchFilter?.userId; + for (let i = 0; i < userIdArray.length; i++) { + let userId = userIdArray[i]; + const result = await this.dataSource.query( + `SELECT + "assessmentTrackingId", + "userId", + "courseId", + "contentId", + "attemptId", + "createdOn", + "lastAttemptedOn", + "totalMaxScore", + "totalScore", + "updatedOn", + "timeSpent", + "unitId", + "tenantId" + FROM + assessment_tracking + WHERE + "evaluatedBy" IS DISTINCT FROM 'AI' AND + "userId" = $1 + AND "tenantId" = $2;`, + [userId, tenantId], + ); + for (let j = 0; j < result.length; j++) { + let temp_result = result[j]; + let maxMark = temp_result?.totalMaxScore; + let scoreMark = temp_result?.totalScore; + let percentage = (scoreMark / maxMark) * 100; + const roundedPercentage = parseFloat(percentage.toFixed(2)); // Rounds to 2 decimal places + temp_result.percentage = roundedPercentage; + result[j] = temp_result; + } + let temp_obj = { + userId: userId, + assessments: result, + }; + output_result.push(temp_obj); + } + //get all assesments from userid + return response.status(200).send({ + success: true, + message: 'success', + data: output_result, + }); + } } catch (e) { const errorMessage = e.message || 'Internal Server Error'; this.loggerService.error(