Project 'angular/myAppraisal' was moved to 'angular/mySkill-x'. Please update any links and bookmarks that may still have the old path.
Commit cb2863f0 by DESKTOP-E0VCCBD\zedan

api

parent 78a6f92f
......@@ -6,7 +6,7 @@
/out-tsc
# dependencies
/node_modules
*/node_modules
# IDEs and editors
/.idea
......
......@@ -3,12 +3,6 @@ const cors = require('cors');
const { connectDB } = require('./utils/db');
const userRoutes = require('./routes/userRoutes');
const authRoutes = require('./routes/authRoutes');
const roleRoutes = require('./routes/roleRoutes');
const projectRoutes = require('./routes/projectRoutes');
const productRoutes = require('./routes/productRoutes')
const productImportRoutes = require('./routes/productImportRoutes');
const borrowtransactionRoutes = require('./routes/borrowtransactionRoutes');
const positionRoutes = require('./routes/positionRoutes')
const app = express();
app.use(cors({
......@@ -18,13 +12,10 @@ app.use(cors({
}));
app.use(express.json());
app.use('/api/member', userRoutes);
app.use('/api/role', roleRoutes);
app.use('/api/users', userRoutes);
app.use('/api/auth', authRoutes);
app.use('/api/project', projectRoutes);
app.use('/api/product', productRoutes);
app.use('/api/borrow_transaction',borrowtransactionRoutes);
app.use('/api/positions', positionRoutes);
......
const { Sequelize } = require('sequelize');
const sequelize = new Sequelize('postgres', 'postgres', 'qwer1234', {
const sequelize = new Sequelize('NewDatabases', 'postgres', 'qwer1234', {
host: 'localhost',
dialect: 'postgres'
});
......
const Member = require('../models/member');
const User = require('../models/User');
const bcrypt = require('bcryptjs');
const jwt = require('jsonwebtoken');
const secretKey = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtZW1iZXJfaWQiOiJkZjE0OWM4Ni02Njc0LTRmODItYTE0Yi05OWFjNmZjYjJjNjIiLCJ1c2VybmFtZSI6ImNoYW5hY2hhaSIsImlhdCI6MTcyNDYzNDI0NSwiZXhwIjoxNzI0NjM3ODQ1fQ.bxa0LGelFhlGGb8PSgNd1oq-QZKqaNKbLA6oMuzEEeo'; // Replace with your own secret key
......
const Borrowtransaction = require('../models/borrowtransaction');
exports.createBorrowTransaction = async (req, res) => {
try {
const { borrow_id,member_id, product_id, borrow_date,borrow_name, borrow_return, borrow_status, borrow_remark } = req.body;
const newTransaction = await Borrowtransaction.create({
borrow_id,
member_id,
product_id,
borrow_name,
borrow_date,
borrow_return,
borrow_status,
borrow_remark,
});
res.status(201).json({ actionStatus: 'Success', message: 'Borrow Transaction Created!', newTransaction });
} catch (err) {
res.status(400).json({ error: err.message });
}
};
exports.getBorrowTransactions = async (req, res) => {
try {
const transactions = await Borrowtransaction.findAll();
res.status(200).json(transactions);
} catch (err) {
res.status(400).json({ error: err.message });
}
};
exports.getBorrowTransactionById = async (req, res) => {
try {
const { id } = req.params;
const transaction = await Borrowtransaction.findByPk(id);
if (!transaction) {
return res.status(404).json({ message: 'Transaction not found' });
}
res.status(200).json(transaction);
} catch (err) {
res.status(400).json({ error: err.message });
}
};
exports.updateBorrowTransaction = async (req, res) => {
try {
const { id } = req.params;
const { borrow_id,member_id, product_id, borrow_date,borrow_name, borrow_return, borrow_status, borrow_remark } = req.body;
const transaction = await Borrowtransaction.findByPk(id);
if (!transaction) {
return res.status(404).json({ message: 'Transaction not found' });
}
await transaction.update({ borrow_id,
member_id,
product_id,
borrow_name,
borrow_date,
borrow_return,
borrow_status,
borrow_remark, });
res.status(200).json({ message: 'Transaction updated successfully', transaction });
} catch (err) {
res.status(400).json({ error: err.message });
}
};
exports.deleteBorrowTransaction = async (req, res) => {
try {
const { id } = req.params;
const transaction = await Borrowtransaction.findByPk(id);
if (!transaction) {
return res.status(404).json({ message: 'Transaction not found' });
}
await transaction.destroy();
res.status(200).json({ message: 'Transaction deleted successfully' });
} catch (err) {
res.status(400).json({ error: err.message });
}
};
\ No newline at end of file
const Position = require('../models/position');
exports.getAllPositions = async (req, res) => {
try {
const positions = await Position.findAll();
res.json({ positions });
} catch (error) {
res.status(500).json({ error: error.message });
}
};
exports.addPosition = async (req, res) => {
try {
const { name } = req.body;
if (!name) return res.status(400).json({ error: 'Position name is required' });
const position = await Position.create({ name });
res.status(201).json({ message: 'Position added successfully', position });
} catch (error) {
res.status(500).json({ error: error.message });
}
};
exports.getPositionById = async (req, res) => {
try {
const { id } = req.params;
const position = await Position.findByPk(id);
if (position) {
res.status(200).json({ actionStatus: 'Success', data: position });
} else {
res.status(404).json({ actionStatus: 'Failed', message: 'Product not found' });
}
} catch (error) {
res.status(500).json({ actionStatus: 'Failed', message: error.message });
}
};
exports.updatePosition = async (req, res) => {
try {
const { id } = req.params;
const { name } = req.body;
const position = await Position.findByPk(id);
if (!position) return res.status(404).json({ error: 'Position not found' });
position.name = name;
await position.save();
res.json({ message: 'Position updated successfully', position });
} catch (error) {
res.status(500).json({ error: error.message });
}
};
exports.deletePosition = async (req, res) => {
try {
const { id } = req.params;
const position = await Position.findByPk(id);
if (!position) return res.status(404).json({ error: 'Position not found' });
await position.destroy();
res.json({ message: 'Position deleted successfully' });
} catch (error) {
res.status(500).json({ error: error.message });
}
};
\ No newline at end of file
const Product = require('../models/product'); // เรียกใช้งาน Model ของ Product
exports.getAllProducts = async (req, res) => {
try {
const product = await Product.findAll();
res.status(200).json({ actionStatus: 'Success', data: product });
} catch (error) {
res.status(500).json({ actionStatus: 'Failed', message: error.message });
}
};
exports.getProductById = async (req, res) => {
try {
const { id } = req.params;
const product = await Product.findByPk(id);
if (product) {
res.status(200).json({ actionStatus: 'Success', data: product });
} else {
res.status(404).json({ actionStatus: 'Failed', message: 'Product not found' });
}
} catch (error) {
res.status(500).json({ actionStatus: 'Failed', message: error.message });
}
};
exports.createProduct = async (req, res) => {
try {
const { product_id,product_name, unit_id, product_amount,product_balance ,status,time_date,id_product ,product_remark,category} = req.body;
const newProduct = await Product.create({ product_id,product_name,unit_id, product_amount,product_balance ,status,time_date,id_product,product_remark,category});
res.status(201).json({ actionStatus: 'Success', message: 'Product created', data: newProduct });
} catch (error) {
res.status(400).json({ actionStatus: 'Failed', message: error.message });
}
};
exports.updateProduct = async (req, res) => {
try {
const { id } = req.params;
const { product_id,product_name, unit_id, product_amount,product_balance ,status,time_date,id_product ,product_remark,category } = req.body;
const product = await Product.findByPk(id);
if (product) {
product.id_product =id_product ?? id_product.id_product;
product.product_id = product_id ?? product.product_id;
product.product_name = product_name ?? product.product_name;
product.unit_id = unit_id ?? product.unit_id;
product.product_amount = product_amount ?? product.product_amount;
product.product_balance = product_balance ?? product.product_balance;
product.status = status ?? product.status;
product.time_date = time_date ?? product.time_date;
product.product_remark = product_remark ?? product.product_remark;
product.category = category ?? product.category;
await product.save();
res.status(200).json({ actionStatus: 'Success', message: 'Product updated', data: product });
} else {
res.status(404).json({ actionStatus: 'Failed', message: 'Product not found' });
}
} catch (error) {
res.status(500).json({ actionStatus: 'Failed', message: error.message });
}
};
exports.deleteProduct = async (req, res) => {
try {
const { id } = req.params;
const product = await Product.findByPk(id);
if (product) {
await product.destroy();
res.status(200).json({ actionStatus: 'Success', message: 'Product deleted' });
} else {
res.status(404).json({ actionStatus: 'Failed', message: 'Product not found' });
}
} catch (error) {
res.status(500).json({ actionStatus: 'Failed', message: error.message });
}
};
const { ProductImport } = require('../models/importproduct');
const productImportController = {
create: async (req, res) => {
try {
const { product_id, productimport_amount, productimport_date, productimport_stats, productimport_remark } = req.body;
const newProductImport = await ProductImport.create({
product_id,
productimport_amount,
productimport_date,
productimport_stats,
productimport_remark,
});
res.status(201).json({
message: 'Product import created successfully',
data: newProductImport,
});
} catch (error) {
res.status(500).json({ message: 'Failed to create product import', error: error.message });
}
},
getAll: async (req, res) => {
try {
const productImports = await ProductImport.findAll();
res.status(200).json(productImports);
} catch (error) {
res.status(500).json({ message: 'Failed to retrieve product imports', error: error.message });
}
},
getById: async (req, res) => {
try {
const { id } = req.params;
const productImport = await ProductImport.findByPk(id);
if (!productImport) {
return res.status(404).json({ message: 'Product import not found' });
}
res.status(200).json(productImport);
} catch (error) {
res.status(500).json({ message: 'Failed to retrieve product import', error: error.message });
}
},
update: async (req, res) => {
try {
const { id } = req.params;
const { product_id, productimport_amount, productimport_date, productimport_stats, productimport_remark } = req.body;
const productImport = await ProductImport.findByPk(id);
if (!productImport) {
return res.status(404).json({ message: 'Product import not found' });
}
await productImport.update({
product_id,
productimport_amount,
productimport_date,
productimport_stats,
productimport_remark,
});
res.status(200).json({
message: 'Product import updated successfully',
data: productImport,
});
} catch (error) {
res.status(500).json({ message: 'Failed to update product import', error: error.message });
}
},
delete: async (req, res) => {
try {
const { id } = req.params;
const productImport = await ProductImport.findByPk(id);
if (!productImport) {
return res.status(404).json({ message: 'Product import not found' });
}
await productImport.destroy();
res.status(200).json({ message: 'Product import deleted successfully' });
} catch (error) {
res.status(500).json({ message: 'Failed to delete product import', error: error.message });
}
},
};
module.exports = productImportController;
const Project = require('../models/project');
const bcrypt = require('bcryptjs');
const saltRounds = 10;
const { spawn } = require('child_process');
const path = require('path');
exports.getProject = async (req, res) => {
try {
const projects = await Project.findAll();
res.status(200).json(projects);
} catch (err) {
res.status(500).json({ error: err.message });
}
};
exports.getProjectByID = async (req, res) => {
try {
const project = await Project.findByPk(req.params.id);
if (project) {
res.status(200).json(project);
} else {
res.status(404).json({ error: 'Project not found' });
}
} catch (err) {
res.status(500).json({ error: err.message });
}
};
exports.createProject = async (req, res) => {
try {
const { project_id, project_name, project_detail, project_startdate, project_stopdate, project_lat, project_long } = req.body;
const newProject = await Project.create({
project_id,
project_name,
project_detail,
project_startdate,
project_stopdate,
project_lat,
project_long
});
res.status(201).json({ actionStatus: 'Success', message: 'Create Success!!', statusCode: 200, prject: newProject });
} catch (err) {
res.status(400).json({ error: err.message });
}
};
exports.updateProject = async (req, res) => {
try {
const { id } = req.params;
const { project_name, project_detail, project_startdate, project_stopdate, project_lat, project_long } = req.body;
// Find the project by ID
const project = await Project.findByPk(id);
if (project) {
// Update the project's details
project.project_name = project_name || project.project_name;
project.project_detail = project_detail || project.project_detail;
project.project_startdate = project_startdate || project.project_startdate;
project.project_stopdate = project_stopdate || project.project_stopdate;
project.project_lat = project_lat || project.project_lat;
project.project_long = project_long || project.project_long;
project.updated_at = new Date(); // Update the timestamp
// Save the updated project
await project.save();
res.status(200).json({
actionStatus: 'Success',
message: 'Update Success!!',
statusCode: 200,
project: project
});
} else {
res.status(404).json({ error: 'Project not found' });
}
} catch (err) {
res.status(500).json({ error: err.message });
}
};
exports.deleteProject = async (req, res) => {
try {
const { id } = req.params;
// Find the project by ID
const project = await Project.findByPk(id);
if (project) {
// Delete the project
await project.destroy();
res.status(200).json({
actionStatus: 'Success',
message: 'Delete Success!!',
statusCode: 200
});
} else {
res.status(404).json({ error: 'Project not found' });
}
} catch (err) {
res.status(500).json({ error: err.message });
}
};
const Role = require('../models/role');
exports.getRole = async (req, res) => {
try {
const roles = await Role.findAll();
res.status(200).json(roles);
} catch (err) {
res.status(500).json({ error: err.message });
}
};
exports.getRoleByID = async (req, res) => {
try {
const role = await Role.findByPk(req.params.id);
if (role) {
res.status(200).json(role);
} else {
res.status(404).json({ error: 'Role not found' });
}
} catch (err) {
res.status(500).json({ error: err.message });
}
};
exports.createRole = async (req, res) => {
try {
const { role_id, role_name } = req.body;
const newrole = await Role.create({
role_id,
role_name,
});
res.status(201).json({ actionStatus: 'Success', message: 'Create Success!!', statusCode: 200, role: newrole });
} catch (err) {
res.status(400).json({ error: err.message });
}
};
exports.updateRole = async (req, res) => {
try {
const { id } = req.params;
const {role_id, role_name } = req.body;
const role = await Role.findByPk(id);
if (role) {
role.role_id = role_id || role.role_id;
role.role_name = role_name || role.role_name;
role.updated_at = new Date();
await role.save();
res.status(200).json({
actionStatus: 'Success',
message: 'Update Success!!',
statusCode: 200,
role: role
});
} else {
res.status(404).json({ error: 'Role not found' });
}
} catch (err) {
res.status(500).json({ error: err.message });
}
};
exports.deleteRole = async (req, res) => {
try {
const { id } = req.params;
const role = await Role.findByPk(id);
if (role) {
await role.destroy();
res.status(200).json({ actionStatus: 'Success', message: 'Delete Success!!', statusCode: 200 });
} else {
res.status(404).json({ error: 'Member not found' });
}
} catch (err) {
res.status(500).json({ error: err.message });
}
};
const Unit = require('../models/unit');
exports.getAllUnits = async (req, res) => {
try {
const units = await Unit.findAll();
res.status(200).json({ data: units });
} catch (err) {
res.status(500).json({ error: err.message });
}
};
exports.createUnit = async (req, res) => {
try {
const { unit_name, unit_description } = req.body;
const newUnit = await Unit.create({
unit_name,
unit_description,
});
res.status(201).json({ message: 'Unit created successfully', data: newUnit });
} catch (err) {
res.status(400).json({ error: err.message });
}
};
exports.updateUnit = async (req, res) => {
try {
const { id } = req.params;
const { unit_name, unit_description } = req.body;
const unit = await Unit.findByPk(id);
if (unit) {
unit.unit_name = unit_name || unit.unit_name;
unit.unit_description = unit_description || unit.unit_description;
await unit.save();
res.status(200).json({ message: 'Unit updated successfully', data: unit });
} else {
res.status(404).json({ message: 'Unit not found' });
}
} catch (err) {
res.status(400).json({ error: err.message });
}
};
exports.deleteUnit = async (req, res) => {
try {
const { id } = req.params;
const unit = await Unit.findByPk(id);
if (unit) {
await unit.destroy();
res.status(200).json({ message: 'Unit deleted successfully' });
} else {
res.status(404).json({ message: 'Unit not found' });
}
} catch (err) {
res.status(500).json({ error: err.message });
}
};
const Member = require('../models/member');
const User = require('../models/User');
const bcrypt = require('bcryptjs');
const saltRounds = 10;
exports.getUsers = async (req, res) => {
try {
const members = await Member.findAll();
res.status(200).json(members);
const user = await User.findAll();
res.status(200).json(user);
} catch (err) {
res.status(500).json({ error: err.message });
}
......@@ -14,9 +14,9 @@ exports.getUsers = async (req, res) => {
exports.getUsersByID = async (req, res) => {
try {
const { id } = req.params;
const member = await Member.findByPk(id);
if (member) {
res.status(200).json({ actionStatus: 'Success', data: member });
const user = await User.findByPk(id);
if (user) {
res.status(200).json({ actionStatus: 'Success', data: user });
} else {
res.status(404).json({ actionStatus: 'Failed', message: 'Product not found' });
}
......@@ -28,22 +28,16 @@ exports.getUsersByID = async (req, res) => {
exports.createUser = async (req, res) => {
try {
const { member_username, member_password, member_firstname, member_lastname, member_date, member_phone, member_address, member_gender, bio, email,member_position } = req.body;
const hashedPassword = await bcrypt.hash(member_password, saltRounds);
const newMember = await Member.create({
member_username,
member_password: hashedPassword,
member_firstname,
member_lastname,
member_date,
member_phone,
member_address,
member_gender,
member_position,
bio,
const { user_id, first_name, last_name, email, password , role, created_at, updated_at } = req.body;
const newUser = await User.create({
user_id,
first_name,
last_name,
password,
role,
created_at,
updated_at,
email
});
......@@ -51,7 +45,7 @@ exports.createUser = async (req, res) => {
actionStatus: 'Success',
message: 'Create Success!!',
statusCode: 200,
member: newMember
User: newUser
});
} catch (err) {
res.status(400).json({ error: err.message });
......@@ -62,35 +56,27 @@ exports.createUser = async (req, res) => {
exports.updateUser = async (req, res) => {
try {
const { id } = req.params;
const { member_username, member_password, member_firstname, member_lastname, member_date, member_phone, member_address, member_gender, bio, email,member_position } = req.body;
const { first_name, last_name, email, password , role, updated_at } = req.body;
const member = await Member.findByPk(id);
const user = await User.findByPk(id);
if (member) {
if (user) {
member.member_username = member_username || member.member_username;
if (member_password) {
const hashedPassword = await bcrypt.hash(member_password, saltRounds);
member.member_password = hashedPassword;
}
member.member_firstname = member_firstname || member.member_firstname;
member.member_lastname = member_lastname || member.member_lastname;
member.member_date = member_date || member.member_date;
member.member_phone = member_phone || member.member_phone;
member.member_address = member_address || member.member_address;
member.member_gender = member_gender || member.member_gender;
member.member_position = member_position || member_position;
member.bio = bio || member.bio;
member.email = email || member.email;
user.first_name = first_name || user.first_name;
user.last_name = last_name || user.last_name;
user.password = password || user.password;
user.role = role || user.role;
user.updated_at = updated_at || user.updated_at;
user.email = email || user.email;
await member.save();
await user.save();
res.status(200).json({
actionStatus: 'Success',
message: 'Update Success!!',
statusCode: 200,
member: member
user: user
});
} else {
res.status(404).json({ error: 'Member not found' });
......@@ -106,11 +92,11 @@ exports.deleteUser = async (req, res) => {
const { id } = req.params;
const member = await Member.findByPk(id);
const user = await User.findByPk(id);
if (member) {
if (user) {
await member.destroy();
await user.destroy();
res.status(200).json({
actionStatus: 'Success',
message: 'Delete Success!!',
......
const { DataTypes } = require("sequelize");
const sequelize = require("../config/database");
const bcrypt = require("bcryptjs");
const User = sequelize.define('User', {
user_id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true,
},
first_name: {
type: DataTypes.STRING(100),
allowNull: false,
},
last_name: {
type: DataTypes.STRING(100),
allowNull: false,
},
email: {
type: DataTypes.STRING(255),
allowNull: false,
unique: true,
},
password: {
type: DataTypes.STRING(255),
allowNull: false,
},
role: {
type: DataTypes.STRING(20),
allowNull: false,
defaultValue: 'employee',
},
created_at: {
type: DataTypes.DATE,
allowNull: false,
defaultValue: DataTypes.NOW,
},
updated_at: {
type: DataTypes.DATE,
allowNull: false,
defaultValue: DataTypes.NOW,
},
}, {
tableName: 'users',
timestamps: false,
});
module.exports = User;
const { DataTypes } = require('sequelize');
const sequelize = require('../config/database');
const Member = require('./member');
const Product = require('./product');
const Borrowtransaction = sequelize.define('Borrowtransaction', {
borrow_id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true,
},
member_id: {
type: DataTypes.UUID,
references: {
model: Member,
key: 'member_id',
},
allowNull: false,
},
product_id: {
type: DataTypes.UUID,
references: {
model: Product,
key: 'product_id',
},
allowNull: false,
},
borrow_amount: {
type: DataTypes.STRING,
allowNull: false,
},
borrow_date: {
type: DataTypes.DATE,
allowNull: false,
},
borrow_name: {
type: DataTypes.STRING,
allowNull: false,
},
borrow_return: {
type: DataTypes.DATE,
allowNull: true,
},
borrow_status: {
type: DataTypes.STRING,
allowNull: false,
},
borrow_remark: {
type: DataTypes.TEXT,
allowNull: true,
}
}, {
tableName: 'borrow_transaction',
timestamps: false,
underscored: true,
});
module.exports = Borrowtransaction;
\ No newline at end of file
const { DataTypes } = require('sequelize');
const sequelize = require('../config/database'); // ไฟล์ที่ตั้งค่า database connection
const ProductImport = sequelize.define('ProductImport', {
import_id: {
type: DataTypes.UUID,
primaryKey: true,
allowNull: false,
defaultValue: DataTypes.UUIDV4,
},
product_id: {
type: DataTypes.UUID,
allowNull: false,
references: {
model: 'products', // ชื่อตารางที่อ้างอิง
key: 'product_id',
},
},
productimport_amount: {
type: DataTypes.INTEGER,
allowNull: false,
},
productimport_date: {
type: DataTypes.DATE,
allowNull: false,
},
productimport_stats: {
type: DataTypes.STRING(50),
allowNull: false,
},
productimport_remark: {
type: DataTypes.TEXT,
allowNull: true,
},
}, {
tableName: 'product_import',
timestamps: false, // ปิดการใช้งาน createdAt และ updatedAt
});
module.exports = ProductImport;
const { DataTypes } = require("sequelize");
const sequelize = require("../config/database");
const bcrypt = require("bcryptjs");
const Role = require("../models/role");
const Position = require("./position");
const Member = sequelize.define(
"Member",
{
member_id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true,
},
member_firstname: {
type: DataTypes.STRING,
allowNull: false,
},
member_lastname: {
type: DataTypes.STRING,
allowNull: false,
},
member_date: {
type: DataTypes.DATEONLY,
allowNull: true,
},
member_phone: {
type: DataTypes.STRING,
allowNull: true,
},
member_address: {
type: DataTypes.TEXT,
allowNull: true,
},
member_gender: {
type: DataTypes.STRING,
allowNull: true,
},
member_position: {
type: DataTypes.NUMBER,
references: {
model: Position,
key: "id",
},
},
member_username: {
type: DataTypes.STRING,
allowNull: false,
unique: true,
},
member_password: {
type: DataTypes.STRING,
allowNull: false,
},
bio: {
type: DataTypes.STRING,
allowNull: true,
},
email: {
type: DataTypes.STRING,
allowNull: true,
},
// role_id: {
// type: DataTypes.UUID,
// references: {
// model: Role,
// key: 'role_id',
// },
// }
},
{
tableName: "member_employee",
timestamps: false,
underscored: true,
}
);
// Hash password before saving
Member.beforeCreate(async (member) => {
member.member_password = await bcrypt.hash(member.member_password, 10);
});
module.exports = Member;
const { DataTypes } = require('sequelize');
const sequelize = require('../config/database');
const Position = sequelize.define('Position', {
id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true
},
name: {
type: DataTypes.STRING,
allowNull: false,
unique: true
},
createdAt: {
type: DataTypes.DATE,
field: 'created_at'
},
updatedAt: {
type: DataTypes.DATE,
field: 'updated_at'
}
}, {
tableName: 'positions',
timestamps: true
});
module.exports = Position;
const { DataTypes } = require('sequelize');
const sequelize = require('../config/database');
const Product = sequelize.define('Product', {
product_id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true,
},
product_name: {
type: DataTypes.STRING,
allowNull: false,
},
unit_id: {
type: DataTypes.UUID,
},
product_amount: {
type: DataTypes.INTEGER,
allowNull: false,
},
product_balance: {
type: DataTypes.INTEGER,
allowNull: false,
},
status: {
type: DataTypes.STRING,
allowNull: false,
},
time_date: {
type: DataTypes.DATE,
allowNull: false,
},
id_product: {
type: DataTypes.STRING,
allowNull: false,
},
product_remark: {
type: DataTypes.STRING,
allowNull: false,
},
category: {
type: DataTypes.STRING,
allowNull: false,
}
},
{
tableName: 'product',
timestamps: false,
underscored: true,
});
module.exports = Product;
\ No newline at end of file
const { DataTypes } = require('sequelize');
const sequelize = require('../config/database');
const Project = sequelize.define('Project', {
project_id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true,
},
project_name: {
type: DataTypes.STRING,
allowNull: false,
},
project_detail: {
type: DataTypes.TEXT,
allowNull: true,
},
project_startdate: {
type: DataTypes.DATEONLY,
allowNull: false,
},
project_stopdate: {
type: DataTypes.DATEONLY,
allowNull: true,
},
project_lat: {
type: DataTypes.STRING,
allowNull: true,
},
project_long: {
type: DataTypes.STRING,
allowNull: true,
}
},
{
tableName: 'project',
timestamps: false,
underscored: true,
});
module.exports = Project;
const { DataTypes } = require('sequelize');
const sequelize = require('../config/database');
const Role = sequelize.define('Role', {
role_id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true,
},
role_name: {
type: DataTypes.STRING,
allowNull: false,
}
}, {
tableName: 'role',
timestamps: false,
});
module.exports = Role;
\ No newline at end of file
// src/models/unit.js
++ /dev/null
// src/models/unit.js
const { DataTypes } = require('sequelize');
const sequelize = require('../config/database');
const Unit = sequelize.define('Unit', {
unit_id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true,
},
unit_name: {
type: DataTypes.STRING,
allowNull: false,
},
unit_description: {
type: DataTypes.STRING,
allowNull: true,
},
}, {
tableName: 'unit',
timestamps: false,
underscored: true,
});
module.exports = Unit;
const express = require('express');
const router = express.Router();
const borrowtransactionController = require('../controllers/borrowtransactionController');
router.post('/', borrowtransactionController.createBorrowTransaction);
router.get('/', borrowtransactionController.getBorrowTransactions);
router.get('/:id', borrowtransactionController.getBorrowTransactionById);
router.put('/:id', borrowtransactionController.updateBorrowTransaction);
router.delete('/:id', borrowtransactionController.deleteBorrowTransaction);
module.exports = router;
\ No newline at end of file
const express = require('express');
const router = express.Router();
const positionController = require('../controllers/positionController');
router.get('/', positionController.getAllPositions);
router.get('/:id',positionController.getPositionById);
router.post('/', positionController.addPosition);
router.put('/:id', positionController.updatePosition);
router.delete('/:id', positionController.deletePosition);
module.exports = router;
const express = require('express');
const router = express.Router();
const productImportController = require('../controllers/productImportController');
router.post('/', productImportController.create);
router.get('/', productImportController.getAll);
router.get('/:id', productImportController.getById);
router.put('/:id', productImportController.update);
router.delete('/:id', productImportController.delete);
module.exports = router;
const express = require('express');
const productController = require('../controllers/productController');
const router = express.Router();
router.get('/', productController.getAllProducts);
router.get('/:id', productController.getProductById);
router.post('/', productController.createProduct);
router.put('/:id', productController.updateProduct);
router.delete('/:id', productController.deleteProduct);
module.exports = router;
\ No newline at end of file
const express = require('express');
const projectController = require('../controllers/projectController');
const router = express.Router();
router.get('/', projectController.getProject);
router.get('/:id', projectController.getProjectByID);
router.put('/:id', projectController.updateProject);
router.post('/', projectController.createProject);
router.delete('/:id', projectController.deleteProject);
module.exports = router;
const express = require('express');
const roleController = require('../controllers/roleController');
const authenticateJWT = require('../middleware/auth');
const upload = require('../middleware/uploadMiddleware');
const router = express.Router();
// router.use(authenticateJWT);
router.get('/', roleController.getRole);
router.get('/:id', roleController.getRoleByID);
router.put('/:id',upload.single('image'),roleController.updateRole);
router.post('/', roleController.createRole);
router.delete('/:id', roleController.deleteRole);
module.exports = router;
\ No newline at end of file
const express = require('express');
const router = express.Router();
const unitController = require('../controllers/unitController');
router.get('/', unitController.getAllUnits);
router.post('/', unitController.createUnit);
router.put('/id', unitController.updateUnit);
router.delete('/:id', unitController.deleteUnit);
module.exports = router;
const express = require('express');
const userController = require('../controllers/userController');
const authenticateJWT = require('../middleware/auth');
const upload = require('../middleware/uploadMiddleware');
const router = express.Router();
// router.use(authenticateJWT);
router.get('/', userController.getUsers);
router.get('/:id', userController.getUsersByID);
router.put('/:id',userController.updateUser);
......
......@@ -4,7 +4,7 @@ require('dotenv').config();
const pool = new Pool({
user: "postgres",
host: "localhost",
database: "postgres",
database: "NewDatabases",
password: "qwer1234",
port: 5432,
});
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment