Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .cursorignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.env
36 changes: 8 additions & 28 deletions .github/workflows/qa-prod-deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,60 +18,40 @@ 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:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
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
54 changes: 54 additions & 0 deletions src/modules/tracking_assessment/tracking_assessment.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -646,6 +646,9 @@
});
}

//for courseId, unitId, contentId
if(searchFilter?.courseId && searchFilter?.unitId && searchFilter?.contentId)
{
let output_result = [];
let contentIdArray = searchFilter?.contentId;
let contentId_text = '';
Expand Down Expand Up @@ -772,6 +775,57 @@
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

Check warning on line 812 in src/modules/tracking_assessment/tracking_assessment.service.ts

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Prefer `Number.parseFloat` over `parseFloat`.

See more on https://sonarcloud.io/project/issues?id=tekdi_tracking-microservice&issues=AZ1DmBc24HCX6-egq5vo&open=AZ1DmBc24HCX6-egq5vo&pullRequest=122
temp_result.percentage = roundedPercentage;
result[j] = temp_result;
}
let temp_obj = {
userId: userId,
assessments: result,
};
output_result.push(temp_obj);
}

Check warning on line 821 in src/modules/tracking_assessment/tracking_assessment.service.ts

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Expected a `for-of` loop instead of a `for` loop with this simple iteration.

See more on https://sonarcloud.io/project/issues?id=tekdi_tracking-microservice&issues=AZ1DmBc24HCX6-egq5vn&open=AZ1DmBc24HCX6-egq5vn&pullRequest=122
//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(
Expand Down
Loading