generated from lucien/api-template
214 lines
4.5 KiB
JavaScript
214 lines
4.5 KiB
JavaScript
const mysql = require("mysql");
|
|
|
|
function getConnection() {
|
|
return mysql.createConnection({
|
|
host: process.env.MYSQL_HOST,
|
|
user: process.env.MYSQL_USER,
|
|
password: process.env.MYSQL_PASSWORD,
|
|
database: process.env.MYSQL_DB,
|
|
});
|
|
}
|
|
|
|
function getShares(connection) {
|
|
return new Promise((resolve, reject) => {
|
|
connection.query(
|
|
`SELECT * FROM Share`,
|
|
(error, result) => {
|
|
if (error) {
|
|
throw(new Error(error));
|
|
}
|
|
resolve(result);
|
|
}
|
|
);
|
|
});
|
|
}
|
|
|
|
function getShare(connection, id) {
|
|
return new Promise((resolve, reject) => {
|
|
connection.query(
|
|
`SELECT * FROM Share WHERE id = ${id}`,
|
|
(error, result) => {
|
|
if (error) {
|
|
throw(new Error(error));
|
|
}
|
|
resolve(result);
|
|
}
|
|
);
|
|
});
|
|
}
|
|
|
|
function getShareholderShares(connection, owner_id) {
|
|
return new Promise((resolve, reject) => {
|
|
connection.query(
|
|
`SELECT * FROM Share WHERE owner_id = ${owner_id}`,
|
|
(error, result) => {
|
|
if (error) {
|
|
throw(new Error(error));
|
|
}
|
|
resolve(result);
|
|
}
|
|
);
|
|
});
|
|
}
|
|
|
|
function getCompanyShares(connection, id) {
|
|
return new Promise((resolve, reject) => {
|
|
connection.query(
|
|
`SELECT * FROM Share WHERE company_id = ${id}`,
|
|
(error, result) => {
|
|
if (error) {
|
|
throw(new Error(error));
|
|
}
|
|
resolve(result);
|
|
}
|
|
);
|
|
});
|
|
}
|
|
|
|
function setShareOwner(connection, share_id, owner_id) {
|
|
return new Promise((resolve, reject) => {
|
|
connection.query(
|
|
`UPDATE Share SET owner_id = ${owner_id} WHERE id = ${share_id}`,
|
|
(error, result) => {
|
|
if (error) {
|
|
throw(new Error(error));
|
|
}
|
|
resolve(result);
|
|
}
|
|
);
|
|
});
|
|
}
|
|
|
|
function addShare(connection, price, company_id) {
|
|
return new Promise((resolve, reject) => {
|
|
connection.query(
|
|
`INSERT INTO Share (price, owner_id, company_id) VALUES (${price}, -1, ${company_id})`,
|
|
(error, result) => {
|
|
if (error) {
|
|
throw(new Error(error));
|
|
}
|
|
resolve(result);
|
|
}
|
|
);
|
|
});
|
|
}
|
|
|
|
function getShareholders(connection) {
|
|
return new Promise((resolve, reject) => {
|
|
connection.query(
|
|
`SELECT * FROM Shareholder`,
|
|
(error, result) => {
|
|
if (error) {
|
|
throw(new Error(error));
|
|
}
|
|
resolve(result);
|
|
}
|
|
);
|
|
});
|
|
}
|
|
|
|
function getShareholder(connection, id) {
|
|
return new Promise((resolve, reject) => {
|
|
connection.query(
|
|
`SELECT * FROM Shareholder WHERE id = ${id}`,
|
|
(error, result) => {
|
|
if (error) {
|
|
throw(new Error(error));
|
|
}
|
|
resolve(result);
|
|
}
|
|
);
|
|
});
|
|
}
|
|
|
|
function setShareholderCapital(connection, id, capital) {
|
|
return new Promise((resolve, reject) => {
|
|
connection.query(
|
|
`UPDATE Shareholder SET capital = ${capital} WHERE id = ${id}`,
|
|
(error, result) => {
|
|
if (error) {
|
|
throw(new Error(error));
|
|
}
|
|
resolve(result);
|
|
}
|
|
);
|
|
});
|
|
}
|
|
|
|
function getCompanies(connection) {
|
|
return new Promise((resolve, reject) => {
|
|
connection.query(
|
|
`SELECT * FROM Company`,
|
|
(error, result) => {
|
|
if (error) {
|
|
throw(new Error(error));
|
|
}
|
|
resolve(result);
|
|
}
|
|
);
|
|
});
|
|
}
|
|
|
|
function getCompany(connection, id) {
|
|
return new Promise((resolve, reject) => {
|
|
connection.query(
|
|
`SELECT * FROM Company WHERE id = ${id}`,
|
|
(error, result) => {
|
|
if (error) {
|
|
throw(new Error(error));
|
|
}
|
|
resolve(result);
|
|
}
|
|
);
|
|
});
|
|
}
|
|
|
|
function setCompanyCapital(connection, id, capital ) {
|
|
return new Promise((resolve, reject) => {
|
|
connection.query(
|
|
`UPDATE Company SET capital = ${capital} WHERE id = ${id}`,
|
|
(error, result) => {
|
|
if (error) {
|
|
throw(new Error(error));
|
|
}
|
|
resolve(result);
|
|
}
|
|
);
|
|
});
|
|
}
|
|
|
|
function addTransaction(connection, price, seller_id, buyer_id, share_id) {
|
|
return new Promise((resolve, reject) => {
|
|
connection.query(
|
|
`INSERT INTO Transaction (sell_price, seller_id, buyer_id, share_id) VALUES (${price}, ${seller_id}, ${buyer_id}, ${share_id})`,
|
|
(error, result) => {
|
|
if (error) {
|
|
throw(new Error(error));
|
|
}
|
|
resolve(result);
|
|
}
|
|
);
|
|
});
|
|
}
|
|
|
|
module.exports = {
|
|
getConnection,
|
|
|
|
getShares,
|
|
getShare,
|
|
getShareholderShares,
|
|
getCompanyShares,
|
|
setShareOwner,
|
|
addShare,
|
|
|
|
getShareholders,
|
|
getShareholder,
|
|
setShareholderCapital,
|
|
|
|
getCompanies,
|
|
getCompany,
|
|
setCompanyCapital,
|
|
|
|
addTransaction,
|
|
}
|
|
|