92 lines
2.0 KiB
JavaScript
92 lines
2.0 KiB
JavaScript
const pool = require("../config");
|
|
|
|
// Get file upload by path
|
|
const getFileUploadByPathDb = async (path) => {
|
|
const queryText = `
|
|
SELECT
|
|
file_upload_id,
|
|
file_upload_name,
|
|
type_document,
|
|
path_document,
|
|
created_by,
|
|
updated_by,
|
|
deleted_by,
|
|
created_at,
|
|
updated_at,
|
|
deleted_at
|
|
FROM file_upload
|
|
WHERE path_document = $1 AND deleted_at IS NULL
|
|
`;
|
|
const result = await pool.query(queryText, [path]);
|
|
return result.recordset[0];
|
|
};
|
|
|
|
// Create file upload
|
|
const createFileUploadDb = async (data) => {
|
|
const store = {
|
|
file_upload_name: data.file_upload_name,
|
|
};
|
|
|
|
// Add path_document if exists
|
|
if (data.path_document) {
|
|
store.path_document = data.path_document;
|
|
}
|
|
|
|
// Add type_document if exists
|
|
if (data.type_document) {
|
|
store.type_document = data.type_document;
|
|
}
|
|
|
|
if (data.createdBy) {
|
|
store.created_by = data.createdBy;
|
|
}
|
|
|
|
console.log('Data to insert:', store);
|
|
|
|
const queryText = `
|
|
INSERT INTO file_upload (file_upload_name, path_document, type_document, created_by, created_at, updated_at)
|
|
VALUES ($1, $2, $3, $4, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP);
|
|
SELECT SCOPE_IDENTITY() as inserted_id;
|
|
`;
|
|
const values = [
|
|
store.file_upload_name,
|
|
store.path_document,
|
|
store.type_document,
|
|
store.created_by || null
|
|
];
|
|
|
|
// console.log('Manual Query:', queryText);
|
|
// console.log('Manual Values:', values);
|
|
|
|
const result = await pool.query(queryText, values);
|
|
return result.recordset[0];
|
|
};
|
|
|
|
// Soft delete file upload by path
|
|
const deleteFileUploadByPathDb = async (path, deletedBy = null) => {
|
|
const store = {
|
|
deleted_at: new Date(),
|
|
};
|
|
|
|
if (deletedBy) {
|
|
store.deleted_by = deletedBy;
|
|
}
|
|
|
|
const whereData = {
|
|
path_document: path,
|
|
};
|
|
|
|
const { query: queryText, values } = pool.buildDynamicUpdate(
|
|
"file_upload",
|
|
store,
|
|
whereData
|
|
);
|
|
await pool.query(`${queryText} AND deleted_at IS NULL`, values);
|
|
return true;
|
|
};
|
|
|
|
module.exports = {
|
|
getFileUploadByPathDb,
|
|
createFileUploadDb,
|
|
deleteFileUploadByPathDb,
|
|
}; |