base_project
This commit is contained in:
commit
5c29d65754
Binary file not shown.
|
@ -0,0 +1,21 @@
|
|||
LOCAL_HOST1=43.205.154.152
|
||||
FRONTEND_PORT_9191=30165
|
||||
|
||||
# **** BACKPORT ****
|
||||
PORT=9292
|
||||
|
||||
# **** MY SQL DATABASE CONNECTION ****
|
||||
DATABASE_HOST=realnet.cdas4e08uugj.us-east-1.rds.amazonaws.com
|
||||
DATABASE_NAME=realnet_CNSBENEW
|
||||
DATABASE_USERNAME=cnsdev
|
||||
DATABASE_PASSWORD=cnsdev2407
|
||||
DATABASE_PORT=3306
|
||||
|
||||
# **** MAIL SENDER
|
||||
NODEMAILER_HOST=smtp.gmail.com
|
||||
NODEMAILER_USER=realitmailsender@gmail.com
|
||||
NODEMAILER_PASSWORD=epnmhzsccotnyozf
|
||||
NODEMAILER_PORT=587
|
||||
|
||||
# **** BASEPATH ****
|
||||
BASE_PATH=/baseurl
|
|
@ -0,0 +1,59 @@
|
|||
const db = require("../config/database")
|
||||
|
||||
async function executeQuery(sql, values) {
|
||||
const connection = await db.getConnection()
|
||||
try {
|
||||
const [rows] = await connection.execute(sql, values)
|
||||
return rows
|
||||
} finally {
|
||||
connection.release()
|
||||
}
|
||||
}
|
||||
|
||||
async function buildExtensionByFormCode(acc_id, formId) {
|
||||
const sql = `SELECT * FROM rn_ext_field_t WHERE account_id='${acc_id}' AND id='${formId}'`
|
||||
const extension = await executeQuery(sql)
|
||||
// console.log(extension)
|
||||
let extension_entry_form = []
|
||||
let extension_grid_form = []
|
||||
|
||||
if (!extension || extension.length === 0) {
|
||||
return { message: "Extension Fields Not Found" }
|
||||
} else {
|
||||
// for (const extension of extensions) {
|
||||
const data_type = extension[0].data_type
|
||||
const mapping = extension[0].mapping
|
||||
const f_code = extension[0].form_code
|
||||
// console.log(mapping)
|
||||
const field_name = extension[0].field_name
|
||||
|
||||
const ext = `,\"extValue\":\"${mapping}\"`
|
||||
let fieldInfo = {}
|
||||
|
||||
if (data_type === "textfield") {
|
||||
fieldInfo = `{\"fieldName\":\"" + ${field_name} + "\",\"fieldType\":\"text\",\"fieldValue\":\"\",\"formCode\":\"" + ${f_code} + "\"" + ${ext} + "},`
|
||||
} else if (data_type === "date") {
|
||||
fieldInfo = `{\"fieldName\":\"" + ${field_name} + "\",\"fieldType\":\"date\",\"fieldValue\":\"\",\"formCode\":\"" + ${f_code} + "\"" + ${ext} + "},`
|
||||
} else if (data_type === "l_textfield") {
|
||||
fieldInfo = `{\"fieldName\":\"" + ${field_name} + "\",\"fieldType\":\"textarea\",\"fieldValue\":\"\",\"formCode\":\"" + ${f_code} + "\"" + ${ext} + "},`
|
||||
} else if (data_type === "checkbox") {
|
||||
fieldInfo = `{\"fieldName\":\"" + ${field_name} + "\",\"fieldType\":\"checkbox\",\"fieldValue\":\"\",\"formCode\":\"" + ${f_code} + "\"" + ${ext} + "},`
|
||||
} else if (data_type === "autocomplete") {
|
||||
fieldInfo = `{\"fieldName\":\"" + ${field_name} + "\",\"fieldType\":\"text\",\"fieldValue\":\"\",\"formCode\":\"" + ${f_code} + "\"" + ${ext} + "},`
|
||||
} else if (data_type === "text") {
|
||||
fieldInfo = `{\"fieldName\":\"" + ${field_name} + "\",\"fieldType\":\"text\",\"fieldValue\":\"\",\"formCode\":\"" + ${f_code} + "\"" + ${ext} + "},`
|
||||
}
|
||||
|
||||
extension_entry_form.push(fieldInfo)
|
||||
|
||||
// Extension grid-view code
|
||||
extension_grid_form.push(
|
||||
`{prop: \"" + ${mapping} + "\", name: \"" + ${field_name} + "\", width: 200},\n`
|
||||
)
|
||||
// }
|
||||
}
|
||||
|
||||
return extension_entry_form
|
||||
}
|
||||
|
||||
module.exports = { buildExtensionByFormCode }
|
|
@ -0,0 +1,13 @@
|
|||
const crypto = require("crypto")
|
||||
|
||||
function generateRandomHash(length = 32) {
|
||||
// Generate random bytes
|
||||
const randomBytes = crypto.randomBytes(length)
|
||||
|
||||
// Convert bytes to hexadecimal representation
|
||||
const hash = randomBytes.toString("hex")
|
||||
|
||||
return hash
|
||||
}
|
||||
|
||||
module.exports = generateRandomHash
|
|
@ -0,0 +1 @@
|
|||
"# rajeevrepo"
|
|
@ -0,0 +1,449 @@
|
|||
const { pool, db } = require("../config/database")
|
||||
|
||||
|
||||
|
||||
|
||||
// Insert menu
|
||||
const customSecMenuAdd = async (tablename, menuId) => {
|
||||
try {
|
||||
// Replace "_" with " " in the tablename
|
||||
const origTableName = tablename.replace(/_/g, " ");
|
||||
|
||||
// Construct the new MenuDet object
|
||||
const menuDet = {
|
||||
menuId: menuId,
|
||||
itemSeq: 8001,
|
||||
main_menu_icon_name: tablename,
|
||||
menuItemDesc: origTableName,
|
||||
moduleName: tablename,
|
||||
main_menu_action_name: tablename,
|
||||
status: "Enable"
|
||||
};
|
||||
|
||||
// Insert the new record into the sec_menu_det table
|
||||
const insertQuery = `
|
||||
INSERT INTO sec_menu_det
|
||||
(menu_id, item_seq, main_menu_icon_name, menu_item_desc, module_name, main_menu_action_name, status)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?)
|
||||
`;
|
||||
|
||||
const result = await executeQuery(insertQuery, [
|
||||
menuDet.menuId,
|
||||
menuDet.itemSeq,
|
||||
menuDet.main_menu_icon_name,
|
||||
menuDet.menuItemDesc,
|
||||
menuDet.moduleName,
|
||||
menuDet.main_menu_action_name,
|
||||
menuDet.status
|
||||
]);
|
||||
|
||||
// Call the sync function (implement this based on your requirement)
|
||||
await sync(menuId, { /* pass necessary params if needed */ });
|
||||
|
||||
// Return the inserted record or some indication of success
|
||||
return result;
|
||||
} catch (error) {
|
||||
console.error("Error in customSecMenuAdd:", error);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
// Insert dashboard
|
||||
const createDashboard = (req, res) => {
|
||||
const body = req.body;
|
||||
|
||||
// Get current date and time in the format YYYY-MM-DD HH:MM:SS
|
||||
const today = new Date();
|
||||
const date =
|
||||
today.getFullYear() + "-" + (today.getMonth() + 1) + "-" + today.getDate();
|
||||
const time =
|
||||
today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
|
||||
const dateTime = date + " " + time;
|
||||
|
||||
// Step 1: Check if the entity already exists in builder_entity_t table
|
||||
const existingEntityQuery = `SELECT * FROM builder_entity_t WHERE job_name = ? AND job_type = ?`;
|
||||
|
||||
pool.query(
|
||||
existingEntityQuery,
|
||||
[body.dashboard_name, "Dashboard"],
|
||||
(err, existingEntity) => {
|
||||
if (err) {
|
||||
console.error("Error checking existing entity:", err);
|
||||
return res.status(500).json({
|
||||
success: 0,
|
||||
message: "Error checking existing entity",
|
||||
});
|
||||
}
|
||||
|
||||
if (existingEntity.length > 0) {
|
||||
console.log(`${body.dashboard_name} dashboard already exists`);
|
||||
return res.status(409).json({
|
||||
success: 0,
|
||||
message: "Dashboard already exists",
|
||||
});
|
||||
}
|
||||
|
||||
// Step 2: Insert into dashbord_header
|
||||
const insertHeaderQuery = `
|
||||
INSERT INTO dashbord_header SET
|
||||
created_at = ?,
|
||||
updated_at = ?,
|
||||
is_build = ?,
|
||||
dashboard_name = ?,
|
||||
description = ?,
|
||||
menu_name = ?,
|
||||
module_id = ?,
|
||||
secuirity_profile = ?,
|
||||
tech_stack = ?,
|
||||
is_updated = ?,
|
||||
object_type = ?,
|
||||
sub_object_type = ?,
|
||||
testing = ?
|
||||
`;
|
||||
|
||||
const headerValues = [
|
||||
dateTime,
|
||||
dateTime,
|
||||
body.is_build || null,
|
||||
body.dashboard_name || null,
|
||||
body.description || null,
|
||||
body.menu_name || null,
|
||||
body.module_id || 0, // Provide a default value for module_id
|
||||
body.secuirity_profile || null,
|
||||
body.tech_stack || null,
|
||||
body.is_updated || null,
|
||||
body.object_type || null,
|
||||
body.sub_object_type || null,
|
||||
body.testing || false,
|
||||
];
|
||||
|
||||
pool.query(insertHeaderQuery, headerValues, (headerError, headerResults) => {
|
||||
if (headerError) {
|
||||
console.error("Error inserting dashboard header:", headerError);
|
||||
return res.status(500).json({
|
||||
success: 0,
|
||||
message: "Failed to create dashboard",
|
||||
});
|
||||
}
|
||||
|
||||
if (!headerResults.insertId) {
|
||||
return res.status(500).json({
|
||||
success: 0,
|
||||
message: "Failed to create dashboard",
|
||||
});
|
||||
}
|
||||
|
||||
const dashboardId = headerResults.insertId;
|
||||
|
||||
// Step 3: Insert into dashbord1_line
|
||||
const insertLineQuery = `
|
||||
INSERT INTO dashbord1_line SET
|
||||
created_at = ?,
|
||||
updated_at = ?,
|
||||
model = ?,
|
||||
header_id = ?,
|
||||
dashbord_header_id = ?
|
||||
`;
|
||||
|
||||
const lineValues = [
|
||||
dateTime,
|
||||
dateTime,
|
||||
body.model || null, // Assuming 'model' is in the request body
|
||||
body.header_id || null, // Assuming 'header_id' is in the request body
|
||||
dashboardId,
|
||||
];
|
||||
|
||||
pool.query(insertLineQuery, lineValues, (lineError, lineResults) => {
|
||||
if (lineError) {
|
||||
console.error("Error inserting dashboard line:", lineError);
|
||||
// Optionally, rollback the previous dashboard_header insertion
|
||||
return res.status(500).json({
|
||||
success: 0,
|
||||
message: "Failed to create dashboard and line",
|
||||
});
|
||||
}
|
||||
|
||||
// Return success response
|
||||
return res.status(201).json({
|
||||
success: 1,
|
||||
message: "Dashboard and line created successfully",
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
// save report
|
||||
const saveReport = (req, res) => {
|
||||
const body = req.body;
|
||||
|
||||
// Get the current date and time
|
||||
const today = new Date();
|
||||
const date =
|
||||
today.getFullYear() + "-" + (today.getMonth() + 1) + "-" + today.getDate();
|
||||
const time =
|
||||
today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
|
||||
const dateTime = date + " " + time;
|
||||
|
||||
// Step 1: Check if the report with the given name already exists in builder_entity_t
|
||||
const existingEntityQuery = `SELECT * FROM builder_entity_t WHERE job_name = ? AND job_type = ?`;
|
||||
|
||||
pool.query(
|
||||
existingEntityQuery,
|
||||
[body.reportName, "Report"],
|
||||
(err, existingEntity) => {
|
||||
if (err) {
|
||||
console.error("Error checking existing report:", err);
|
||||
return res.status(500).json({
|
||||
success: 0,
|
||||
message: "Error checking existing report",
|
||||
});
|
||||
}
|
||||
|
||||
if (existingEntity.length > 0) {
|
||||
console.log(`${body.reportName} report already exists`);
|
||||
return res.status(409).json({
|
||||
success: 0,
|
||||
message: "Report already exists",
|
||||
});
|
||||
}
|
||||
|
||||
// Step 2: Insert into rpt_builder2_t table
|
||||
const insertReportQuery = `
|
||||
INSERT INTO rpt_builder2_t SET
|
||||
created_at = ?,
|
||||
updated_at = ?,
|
||||
report_name = ?,
|
||||
description = ?,
|
||||
is_sql = ?
|
||||
`;
|
||||
|
||||
const reportValues = [
|
||||
dateTime,
|
||||
dateTime,
|
||||
body.reportName || null,
|
||||
body.description || null,
|
||||
body.isSql || false, // Boolean field
|
||||
];
|
||||
|
||||
pool.query(insertReportQuery, reportValues, (reportError, reportResults) => {
|
||||
if (reportError) {
|
||||
console.error("Error inserting report:", reportError);
|
||||
return res.status(500).json({
|
||||
success: 0,
|
||||
message: "Failed to create report",
|
||||
});
|
||||
}
|
||||
|
||||
if (!reportResults.insertId) {
|
||||
return res.status(500).json({
|
||||
success: 0,
|
||||
message: "Failed to create report",
|
||||
});
|
||||
}
|
||||
|
||||
const reportId = reportResults.insertId;
|
||||
|
||||
// Step 3: Insert into rpt_builder2_lines_t table
|
||||
const insertLineQuery = `
|
||||
INSERT INTO rpt_builder2_lines_t SET
|
||||
created_at = ?,
|
||||
updated_at = ?,
|
||||
model = ?,
|
||||
header_id = ?
|
||||
`;
|
||||
|
||||
const lineValues = [
|
||||
dateTime,
|
||||
dateTime,
|
||||
body.model || null, // Assuming 'model' is part of the request body
|
||||
reportId,
|
||||
];
|
||||
|
||||
pool.query(insertLineQuery, lineValues, (lineError, lineResults) => {
|
||||
if (lineError) {
|
||||
console.error("Error inserting report line:", lineError);
|
||||
return res.status(500).json({
|
||||
success: 0,
|
||||
message: "Failed to create report and line",
|
||||
});
|
||||
}
|
||||
|
||||
// Step 4: Save the builder entity into builder_entity_t table
|
||||
const saveEntityQuery = `
|
||||
INSERT INTO builder_entity_t SET
|
||||
job_name = ?,
|
||||
job_type = ?
|
||||
`;
|
||||
|
||||
pool.query(
|
||||
saveEntityQuery,
|
||||
[body.reportName, "Report"],
|
||||
(entityError, entityResults) => {
|
||||
if (entityError) {
|
||||
console.error("Error saving builder entity:", entityError);
|
||||
return res.status(500).json({
|
||||
success: 0,
|
||||
message: "Failed to save builder entity",
|
||||
});
|
||||
}
|
||||
|
||||
// Return success response after all operations
|
||||
return res.status(201).json({
|
||||
success: 1,
|
||||
message: "Report and line created successfully",
|
||||
});
|
||||
}
|
||||
);
|
||||
});
|
||||
});
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
// Sync
|
||||
const sync = async (gmenuid, gr) => {
|
||||
const list = [];
|
||||
|
||||
try {
|
||||
// Step 1: Find MenuDet by gmenuid
|
||||
const formenuQuery = `SELECT * FROM sec_menu_det WHERE menu_item_id = ?`;
|
||||
const [formenu] = await executeQuery(formenuQuery, [gmenuid]);
|
||||
|
||||
if (!formenu) {
|
||||
throw new Error(`MenuDet with id ${gmenuid} not found.`);
|
||||
}
|
||||
|
||||
// Step 2: Get all GrpMenuAccess records for the found MenuDet
|
||||
const grpMenuAccessQuery = `SELECT * FROM sec_grp_menu_access WHERE menu_item_id = ?`;
|
||||
const all = await executeQuery(grpMenuAccessQuery, [formenu.menu_item_id]);
|
||||
|
||||
// Step 3: Update GrpMenuAccess records with data from MenuDet
|
||||
for (let a of all) {
|
||||
const updateQuery = `
|
||||
UPDATE sec_grp_menu_access
|
||||
SET item_seq = ?, menu_item_desc = ?, module_name = ?, status = ?, main_menu_action_name = ?, main_menu_icon_name = ?, menu_id = ?
|
||||
WHERE id = ?
|
||||
`;
|
||||
await executeQuery(updateQuery, [
|
||||
formenu.item_seq,
|
||||
formenu.menu_item_desc,
|
||||
formenu.module_name,
|
||||
formenu.status,
|
||||
formenu.main_menu_action_name,
|
||||
formenu.main_menu_icon_name,
|
||||
formenu.menu_id,
|
||||
a.id
|
||||
]);
|
||||
|
||||
// Add updated record to the list
|
||||
list.push(a);
|
||||
}
|
||||
|
||||
// Step 4: Find all submenus related to the given menu
|
||||
const submenuQuery = `SELECT * FROM sec_menu_det WHERE menu_id = ?`;
|
||||
const submenu = await executeQuery(submenuQuery, [gmenuid]);
|
||||
|
||||
// Step 5: Iterate through submenus and update or insert GrpMenuAccess records
|
||||
for (let i = 0; i < submenu.length; i++) {
|
||||
const m = submenu[i];
|
||||
|
||||
// Step 6: Find GrpMenuAccess for this submenu
|
||||
const findAccessQuery = `SELECT * FROM sec_grp_menu_access WHERE menu_item_id = ?`;
|
||||
const li = await executeQuery(findAccessQuery, [m.menu_item_id]);
|
||||
|
||||
if (li.length === 0) {
|
||||
// Step 7: If no access found, insert new GrpMenuAccess records
|
||||
const findGroupQuery = `SELECT * FROM sec_grp_menu_access WHERE menu_item_id = ?`;
|
||||
const grp = await executeQuery(findGroupQuery, [gmenuid]);
|
||||
|
||||
for (let a of grp) {
|
||||
const findRoleQuery = `SELECT * FROM sec_user_group WHERE usr_grp = ?`;
|
||||
const app = await executeQuery(findRoleQuery, [a.usr_grp]);
|
||||
|
||||
// Set the fields in the GrpMenuAccess object
|
||||
gr.usr_grp = app[0].usr_grp;
|
||||
gr.menu_item_id = m.menu_item_id;
|
||||
gr.item_seq = m.item_seq;
|
||||
gr.menu_item_desc = m.menu_item_desc;
|
||||
gr.module_name = m.module_name;
|
||||
gr.status = m.status;
|
||||
gr.main_menu_action_name = m.main_menu_action_name;
|
||||
gr.main_menu_icon_name = m.main_menu_icon_name;
|
||||
gr.menu_id = m.menu_id;
|
||||
gr.m_create = "true";
|
||||
gr.m_delete = "true";
|
||||
gr.m_edit = "true";
|
||||
gr.m_query = "true";
|
||||
gr.m_visible = "true";
|
||||
gr.is_disable = "true";
|
||||
gr.m_export = "true";
|
||||
gr.created_at = new Date();
|
||||
gr.updated_at = new Date();
|
||||
|
||||
// Insert new GrpMenuAccess
|
||||
const insertAccessQuery = `
|
||||
INSERT INTO sec_grp_menu_access
|
||||
(usr_grp, menu_item_id, item_seq, menu_item_desc, module_name, status, main_menu_action_name, main_menu_icon_name, menu_id, m_create, m_delete, m_edit, m_query, m_visible, is_disable, m_export, created_at, updated_at)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||
`;
|
||||
await executeQuery(insertAccessQuery, [
|
||||
gr.usr_grp,
|
||||
gr.menu_item_id,
|
||||
gr.item_seq,
|
||||
gr.menu_item_desc,
|
||||
gr.module_name,
|
||||
gr.status,
|
||||
gr.main_menu_action_name,
|
||||
gr.main_menu_icon_name,
|
||||
gr.menu_id,
|
||||
gr.m_create,
|
||||
gr.m_delete,
|
||||
gr.m_edit,
|
||||
gr.m_query,
|
||||
gr.m_visible,
|
||||
gr.is_disable,
|
||||
gr.m_export,
|
||||
gr.created_at,
|
||||
gr.updated_at,
|
||||
]);
|
||||
|
||||
list.push(gr);
|
||||
}
|
||||
} else {
|
||||
// Step 8: If access exists, update the records
|
||||
for (let g of li) {
|
||||
const updateAccessQuery = `
|
||||
UPDATE sec_grp_menu_access
|
||||
SET item_seq = ?, menu_item_desc = ?, module_name = ?, status = ?, main_menu_action_name = ?, main_menu_icon_name = ?, menu_id = ?
|
||||
WHERE id = ?
|
||||
`;
|
||||
await executeQuery(updateAccessQuery, [
|
||||
m.item_seq,
|
||||
m.menu_item_desc,
|
||||
m.module_name,
|
||||
m.status,
|
||||
m.main_menu_action_name,
|
||||
m.main_menu_icon_name,
|
||||
m.menu_id,
|
||||
g.id
|
||||
]);
|
||||
|
||||
list.push(g);
|
||||
}
|
||||
}
|
||||
}
|
||||
return list;
|
||||
} catch (error) {
|
||||
console.error("Error in sync:", error);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
module.exports = {
|
||||
customSecMenuAdd,
|
||||
createDashboard,
|
||||
saveReport
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,389 @@
|
|||
const { pool, db } = require("../config/database")
|
||||
|
||||
async function executeQuery(sql, values) {
|
||||
const connection = await db.getConnection()
|
||||
try {
|
||||
const [rows] = await connection.execute(sql, values)
|
||||
return rows
|
||||
} finally {
|
||||
connection.release()
|
||||
}
|
||||
}
|
||||
|
||||
// Create a new record
|
||||
const createDataInTable = async (req, res) => {
|
||||
const { tableName } = req.params
|
||||
const { data } = req.body
|
||||
|
||||
const sql = `INSERT INTO ${tableName} SET ?`
|
||||
|
||||
try {
|
||||
const result = await executeQuery(sql, data)
|
||||
res.json({
|
||||
message: "Record added successfully",
|
||||
insertId: result.insertId,
|
||||
})
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
res.status(500).json({ message: "Error adding record" })
|
||||
}
|
||||
}
|
||||
|
||||
// Get all records from a table
|
||||
const getTable = async (req, res) => {
|
||||
const { tableName } = req.params
|
||||
|
||||
const sql = `SELECT * FROM ${tableName}`
|
||||
|
||||
try {
|
||||
const records = await executeQuery(sql)
|
||||
res.json(records)
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
res.status(500).json({ message: "Error fetching records" })
|
||||
}
|
||||
}
|
||||
|
||||
// Get a record by ID
|
||||
const getTableById = async (req, res) => {
|
||||
const { tableName, id } = req.params
|
||||
|
||||
const sql = `SELECT * FROM ${tableName} WHERE id = ?`
|
||||
const values = [id]
|
||||
|
||||
try {
|
||||
const [record] = await executeQuery(sql, values)
|
||||
if (!record) {
|
||||
return res.status(404).json({ message: "Record not found" })
|
||||
}
|
||||
res.json(record)
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
res.status(500).json({ message: "Error fetching record" })
|
||||
}
|
||||
}
|
||||
|
||||
// Update a record by ID
|
||||
const updateDataInTable = async (req, res) => {
|
||||
const { tableName, id } = req.params
|
||||
const body = req.body
|
||||
|
||||
const sql = `UPDATE ${tableName} SET ? WHERE id = ?`
|
||||
const values = [
|
||||
body.first_name,
|
||||
body.last_name,
|
||||
body.role,
|
||||
body.email,
|
||||
body.password,
|
||||
body.number,
|
||||
id,
|
||||
]
|
||||
|
||||
try {
|
||||
await executeQuery(sql, values)
|
||||
res.json({ message: "Record updated successfully" })
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
res.status(500).json({ message: "Error updating record" })
|
||||
}
|
||||
}
|
||||
|
||||
// Delete a record by ID
|
||||
const deleteDataInTable = async (req, res) => {
|
||||
const { tableName, id } = req.params
|
||||
|
||||
const sql = `DELETE FROM ${tableName} WHERE id = ?`
|
||||
const values = [id]
|
||||
|
||||
try {
|
||||
await executeQuery(sql, values)
|
||||
res.json({ message: "Record deleted successfully" })
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
res.status(500).json({ message: "Error deleting record" })
|
||||
}
|
||||
}
|
||||
|
||||
// Controllers for sec_menu_det and sec_grp_menu_access
|
||||
const getTableByIdSec_Menu_Det = async (req, res) => {
|
||||
const { id } = req.params
|
||||
|
||||
const sql = `SELECT * FROM sec_menu_det WHERE menu_item_id = ?`
|
||||
const values = [id]
|
||||
|
||||
try {
|
||||
const [record] = await executeQuery(sql, values)
|
||||
if (!record) {
|
||||
return res.status(404).json({ message: "Record not found" })
|
||||
}
|
||||
res.json(record)
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
res.status(500).json({ message: "Error fetching record" })
|
||||
}
|
||||
}
|
||||
|
||||
const addMenu = async (req, res) => {
|
||||
const { id } = req.params
|
||||
const sql = `SELECT * FROM sec_menu_det WHERE menu_item_id = ?`
|
||||
const values = [id]
|
||||
|
||||
try {
|
||||
const [record] = await executeQuery(sql, values)
|
||||
if (!record) {
|
||||
return res.status(404).json({ message: "Record not found" })
|
||||
}
|
||||
var today = new Date()
|
||||
var date =
|
||||
today.getFullYear() + "-" + (today.getMonth() + 1) + "-" + today.getDate()
|
||||
var time =
|
||||
today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds()
|
||||
var dateTime = date + " " + time
|
||||
|
||||
const sqlIn = `INSERT INTO sec_grp_menu_access SET menu_item_id = ?, usr_grp = 41, created_at = ?, main_menu_action_name = ?, main_menu_icon_name = ?, menu_id = ?, menu_item_desc = ?, module_name = ?, status = ?, item_seq = ?, updated_at = ?, isdisable = 'true', m_create = 'true', m_delete = 'true', m_edit = 'true' , m_query = 'true', m_visible = 'true'`
|
||||
const valuesIn = [
|
||||
record.menu_item_id,
|
||||
record.created_at,
|
||||
record.main_menu_action_name,
|
||||
record.main_menu_icon_name,
|
||||
record.menu_id,
|
||||
record.menu_item_desc,
|
||||
record.module_name,
|
||||
record.status,
|
||||
record.item_seq,
|
||||
dateTime,
|
||||
]
|
||||
try {
|
||||
const [recordIn] = await executeQuery(sqlIn, valuesIn)
|
||||
} catch (errorIn) {
|
||||
console.error("inside", errorIn)
|
||||
}
|
||||
res.json(record)
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
res.status(500).json({ message: "Error fetching record Outside" })
|
||||
}
|
||||
}
|
||||
|
||||
const deleteMenu = async (req, res) => {
|
||||
const { id } = req.params
|
||||
const sql = `DELETE FROM sec_grp_menu_access WHERE menu_item_id = ?`
|
||||
const values = [id]
|
||||
try {
|
||||
await executeQuery(sql, values)
|
||||
res.json({ message: "Record deleted successfully" })
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
res.status(500).json({ message: "Error deleting record" })
|
||||
}
|
||||
}
|
||||
|
||||
const updateMenu = async (req, res) => {
|
||||
const { id } = req.params
|
||||
const data = req.body
|
||||
var today = new Date()
|
||||
var date =
|
||||
today.getFullYear() + "-" + (today.getMonth() + 1) + "-" + today.getDate()
|
||||
var time =
|
||||
today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds()
|
||||
var dateTime = date + " " + time
|
||||
const sql = `UPDATE sec_grp_menu_access SET usr_grp = 41, main_menu_action_name = ?, main_menu_icon_name = ?, menu_id = ?, menu_item_desc = ?, module_name = ?, status = ?, updated_at = ? WHERE menu_item_id = ?, isdisable = ?, item_seq= = ?, m_create= = ?, m_delete= = ?, m_edit= = ? , m_query= = ?, m_visible= = ?,`
|
||||
const values = [
|
||||
data.main_menu_action_name,
|
||||
data.main_menu_icon_name,
|
||||
data.menu_id,
|
||||
data.menu_item_desc,
|
||||
data.module_name,
|
||||
data.status,
|
||||
dateTime,
|
||||
id,
|
||||
data.isdisable,
|
||||
data.m_create,
|
||||
data.m_delete,
|
||||
data.m_edit,
|
||||
data.m_query,
|
||||
data.m_visible,
|
||||
]
|
||||
try {
|
||||
await executeQuery(sql, values)
|
||||
res.json({ message: "Record updated successfully" })
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
res.status(500).json({ message: "Error updating record" })
|
||||
}
|
||||
}
|
||||
|
||||
// Controller for Role table get and get id works from default one
|
||||
const createDataInTableRole = async (req, res) => {
|
||||
const data = req.body
|
||||
|
||||
const sql = `INSERT INTO role SET description = ?, name = ?`
|
||||
const values = [data.description, data.name]
|
||||
|
||||
try {
|
||||
const result = await executeQuery(sql, values)
|
||||
res.json({
|
||||
message: "Record added successfully",
|
||||
insertId: result.insertId,
|
||||
})
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
res.status(500).json({ message: "Error adding record" })
|
||||
}
|
||||
}
|
||||
|
||||
// Update a record by ID
|
||||
const updateDataInTableRole = async (req, res) => {
|
||||
const { id } = req.params
|
||||
const body = req.body
|
||||
|
||||
const sql = `UPDATE role SET description = ?, name = ? WHERE id = ?`
|
||||
const values = [body.description, body.name, id]
|
||||
|
||||
try {
|
||||
await executeQuery(sql, values)
|
||||
res.json({ message: "Record updated successfully" })
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
res.status(500).json({ message: "Error updating record" })
|
||||
}
|
||||
}
|
||||
|
||||
// Delete a record by ID
|
||||
const deleteDataInTableRole = async (req, res) => {
|
||||
const { id } = req.params
|
||||
|
||||
const sql = `DELETE FROM role WHERE id = ?`
|
||||
const values = [id]
|
||||
|
||||
try {
|
||||
await executeQuery(sql, values)
|
||||
res.json({ message: "Record deleted successfully" })
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
res.status(500).json({ message: "Error deleting record" })
|
||||
}
|
||||
}
|
||||
|
||||
// CRUD for student table
|
||||
|
||||
// Create a new record
|
||||
const createDataInStudentTable = async (req, res) => {
|
||||
const data = req.body
|
||||
|
||||
const sql = `INSERT INTO student SET username = ?, password = ?, email = ?, full_name = ?, date_of_birth = ?, gender = ?, address = ?, department = ?`
|
||||
const values = [
|
||||
data.username,
|
||||
data.password,
|
||||
data.email,
|
||||
data.full_name,
|
||||
data.date_of_birth,
|
||||
data.gender,
|
||||
data.address,
|
||||
data.department,
|
||||
]
|
||||
|
||||
try {
|
||||
const result = await executeQuery(sql, values)
|
||||
res.json({
|
||||
message: "Record added successfully",
|
||||
insertId: result.insertId,
|
||||
})
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
res.status(500).json({ message: "Error adding record" })
|
||||
}
|
||||
}
|
||||
|
||||
// Get all records from a table
|
||||
const getStudentTable = async (req, res) => {
|
||||
const sql = `SELECT * FROM student`
|
||||
|
||||
try {
|
||||
const records = await executeQuery(sql)
|
||||
res.json(records)
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
res.status(500).json({ message: "Error fetching records" })
|
||||
}
|
||||
}
|
||||
|
||||
// Get a record by ID
|
||||
const getStudentTableById = async (req, res) => {
|
||||
const { id } = req.params
|
||||
|
||||
const sql = `SELECT * FROM student WHERE id = ?`
|
||||
const values = [id]
|
||||
|
||||
try {
|
||||
const [record] = await executeQuery(sql, values)
|
||||
if (!record) {
|
||||
return res.status(404).json({ message: "Record not found" })
|
||||
}
|
||||
res.json(record)
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
res.status(500).json({ message: "Error fetching record" })
|
||||
}
|
||||
}
|
||||
|
||||
// Update a record by ID
|
||||
const updateDataInStudentTable = async (req, res) => {
|
||||
const { id } = req.params
|
||||
const data = req.body
|
||||
|
||||
const sql = `UPDATE student SET username = ?, password = ?, email = ?, full_name = ?, date_of_birth = ?, gender = ?, address = ?, department = ? WHERE id = ?`
|
||||
const values = [
|
||||
data.username,
|
||||
data.password,
|
||||
data.email,
|
||||
data.full_name,
|
||||
data.date_of_birth,
|
||||
data.gender,
|
||||
data.address,
|
||||
data.department,
|
||||
id,
|
||||
]
|
||||
|
||||
try {
|
||||
await executeQuery(sql, values)
|
||||
res.json({ message: "Record updated successfully" })
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
res.status(500).json({ message: "Error updating record" })
|
||||
}
|
||||
}
|
||||
|
||||
// Delete a record by ID
|
||||
const deleteDataInStudentTable = async (req, res) => {
|
||||
const sql = `DELETE FROM student WHERE id = ?`
|
||||
const values = [id]
|
||||
|
||||
try {
|
||||
await executeQuery(sql, values)
|
||||
res.json({ message: "Record deleted successfully" })
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
res.status(500).json({ message: "Error deleting record" })
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
getTable,
|
||||
getTableById,
|
||||
createDataInTable,
|
||||
updateDataInTable,
|
||||
deleteDataInTable,
|
||||
addMenu,
|
||||
deleteMenu,
|
||||
updateMenu,
|
||||
getTableByIdSec_Menu_Det,
|
||||
createDataInTableRole,
|
||||
updateDataInTableRole,
|
||||
deleteDataInTableRole,
|
||||
createDataInStudentTable,
|
||||
getStudentTable,
|
||||
getStudentTableById,
|
||||
updateDataInStudentTable,
|
||||
deleteDataInStudentTable,
|
||||
}
|
|
@ -0,0 +1,68 @@
|
|||
[
|
||||
{
|
||||
"menu_item_id": 1527,
|
||||
"usr_grp": 1,
|
||||
"createby": null,
|
||||
"created_at": "2023-02-10T04:37:57.000Z",
|
||||
"isdisable": "true",
|
||||
"item_seq": 1000,
|
||||
"m_create": "true",
|
||||
"m_delete": "true",
|
||||
"m_edit": "true",
|
||||
"m_query": "true",
|
||||
"m_visible": "true",
|
||||
"main_menu_action_name": "incidents",
|
||||
"main_menu_icon_name": "incident",
|
||||
"menu_id": 0,
|
||||
"menu_item_desc": "Incidents",
|
||||
"mexport": "true",
|
||||
"module_name": "I1000",
|
||||
"status": "Enable",
|
||||
"updateby": null,
|
||||
"updated_at": "2023-02-10T04:37:57.000Z"
|
||||
},
|
||||
{
|
||||
"menu_item_id": 1116,
|
||||
"usr_grp": 1,
|
||||
"createby": null,
|
||||
"created_at": "2023-02-04T12:02:03.000Z",
|
||||
"isdisable": "true",
|
||||
"item_seq": 3000,
|
||||
"m_create": "true",
|
||||
"m_delete": "true",
|
||||
"m_edit": "true",
|
||||
"m_query": "true",
|
||||
"m_visible": "true",
|
||||
"main_menu_action_name": "security",
|
||||
"main_menu_icon_name": "lock",
|
||||
"menu_id": 0,
|
||||
"menu_item_desc": "Security",
|
||||
"mexport": "true",
|
||||
"module_name": "sec3000",
|
||||
"status": "Enable",
|
||||
"updateby": null,
|
||||
"updated_at": "2023-02-04T12:02:03.000Z"
|
||||
},
|
||||
{
|
||||
"menu_item_id": 1542,
|
||||
"usr_grp": 1,
|
||||
"createby": null,
|
||||
"created_at": "2023-02-16T05:31:03.000Z",
|
||||
"isdisable": "true",
|
||||
"item_seq": 4000,
|
||||
"m_create": "true",
|
||||
"m_delete": "true",
|
||||
"m_edit": "true",
|
||||
"m_query": "true",
|
||||
"m_visible": "true",
|
||||
"main_menu_action_name": "admin",
|
||||
"main_menu_icon_name": "user",
|
||||
"menu_id": 0,
|
||||
"menu_item_desc": "Admin",
|
||||
"mexport": "true",
|
||||
"module_name": "se4000",
|
||||
"status": "Enable",
|
||||
"updateby": null,
|
||||
"updated_at": "2023-02-16T05:31:03.000Z"
|
||||
}
|
||||
]
|
|
@ -0,0 +1,176 @@
|
|||
const { pool, db } = require("../config/database")
|
||||
const { genSaltSync, hashSync, compareSync } = require("bcrypt")
|
||||
const { sign } = require("jsonwebtoken")
|
||||
const bcrypt = require("bcrypt")
|
||||
const otpGenerator = require("otp-generator")
|
||||
const nodemailer = require("nodemailer")
|
||||
|
||||
const transporter = nodemailer.createTransport({
|
||||
service: "gmail", // e.g., 'Gmail'
|
||||
host: process.env.NODEMAILER_HOST,
|
||||
port: process.env.NODEMAILER_PORT,
|
||||
secure: false,
|
||||
auth: {
|
||||
user: process.env.NODEMAILER_USER,
|
||||
pass: process.env.NODEMAILER_PASSWORD,
|
||||
},
|
||||
})
|
||||
|
||||
async function executeQuery(sql, values) {
|
||||
const connection = await pool.getConnection()
|
||||
try {
|
||||
const [rows] = await connection.execute(sql, values)
|
||||
return rows
|
||||
} finally {
|
||||
connection.release()
|
||||
}
|
||||
}
|
||||
|
||||
// path = /addOneAppUser
|
||||
// const registerOld = async (req, res) => {
|
||||
// const { email } = req.body
|
||||
|
||||
// try {
|
||||
// const rows = await pool.execute("SELECT * FROM sec_users WHERE email = ?", [
|
||||
// email,
|
||||
// ])
|
||||
// if (rows.length > 0) {
|
||||
// return res.status(400).json({ message: "Email already exists" })
|
||||
// }
|
||||
// // Generate and save OTP
|
||||
// const otp = Math.floor(1000 + Math.random() * 9000).toString()
|
||||
// const result = await pool.execute(
|
||||
// "INSERT INTO sec_users (email, password1) VALUES (?, ?)",
|
||||
// [email, otp]
|
||||
// )
|
||||
// if (result) {
|
||||
// // Send OTP via email
|
||||
// const mailOptions = {
|
||||
// from: "example.com",
|
||||
// to: email,
|
||||
// subject: "OTP for registration",
|
||||
// text: `Your OTP is: ${otp}`,
|
||||
// }
|
||||
// transporter.sendMail(mailOptions, (error) => {
|
||||
// if (error) {
|
||||
// console.log(error)
|
||||
// return res.status(500).json({ message: "Error sending OTP" })
|
||||
// }
|
||||
|
||||
// return res.status(200).json({ message: "OTP sent successfully" })
|
||||
// })
|
||||
// } else {
|
||||
// return res.status(500).json({ message: "Failed to create user" })
|
||||
// }
|
||||
// } catch (error) {
|
||||
// console.error(error)
|
||||
// res.status(400).json({ message: "Some error occured" })
|
||||
// }
|
||||
// }
|
||||
|
||||
var count = 0
|
||||
|
||||
const register = async (req, res) => {
|
||||
const body = req.body
|
||||
// console.log(email)
|
||||
try {
|
||||
let sql = `SELECT * FROM sec_users WHERE email = ?`
|
||||
const rows = await executeQuery(sql, [body.email])
|
||||
if (rows.length > 0) {
|
||||
return res.status(400).json({ message: "Email already exists" })
|
||||
}
|
||||
count++
|
||||
// Generate and save OTP
|
||||
const otp = Math.floor(1000 + Math.random() * 9000).toString()
|
||||
let user_id = 10007589 + count
|
||||
const password = bcrypt.hashSync(body.user_passw, 10)
|
||||
let sql2 = `INSERT INTO sec_users (email, random_no, user_id, user_name, full_name, user_passw, change_passw, first_name, country, is_blocked, is_complete, active) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`
|
||||
const result = await executeQuery(sql2, [
|
||||
body.email,
|
||||
otp,
|
||||
user_id,
|
||||
body.user_name,
|
||||
body.full_name,
|
||||
password,
|
||||
body.change_passw,
|
||||
body.first_name,
|
||||
body.country,
|
||||
false,
|
||||
true,
|
||||
true,
|
||||
])
|
||||
if (result) {
|
||||
// Send OTP via email
|
||||
const mailOptions = {
|
||||
from: "example.com",
|
||||
to: body.email,
|
||||
subject: "OTP for registration",
|
||||
text: `Your OTP is: ${otp}`,
|
||||
}
|
||||
transporter.sendMail(mailOptions, (error) => {
|
||||
if (error) {
|
||||
console.log(error)
|
||||
return res.status(500).json({ message: "Error sending OTP" })
|
||||
}
|
||||
return res.status(200).json({ message: "OTP sent successfully" })
|
||||
})
|
||||
} else {
|
||||
return res.status(500).json({ message: "Failed to create user" })
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
res.status(400).json({ message: "Some error occured" })
|
||||
}
|
||||
}
|
||||
|
||||
const verifyOTP = async (req, res) => {
|
||||
const { email, otp } = req.body
|
||||
|
||||
try {
|
||||
let sql = `SELECT * FROM sec_users WHERE email = ?`
|
||||
const rows = await executeQuery(sql, [email])
|
||||
|
||||
if (rows.length === 0) {
|
||||
return res.status(400).json({ message: "User not found" })
|
||||
}
|
||||
|
||||
const user = rows[0]
|
||||
|
||||
if (user.random_no === otp) {
|
||||
// OTP is valid, you can update the user's status to verified or perform any necessary actions.
|
||||
// For example: Update the 'is_complete' field to true.
|
||||
let updateSql = `UPDATE sec_users SET status = ? WHERE email = ?`
|
||||
await executeQuery(updateSql, [true, email])
|
||||
|
||||
return res.status(200).json({ message: "OTP verified successfully" })
|
||||
} else {
|
||||
return res.status(400).json({ message: "Invalid OTP" })
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
res.status(500).json({ message: "Error verifying OTP" })
|
||||
}
|
||||
}
|
||||
|
||||
const deleteUser = async (req, res) => {
|
||||
const email = req.body.email
|
||||
|
||||
const sql = `SELECT * FROM sec_users WHERE email = ?`
|
||||
const rows = await executeQuery(sql, [email])
|
||||
|
||||
if (rows.length === 0) {
|
||||
return res.status(400).json({ message: "User not found" })
|
||||
} else {
|
||||
const sql2 = `DELETE FROM sec_users WHERE email = ?`
|
||||
const result = await executeQuery(sql2, [email])
|
||||
res
|
||||
.status(200)
|
||||
.json({ message: `User with ${email} deleted successfully...!!! ` })
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
register,
|
||||
verifyOTP,
|
||||
deleteUser,
|
||||
}
|
|
@ -0,0 +1,52 @@
|
|||
global.__rootdir = __dirname
|
||||
require("dotenv").config()
|
||||
const express = require("express")
|
||||
const app = express()
|
||||
const bodyParser = require("body-parser")
|
||||
const router = require("./routes/cns.router")
|
||||
const userRouter = require("./routes/user.routes")
|
||||
|
||||
const cors = require("cors")
|
||||
|
||||
app.use(express.json())
|
||||
|
||||
// Set the base path from the .env file
|
||||
const basePath = process.env.BASE_PATH || "/"
|
||||
app.base = basePath
|
||||
|
||||
// app.use("/api/tables/v1", router)
|
||||
// app.use("/api/users/v1", userRouter)
|
||||
// app.use("", router)
|
||||
// app.use("", userRouter)
|
||||
app.use(
|
||||
cors({
|
||||
origin: "*",
|
||||
})
|
||||
)
|
||||
|
||||
router.use(function (req, res, next) {
|
||||
console.log("%s %s %s", req.method, req.url, req.path)
|
||||
next()
|
||||
})
|
||||
|
||||
|
||||
app.use(`${basePath}`, router)
|
||||
app.use(`${basePath}`, userRouter)
|
||||
app.use(bodyParser.json())
|
||||
|
||||
// buildercomponents
|
||||
|
||||
|
||||
|
||||
const port = process.env.PORT || 9292
|
||||
|
||||
app.get(`${basePath}/test`, (req, res) => {
|
||||
res.json({
|
||||
success: 1,
|
||||
message: "This is hello from auth backend",
|
||||
})
|
||||
})
|
||||
|
||||
app.listen(port, () => {
|
||||
console.log(`Server is up and running on port ${port}`)
|
||||
})
|
|
@ -0,0 +1,28 @@
|
|||
const { verify } = require("jsonwebtoken")
|
||||
|
||||
const checkToken = async (req, res, next) => {
|
||||
let token = req.get("authorization")
|
||||
if (token) {
|
||||
token = token.slice(7)
|
||||
verify(token, "secret", (err, decoded) => {
|
||||
if (err) {
|
||||
console.log(err)
|
||||
res.json({
|
||||
success: 0,
|
||||
message: "Invalid token",
|
||||
})
|
||||
} else {
|
||||
next()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
res.json({
|
||||
success: 0,
|
||||
message: "Access denied unauthorized user",
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
checkToken,
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
const mysql = require("mysql2")
|
||||
const mysqlProm = require("mysql2/promise")
|
||||
|
||||
const pool = mysql.createConnection({
|
||||
host: process.env.DATABASE_HOST,
|
||||
port: process.env.DATABASE_PORT,
|
||||
database: process.env.DATABASE_NAME,
|
||||
user: process.env.DATABASE_USERNAME,
|
||||
password: process.env.DATABASE_PASSWORD,
|
||||
})
|
||||
|
||||
const db = mysqlProm.createPool({
|
||||
host: process.env.DATABASE_HOST,
|
||||
port: process.env.DATABASE_PORT,
|
||||
database: process.env.DATABASE_NAME,
|
||||
user: process.env.DATABASE_USERNAME,
|
||||
password: process.env.DATABASE_PASSWORD,
|
||||
})
|
||||
|
||||
pool.connect(function (err) {
|
||||
if (err) throw err
|
||||
console.log("Connected!")
|
||||
})
|
||||
|
||||
module.exports = { pool, db }
|
|
@ -0,0 +1,32 @@
|
|||
#!/bin/bash
|
||||
|
||||
sudo yum -y install node
|
||||
sudo yum -y install git
|
||||
sudo yum -y install docker
|
||||
sudo systemctl start docker
|
||||
sudo systemctl enable docker
|
||||
sudo usermod -aG docker $USER
|
||||
newgrp docker
|
||||
|
||||
git clone https://github.com/rajeev-007-glitch/Task-Manager-API.git
|
||||
cd Task-Manager-API
|
||||
echo "MONGO_URI=mongodb+srv://RajeevSinghJadon:MongoDb@nodeandexpressprojects.ocu9ube.mongodb.net/TASK-MANAGER?retryWrites=true&w=majority" >> .env
|
||||
echo "FROM node:18
|
||||
# Create app directory
|
||||
WORKDIR /usr/src/app
|
||||
# Install app dependencies
|
||||
# A wildcard is used to ensure both package.json AND package-lock.json are copied
|
||||
# where available (npm@5+)
|
||||
COPY package*.json ./
|
||||
RUN npm install
|
||||
# If you are building your code for production
|
||||
# RUN npm ci --omit=dev
|
||||
# Bundle app source
|
||||
COPY . .
|
||||
EXPOSE 3000
|
||||
CMD [ "node", "app.js" ]" >> Dockerfile
|
||||
echo "node_modules
|
||||
npm-debug.log" >> .dockerignore
|
||||
|
||||
docker build . -t rajeev/node-web-app
|
||||
docker run -p 49160:8080 -d rajeev/node-web-app
|
|
@ -0,0 +1,109 @@
|
|||
const { genSaltSync, hashSync, compareSync } = require("bcrypt")
|
||||
const { sign } = require("jsonwebtoken")
|
||||
const otpGenerator = require("otp-generator")
|
||||
const nodemailer = require("nodemailer")
|
||||
const bcrypt = require("bcrypt")
|
||||
const { pool, db } = require("../config/database")
|
||||
const fs = require("fs")
|
||||
const path = require("path")
|
||||
const { execArgv } = require("process")
|
||||
const {
|
||||
buildExtensionByFormCode,
|
||||
} = require("../Functions/buildExtensionByFormCode")
|
||||
const { exec } = require("child_process")
|
||||
|
||||
// const transporter = nodemailer.createTransport({
|
||||
// host: "smtp.ethereal.email",
|
||||
// port: 587,
|
||||
// auth: {
|
||||
// user: "maynard.skiles@ethereal.email",
|
||||
// pass: "E36dmz2ceNJV5eFvC4",
|
||||
// },
|
||||
// })
|
||||
|
||||
const transporter = nodemailer.createTransport({
|
||||
service: "gmail", // e.g., 'Gmail'
|
||||
host: "smtp.gmail.com",
|
||||
port: 587,
|
||||
secure: false,
|
||||
auth: {
|
||||
user: "randomaff8@gmail.com",
|
||||
pass: "fnnq tisa alvh uyre",
|
||||
},
|
||||
})
|
||||
|
||||
async function executeQuery(sql, values) {
|
||||
const connection = await db.getConnection()
|
||||
try {
|
||||
const [rows] = await connection.execute(sql, values)
|
||||
return rows
|
||||
} finally {
|
||||
connection.release()
|
||||
}
|
||||
}
|
||||
|
||||
const getAllUserNode = async (req, res) => {
|
||||
try {
|
||||
const sql = "SELECT name, email FROM users_node"
|
||||
const result = await executeQuery(sql)
|
||||
|
||||
// Check if any data is fetched
|
||||
if (result.length > 0) {
|
||||
res.status(200).json({ users: result })
|
||||
} else {
|
||||
res.status(404).json({ message: "No users found" })
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Error fetching users:", error)
|
||||
res.status(500).json({ error: "Internal server error" })
|
||||
}
|
||||
}
|
||||
|
||||
const getByNameUserNode = async (req, res) => {
|
||||
try {
|
||||
const name = req.params.name
|
||||
const sql = "SELECT name, email FROM users_node WHERE name = ?"
|
||||
const result = await executeQuery(sql, [name])
|
||||
|
||||
// Check if any data is fetched
|
||||
if (result.length > 0) {
|
||||
res.status(200).json({ users: result })
|
||||
} else {
|
||||
res.status(404).json({ message: "No users found" })
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Error fetching users:", error)
|
||||
res.status(500).json({ error: "Internal server error" })
|
||||
}
|
||||
}
|
||||
|
||||
const addUserUserNode = async (req, res) => {
|
||||
const body = req.body
|
||||
const email = body.email
|
||||
const password = body.password
|
||||
const name = body.name
|
||||
|
||||
try {
|
||||
const sql =
|
||||
"INSERT INTO users_node (name, password, email) VALUES (?, ?, ?)"
|
||||
const values = [name, password, email]
|
||||
|
||||
const result = await executeQuery(sql, values)
|
||||
|
||||
// Check if the user was successfully added
|
||||
if (result.affectedRows > 0) {
|
||||
res.status(200).json({ message: "User added successfully" })
|
||||
} else {
|
||||
res.status(400).json({ message: "Failed to add user" })
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Error adding user:", error)
|
||||
res.status(500).json({ error: "Internal server error" })
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
getAllUserNode,
|
||||
addUserUserNode,
|
||||
getByNameUserNode,
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
[Sat Jul 27 2024 16:12:53 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Jul 27 2024 16:12:53 GMT+0530 (India Standard Time)] GET /baseurl/api/realnet-menu/user-menu
|
||||
[Sat Jul 27 2024 16:12:53 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
|
@ -0,0 +1,54 @@
|
|||
[Tue Sep 03 2024 15:30:28 GMT+0530 (India Standard Time)] GET /baseurl/api/realnet-menu/user-menu
|
||||
[Tue Sep 03 2024 15:30:28 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Tue Sep 03 2024 15:30:28 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Tue Sep 03 2024 17:27:02 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1/1116
|
||||
[Tue Sep 03 2024 18:41:28 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Tue Sep 03 2024 18:41:29 GMT+0530 (India Standard Time)] GET /baseurl/api/realnet-menu/user-menu
|
||||
[Tue Sep 03 2024 18:41:29 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Tue Sep 03 2024 18:41:29 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1/1116
|
||||
[Tue Sep 03 2024 18:43:38 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Tue Sep 03 2024 18:53:11 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Tue Sep 03 2024 18:56:02 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Tue Sep 03 2024 18:58:51 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Tue Sep 03 2024 18:59:16 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Tue Sep 03 2024 19:00:18 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Tue Sep 03 2024 19:01:17 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Tue Sep 03 2024 19:01:59 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Tue Sep 03 2024 19:07:22 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Tue Sep 03 2024 19:07:43 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Tue Sep 03 2024 19:07:43 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Tue Sep 03 2024 19:07:43 GMT+0530 (India Standard Time)] GET /baseurl/api/realnet-menu/user-menu
|
||||
[Tue Sep 03 2024 19:07:43 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1/1116
|
||||
[Tue Sep 03 2024 19:08:56 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Tue Sep 03 2024 19:09:07 GMT+0530 (India Standard Time)] GET /baseurl/token/logout
|
||||
[Tue Sep 03 2024 19:09:22 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Tue Sep 03 2024 19:09:22 GMT+0530 (India Standard Time)] GET /baseurl/api/realnet-menu/user-menu
|
||||
[Tue Sep 03 2024 19:09:22 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Tue Sep 03 2024 19:10:48 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Tue Sep 03 2024 19:12:21 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Tue Sep 03 2024 19:15:32 GMT+0530 (India Standard Time)] GET /baseurl/token/logout
|
||||
[Tue Sep 03 2024 19:15:41 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Tue Sep 03 2024 19:15:41 GMT+0530 (India Standard Time)] GET /baseurl/api/realnet-menu/user-menu
|
||||
[Tue Sep 03 2024 19:15:41 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Tue Sep 03 2024 19:18:43 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1/1116
|
||||
[Tue Sep 03 2024 19:18:47 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Tue Sep 03 2024 19:18:50 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1/1116
|
||||
[Tue Sep 03 2024 19:19:00 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1/1116
|
||||
[Tue Sep 03 2024 19:19:04 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1/1116
|
||||
[Tue Sep 03 2024 19:19:09 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Tue Sep 03 2024 19:19:11 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1/1116
|
||||
[Tue Sep 03 2024 19:19:18 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Tue Sep 03 2024 19:19:18 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Tue Sep 03 2024 19:19:27 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1/1116
|
||||
[Tue Sep 03 2024 19:19:45 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Tue Sep 03 2024 19:19:55 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1/1116
|
||||
[Tue Sep 03 2024 19:20:54 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1/1116
|
||||
[Tue Sep 03 2024 19:29:19 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1/1116
|
||||
[Tue Sep 03 2024 19:29:25 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1/1116
|
||||
[Tue Sep 03 2024 19:31:04 GMT+0530 (India Standard Time)] GET /baseurl/api/user-profile
|
||||
[Tue Sep 03 2024 19:31:04 GMT+0530 (India Standard Time)] GET /baseurl/api/retrieve-image
|
||||
[Tue Sep 03 2024 19:31:42 GMT+0530 (India Standard Time)] POST /baseurl/api/reset_password
|
||||
[Tue Sep 03 2024 19:32:17 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Tue Sep 03 2024 19:32:17 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Tue Sep 03 2024 19:32:17 GMT+0530 (India Standard Time)] GET /baseurl/api/realnet-menu/user-menu
|
||||
[Tue Sep 03 2024 19:32:35 GMT+0530 (India Standard Time)] POST /baseurl/api/reset_password
|
|
@ -0,0 +1,46 @@
|
|||
[Wed Sep 04 2024 12:34:32 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1/1116
|
||||
[Wed Sep 04 2024 12:36:35 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1/1116
|
||||
[Wed Sep 04 2024 12:36:51 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Wed Sep 04 2024 12:36:51 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Wed Sep 04 2024 12:36:51 GMT+0530 (India Standard Time)] GET /baseurl/api/realnet-menu/user-menu
|
||||
[Wed Sep 04 2024 12:37:06 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1/1116
|
||||
[Wed Sep 04 2024 12:38:37 GMT+0530 (India Standard Time)] GET /baseurl/api/getAllAppUser
|
||||
[Wed Sep 04 2024 12:38:43 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1/1116
|
||||
[Wed Sep 04 2024 12:38:44 GMT+0530 (India Standard Time)] GET /baseurl/api/getAllUsrGrp
|
||||
[Wed Sep 04 2024 12:38:51 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1/1116
|
||||
[Wed Sep 04 2024 12:38:53 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1
|
||||
[Wed Sep 04 2024 12:39:50 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Wed Sep 04 2024 12:39:51 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Wed Sep 04 2024 15:29:36 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1/1116
|
||||
[Wed Sep 04 2024 15:29:47 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Wed Sep 04 2024 15:29:48 GMT+0530 (India Standard Time)] GET /baseurl/api/realnet-menu/user-menu
|
||||
[Wed Sep 04 2024 15:29:48 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Wed Sep 04 2024 15:29:53 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1/1116
|
||||
[Wed Sep 04 2024 15:33:21 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Wed Sep 04 2024 15:33:39 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Wed Sep 04 2024 15:33:39 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Wed Sep 04 2024 15:33:39 GMT+0530 (India Standard Time)] GET /baseurl/api/realnet-menu/user-menu
|
||||
[Wed Sep 04 2024 15:33:40 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1/1116
|
||||
[Wed Sep 04 2024 15:38:05 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Wed Sep 04 2024 15:38:19 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Wed Sep 04 2024 15:38:19 GMT+0530 (India Standard Time)] GET /baseurl/api/realnet-menu/user-menu
|
||||
[Wed Sep 04 2024 15:38:19 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Wed Sep 04 2024 15:38:20 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1/1116
|
||||
[Wed Sep 04 2024 15:47:03 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Wed Sep 04 2024 15:47:36 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Wed Sep 04 2024 15:47:51 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Wed Sep 04 2024 15:47:51 GMT+0530 (India Standard Time)] GET /baseurl/api/realnet-menu/user-menu
|
||||
[Wed Sep 04 2024 15:47:51 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Wed Sep 04 2024 15:47:51 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1/1116
|
||||
[Wed Sep 04 2024 15:49:08 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Wed Sep 04 2024 15:49:30 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Wed Sep 04 2024 15:50:49 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Wed Sep 04 2024 15:51:02 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Wed Sep 04 2024 15:51:03 GMT+0530 (India Standard Time)] GET /baseurl/api/realnet-menu/user-menu
|
||||
[Wed Sep 04 2024 15:51:03 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Wed Sep 04 2024 17:32:27 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Wed Sep 04 2024 17:32:27 GMT+0530 (India Standard Time)] GET /baseurl/api/realnet-menu/user-menu
|
||||
[Wed Sep 04 2024 17:32:27 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Wed Sep 04 2024 17:32:54 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Wed Sep 04 2024 17:32:54 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Wed Sep 04 2024 17:32:54 GMT+0530 (India Standard Time)] GET /baseurl/api/realnet-menu/user-menu
|
|
@ -0,0 +1,58 @@
|
|||
[Sat Sep 07 2024 18:48:36 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 18:48:36 GMT+0530 (India Standard Time)] GET /baseurl/api/realnet-menu/user-menu
|
||||
[Sat Sep 07 2024 18:48:36 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Sat Sep 07 2024 18:49:06 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1/1116
|
||||
[Sat Sep 07 2024 18:49:12 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 18:49:12 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 18:49:21 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 18:49:34 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 18:57:11 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 18:57:46 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2/1
|
||||
[Sat Sep 07 2024 19:02:56 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2/1
|
||||
[Sat Sep 07 2024 19:03:03 GMT+0530 (India Standard Time)] POST /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:04:02 GMT+0530 (India Standard Time)] POST /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:04:27 GMT+0530 (India Standard Time)] POST /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:04:28 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:04:45 GMT+0530 (India Standard Time)] POST /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:04:46 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:05:04 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:05:19 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:05:41 GMT+0530 (India Standard Time)] POST /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:05:41 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:05:48 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:06:22 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:06:34 GMT+0530 (India Standard Time)] POST /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:06:35 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:09:49 GMT+0530 (India Standard Time)] POST /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:09:50 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:12:08 GMT+0530 (India Standard Time)] POST /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:12:09 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:12:35 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:15:53 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:16:01 GMT+0530 (India Standard Time)] POST /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:16:01 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:17:38 GMT+0530 (India Standard Time)] POST /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:17:39 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:18:02 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:18:22 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:18:30 GMT+0530 (India Standard Time)] POST /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:18:31 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:18:45 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:18:54 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:19:16 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:25:45 GMT+0530 (India Standard Time)] GET /baseurl/get_Dashboard_header
|
||||
[Sat Sep 07 2024 19:25:59 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:25:59 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Sat Sep 07 2024 19:26:01 GMT+0530 (India Standard Time)] GET /baseurl/get_Dashboard_header
|
||||
[Sat Sep 07 2024 19:26:07 GMT+0530 (India Standard Time)] GET /baseurl/get_Dashboard_header
|
||||
[Sat Sep 07 2024 19:26:22 GMT+0530 (India Standard Time)] POST /baseurl/Savedata
|
||||
[Sat Sep 07 2024 19:26:23 GMT+0530 (India Standard Time)] GET /baseurl/get_Dashboard_header
|
||||
[Sat Sep 07 2024 19:26:42 GMT+0530 (India Standard Time)] GET /baseurl/get_Dashboard_header
|
||||
[Sat Sep 07 2024 19:26:46 GMT+0530 (India Standard Time)] GET /baseurl/get_Dashboard_header
|
||||
[Sat Sep 07 2024 19:26:48 GMT+0530 (India Standard Time)] GET /baseurl/get_Dashboard_header
|
||||
[Sat Sep 07 2024 19:27:22 GMT+0530 (India Standard Time)] POST /baseurl/Savedata
|
||||
[Sat Sep 07 2024 19:27:22 GMT+0530 (India Standard Time)] GET /baseurl/get_Dashboard_header
|
||||
[Sat Sep 07 2024 19:30:07 GMT+0530 (India Standard Time)] POST /baseurl/Savedata
|
||||
[Sat Sep 07 2024 19:30:08 GMT+0530 (India Standard Time)] GET /baseurl/get_Dashboard_header
|
||||
[Sat Sep 07 2024 19:30:37 GMT+0530 (India Standard Time)] POST /baseurl/Savedata
|
||||
[Sat Sep 07 2024 19:30:38 GMT+0530 (India Standard Time)] GET /baseurl/get_Dashboard_header
|
|
@ -0,0 +1,54 @@
|
|||
[Tue Sep 10 2024 12:40:10 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Tue Sep 10 2024 12:40:10 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Tue Sep 10 2024 12:40:10 GMT+0530 (India Standard Time)] GET /baseurl/api/realnet-menu/user-menu
|
||||
[Tue Sep 10 2024 12:40:10 GMT+0530 (India Standard Time)] GET /baseurl/get_Dashboard_header
|
||||
[Tue Sep 10 2024 12:40:16 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1/1116
|
||||
[Tue Sep 10 2024 12:40:20 GMT+0530 (India Standard Time)] GET /baseurl/api1/getusracces1/1
|
||||
[Tue Sep 10 2024 12:40:20 GMT+0530 (India Standard Time)] GET /baseurl/api/getAllUsrGrp
|
||||
[Tue Sep 10 2024 12:40:23 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1/1116
|
||||
[Tue Sep 10 2024 12:40:27 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1
|
||||
[Tue Sep 10 2024 12:40:33 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1/1116
|
||||
[Tue Sep 10 2024 12:40:35 GMT+0530 (India Standard Time)] GET /baseurl/api/getAllUsrGrp
|
||||
[Tue Sep 10 2024 12:40:35 GMT+0530 (India Standard Time)] GET /baseurl/api1/getusracces1/1
|
||||
[Tue Sep 10 2024 12:40:50 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1/1116
|
||||
[Tue Sep 10 2024 12:40:55 GMT+0530 (India Standard Time)] GET /baseurl/api/getAllUsrGrp
|
||||
[Tue Sep 10 2024 12:40:55 GMT+0530 (India Standard Time)] GET /baseurl/api1/getusracces1/1
|
||||
[Tue Sep 10 2024 12:41:45 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Tue Sep 10 2024 12:41:45 GMT+0530 (India Standard Time)] GET /baseurl/api/realnet-menu/user-menu
|
||||
[Tue Sep 10 2024 12:41:45 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Tue Sep 10 2024 12:41:45 GMT+0530 (India Standard Time)] GET /baseurl/api/getAllUsrGrp
|
||||
[Tue Sep 10 2024 12:41:45 GMT+0530 (India Standard Time)] GET /baseurl/api1/getusracces1/1
|
||||
[Tue Sep 10 2024 12:42:07 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1/1116
|
||||
[Tue Sep 10 2024 12:42:15 GMT+0530 (India Standard Time)] GET /baseurl/api/getAllUsrGrp
|
||||
[Tue Sep 10 2024 12:42:15 GMT+0530 (India Standard Time)] GET /baseurl/api1/getusracces1/1
|
||||
[Tue Sep 10 2024 12:44:26 GMT+0530 (India Standard Time)] GET /baseurl/api/getAllUsrGrp
|
||||
[Tue Sep 10 2024 12:55:23 GMT+0530 (India Standard Time)] GET /baseurl/api/getAllUsrGrp
|
||||
[Tue Sep 10 2024 12:55:28 GMT+0530 (India Standard Time)] GET /baseurl/api/getAllUsrGrp
|
||||
[Tue Sep 10 2024 12:56:18 GMT+0530 (India Standard Time)] GET /baseurl/api/getAllUsrGrp
|
||||
[Tue Sep 10 2024 12:57:56 GMT+0530 (India Standard Time)] GET /baseurl/api/getAllUsrGrp
|
||||
[Tue Sep 10 2024 13:00:11 GMT+0530 (India Standard Time)] GET /baseurl/api/getAllUsrGrp
|
||||
[Tue Sep 10 2024 13:00:26 GMT+0530 (India Standard Time)] GET /baseurl/api/getAllUsrGrp
|
||||
[Tue Sep 10 2024 13:03:43 GMT+0530 (India Standard Time)] GET /baseurl/api/getAllUsrGrp
|
||||
[Tue Sep 10 2024 13:04:44 GMT+0530 (India Standard Time)] GET /baseurl/api/getAllUsrGrp
|
||||
[Tue Sep 10 2024 13:08:44 GMT+0530 (India Standard Time)] GET /baseurl/api/getAllUsrGrp
|
||||
[Tue Sep 10 2024 13:08:53 GMT+0530 (India Standard Time)] GET /baseurl/api1/submenu1/1116
|
||||
[Tue Sep 10 2024 13:08:55 GMT+0530 (India Standard Time)] GET /baseurl/api1/getusracces1/1
|
||||
[Tue Sep 10 2024 13:08:55 GMT+0530 (India Standard Time)] GET /baseurl/api/getAllUsrGrp
|
||||
[Tue Sep 10 2024 13:09:04 GMT+0530 (India Standard Time)] GET /baseurl/api1/getusracces1/41
|
||||
[Tue Sep 10 2024 13:09:30 GMT+0530 (India Standard Time)] GET /baseurl/api1/getusracces1/41
|
||||
[Tue Sep 10 2024 13:26:15 GMT+0530 (India Standard Time)] GET /baseurl/api1/getusracces1/41
|
||||
[Tue Sep 10 2024 13:26:37 GMT+0530 (India Standard Time)] GET /baseurl/api1/getusracces1/41
|
||||
[Tue Sep 10 2024 13:29:51 GMT+0530 (India Standard Time)] GET /baseurl/api1/getusracces1/41
|
||||
[Tue Sep 10 2024 13:30:04 GMT+0530 (India Standard Time)] GET /baseurl/api1/getusracces1/41
|
||||
[Tue Sep 10 2024 13:33:38 GMT+0530 (India Standard Time)] GET /baseurl/api1/getusracces1/41
|
||||
[Tue Sep 10 2024 13:33:46 GMT+0530 (India Standard Time)] GET /baseurl/api1/getusracces1/41
|
||||
[Tue Sep 10 2024 13:38:17 GMT+0530 (India Standard Time)] GET /baseurl/api1/getusracces1/41
|
||||
[Tue Sep 10 2024 13:39:23 GMT+0530 (India Standard Time)] GET /baseurl/api1/getusracces1/41
|
||||
[Tue Sep 10 2024 13:39:30 GMT+0530 (India Standard Time)] GET /baseurl/api1/getusracces1/41
|
||||
[Tue Sep 10 2024 13:39:48 GMT+0530 (India Standard Time)] GET /baseurl/api1/getusracces1/61
|
||||
[Tue Sep 10 2024 13:40:04 GMT+0530 (India Standard Time)] GET /baseurl/api1/getusracces1/1
|
||||
[Tue Sep 10 2024 13:40:13 GMT+0530 (India Standard Time)] GET /baseurl/Rpt_builder2/Rpt_builder2
|
||||
[Tue Sep 10 2024 13:40:13 GMT+0530 (India Standard Time)] GET /baseurl/api/realnet-menu/user-menu
|
||||
[Tue Sep 10 2024 13:40:13 GMT+0530 (India Standard Time)] GET /baseurl/fndMenu/menuloadbyuser
|
||||
[Tue Sep 10 2024 13:40:13 GMT+0530 (India Standard Time)] GET /baseurl/api/getAllUsrGrp
|
||||
[Tue Sep 10 2024 13:40:13 GMT+0530 (India Standard Time)] GET /baseurl/api1/getusracces1/1
|
|
@ -0,0 +1,38 @@
|
|||
const { verify } = require("jsonwebtoken")
|
||||
|
||||
// Middleware for verifying JWT and extracting user information
|
||||
function authenticateJWT(req, res, next) {
|
||||
|
||||
let token = req.headers.authorization
|
||||
// console.log("Authorization header:", req.headers.authorization)
|
||||
// console.log("token is..",token);
|
||||
|
||||
console.log("Database Host:", process.env.DATABASE_HOST);
|
||||
console.log("Database User:", process.env.DATABASE_USERNAME);
|
||||
console.log("Database Port:", process.env.DATABASE_PORT);
|
||||
|
||||
if (!token || !token.startsWith("Bearer ")) {
|
||||
return res.sendStatus(403)
|
||||
}
|
||||
|
||||
// console.log("Original token:", token)
|
||||
|
||||
// Remove the "Bearer " prefix
|
||||
token = token.slice(7)
|
||||
|
||||
// console.log("Modified token:", token)
|
||||
|
||||
const secret = "secret" // Use the same secret key as in the login controller
|
||||
|
||||
verify(token, secret, (err, user) => {
|
||||
if (err) {
|
||||
console.log(err)
|
||||
return res.sendStatus(403)
|
||||
}
|
||||
|
||||
req.user = user // Attach user information to the request object
|
||||
next()
|
||||
})
|
||||
}
|
||||
|
||||
module.exports = { authenticateJWT }
|
|
@ -0,0 +1,7 @@
|
|||
// uploadMiddleware.js
|
||||
const multer = require("multer")
|
||||
|
||||
const storage = multer.memoryStorage()
|
||||
const upload = multer({ storage: storage })
|
||||
|
||||
module.exports = upload.single("imageFile")
|
|
@ -0,0 +1,31 @@
|
|||
const fs = require("fs")
|
||||
const path = require("path")
|
||||
|
||||
function userLogger(req, res, next) {
|
||||
const { user_id, user_name, email } = req.user
|
||||
|
||||
// Create a directory for the user if it doesn't exist
|
||||
const userDir = path.join(__dirname, "../logs", user_name)
|
||||
if (!fs.existsSync(userDir)) {
|
||||
fs.mkdirSync(userDir, { recursive: true })
|
||||
}
|
||||
|
||||
// Create a log file with the current date
|
||||
const currentDate = new Date().toISOString().slice(0, 10) // Get YYYY-MM-DD format
|
||||
const logFile = path.join(userDir, `${currentDate}.log`)
|
||||
|
||||
// Log data to the console
|
||||
console.log(`[${user_name}] Request to ${req.originalUrl}`)
|
||||
|
||||
// Log data to the user-specific log file
|
||||
const logMessage = `[${new Date()}] ${req.method} ${req.originalUrl}\n`
|
||||
fs.appendFile(logFile, logMessage, (err) => {
|
||||
if (err) {
|
||||
console.error(`Failed to log data to ${logFile}: ${err}`)
|
||||
}
|
||||
})
|
||||
|
||||
next()
|
||||
}
|
||||
|
||||
module.exports = userLogger
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,28 @@
|
|||
{
|
||||
"name": "expressjs",
|
||||
"version": "1.0.0",
|
||||
"description": "CRUD for fetching two fields",
|
||||
"main": "app.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"start": "nodemon --ext js,env --watch .env --watch . app.js"
|
||||
},
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"bcrypt": "^5.1.1",
|
||||
"body-parser": "^1.20.2",
|
||||
"cors": "^2.8.5",
|
||||
"crypto": "^1.0.1",
|
||||
"dotenv": "^16.3.1",
|
||||
"express": "^4.18.2",
|
||||
"jsonwebtoken": "^9.0.2",
|
||||
"multer": "^1.4.5-lts.1",
|
||||
"mysql2": "^3.6.1",
|
||||
"nodemailer": "^6.9.5",
|
||||
"nodemon": "^3.0.1",
|
||||
"otp-generator": "^4.0.1",
|
||||
"util": "^0.12.5",
|
||||
"uuid": "^9.0.1"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,365 @@
|
|||
const {
|
||||
login,
|
||||
getUsersUserGrpMaintenance,
|
||||
getUsersByUserIdUserGrpMaintenance,
|
||||
updateUsersUserGrpMaintenance,
|
||||
createUsersUserGrpMaintenance,
|
||||
deleteUsersUserGrpMaintenance,
|
||||
getUsersMenuMaintainence,
|
||||
getUsersByUserIdMenuMaintainence,
|
||||
createUsersMenuMaintainence,
|
||||
updateUsersMenuMaintainence,
|
||||
deleteUsersMenuMaintainence,
|
||||
getUsersByIdSubMenuMaintainence,
|
||||
createUsersMenuAccessControl,
|
||||
getUsersMenuAccessControl,
|
||||
getUserMaintainence,
|
||||
getByIdUserMaintainence,
|
||||
createUserMaintainence,
|
||||
updateUserMaintainence,
|
||||
loadMenuByUser,
|
||||
userMenu,
|
||||
createReport,
|
||||
getAllReportBuilder,
|
||||
getAllReportBuilderById,
|
||||
getAllReportBuilderByQuery,
|
||||
updateReportBuilder,
|
||||
deleteReportBuilder,
|
||||
getReportLine,
|
||||
getReportLineById,
|
||||
updateReportLine,
|
||||
getAllDashboard,
|
||||
getDashboardByModuleId,
|
||||
getAllDashboardHeaderById,
|
||||
createDashboard,
|
||||
updateDashboard,
|
||||
deleteDashboard,
|
||||
getDashboardLine,
|
||||
getDashboardLineById,
|
||||
updateDashboardLineById,
|
||||
getSystemParameterById,
|
||||
getSystemParameter,
|
||||
createSystemParameter,
|
||||
updateSystemParameter,
|
||||
deleteSystemParameter,
|
||||
getLogs,
|
||||
getAllFormExtension,
|
||||
getByIdFormExtension,
|
||||
createFormExtension,
|
||||
updateFormExtension,
|
||||
deleteFormExtension,
|
||||
buildExtension,
|
||||
logout,
|
||||
sendEmailForResetPassword,
|
||||
resetPassword,
|
||||
savePassword,
|
||||
getLoggedInUser,
|
||||
uploadProfilePhoto,
|
||||
retrieveProfilePhoto,
|
||||
test,
|
||||
} = require("../api/cns.controller")
|
||||
|
||||
const {
|
||||
getAllUserNode,
|
||||
addUserUserNode,
|
||||
getByNameUserNode,
|
||||
} = require("../listBuilder/controller")
|
||||
|
||||
// const { checkToken } = require("../auth/token_validation")
|
||||
const { authenticateJWT } = require("../middleware/authenticateJWT")
|
||||
const userLogger = require("../middleware/userLogger")
|
||||
const uploadMiddleware = require("../middleware/uploadMiddleware")
|
||||
const router = require("express").Router()
|
||||
|
||||
router.get("/test/:id", test)
|
||||
|
||||
router.post("/token/session", login)
|
||||
|
||||
router.post("/api/resources/forgotpassword", sendEmailForResetPassword)
|
||||
router.post("/api/resources/savePassword/:token", savePassword)
|
||||
router.post("/api/reset_password", authenticateJWT, userLogger, resetPassword)
|
||||
router.get("/api/user-profile", authenticateJWT, userLogger, getLoggedInUser)
|
||||
router.put(
|
||||
"/api/user-profile",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
updateUserMaintainence
|
||||
)
|
||||
|
||||
// profile photo upload and retrieve
|
||||
router
|
||||
.post(
|
||||
"/api/upload",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
uploadMiddleware,
|
||||
uploadProfilePhoto
|
||||
)
|
||||
.get("/api/retrieve-image", authenticateJWT, userLogger, retrieveProfilePhoto)
|
||||
|
||||
router.get("/token/logout", authenticateJWT, userLogger, logout)
|
||||
|
||||
// Api for sec user group
|
||||
router
|
||||
.get(
|
||||
"/api/getAllUsrGrp",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
getUsersUserGrpMaintenance
|
||||
)
|
||||
// .get(
|
||||
// "/api1/getusracces1/:id",
|
||||
// authenticateJWT,
|
||||
// userLogger,
|
||||
// getUsersByUserIdUserGrpMaintenance
|
||||
// )
|
||||
.put(
|
||||
"/api/updateOneUsrGrp/:id",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
updateUsersUserGrpMaintenance
|
||||
)
|
||||
.post(
|
||||
"/api/addOneUsrGrp",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
createUsersUserGrpMaintenance
|
||||
)
|
||||
.delete(
|
||||
"/api/delete_usrgrp/:id",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
deleteUsersUserGrpMaintenance
|
||||
)
|
||||
|
||||
router
|
||||
.get("/api1/submenu1", authenticateJWT, userLogger, getUsersMenuMaintainence)
|
||||
.get(
|
||||
"/api1/getusracces1/:id",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
getUsersByUserIdMenuMaintainence
|
||||
)
|
||||
.post(
|
||||
"/api1/Sec_menuDet",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
createUsersMenuMaintainence
|
||||
)
|
||||
.put(
|
||||
"/api1/submenu1/:id",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
updateUsersMenuMaintainence
|
||||
)
|
||||
.delete(
|
||||
"/api1/menu/:id",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
deleteUsersMenuMaintainence
|
||||
)
|
||||
|
||||
// // Report Builder Controller
|
||||
|
||||
router
|
||||
.post(
|
||||
"/Rpt_builder2/Rpt_builder2",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
createReport
|
||||
)
|
||||
router
|
||||
.get(
|
||||
"/Rpt_builder2/Rpt_builder2",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
getAllReportBuilder
|
||||
)
|
||||
.get(
|
||||
"/Rpt_builder2/Rpt_builder2/:id",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
getAllReportBuilderById
|
||||
)
|
||||
.get(
|
||||
"/api/master-query-data/:query",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
getAllReportBuilderByQuery
|
||||
)
|
||||
.put(
|
||||
"/Rpt_builder2/Rpt_builder2/:id",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
updateReportBuilder
|
||||
)
|
||||
.delete(
|
||||
"/Rpt_builder2/Rpt_builder2/:id",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
deleteReportBuilder
|
||||
)
|
||||
|
||||
// // Report Line Controller
|
||||
|
||||
router
|
||||
.get(
|
||||
"/Rpt_builder2_lines/Rpt_builder2_lines",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
getReportLine
|
||||
)
|
||||
.get(
|
||||
"/Rpt_builder2_lines/Rpt_builder2_lines/:id",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
getReportLineById
|
||||
)
|
||||
.put(
|
||||
"/Rpt_builder2_lines/update/:id",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
updateReportLine
|
||||
)
|
||||
|
||||
// // Dashboard Controller
|
||||
|
||||
router
|
||||
.get("/get_Dashboard_header", authenticateJWT, userLogger, getAllDashboard)
|
||||
|
||||
.get("/get_module_id", authenticateJWT, userLogger, getDashboardByModuleId)
|
||||
.get(
|
||||
"/get_dashboard_headerbyid/:id",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
getAllDashboardHeaderById
|
||||
)
|
||||
.post("/Savedata", authenticateJWT, userLogger, createDashboard)
|
||||
.put(
|
||||
"/update_dashboard_header/:id",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
updateDashboard
|
||||
)
|
||||
.delete(
|
||||
"/delete_by_header_id/:id",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
deleteDashboard
|
||||
)
|
||||
|
||||
// // Dashboard Line Controller
|
||||
|
||||
router
|
||||
.get("/get_Dashboard1_line", authenticateJWT, userLogger, getDashboardLine)
|
||||
.get(
|
||||
"/get_dashboard_headerbyid/:id",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
getDashboardLineById
|
||||
)
|
||||
.put(
|
||||
"/update_Dashbord1_Lineby_id/:id",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
updateDashboardLineById
|
||||
)
|
||||
|
||||
// // System Parameter router
|
||||
|
||||
router
|
||||
.get(
|
||||
"/sysparam/getSysParams",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
getSystemParameter
|
||||
)
|
||||
.get(
|
||||
"/sysparam/getSysParams/:id",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
getSystemParameterById
|
||||
)
|
||||
.post(
|
||||
"/sysparam/addSysParams",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
createSystemParameter
|
||||
)
|
||||
.put(
|
||||
"/sysparam/updateSysParams/:id",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
updateSystemParameter
|
||||
)
|
||||
.delete(
|
||||
"/sysparam/deleteSysParams/:id",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
deleteSystemParameter
|
||||
)
|
||||
|
||||
// // Form extension router
|
||||
|
||||
router
|
||||
.get("/api/extension", authenticateJWT, userLogger, getAllFormExtension)
|
||||
.get("/api/extension/:id", authenticateJWT, userLogger, getByIdFormExtension)
|
||||
.get("/extension_build/:formId", authenticateJWT, userLogger, buildExtension)
|
||||
.post("/api/extension/", authenticateJWT, userLogger, createFormExtension)
|
||||
.put("/api/extension/:id", authenticateJWT, userLogger, updateFormExtension)
|
||||
.delete(
|
||||
"/api/extension/:id",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
deleteFormExtension
|
||||
)
|
||||
|
||||
//// User Node Table router
|
||||
router
|
||||
.get("/user/node", authenticateJWT, userLogger, getAllUserNode)
|
||||
.get("/user/node/:name", authenticateJWT, userLogger, getByNameUserNode)
|
||||
.post("/user/node", authenticateJWT, userLogger, addUserUserNode)
|
||||
|
||||
router.get(
|
||||
"/api1/submenu1/:id",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
getUsersByIdSubMenuMaintainence
|
||||
)
|
||||
|
||||
// api for sec group menu access
|
||||
router
|
||||
.get(
|
||||
"/api/getAllUsrGrp",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
getUsersMenuAccessControl
|
||||
)
|
||||
.post(
|
||||
"/api1/addgrpwithsubmenu/:id",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
createUsersMenuAccessControl
|
||||
)
|
||||
|
||||
router
|
||||
.get("/api/getAllAppUser", authenticateJWT, userLogger, getUserMaintainence)
|
||||
.get(
|
||||
"/api/getOneAppUser/:id",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
getByIdUserMaintainence
|
||||
)
|
||||
.post("/api/addOneAppUser", createUserMaintainence)
|
||||
|
||||
router.get(
|
||||
"/fndMenu/menuloadbyuser",
|
||||
authenticateJWT,
|
||||
userLogger,
|
||||
loadMenuByUser
|
||||
)
|
||||
router.get("/api/realnet-menu/user-menu", authenticateJWT, userLogger, userMenu)
|
||||
|
||||
router.get("/getLogs/:userName", authenticateJWT, userLogger, getLogs)
|
||||
|
||||
module.exports = router
|
|
@ -0,0 +1,46 @@
|
|||
const {
|
||||
getTable,
|
||||
getTableById,
|
||||
getTableByIdSec_Menu_Det,
|
||||
createDataInTable,
|
||||
updateDataInTable,
|
||||
deleteDataInTable,
|
||||
addMenu,
|
||||
deleteMenu,
|
||||
updateMenu,
|
||||
createDataInTableRole,
|
||||
updateDataInTableRole,
|
||||
deleteDataInTableRole,
|
||||
createDataInStudentTable,
|
||||
getStudentTable,
|
||||
getStudentTableById,
|
||||
updateDataInStudentTable,
|
||||
deleteDataInStudentTable,
|
||||
} = require("../api/controller")
|
||||
|
||||
const { checkToken } = require("../auth/token_validation")
|
||||
const router = require("express").Router()
|
||||
|
||||
router
|
||||
.get("/student", checkToken, getStudentTable)
|
||||
.get("/student/:id", checkToken, getStudentTableById)
|
||||
.post("/student", checkToken, createDataInStudentTable)
|
||||
.patch("/student/:id", checkToken, updateDataInStudentTable)
|
||||
.delete("/student:id", checkToken, deleteDataInStudentTable)
|
||||
.post("/role", checkToken, createDataInTableRole)
|
||||
.patch("/role/:id", checkToken, updateDataInTableRole)
|
||||
.delete("/role/:id", checkToken, deleteDataInTableRole)
|
||||
.post("/:id", checkToken, addMenu)
|
||||
.delete("/:id", checkToken, deleteMenu)
|
||||
.patch("/:id", checkToken, updateMenu)
|
||||
router
|
||||
.get("/sec_menu_det/:id", checkToken, getTableByIdSec_Menu_Det)
|
||||
.get("/sec_grp_menu_access/:id", checkToken, getTableByIdSec_Menu_Det)
|
||||
.get("/:tableName/:id", checkToken, getTableById)
|
||||
.patch("/:tableName/:id", checkToken, updateDataInTable)
|
||||
.delete("/:tableName/:id", checkToken, deleteDataInTable)
|
||||
router
|
||||
.get("/:tableName", checkToken, getTable)
|
||||
.post("/:tableName", checkToken, createDataInTable)
|
||||
|
||||
module.exports = router
|
|
@ -0,0 +1,31 @@
|
|||
const {
|
||||
getUsers,
|
||||
getUsersByUserId,
|
||||
updateUsers,
|
||||
deleteUsers,
|
||||
login,
|
||||
registerUser,
|
||||
verifyOTP,
|
||||
} = require("../api/user.controller")
|
||||
|
||||
const { checkToken } = require("../auth/token_validation")
|
||||
const router = require("express").Router()
|
||||
|
||||
// router.get("/", checkToken, getUsers)
|
||||
// router
|
||||
// .get("/:id", checkToken, getUsersByUserId)
|
||||
// .patch("/:id", checkToken, updateUsers)
|
||||
// .delete("/:id", checkToken, deleteUsers)
|
||||
// router.post("/login", login)
|
||||
// router.post("/register", registerUser).post("/verify", verifyOTP)
|
||||
|
||||
router.get("/", checkToken, getUsers)
|
||||
router
|
||||
.get("/:id", checkToken, getUsersByUserId)
|
||||
.patch("/:id", checkToken, updateUsers)
|
||||
.delete("/:id", checkToken, deleteUsers)
|
||||
router.post("/token/session", login)
|
||||
// router.post("/login", login)
|
||||
router.post("/register", registerUser).post("/verify", verifyOTP)
|
||||
|
||||
module.exports = router
|
|
@ -0,0 +1,11 @@
|
|||
const { register, verifyOTP, deleteUser } = require("../api/user.controller")
|
||||
|
||||
const { checkToken } = require("../auth/token_validation")
|
||||
const router = require("express").Router()
|
||||
|
||||
router
|
||||
.post("/addOneAppUser", register)
|
||||
.post("/verify", verifyOTP)
|
||||
.delete("/deleteUser", deleteUser)
|
||||
|
||||
module.exports = router
|
Binary file not shown.
After Width: | Height: | Size: 66 KiB |
Binary file not shown.
After Width: | Height: | Size: 39 KiB |
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,3 @@
|
|||
|
||||
frontend/.DS_Store
|
||||
.DS_Store
|
|
@ -0,0 +1,16 @@
|
|||
# Editor configuration, see https://editorconfig.org
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*.ts]
|
||||
quote_type = single
|
||||
|
||||
[*.md]
|
||||
max_line_length = off
|
||||
trim_trailing_whitespace = false
|
17
pro118njsac-front-f/authsec_angular/frontend/angular-clarity-master/.github/workflows/blank.yml
vendored
Normal file
17
pro118njsac-front-f/authsec_angular/frontend/angular-clarity-master/.github/workflows/blank.yml
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
name: CI
|
||||
|
||||
on: [push]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Run a one-line script
|
||||
run: echo Hello, world!
|
||||
- name: Run a multi-line script
|
||||
run: |
|
||||
echo Add other actions to build,
|
||||
echo test, and deploy your project.
|
42
pro118njsac-front-f/authsec_angular/frontend/angular-clarity-master/.gitignore
vendored
Normal file
42
pro118njsac-front-f/authsec_angular/frontend/angular-clarity-master/.gitignore
vendored
Normal file
|
@ -0,0 +1,42 @@
|
|||
# See http://help.github.com/ignore-files/ for more about ignoring files.
|
||||
|
||||
# compiled output
|
||||
/dist
|
||||
/tmp
|
||||
/out-tsc
|
||||
|
||||
# dependencies
|
||||
/node_modules
|
||||
|
||||
# IDEs and editors
|
||||
/.idea
|
||||
.project
|
||||
.classpath
|
||||
.c9/
|
||||
*.launch
|
||||
.settings/
|
||||
*.sublime-workspace
|
||||
|
||||
# IDE - VSCode
|
||||
.vscode/*
|
||||
!.vscode/settings.json
|
||||
!.vscode/tasks.json
|
||||
!.vscode/launch.json
|
||||
!.vscode/extensions.json
|
||||
|
||||
# misc
|
||||
/.angular/cache
|
||||
/.sass-cache
|
||||
/connect.lock
|
||||
/coverage
|
||||
/libpeerconnection.log
|
||||
npm-debug.log
|
||||
yarn-error.log
|
||||
testem.log
|
||||
/typings
|
||||
|
||||
# System Files
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
|
||||
|
2
pro118njsac-front-f/authsec_angular/frontend/angular-clarity-master/.vscode/settings.json
vendored
Normal file
2
pro118njsac-front-f/authsec_angular/frontend/angular-clarity-master/.vscode/settings.json
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
{
|
||||
}
|
|
@ -0,0 +1,52 @@
|
|||
# Angular-Clarity
|
||||
|
||||
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 16.0.4 [Angular.io](https://angular.io/) version 16.0.4 and [Clarity Design System](https://vmware.github.io/clarity/news) by VMware version 6.4.5/15.5.0
|
||||
|
||||
## Install
|
||||
- clone project `git clone https://github.com/superpck/angular-clarity`
|
||||
- goto project folder `cd angular-clarity`
|
||||
- install necessary package `npm install`
|
||||
- Fix some vulnerabilities (if founded) `npm audit fix --force`
|
||||
- Run application with command `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
|
||||
- or Run `ng serve --port 8080 --open` with another port and open web browser.
|
||||
|
||||
## Code scaffolding
|
||||
|
||||
Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.
|
||||
|
||||
## Build
|
||||
|
||||
- Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build.
|
||||
- or `ng build --base-href ./ --prod --output-hashing none`
|
||||
|
||||
## Running unit tests
|
||||
|
||||
Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
||||
|
||||
## Running end-to-end tests
|
||||
|
||||
Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).
|
||||
|
||||
## Further help
|
||||
|
||||
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
|
||||
|
||||
## Screenshot
|
||||
About Page
|
||||
![About](1.png)
|
||||
|
||||
Login Page
|
||||
![Datagrid](6.png)
|
||||
|
||||
Datagrid
|
||||
![Datagrid](2.png)
|
||||
|
||||
Datagrid expand row and single action
|
||||
![expand](3.png)
|
||||
|
||||
Modal
|
||||
![modal](4.png)
|
||||
|
||||
sweetalert2
|
||||
![sweetalert2](5.png)
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
# Security Policy
|
||||
|
||||
## Supported Versions
|
||||
|
||||
Use this section to tell people about which versions of your project are
|
||||
currently being supported with security updates.
|
||||
|
||||
| Version | Supported |
|
||||
| ------- | ------------------ |
|
||||
| 5.1.x | :white_check_mark: |
|
||||
| 5.0.x | :x: |
|
||||
| 4.0.x | :white_check_mark: |
|
||||
| < 4.0 | :x: |
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
Use this section to tell people how to report a vulnerability.
|
||||
|
||||
Tell them where to go, how often they can expect to get an update on a
|
||||
reported vulnerability, what to expect if the vulnerability is accepted or
|
||||
declined, etc.
|
|
@ -0,0 +1,134 @@
|
|||
{
|
||||
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
|
||||
"version": 1,
|
||||
"newProjectRoot": "projects",
|
||||
"projects": {
|
||||
"angularclarity": {
|
||||
"projectType": "application",
|
||||
"schematics": {
|
||||
"@schematics/angular:component": {
|
||||
"style": "scss"
|
||||
}
|
||||
},
|
||||
"root": "",
|
||||
"sourceRoot": "src",
|
||||
"prefix": "app",
|
||||
"architect": {
|
||||
"build": {
|
||||
"builder": "@angular-devkit/build-angular:browser",
|
||||
"options": {
|
||||
"outputPath": "dist",
|
||||
"index": "src/index.html",
|
||||
"main": "src/main.ts",
|
||||
"polyfills": "src/polyfills.ts",
|
||||
"tsConfig": "tsconfig.app.json",
|
||||
"allowedCommonJsDependencies": [
|
||||
"lodash", "xlsx", "file-saver","@swimlane/ngx-datatable","@swimlane/ngx-charts","jquery","highcharts","chart.js",
|
||||
"clone-deep","@ckeditor/ckeditor5-build-classic","@ctrl/ngx-codemirror"
|
||||
],
|
||||
"assets": [
|
||||
"src/favicon.ico",
|
||||
"src/assets"
|
||||
],
|
||||
"styles": [
|
||||
"node_modules/@clr/icons/clr-icons.min.css",
|
||||
"node_modules/@clr/ui/clr-ui.min.css",
|
||||
"src/styles.scss",
|
||||
"node_modules/ngx-toastr/toastr.css"
|
||||
],
|
||||
"scripts": [
|
||||
"node_modules/@webcomponents/webcomponentsjs/custom-elements-es5-adapter.js",
|
||||
"node_modules/@webcomponents/webcomponentsjs/webcomponents-bundle.js",
|
||||
"node_modules/@clr/icons/clr-icons.min.js"
|
||||
],
|
||||
"vendorChunk": true,
|
||||
"extractLicenses": false,
|
||||
"buildOptimizer": false,
|
||||
"sourceMap": true,
|
||||
"optimization": false,
|
||||
"namedChunks": true
|
||||
},
|
||||
"configurations": {
|
||||
"production": {
|
||||
"fileReplacements": [
|
||||
{
|
||||
"replace": "src/environments/environment.ts",
|
||||
"with": "src/environments/environment.prod.ts"
|
||||
}
|
||||
],
|
||||
"optimization": true,
|
||||
"outputHashing": "all",
|
||||
"sourceMap": false,
|
||||
"namedChunks": false,
|
||||
"extractLicenses": true,
|
||||
"vendorChunk": false,
|
||||
"buildOptimizer": true,
|
||||
"budgets": [
|
||||
{
|
||||
"type": "initial",
|
||||
"maximumWarning": "10mb",
|
||||
"maximumError": "10mb"
|
||||
},
|
||||
{
|
||||
"type": "anyComponentStyle",
|
||||
"maximumWarning": "200kb",
|
||||
"maximumError": "4mb"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"defaultConfiguration": ""
|
||||
},
|
||||
"serve": {
|
||||
"builder": "@angular-devkit/build-angular:dev-server",
|
||||
"options": {
|
||||
"browserTarget": "angularclarity:build"
|
||||
},
|
||||
"configurations": {
|
||||
"production": {
|
||||
"browserTarget": "angularclarity:build:production"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extract-i18n": {
|
||||
"builder": "@angular-devkit/build-angular:extract-i18n",
|
||||
"options": {
|
||||
"browserTarget": "angularclarity:build"
|
||||
}
|
||||
},
|
||||
"test": {
|
||||
"builder": "@angular-devkit/build-angular:karma",
|
||||
"options": {
|
||||
"main": "src/test.ts",
|
||||
"polyfills": "src/polyfills.ts",
|
||||
"tsConfig": "tsconfig.spec.json",
|
||||
"karmaConfig": "karma.conf.js",
|
||||
"assets": [
|
||||
"src/favicon.ico",
|
||||
"src/assets"
|
||||
],
|
||||
"styles": [
|
||||
"src/styles.scss"
|
||||
],
|
||||
"scripts": []
|
||||
}
|
||||
},
|
||||
"e2e": {
|
||||
"builder": "@angular-devkit/build-angular:protractor",
|
||||
"options": {
|
||||
"protractorConfig": "e2e/protractor.conf.js",
|
||||
"devServerTarget": "angularclarity:serve"
|
||||
},
|
||||
"configurations": {
|
||||
"production": {
|
||||
"devServerTarget": "angularclarity:serve:production"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"cli": {
|
||||
"analytics": "6e7a3b23-d894-47dd-8b4b-7fdeba9a5abd"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
|
||||
# For additional information regarding the format and rule options, please see:
|
||||
# https://github.com/browserslist/browserslist#queries
|
||||
|
||||
# You can see what browsers were selected by your queries by running:
|
||||
# npx browserslist
|
||||
|
||||
> 0.5%
|
||||
last 2 versions
|
||||
Firefox ESR
|
||||
not dead
|
||||
not IE 9-11 # For IE 9-11 support, remove 'not'.
|
|
@ -0,0 +1,32 @@
|
|||
// @ts-check
|
||||
// Protractor configuration file, see link for more information
|
||||
// https://github.com/angular/protractor/blob/master/lib/config.ts
|
||||
|
||||
const { SpecReporter } = require('jasmine-spec-reporter');
|
||||
|
||||
/**
|
||||
* @type { import("protractor").Config }
|
||||
*/
|
||||
exports.config = {
|
||||
allScriptsTimeout: 11000,
|
||||
specs: [
|
||||
'./src/**/*.e2e-spec.ts'
|
||||
],
|
||||
capabilities: {
|
||||
browserName: 'chrome'
|
||||
},
|
||||
directConnect: true,
|
||||
baseUrl: 'http://localhost:4200/',
|
||||
framework: 'jasmine',
|
||||
jasmineNodeOpts: {
|
||||
showColors: true,
|
||||
defaultTimeoutInterval: 30000,
|
||||
print: function() {}
|
||||
},
|
||||
onPrepare() {
|
||||
require('ts-node').register({
|
||||
project: require('path').join(__dirname, './tsconfig.json')
|
||||
});
|
||||
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
|
||||
}
|
||||
};
|
|
@ -0,0 +1,23 @@
|
|||
import { AppPage } from './app.po';
|
||||
import { browser, logging } from 'protractor';
|
||||
|
||||
describe('workspace-project App', () => {
|
||||
let page: AppPage;
|
||||
|
||||
beforeEach(() => {
|
||||
page = new AppPage();
|
||||
});
|
||||
|
||||
it('should display welcome message', () => {
|
||||
page.navigateTo();
|
||||
expect(page.getTitleText()).toEqual('angularclarity app is running!');
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
// Assert that there are no errors emitted from the browser
|
||||
const logs = await browser.manage().logs().get(logging.Type.BROWSER);
|
||||
expect(logs).not.toContain(jasmine.objectContaining({
|
||||
level: logging.Level.SEVERE,
|
||||
} as logging.Entry));
|
||||
});
|
||||
});
|
|
@ -0,0 +1,11 @@
|
|||
import { browser, by, element } from 'protractor';
|
||||
|
||||
export class AppPage {
|
||||
navigateTo(): Promise<unknown> {
|
||||
return browser.get(browser.baseUrl) as Promise<unknown>;
|
||||
}
|
||||
|
||||
getTitleText(): Promise<string> {
|
||||
return element(by.css('app-root .content span')).getText() as Promise<string>;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"extends": "../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../out-tsc/e2e",
|
||||
"module": "commonjs",
|
||||
"target": "es5",
|
||||
"types": [
|
||||
"jasmine",
|
||||
"jasminewd2",
|
||||
"node"
|
||||
]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
// Karma configuration file, see link for more information
|
||||
// https://karma-runner.github.io/1.0/config/configuration-file.html
|
||||
|
||||
module.exports = function (config) {
|
||||
config.set({
|
||||
basePath: '',
|
||||
frameworks: ['jasmine', '@angular-devkit/build-angular'],
|
||||
plugins: [
|
||||
require('karma-jasmine'),
|
||||
require('karma-chrome-launcher'),
|
||||
require('karma-jasmine-html-reporter'),
|
||||
require('karma-coverage-istanbul-reporter'),
|
||||
require('@angular-devkit/build-angular/plugins/karma')
|
||||
],
|
||||
client: {
|
||||
clearContext: false // leave Jasmine Spec Runner output visible in browser
|
||||
},
|
||||
coverageIstanbulReporter: {
|
||||
dir: require('path').join(__dirname, './coverage/ang'),
|
||||
reports: ['html', 'lcovonly', 'text-summary'],
|
||||
fixWebpackSourcePaths: true
|
||||
},
|
||||
reporters: ['progress', 'kjhtml'],
|
||||
port: 9876,
|
||||
colors: true,
|
||||
logLevel: config.LOG_INFO,
|
||||
autoWatch: true,
|
||||
browsers: ['Chrome'],
|
||||
singleRun: false,
|
||||
restartOnFileChange: true
|
||||
});
|
||||
};
|
14670
pro118njsac-front-f/authsec_angular/frontend/angular-clarity-master/package-lock.json
generated
Normal file
14670
pro118njsac-front-f/authsec_angular/frontend/angular-clarity-master/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,87 @@
|
|||
{
|
||||
"name": "angular-clarity",
|
||||
"version": "16.0.4",
|
||||
"subVersion": "2023.06.02-01",
|
||||
"scripts": {
|
||||
"ng": "ng",
|
||||
"start": "node --max_old_space_size=8192 ./node_modules/@angular/cli/bin/ng serve --port 4201 -o",
|
||||
"start:https": "ng serve --port 4201 --ssl -o",
|
||||
"build-prod": "node --max_old_space_size=64384 ./node_modules/@angular/cli/bin/ng build --prod ",
|
||||
"build": "node --max_old_space_size=8192 ./node_modules/@angular/cli/bin/ng build --base-href ./ --configuration production --aot --build-optimizer",
|
||||
"test": "ng test",
|
||||
"lint": "ng lint",
|
||||
"e2e": "ng e2e"
|
||||
},
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@angular/animations": "^16.0.4",
|
||||
"@angular/cdk": "^16.2.4",
|
||||
"@angular/common": "^16.0.4",
|
||||
"@angular/compiler": "^16.0.4",
|
||||
"@angular/core": "^16.0.4",
|
||||
"@angular/forms": "^16.0.4",
|
||||
"@angular/platform-browser": "^16.0.4",
|
||||
"@angular/platform-browser-dynamic": "^16.0.4",
|
||||
"@angular/router": "^16.0.4",
|
||||
"@auth0/angular-jwt": "^5.1.2",
|
||||
"@cds/core": "^6.9.0",
|
||||
"@ckeditor/ckeditor5-angular": "^7.0.1",
|
||||
"@ckeditor/ckeditor5-build-classic": "^40.0.0",
|
||||
"@clr/angular": "^15.5.0",
|
||||
"@clr/core": "^4.0.15",
|
||||
"@clr/icons": "^13.0.2",
|
||||
"@clr/ui": "^15.5.0",
|
||||
"@ctrl/ngx-codemirror": "^7.0.0",
|
||||
"@swimlane/ngx-charts": "^20.4.1",
|
||||
"@webcomponents/custom-elements": "^1.6.0",
|
||||
"@webcomponents/webcomponentsjs": "^2.8.0",
|
||||
"angular-gridster2": "^16.0.0",
|
||||
"angularx-qrcode": "^16.0.2",
|
||||
"chart.js": "^4.4.0",
|
||||
"dom-to-image": "^2.6.0",
|
||||
"express": "^4.18.2",
|
||||
"file-saver": "^2.0.5",
|
||||
"highcharts": "^11.1.0",
|
||||
"highcharts-angular": "^3.1.2",
|
||||
"jquery": "^3.7.1",
|
||||
"jspdf": "^2.5.1",
|
||||
"jszip": "^3.10.1",
|
||||
"lit-html": "^3.1.0",
|
||||
"lodash": "^4.17.21",
|
||||
"moment": "^2.29.4",
|
||||
"ng-dynamic-component": "^10.1.1",
|
||||
"ng2-charts": "^5.0.3",
|
||||
"ng2-ckeditor": "^1.3.7",
|
||||
"ng2-search-filter": "^0.5.1",
|
||||
"ngx-captcha": "^13.0.0",
|
||||
"ngx-chips": "^3.0.0",
|
||||
"ngx-cookie-service": "^16.0.0",
|
||||
"ngx-drag-drop": "^16.1.0",
|
||||
"ngx-image-cropper": "^7.0.2",
|
||||
"ngx-toastr": "^17.0.2",
|
||||
"numeral": "^2.0.6",
|
||||
"rxjs": "^7.8.1",
|
||||
"sweetalert2": "^11.4.8",
|
||||
"tslib": "^2.5.2",
|
||||
"xlsx": "https://cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz",
|
||||
"zone.js": "~0.13.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@angular-devkit/build-angular": "^16.0.4",
|
||||
"@angular/cli": "^16.0.4",
|
||||
"@angular/compiler-cli": "^16.0.4",
|
||||
"@types/jasmine": "~4.3.2",
|
||||
"@types/jasminewd2": "~2.0.10",
|
||||
"@types/node": "^20.2.5",
|
||||
"jasmine-core": "~5.0.0",
|
||||
"jasmine-spec-reporter": "~7.0.0",
|
||||
"karma": "~6.4.2",
|
||||
"karma-chrome-launcher": "~3.2.0",
|
||||
"karma-coverage-istanbul-reporter": "~3.0.3",
|
||||
"karma-jasmine": "~5.1.0",
|
||||
"karma-jasmine-html-reporter": "^2.0.0",
|
||||
"ts-node": "^10.9.1",
|
||||
"tslint": "~6.1.3",
|
||||
"typescript": "^5.1.0"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
import { Injectable } from '@angular/core';
|
||||
import{environment} from 'src/environments/environment';
|
||||
/**
|
||||
* This is a singleton class
|
||||
*/
|
||||
@Injectable()
|
||||
export class AppConfig {
|
||||
//Provide all the Application Configs here
|
||||
|
||||
public version: string = "1.0.0";
|
||||
public locale: string = "en-US";
|
||||
public currencyFormat = { style: "currency", currency: "USD" };
|
||||
public dateFormat = { year: 'numeric', month: 'short', day: 'numeric' };
|
||||
// port in enviroment
|
||||
// API Related configs
|
||||
public apiPort: string; // this.apiURL //9191 to pc used and 8080/billingback to jboss
|
||||
public apiProtocol: string;
|
||||
public apiHostName: string;
|
||||
public baseApiPath: string;
|
||||
public backendURL: string = environment.backendUrl;
|
||||
|
||||
constructor() {
|
||||
if (this.apiProtocol === undefined) {
|
||||
this.apiProtocol = window.location.protocol;
|
||||
}
|
||||
if (this.apiHostName === undefined) {
|
||||
this.apiHostName = window.location.hostname;
|
||||
}
|
||||
if (this.apiPort === undefined) {
|
||||
this.apiPort = window.location.port;
|
||||
}
|
||||
if (this.apiHostName.includes("infomud") || this.apiHostName.includes("heroku")) {
|
||||
this.baseApiPath = this.apiProtocol + "//" + this.apiHostName + "/";
|
||||
}
|
||||
else {
|
||||
this.baseApiPath = this.backendURL + "/";
|
||||
}
|
||||
if (this.locale === undefined) {
|
||||
this.locale = navigator.language;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
import { NgModule } from '@angular/core';
|
||||
import { Routes, RouterModule } from '@angular/router';
|
||||
|
||||
|
||||
const routes: Routes = [
|
||||
{path: '', redirectTo: 'login', pathMatch: 'full'}
|
||||
|
||||
];
|
||||
|
||||
@NgModule({
|
||||
imports: [RouterModule.forRoot(routes)],
|
||||
exports: [RouterModule]
|
||||
})
|
||||
export class AppRoutingModule { }
|
|
@ -0,0 +1 @@
|
|||
<router-outlet></router-outlet>
|
|
@ -0,0 +1,35 @@
|
|||
import { TestBed, async } from '@angular/core/testing';
|
||||
import { RouterTestingModule } from '@angular/router/testing';
|
||||
import { AppComponent } from './app.component';
|
||||
|
||||
describe('AppComponent', () => {
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [
|
||||
RouterTestingModule
|
||||
],
|
||||
declarations: [
|
||||
AppComponent
|
||||
],
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
it('should create the app', () => {
|
||||
const fixture = TestBed.createComponent(AppComponent);
|
||||
const app = fixture.componentInstance;
|
||||
expect(app).toBeTruthy();
|
||||
});
|
||||
|
||||
it(`should have as title 'angularclarity'`, () => {
|
||||
const fixture = TestBed.createComponent(AppComponent);
|
||||
const app = fixture.componentInstance;
|
||||
expect(app.title).toEqual('angularclarity');
|
||||
});
|
||||
|
||||
it('should render title', () => {
|
||||
const fixture = TestBed.createComponent(AppComponent);
|
||||
fixture.detectChanges();
|
||||
const compiled = fixture.nativeElement;
|
||||
expect(compiled.querySelector('.content span').textContent).toContain('angularclarity app is running!');
|
||||
});
|
||||
});
|
|
@ -0,0 +1,10 @@
|
|||
import { Component } from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'app-root',
|
||||
templateUrl: './app.component.html',
|
||||
styleUrls: ['./app.component.scss']
|
||||
})
|
||||
export class AppComponent {
|
||||
title = 'angularclarity';
|
||||
}
|
|
@ -0,0 +1,79 @@
|
|||
import { ExcelService } from './services/excel.service';
|
||||
import { BrowserModule } from '@angular/platform-browser';
|
||||
|
||||
import { ToastrModule } from 'ngx-toastr';
|
||||
|
||||
import { AppRoutingModule } from './app-routing.module';
|
||||
import { AppComponent } from './app.component';
|
||||
import { ClarityModule } from '@clr/angular';
|
||||
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
||||
import { HashLocationStrategy, LocationStrategy } from '@angular/common';
|
||||
import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
|
||||
import { MainModule } from './modules/main/main.module';
|
||||
import { LoginModule } from './modules/login/login.module';
|
||||
import { MainService } from './services/main.service';
|
||||
import { AlertService } from './services/alert.service';
|
||||
import { HelperModule } from './pipes/helpers.module';
|
||||
import { LogoComponent } from './modules/logo/logo.component';
|
||||
import { AppConfig } from './app-config';
|
||||
import { JwtInterceptor } from './services/jwt.interceptor';
|
||||
import { UserInfoService } from './services/user-info.service';
|
||||
import { AuthGuard } from './services/auth_guard.service';
|
||||
import { LoginService } from './services/api/login.service';
|
||||
import { ApiRequestService } from './services/api/api-request.service';
|
||||
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
||||
import {CUSTOM_ELEMENTS_SCHEMA, NgModule } from "@angular/core";
|
||||
import { TranslateService } from './services/api/translate.service';
|
||||
import { RealnetMenuService } from './services/api/realnet-menu.service';
|
||||
import { UserProfileService } from './services/admin/user-profile.service';
|
||||
import { DragDropModule } from '@angular/cdk/drag-drop';
|
||||
|
||||
import '@clr/icons';
|
||||
import '@clr/icons/shapes/all-shapes';
|
||||
|
||||
@NgModule({
|
||||
declarations: [
|
||||
AppComponent,
|
||||
LogoComponent,
|
||||
|
||||
|
||||
],
|
||||
imports: [
|
||||
BrowserModule,
|
||||
AppRoutingModule,
|
||||
ClarityModule,
|
||||
HttpClientModule,
|
||||
BrowserAnimationsModule,
|
||||
ToastrModule.forRoot(),
|
||||
HelperModule,
|
||||
MainModule,
|
||||
LoginModule,
|
||||
FormsModule,
|
||||
ReactiveFormsModule,
|
||||
DragDropModule,
|
||||
|
||||
],
|
||||
providers: [
|
||||
MainService,
|
||||
AlertService,
|
||||
ExcelService,
|
||||
UserInfoService,
|
||||
LoginService,
|
||||
ApiRequestService,
|
||||
TranslateService,
|
||||
RealnetMenuService,
|
||||
UserProfileService,
|
||||
// ProjectSetupService,
|
||||
// TechnologyStackService,
|
||||
// DropdownService,
|
||||
// WireframeService,
|
||||
// SuregitService,
|
||||
AuthGuard,
|
||||
AppConfig,
|
||||
{ provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true },
|
||||
{ provide: LocationStrategy, useClass: HashLocationStrategy } // HashLocationStrategy to use # and remove # PathLocationStrategy
|
||||
],
|
||||
bootstrap: [AppComponent],
|
||||
schemas: [CUSTOM_ELEMENTS_SCHEMA ]
|
||||
})
|
||||
export class AppModule { }
|
|
@ -0,0 +1,169 @@
|
|||
export class field{
|
||||
_id?:any;
|
||||
name?:any;
|
||||
type?:any;
|
||||
icon?:any;
|
||||
toggle?:any;
|
||||
required?:any;
|
||||
regex?:any;
|
||||
errorText?:any;
|
||||
label?:any;
|
||||
description?:any;
|
||||
placeholder?:any;
|
||||
className?:any;
|
||||
subtype?:any;
|
||||
handle?:any;
|
||||
min?:number;
|
||||
max?:number;
|
||||
inline?:any;
|
||||
value?:any;
|
||||
size?:any;
|
||||
values?:Array<value>;
|
||||
div_name?:any;
|
||||
gridLine_name?:any;
|
||||
children?: field[];
|
||||
tooltipmsg?:any;
|
||||
maxcharacters?:any;
|
||||
visibilty?:any;
|
||||
duplicateVal?:any;
|
||||
encryptData?:any;
|
||||
personalHealthInfo?:any;
|
||||
descriptionText?:any;
|
||||
heightpx?:any;
|
||||
showDescription?:boolean;
|
||||
personalInfo?:boolean;
|
||||
readOnly?:any;
|
||||
sessionVar?:any;
|
||||
allowedDays?:any;
|
||||
allowedHrsFrom?:any;
|
||||
allowedHrsTo?:any;
|
||||
showSeconds?:boolean;
|
||||
datePicker?:any;
|
||||
alphabeticalOrdering?:boolean;
|
||||
fieldLayout?:any;
|
||||
otherChoice?:boolean;
|
||||
dynamicList?:any;
|
||||
iconType?:any;
|
||||
target?:any;
|
||||
defaultCamera?:any;
|
||||
imgoption?:Array<value>;
|
||||
questions?:Array<value1>;
|
||||
maxDuration?:any;
|
||||
maxNo?:number;
|
||||
decimalPlaces?:number;
|
||||
currencyType?:any;
|
||||
formatNo?:any;
|
||||
providersData?:any;
|
||||
apikey?:any;
|
||||
expanded?:boolean;
|
||||
files?:Array<any>;
|
||||
password?:any;
|
||||
content?:any;
|
||||
theme?:any;
|
||||
norows?:number;
|
||||
nocolumns?:number;
|
||||
editordata?:any;
|
||||
}
|
||||
export class value{
|
||||
label?:any="";
|
||||
value?:any="";
|
||||
}
|
||||
export class value1{
|
||||
label1?:any="";
|
||||
value1?:any="";
|
||||
}
|
||||
export interface IProperty {
|
||||
url?: string;
|
||||
loading?: boolean;
|
||||
itemsPerPage?: number;
|
||||
total?: number;
|
||||
p?: number;
|
||||
sizeLimit?: number;
|
||||
title?: string;
|
||||
text?: string;
|
||||
items?: any[];
|
||||
sub?: any;
|
||||
isBlocked?: boolean;
|
||||
isDeleted?: boolean;
|
||||
isEmailVerified?: string;
|
||||
successMsg?: string;
|
||||
msg?: string;
|
||||
userId?: string;
|
||||
status?: number;
|
||||
userPlaceholder?: string;
|
||||
searchKey?: string;
|
||||
fullName?: string;
|
||||
email?: string;
|
||||
countryCode?: string;
|
||||
dialCode?: string;
|
||||
phoneNumber?: string;
|
||||
value?: Date;
|
||||
data?: any;
|
||||
name_es?: string;
|
||||
name_en?: string;
|
||||
countries?: any;
|
||||
states?: any;
|
||||
cities?: any;
|
||||
countries1?: any;
|
||||
states1?: any;
|
||||
cities1?: any;
|
||||
countries2?: any;
|
||||
states2?: any;
|
||||
cities2?: any;
|
||||
localities?: any;
|
||||
buildings?: any;
|
||||
country_id?: string;
|
||||
state_id?: string;
|
||||
city_id?: string;
|
||||
locality_id?: string;
|
||||
building_id?: string;
|
||||
countryCount?: number;
|
||||
stateCount?: number;
|
||||
cityCount?: number;
|
||||
stateCityCount?: number;
|
||||
localityCount?: number;
|
||||
buildingCount?: number;
|
||||
countriesAdd?: any;
|
||||
statesAdd?: any;
|
||||
citiesAdd?: any;
|
||||
localitiesAdd?: any;
|
||||
country_idAdd?: string;
|
||||
state_idAdd?: string;
|
||||
city_idAdd?: string;
|
||||
locality_idAdd?: string;
|
||||
countryCountAdd?: number;
|
||||
stateCountAdd?: number;
|
||||
cityCountAdd?: number;
|
||||
localityCountAdd?: number;
|
||||
successText?: string;
|
||||
propertyTypes?: any;
|
||||
propertyTypesCount?: number;
|
||||
amenities?: any;
|
||||
amenitiesCount?: number;
|
||||
projectTypes?: any;
|
||||
projectTypesCount?: number;
|
||||
routeName?: string;
|
||||
icon?: any;
|
||||
userType?: string;
|
||||
overlay?: any;
|
||||
is_broker_seller_dev?: number;
|
||||
is_buyer_renter?: number;
|
||||
is_broker?: number;
|
||||
is_data_collector?: number;
|
||||
image?: any;
|
||||
index?: number;
|
||||
name?: string;
|
||||
phone?: string;
|
||||
type?: number;
|
||||
property_id?: string;
|
||||
banks?: any;
|
||||
bankCount?: string;
|
||||
flag?: number;
|
||||
page?: number;
|
||||
property_for?: any;
|
||||
status_id?:any;
|
||||
type_id?:any;
|
||||
post_type?:any;
|
||||
developer_id?:any;
|
||||
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
export enum Role {
|
||||
// User = 'User',
|
||||
Admin = 'Admin'
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
export class Systemparameter{
|
||||
|
||||
|
||||
public schedulerTime: number;
|
||||
public leaseTaxCode: String;
|
||||
public vesselConfProcessLimit: number;
|
||||
public rowToDisplay: any;
|
||||
public linkToDisplay: any;
|
||||
public rowToAdd: any;
|
||||
public lovRowToDisplay:any;
|
||||
public lovLinkToDisplay: any;
|
||||
public oidserverName: any;
|
||||
public oidBase: any;
|
||||
public oidAdminUser: any;
|
||||
public oidServerPort: any;
|
||||
public userDefaultGroup: any;
|
||||
public defaultDepartment: any;
|
||||
public defaultPosition: any;
|
||||
public singleCharge: any;
|
||||
public firstDayOftheWeek:any;
|
||||
public hourPerShift: any;
|
||||
public cnBillingFrequency: any;
|
||||
public billingDepartmentCode: any;
|
||||
public basePriceList: any;
|
||||
public nonContainerServiceOrder: any;
|
||||
public ediMaeSchedulerONOFF: any;
|
||||
public ediSchedulerONOFF: any;
|
||||
public company_Display_Name:any;
|
||||
public upload_Logo:any;
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
export class User {
|
||||
public id: number;
|
||||
public name: string;
|
||||
public gender: string;
|
||||
public dob: string;
|
||||
public email: string;
|
||||
public picture:Blob;
|
||||
public location:string;
|
||||
public address1:string;
|
||||
public country:string;
|
||||
public phone:number;
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
export class userdepartment{
|
||||
public departmentCode:String;
|
||||
public active:String;
|
||||
public description:String;
|
||||
public createdOn:Date;
|
||||
public createdBy:String;
|
||||
public updatedOn:Date;
|
||||
public updatedBy:String;
|
||||
public id:number;
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
export class Usergrpmain {
|
||||
public usrGrp: number;
|
||||
public groupName:string;
|
||||
public groupDesc:string;
|
||||
public createby:string;
|
||||
public createdate:Date;
|
||||
public groupLevel:string;
|
||||
public status:string;
|
||||
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
import { userdepartment } from "./userdepartment";
|
||||
import { userposition } from "./userposition";
|
||||
|
||||
export class Usermain {
|
||||
public userId: number;
|
||||
public changePassw:string;
|
||||
public confirmPassword:string;
|
||||
public createby:string;
|
||||
public createdate:Date;
|
||||
public customerId:number;
|
||||
public customerNumer:String;
|
||||
public departmentCode:string;
|
||||
public departmentCodeString:string;
|
||||
public email:string;
|
||||
public firstLogin:String;
|
||||
public fullName:String;
|
||||
public langCode: String;
|
||||
public notification:String;
|
||||
public password1: String;
|
||||
public password2: String;
|
||||
public password3: String;
|
||||
public password4: String;
|
||||
public positionCodeString:String;
|
||||
public pwdChangedCnt:string;
|
||||
public shortName: string;
|
||||
public status:string;
|
||||
public updateby:string;
|
||||
public updatedate:Date;
|
||||
public username: string;
|
||||
public userPassw: string;
|
||||
public usrGrpId:number;
|
||||
public title: string;
|
||||
public expiryDate: Date;
|
||||
public lastPwdChangedDate:Date;
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
export class userposition{
|
||||
public positionCode:String;
|
||||
public active:String;
|
||||
public description:String;
|
||||
public createdOn:Date;
|
||||
public createdBy:String;
|
||||
public updatedOn:Date;
|
||||
public updatedBy:String;
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
export interface ActiveTechnology {
|
||||
id;
|
||||
name;
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
|
||||
|
||||
export class AdhocParam{
|
||||
|
||||
|
||||
public id: number;
|
||||
public table_allias_name: string;
|
||||
public column_name: string;
|
||||
public column_allias_name: string;
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
export class Audit {
|
||||
public accountId: number;
|
||||
public createdAt: Date;
|
||||
public createdBy: string;
|
||||
public updatedAt: Date;
|
||||
public updatedBy: string;
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
import { Audit } from "./Audit";
|
||||
export class Bcf_TechnologyStack extends Audit {
|
||||
public id: number;
|
||||
public tech_stack: string;
|
||||
public tech_stack_key: string;
|
||||
public tags: string;
|
||||
public base_prj_file_name: string;
|
||||
public active: boolean;
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
export interface ColumnList {
|
||||
// id: number;
|
||||
table_name: string;
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
export class DateParam{
|
||||
|
||||
|
||||
public date_id: number;
|
||||
public col_table_alies_name_date: string;
|
||||
public col_date_query: string;
|
||||
public column_alias_date_query: string;
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
export interface FileData {
|
||||
id: number;
|
||||
text: string;
|
||||
/* public id: number;
|
||||
public text: string; */
|
||||
/* constructor(id: number, text: string) {
|
||||
this.id = id;
|
||||
this.text = text;
|
||||
} */
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
export interface FileDetails {
|
||||
id: number;
|
||||
text: string;
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
import { Audit } from "./Audit";
|
||||
import { ProjectSetup } from "./Project_setup";
|
||||
import { Rn_Fb_Header } from "./Rn_Fb_Header";
|
||||
|
||||
export class ModuleSetup extends Audit {
|
||||
public id: number;
|
||||
public moduleName: string;
|
||||
public description: string;
|
||||
public modulePrefix: string;
|
||||
public copyTo?: string;
|
||||
public technologyStack: string;
|
||||
public project: ProjectSetup;
|
||||
public rn_fb_headers: Rn_Fb_Header[];
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
import { Audit } from "./Audit";
|
||||
import { ModuleSetup } from "./Module_Setup";
|
||||
|
||||
export class ProjectSetup extends Audit {
|
||||
public id: number;
|
||||
public projectName: string;
|
||||
public description: string;
|
||||
public copyTo?: string;
|
||||
public technologyStack: string;
|
||||
public techStackId: number;
|
||||
public projectPrefix: string;
|
||||
public dbName: string;
|
||||
public dbUserName: string;
|
||||
public dbPassword: string;
|
||||
public portNumber: string;
|
||||
public namespace: string;
|
||||
public tags:string;
|
||||
public category:string;
|
||||
public accessibility:boolean;
|
||||
public modules: ModuleSetup[];
|
||||
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
export class RbColumns{
|
||||
|
||||
|
||||
public id: number;
|
||||
public column_name: string;
|
||||
public functions: string;
|
||||
public column_allias_name: string;
|
||||
public table_allies_name: string;
|
||||
public asc_desc: string;
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
export class RbTables{
|
||||
public table_id: number;
|
||||
public table_name: string;
|
||||
public table_allias_name: string;
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
export class ReportBuilder {
|
||||
public report_id: number;
|
||||
public report_name:string;
|
||||
public description: string;
|
||||
public report_tags: string;
|
||||
public servicename:string;
|
||||
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
export class ReportBuilderQuery {
|
||||
public master_select: string;
|
||||
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
import { Audit } from "./Audit";
|
||||
import { Rn_Cff_ActionBuilder_Line } from "./Rn_Cff_ActionBuilder_Line";
|
||||
import { Rn_Fb_Header } from "./Rn_Fb_Header";
|
||||
|
||||
export class Rn_Cff_ActionBuilder_Header extends Audit {
|
||||
public id: number;
|
||||
public rn_fb_header: Rn_Fb_Header;
|
||||
public technologyStack: string;
|
||||
public controllerName: string;
|
||||
public methodName: string;
|
||||
public actionName: string;
|
||||
public fileLocation: string;
|
||||
public actionBuilderLines: Rn_Cff_ActionBuilder_Line[];
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
import { Audit } from "./Audit";
|
||||
import { Rn_Cff_ActionBuilder_Header } from "./Rn_Cff_ActionBuilder_Header";
|
||||
|
||||
export class Rn_Cff_ActionBuilder_Line extends Audit {
|
||||
public id: number;
|
||||
public actionType1: string;
|
||||
public actionType2: string;
|
||||
public dataType: string;
|
||||
public variableName: string;
|
||||
public assignment: string;
|
||||
public message: string;
|
||||
public conditions: string;
|
||||
public forward: string;
|
||||
public equation: string;
|
||||
public seq: number;
|
||||
public action: string;
|
||||
public rn_cff_actionBuilderHeader: Rn_Cff_ActionBuilder_Header;
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
import { Audit } from "./Audit";
|
||||
import { Rn_Fb_Lines } from "./Rn_Fb_Lines";
|
||||
|
||||
export class Rn_Fb_Header extends Audit {
|
||||
public id: number;
|
||||
public techStack: string;
|
||||
public objectType: string;
|
||||
public subObjectType: string;
|
||||
public uiName: string;
|
||||
public formType: string;
|
||||
public tableName: string;
|
||||
public lineTableName: string;
|
||||
public multilineTableName: string;
|
||||
public formCode: string;
|
||||
public build: boolean;
|
||||
public updated: boolean;
|
||||
public menuName: string;
|
||||
public headerName: string;
|
||||
public convertedTableName: string;
|
||||
public rn_fb_lines: Rn_Fb_Lines[];
|
||||
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
import { Audit } from "./Audit";
|
||||
|
||||
export class Rn_Fb_Lines extends Audit {
|
||||
public id: number;
|
||||
public fieldName: string;
|
||||
public mapping: string;
|
||||
public dataType: string;
|
||||
public formCode: string;
|
||||
public key1: string;
|
||||
public type1: string;
|
||||
public mandatory: boolean;
|
||||
public hidden: boolean;
|
||||
public readonly: boolean;
|
||||
public dependent: boolean;
|
||||
public dependent_on: string;
|
||||
public dependent_sp: string;
|
||||
public dependent_sp_param: string;
|
||||
public validation_1: boolean;
|
||||
public val_type: string;
|
||||
public val_sp: string;
|
||||
public val_sp_param: string;
|
||||
public sequence: boolean;
|
||||
public seq_name: string;
|
||||
public seq_sp: string;
|
||||
public seq_sp_param: string;
|
||||
public default_1: boolean;
|
||||
public default_type: string;
|
||||
public default_value: string;
|
||||
public default_sp: string;
|
||||
public default_sp_param: string;
|
||||
public calculated_field: boolean;
|
||||
public cal_sp: string;
|
||||
public cal_sp_param: string;
|
||||
public add_to_grid: boolean;
|
||||
public sp_for_autocomplete: boolean;
|
||||
public sp_name_for_autocomplete: string;
|
||||
public sp_for_dropdown: boolean;
|
||||
public sp_name_for_dropdown: string;
|
||||
public type_field: string;
|
||||
public methodName: string;
|
||||
public seq: number;
|
||||
public form_type: string;
|
||||
public section_num: number;
|
||||
public button_num: string;
|
||||
public type2: string;
|
||||
public table_name?: string;
|
||||
public line_table_name: string;
|
||||
public line_table_no: number;
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
import { Audit } from "./Audit";
|
||||
import { Rn_Sub_Menu } from './Rn_Sub_Menu';
|
||||
|
||||
export class Rn_Main_Menu extends Audit {
|
||||
public menuItemId: number;
|
||||
public menuItemDesc: string;
|
||||
public mainMenuActionName : string;
|
||||
public mainMenuIconName: string;
|
||||
public menu_type: string;
|
||||
public mcreate:String;
|
||||
public mdelete:String;
|
||||
public medit:String;
|
||||
public menuId:Number;
|
||||
public mquery:String;
|
||||
public mvisible:String;
|
||||
public subMenus: Rn_Sub_Menu[];
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
import { Audit } from "./Audit";
|
||||
|
||||
export class Rn_Sub_Menu extends Audit {
|
||||
public menuItemId: number;
|
||||
public menuItemDesc: string;
|
||||
public mainMenuActionName : string;
|
||||
public mainMenuIconName: string;
|
||||
public menu_type: string;
|
||||
public mcreate:String;
|
||||
public mdelete:String;
|
||||
public medit:String;
|
||||
public menuId:Number;
|
||||
public mquery:String;
|
||||
public mvisible:String;
|
||||
//public menu_icon: string;
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
export class StdParam{
|
||||
|
||||
|
||||
public std_id: number;
|
||||
public col_table_alies_name_std_para: string;
|
||||
public col_std_para_query: string;
|
||||
public field_type: string;
|
||||
public sp_for_dd: string;
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
export class WhereParam{
|
||||
|
||||
|
||||
public where_id: number;
|
||||
public explecity: string;
|
||||
public where_coloumn1_tbl_alias_name: string;
|
||||
public where_coloumn: string;
|
||||
public where_condition: string;
|
||||
public switch_control: string;
|
||||
public where_coloumn2_tbl_alias_name:string;
|
||||
public where_coloumn2:string;
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
export interface WireFrame {
|
||||
header: Header;
|
||||
line: Line;
|
||||
}
|
||||
export interface Header {
|
||||
section: Section[];
|
||||
}
|
||||
export interface Line {
|
||||
section: Section[];
|
||||
}
|
||||
export interface Section {
|
||||
id: number;
|
||||
fieldName: string;
|
||||
mapping: string;
|
||||
dataType: string;
|
||||
type_field: string;
|
||||
section_num: number;
|
||||
fields: Field[];
|
||||
}
|
||||
|
||||
export interface Field {
|
||||
id: number;
|
||||
fieldName: string;
|
||||
mapping: string;
|
||||
dataType: string;
|
||||
type_field: string;
|
||||
section_num: number;
|
||||
seq: number;
|
||||
}
|
|
@ -0,0 +1,114 @@
|
|||
export interface WidgetModel {
|
||||
name: string;
|
||||
identifier: string;
|
||||
}
|
||||
export interface SubmenuItem {
|
||||
name: string;
|
||||
identifier: string;
|
||||
}
|
||||
|
||||
export interface WidgetModel1 {
|
||||
name: string;
|
||||
submenu?: SubmenuItem[];
|
||||
showSubmenu?: boolean; // Optional property to control submenu visibility
|
||||
identifier: string;
|
||||
}
|
||||
|
||||
export interface DashboardContentModel {
|
||||
cols: number;
|
||||
rows: number;
|
||||
y: number;
|
||||
x: number;
|
||||
chartid: number;
|
||||
component?: any;
|
||||
name: string;
|
||||
type?:string;
|
||||
}
|
||||
|
||||
export interface DashboardModel {
|
||||
id: number;
|
||||
username: string;
|
||||
dashboard: Array<DashboardContentModel>;
|
||||
}
|
||||
|
||||
|
||||
export interface DashboardContentModel2 {
|
||||
cols: number;
|
||||
rows: number;
|
||||
y: number;
|
||||
x: number;
|
||||
chartid: number;
|
||||
charttitle?: string;
|
||||
component?: any;
|
||||
name: string;
|
||||
type?: string;
|
||||
values?:Array<value>;
|
||||
imgoption?:Array<value>;
|
||||
keyValue?:string;
|
||||
fieldtext?:any;
|
||||
dropdown_type?:string;
|
||||
imageURL?:string;
|
||||
}
|
||||
|
||||
export interface DashboardModel2 {
|
||||
id: number;
|
||||
username: string;
|
||||
dashboard: Array<DashboardContentModel2>;
|
||||
}
|
||||
|
||||
export class value{
|
||||
label?:any="";
|
||||
value?:any="";
|
||||
}
|
||||
export class value1{
|
||||
label1?:any="";
|
||||
value1?:any="";
|
||||
}
|
||||
|
||||
|
||||
export const WidgetsMock: WidgetModel[] = [
|
||||
{
|
||||
name: 'Radar Chart',
|
||||
identifier: 'radar_chart'
|
||||
},
|
||||
{
|
||||
name: 'Doughnut Chart',
|
||||
identifier: 'doughnut_chart'
|
||||
},
|
||||
{
|
||||
name: 'Line Chart',
|
||||
identifier: 'line_chart'
|
||||
},
|
||||
{
|
||||
name: 'Bar Chart',
|
||||
identifier: 'bar_chart'
|
||||
},
|
||||
{
|
||||
name: 'Pie Chart',
|
||||
identifier: 'pie_chart'
|
||||
},
|
||||
{
|
||||
name: 'Polar Area Chart',
|
||||
identifier: 'polar_area_chart'
|
||||
},
|
||||
{
|
||||
name: 'Bubble Chart',
|
||||
identifier: 'bubble_chart'
|
||||
},
|
||||
{
|
||||
name: 'Scatter Chart',
|
||||
identifier: 'scatter_chart'
|
||||
},
|
||||
{
|
||||
name: 'Dynamic Chart',
|
||||
identifier: 'dynamic_chart'
|
||||
},
|
||||
{
|
||||
name: 'Financial Chart',
|
||||
identifier: 'financial_chart'
|
||||
},
|
||||
{
|
||||
name: 'To Do',
|
||||
identifier: 'to_do_chart'
|
||||
}
|
||||
]
|
|
@ -0,0 +1,9 @@
|
|||
export class Gitfile {
|
||||
|
||||
public content :String;
|
||||
public url :String;
|
||||
public sha:String;
|
||||
public encoding:String;
|
||||
public size:String;
|
||||
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
export class RptBuilder{
|
||||
|
||||
public id:number;
|
||||
public name;
|
||||
public folder: string;
|
||||
public query: string;
|
||||
public date_param_flag:boolean;
|
||||
public adhoc_param_flag:boolean;
|
||||
public adhoc_param_string: string;
|
||||
public std_param_json: string;
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
export class Suregit {
|
||||
public path :String;
|
||||
public sha :String;
|
||||
public url :String;
|
||||
public type:Number;
|
||||
public mode:String;
|
||||
public size:String;
|
||||
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
export class Surename {
|
||||
public id :number;
|
||||
public message :String;
|
||||
public name :String;
|
||||
public timestamp:Number;
|
||||
public email:String;
|
||||
public username:String;
|
||||
public sha:any;
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
export class Surestar {
|
||||
public id :number;
|
||||
public email :String;
|
||||
public watchers_count :number;
|
||||
public forks_count:Number;
|
||||
public stars_count:number;
|
||||
public size:String;
|
||||
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
export interface WidgetModel {
|
||||
name: string;
|
||||
identifier: string;
|
||||
}
|
||||
|
||||
export interface DashboardContentModel {
|
||||
cols: number;
|
||||
rows: number;
|
||||
y: number;
|
||||
x: number;
|
||||
chartid: number;
|
||||
component?: any;
|
||||
name: string;
|
||||
}
|
||||
|
||||
export interface DashboardModel {
|
||||
id: number;
|
||||
username: string;
|
||||
dashboard: Array<DashboardContentModel>;
|
||||
}
|
||||
|
||||
export const WidgetsMock: WidgetModel[] = [
|
||||
// {
|
||||
// name: 'Text field',
|
||||
// identifier: 'text_field'
|
||||
// },
|
||||
{
|
||||
name: 'Text area',
|
||||
identifier: 'text_area'
|
||||
},
|
||||
{
|
||||
name: 'Table field',
|
||||
identifier: 'table_field'
|
||||
},
|
||||
// {
|
||||
// name: 'Background Color',
|
||||
// identifier: 'background_color'
|
||||
// },
|
||||
// {
|
||||
// name: 'Box field',
|
||||
// identifier: 'box_field'
|
||||
// },
|
||||
{
|
||||
name: 'Image field',
|
||||
identifier: 'img_field'
|
||||
},
|
||||
{
|
||||
name: 'Line field',
|
||||
identifier: 'line_field'
|
||||
},
|
||||
{
|
||||
name: 'QR code',
|
||||
identifier: 'qr_code'
|
||||
}
|
||||
]
|
|
@ -0,0 +1,10 @@
|
|||
import { Audit } from "../builder/Audit";
|
||||
|
||||
export class Bcf_Exception_Rule_Library extends Audit {
|
||||
id: number;
|
||||
tech_stack: string;
|
||||
object_type: string;
|
||||
sub_object_type: string;
|
||||
object_name_variable: string;
|
||||
object_name_dynamic_string: string;
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
import { Audit } from "../builder/Audit";
|
||||
import { Bcf_Extractor_Params } from "./Bcf_Extractor_Params";
|
||||
|
||||
export class Bcf_Extractor extends Audit {
|
||||
id: number;
|
||||
tech_stack: string;
|
||||
tech_stack_key: string;
|
||||
object_type: string;
|
||||
sub_object_type: string;
|
||||
form_type_name: string;
|
||||
std_wf_name: string;
|
||||
icon_file_name: string;
|
||||
sample_file_name: string;
|
||||
extractor_stage: string;
|
||||
rn_bcf_extractor_Params: Bcf_Extractor_Params[];
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
import { Audit } from "../builder/Audit";
|
||||
|
||||
export class Bcf_Extractor_Params extends Audit {
|
||||
id: number;
|
||||
tech_stack: string;
|
||||
object_type: string;
|
||||
sub_object_type: string;
|
||||
file_code: any;
|
||||
name_string: string;
|
||||
address_string: string;
|
||||
moved_address_string: string;
|
||||
reference_address_string: string;
|
||||
description: string;
|
||||
file_name_var: string;
|
||||
file_name_dynamic_string: string;
|
||||
is_extraction_enabled: boolean;
|
||||
is_creation_enabled: boolean;
|
||||
total_project_path_dynamic_string:string;
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
import { Audit } from "../builder/Audit";
|
||||
|
||||
export class Bcf_Rule_Library extends Audit {
|
||||
id: number;
|
||||
group_id: number;
|
||||
rule_name: string;
|
||||
tech_stack: string;
|
||||
object_type: string;
|
||||
sub_object_type: string;
|
||||
file_code: string;
|
||||
rule_type: string;
|
||||
identifier_start_string: string;
|
||||
identifier_end_string: string;
|
||||
replacement_string: string;
|
||||
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
import { BiDashLine } from './BiDashLine';
|
||||
|
||||
export class BiDashHeader{
|
||||
|
||||
|
||||
public header_id: number;
|
||||
public dashboard_name: string;
|
||||
public components: BiDashLine[];
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
export class BiDashLine{
|
||||
|
||||
|
||||
|
||||
public section_type: string;
|
||||
public widgets1: string;
|
||||
public widgets2: string;
|
||||
public widgets3: string;
|
||||
public widgets4: string;
|
||||
public widgets5: string;
|
||||
public widgets6: string;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
export class BiWidget {
|
||||
public id: number;
|
||||
public widget_name: string;
|
||||
public widget_description: string;
|
||||
public chart_type: string;
|
||||
public sql_query:string;
|
||||
public label:string;
|
||||
public color_scheme:string;
|
||||
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue