Skip to content

Commit

Permalink
Merge pull request #852 from MuhammadKhalilzadeh/105-feb-25-fixing-fi…
Browse files Browse the repository at this point in the history
…eld-mismatch

assessment tracker bugs are fixed
  • Loading branch information
MuhammadKhalilzadeh authored Feb 25, 2025
2 parents b4f7702 + baa4aee commit ca28f64
Show file tree
Hide file tree
Showing 8 changed files with 66 additions and 58 deletions.
5 changes: 0 additions & 5 deletions Clients/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -127,15 +127,10 @@ function App() {
path="/"
element={<Home onProjectUpdate={triggerSidebarReload} />}
/>
{/* <Route
path="/compliance-tracker"
element={<NewComplianceTracker />}
/> */}
<Route
path="/compliance-tracker"
element={<ComplianceTracker />}
/>
{/* <Route path="/assessment" element={<Assessment />} /> */}
<Route path="/assessment" element={<AssessmentTracker />} />
<Route path="/vendors" element={<Vendors />} />
<Route path="/setting" element={<Setting />} />
Expand Down
8 changes: 5 additions & 3 deletions Clients/src/presentation/components/Question/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,14 @@ const VWQuestion = ({ question }: { question: Question }) => {
formData.append(`evidence_files[${index}]`, file);
});

const updatedQuestion = await updateEntityById({
const response = await updateEntityById({
routeUrl: `/questions/${question.id}`,
body: values,
});
setValues(updatedQuestion.data);
console.log("Question updated successfully:", updatedQuestion.data);
if (response.status === 202) {
setValues(response.data);
console.log("Question updated successfully:", response.data);
}
} catch (error) {
console.error("Error updating question:", error);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
/**
* This file is currently in use
*/

import { useCallback, useEffect, useState } from "react";
import {
Box,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,18 @@
/**
* This file is currently in use
*/

import { useEffect, useState, useRef } from "react";
import { Stack, Typography } from "@mui/material";
import { getEntityById } from "../../../../application/repository/entity.repository";
import VWSkeleton from "../../../vw-v2-components/Skeletons";
import { Subtopic } from "../../../../domain/Subtopic";
import VWQuestion from "../../../components/Question";
import { Question } from "../../../../domain/Question";

type QuestionsProps = {
subtopic: Subtopic;
index: number;
};

const Questions = ({ subtopic, index }: QuestionsProps) => {
const [questionsData, setQuestionsData] = useState<any>(null);
const [questionsData, setQuestionsData] = useState<Question[]>();
const [loadingQuestions, setLoadingQuestions] = useState<boolean>(true);
const containerRef = useRef<HTMLDivElement>(null);

Expand All @@ -32,7 +29,7 @@ const Questions = ({ subtopic, index }: QuestionsProps) => {
setQuestionsData(response.data);
} catch (error) {
console.error("Failed to fetch questions data:", error);
setQuestionsData(null);
setQuestionsData([]);
} finally {
setLoadingQuestions(false);
}
Expand Down Expand Up @@ -63,7 +60,9 @@ const Questions = ({ subtopic, index }: QuestionsProps) => {
/>
) : Array.isArray(questionsData) ? (
questionsData
.sort((a: any, b: any) => a.order_id - b.order_id)
.sort(
(a: Question, b: Question) => (a.order_no ?? 0) - (b.order_no ?? 0)
)
.map((question: any) => (
<VWQuestion key={question.id} question={question} />
))
Expand Down
2 changes: 1 addition & 1 deletion SQL_Commands.sql
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ CREATE TABLE questions (
evidence_files TEXT[],
answer TEXT,
dropdown_options TEXT[],
order_id INT,
order_no INT,
input_type VARCHAR(255)
);

Expand Down
8 changes: 4 additions & 4 deletions Servers/controllers/question.ctrl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -110,14 +110,14 @@ export async function updateQuestionById(
updatedQuestion,
req.files as UploadedFile[]
)) as Question;
console.log("3");

if (question) {
if (!question) {
console.log("4");
return res.status(202).json(STATUS_CODE[202](question));
return res.status(404).json(STATUS_CODE[404]({}));
}

return res.status(404).json(STATUS_CODE[404]({}));
console.log("5");
return res.status(202).json(STATUS_CODE[202](question));
} catch (error) {
return res.status(500).json(STATUS_CODE[500]((error as Error).message));
}
Expand Down
80 changes: 48 additions & 32 deletions Servers/driver/autoDriver.driver.ts
Original file line number Diff line number Diff line change
Expand Up @@ -95,8 +95,7 @@ const insertQuery = {
vendors: {
mockData: vendors,
tableName: "vendors",
insertString:
`INSERT INTO vendors (
insertString: `INSERT INTO vendors (
order_no, vendor_name, vendor_provides, assignee, website, vendor_contact_person,
review_result, review_status, reviewer, risk_status, review_date
) VALUES `,
Expand Down Expand Up @@ -140,8 +139,7 @@ const insertQuery = {
mockControls: {
mockData: mockControls,
tableName: "controls",
insertString:
`INSERT INTO controls(
insertString: `INSERT INTO controls(
title, description, order_no,
status, approver, risk_review,
owner, reviewer, due_date,
Expand All @@ -165,8 +163,7 @@ const insertQuery = {
subcontrols: {
mockData: subcontrols,
tableName: "subcontrols",
insertString:
`INSERT INTO subcontrols(
insertString: `INSERT INTO subcontrols(
title, description, order_no,
status, approver, risk_review,
owner, reviewer, due_date,
Expand Down Expand Up @@ -230,8 +227,7 @@ const insertQuery = {
mockVendorRisks: {
mockData: mockVendorRisks,
tableName: "vendorrisks",
insertString:
`INSERT INTO vendorRisks (
insertString: `INSERT INTO vendorRisks (
vendor_id, order_no, risk_description, impact_description, impact,
likelihood, risk_severity, action_plan, action_owner, risk_level
) VALUES `,
Expand Down Expand Up @@ -292,11 +288,10 @@ const insertQuery = {
questions: {
mockData: questions,
tableName: "questions",
insertString:
`INSERT INTO questions(subtopic_id, question,
insertString: `INSERT INTO questions(subtopic_id, question,
answer_type, evidence_required, hint,
is_required, priority_level, evidence_files,
dropdown_options, answer, input_type, order_id) VALUES `,
dropdown_options, answer, input_type, order_no) VALUES `,
generateValuesString: function (question: Question) {
return `(
${question.subtopic_id},
Expand Down Expand Up @@ -360,7 +355,9 @@ export async function insertMockData() {
} = insertQuery["users"];
let users;
if (userMockData.length !== 0) {
const values = userMockData(1, 2, 3, 4).map((d) => userGenerateValuesString(d as any));
const values = userMockData(1, 2, 3, 4).map((d) =>
userGenerateValuesString(d as any)
);
insertString += values.join(",") + "RETURNING id;";
users = await insertData(insertString as string);
}
Expand All @@ -373,7 +370,9 @@ export async function insertMockData() {
} = insertQuery["projects"];
let projects;
if (projectMockData.length !== 0) {
const values = projectMockData(users![0].id, users![1].id).map((d) => projectGenerateValuesString(d as any));
const values = projectMockData(users![0].id, users![1].id).map((d) =>
projectGenerateValuesString(d as any)
);
insertString += values.join(",") + "RETURNING id;";
projects = await insertData(insertString as string);
}
Expand All @@ -386,7 +385,9 @@ export async function insertMockData() {
} = insertQuery["vendors"];
let vendors;
if (vendorMockData.length !== 0) {
const values = vendorMockData.map((d) => vendorGenerateValuesString(d as any));
const values = vendorMockData.map((d) =>
vendorGenerateValuesString(d as any)
);
insertString += values.join(",") + "RETURNING id;";
vendors = await insertData(insertString as string);
}
Expand Down Expand Up @@ -419,7 +420,9 @@ export async function insertMockData() {
} = insertQuery["assessments"];
let assessments;
if (assessmentMockData.length !== 0) {
const values = assessmentMockData(projects![0].id, projects![1].id).map((d) => assessmentGenerateValuesString(d as any));
const values = assessmentMockData(projects![0].id, projects![1].id).map(
(d) => assessmentGenerateValuesString(d as any)
);
insertString += values.join(",") + "RETURNING id;";
assessments = await insertData(insertString as string);
}
Expand All @@ -432,7 +435,10 @@ export async function insertMockData() {
} = insertQuery["controlCategories"];
let controlCategories;
if (controlCategoriesMockData.length !== 0) {
const values = controlCategoriesMockData(projects![0].id, projects![1].id).map((d) => controlCategoriesGenerateValuesString(d as any));
const values = controlCategoriesMockData(
projects![0].id,
projects![1].id
).map((d) => controlCategoriesGenerateValuesString(d as any));
insertString += values.join(",") + "RETURNING id;";
controlCategories = await insertData(insertString as string);
}
Expand All @@ -445,7 +451,10 @@ export async function insertMockData() {
} = insertQuery["mockControls"];
let controls;
if (controlMockData.length !== 0) {
const values = controlMockData(controlCategories![0].id, controlCategories![1].id).map((d) => controlGenerateValuesString(d as any));
const values = controlMockData(
controlCategories![0].id,
controlCategories![1].id
).map((d) => controlGenerateValuesString(d as any));
insertString += values.join(",") + "RETURNING id;";
controls = await insertData(insertString as string);
}
Expand All @@ -464,7 +473,7 @@ export async function insertMockData() {
controls![2].id,
controls![3].id,
controls![4].id,
controls![5].id,
controls![5].id
).map((d) => subControlGenerateValuesString(d as any));
insertString += values.join(",") + "RETURNING id;";
subControls = await insertData(insertString as string);
Expand All @@ -478,9 +487,9 @@ export async function insertMockData() {
} = insertQuery["mockProjectRisks"];
let projectRisks;
if (controlMockData.length !== 0) {
const values = projectRisksMockData(
projects![0].id,
).map((d) => projectRisksGenerateValuesString(d as any));
const values = projectRisksMockData(projects![0].id).map((d) =>
projectRisksGenerateValuesString(d as any)
);
insertString += values.join(",") + "RETURNING id;";
projectRisks = await insertData(insertString as string);
}
Expand All @@ -493,10 +502,9 @@ export async function insertMockData() {
} = insertQuery["mockVendorRisks"];
let vendorRisks;
if (controlMockData.length !== 0) {
const values = vendorRisksMockData(
projects![0].id,
projects![0].id,
).map((d) => vendorRisksGenerateValuesString(d as any));
const values = vendorRisksMockData(projects![0].id, projects![0].id).map(
(d) => vendorRisksGenerateValuesString(d as any)
);
insertString += values.join(",") + "RETURNING id;";
vendorRisks = await insertData(insertString as string);
}
Expand All @@ -509,7 +517,9 @@ export async function insertMockData() {
} = insertQuery["projectScopes"];
let projectScopes;
if (projectScopeMockData.length !== 0) {
const values = projectScopeMockData(assessments![0].id).map((d) => projectScopeGenerateValuesString(d as any));
const values = projectScopeMockData(assessments![0].id).map((d) =>
projectScopeGenerateValuesString(d as any)
);
insertString += values.join(",") + "RETURNING id;";
projectScopes = await insertData(insertString as string);
}
Expand All @@ -522,7 +532,9 @@ export async function insertMockData() {
} = insertQuery["topics"];
let topics;
if (topicMockData.length !== 0) {
const values = topicMockData(assessments![0].id, assessments![1].id).map((d) => topicGenerateValuesString(d as any));
const values = topicMockData(assessments![0].id, assessments![1].id).map(
(d) => topicGenerateValuesString(d as any)
);
insertString += values.join(",") + "RETURNING id;";
topics = await insertData(insertString as string);
}
Expand All @@ -535,7 +547,9 @@ export async function insertMockData() {
} = insertQuery["subtopics"];
let subTopics;
if (subTopicMockData.length !== 0) {
const values = subTopicMockData(topics!.map(t => t.id)).map((d) => subTopicGenerateValuesString(d as any));
const values = subTopicMockData(topics!.map((t) => t.id)).map((d) =>
subTopicGenerateValuesString(d as any)
);
insertString += values.join(",") + "RETURNING id;";
subTopics = await insertData(insertString as string);
}
Expand All @@ -548,17 +562,19 @@ export async function insertMockData() {
} = insertQuery["questions"];
let questions;
if (questionMockData.length !== 0) {
const values = questionMockData(subTopics!.map(s => s.id)).map((d) => questionGenerateValuesString(d as any));
const values = questionMockData(subTopics!.map((s) => s.id)).map((d) =>
questionGenerateValuesString(d as any)
);
insertString += values.join(",") + "RETURNING id;";
questions = await insertData(insertString as string);
}
}

export async function deleteMockData() {
const projects = await getDEMOProjects()
const projects = await getDEMOProjects();
for (let project of projects) {
await deleteProjectByIdQuery(project.id)
};
await deleteProjectByIdQuery(project.id);
}
await deleteExistingData("vendors", "vendor_name");
await deleteExistingData("users", "name");
// await deleteExistingData("roles", "name");
Expand Down
4 changes: 2 additions & 2 deletions Servers/utils/question.utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ export const updateQuestionByIdQuery = async (
subtopic_id = $1, question = $2, answer_type = $3,
evidence_required = $4, hint = $5, is_required = $6,
priority_level = $7, evidence_files = $8, answer = $9,
dropdown_options = $10, input_type = $11, order_id = $12
dropdown_options = $10, input_type = $11, order_no = $12
WHERE id = $13 RETURNING *`,
[
question.subtopic_id,
Expand Down Expand Up @@ -180,7 +180,7 @@ export const createNewQuestionsQuery = async (
INSERT INTO questions(
subtopic_id, question, answer_type,
evidence_required, hint, is_required,
priority_level, answer, order_id, input_type) VALUES `;
priority_level, answer, order_no, input_type) VALUES `;
const data = questions.map((d) => {
return `(
${subTopicId},
Expand Down

0 comments on commit ca28f64

Please sign in to comment.