Optimised request.js code
This commit is contained in:
parent
b229b6b3d5
commit
eeb3c70a10
@ -49,12 +49,9 @@ module.exports = function App(secret, DB) {
|
|||||||
next();
|
next();
|
||||||
})
|
})
|
||||||
|
|
||||||
//get code for login or signup
|
//get code for login
|
||||||
app.get('/get-login-code', Request.getLoginCode);
|
app.get('/get-login-code', Request.getLoginCode);
|
||||||
|
|
||||||
//signup request
|
|
||||||
//app.post('/signup', Request.SignUp); Removing need for signup
|
|
||||||
|
|
||||||
//login request
|
//login request
|
||||||
app.post('/login', Request.Login);
|
app.post('/login', Request.Login);
|
||||||
|
|
||||||
|
|||||||
@ -10,6 +10,24 @@ const {
|
|||||||
|
|
||||||
var DB, assetList; //container for database and allowed assets
|
var DB, assetList; //container for database and allowed assets
|
||||||
|
|
||||||
|
function login(floID, proxyKey) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
DB.query("INSERT INTO UserSession (floID, proxyKey) VALUE (?, ?) " +
|
||||||
|
"ON DUPLICATE KEY UPDATE session_time=DEFAULT, proxyKey=?",
|
||||||
|
[floID, proxyKey, proxyKey])
|
||||||
|
.then(result => resolve("Login Successful"))
|
||||||
|
.catch(error => reject(error))
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function logout(floID) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
DB.query("DELETE FROM UserSession WHERE floID=?", [floID])
|
||||||
|
.then(result => resolve("Logout successful"))
|
||||||
|
.catch(error => reject(error))
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
const getAssetBalance = (floID, asset) => new Promise((resolve, reject) => {
|
const getAssetBalance = (floID, asset) => new Promise((resolve, reject) => {
|
||||||
let promises = (asset === floGlobals.currency) ? [
|
let promises = (asset === floGlobals.currency) ? [
|
||||||
DB.query("SELECT SUM(balance) AS balance FROM Cash WHERE floID=?", [floID]),
|
DB.query("SELECT SUM(balance) AS balance FROM Cash WHERE floID=?", [floID]),
|
||||||
@ -516,6 +534,8 @@ function blockchainReCheck() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
login,
|
||||||
|
logout,
|
||||||
get rates() {
|
get rates() {
|
||||||
return coupling.price.currentRates;
|
return coupling.price.currentRates;
|
||||||
},
|
},
|
||||||
|
|||||||
604
src/request.js
604
src/request.js
@ -78,12 +78,211 @@ validateRequest.checkIfSignUsed = sign => new Promise((resolve, reject) => {
|
|||||||
}).catch(error => reject(error))
|
}).catch(error => reject(error))
|
||||||
});
|
});
|
||||||
|
|
||||||
function storeRequest(floID, req_str, sign, proxy = false) {
|
function logRequest(floID, req_str, sign, proxy = false) {
|
||||||
//console.debug(floID, req_str);
|
//console.debug(floID, req_str);
|
||||||
DB.query("INSERT INTO RequestLog (floID, request, sign, proxy) VALUES (?,?,?, ?)", [floID, req_str, sign, proxy])
|
DB.query("INSERT INTO RequestLog (floID, request, sign, proxy) VALUES (?,?,?, ?)", [floID, req_str, sign, proxy])
|
||||||
.then(_ => null).catch(error => console.error(error));
|
.then(_ => null).catch(error => console.error(error));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function processRequest(res, rText, validateObj, sign, floID, pubKey, marketFn) {
|
||||||
|
validateRequest(validateObj, sign, floID, pubKey).then(req_str => {
|
||||||
|
marketFn().then(result => {
|
||||||
|
logRequest(data.floID, req_str, data.sign, !data.pubKey);
|
||||||
|
res.send(result);
|
||||||
|
}).catch(error => {
|
||||||
|
if (error instanceof INVALID)
|
||||||
|
res.status(INVALID.e_code).send(error.message);
|
||||||
|
else {
|
||||||
|
console.error(error);
|
||||||
|
res.status(INTERNAL.e_code).send(rText + " failed! Try again later!");
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}).catch(error => {
|
||||||
|
if (error instanceof INVALID)
|
||||||
|
res.status(INVALID.e_code).send(error.message);
|
||||||
|
else {
|
||||||
|
console.error(error);
|
||||||
|
res.status(INTERNAL.e_code).send("Request processing failed! Try again later!");
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/* User Requests */
|
||||||
|
|
||||||
|
function Account(req, res) {
|
||||||
|
let data = req.body;
|
||||||
|
validateRequest({
|
||||||
|
type: "get_account",
|
||||||
|
timestamp: data.timestamp
|
||||||
|
}, data.sign, data.floID, data.pubKey).then(req_str => {
|
||||||
|
market.getAccountDetails(data.floID).then(result => {
|
||||||
|
result.sinkID = global.sinkID;
|
||||||
|
if (trustedIDs.includes(data.floID))
|
||||||
|
result.subAdmin = true;
|
||||||
|
res.send(result);
|
||||||
|
});
|
||||||
|
}).catch(error => {
|
||||||
|
if (error instanceof INVALID)
|
||||||
|
res.status(INVALID.e_code).send(error.message);
|
||||||
|
else {
|
||||||
|
console.error(error);
|
||||||
|
res.status(INTERNAL.e_code).send("Request processing failed! Try again later!");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function Login(req, res) {
|
||||||
|
let data = req.body;
|
||||||
|
if (!data.code || data.hash != Crypto.SHA1(data.code + secret))
|
||||||
|
res.status(INVALID.e_code).send("Invalid Code");
|
||||||
|
else if (!data.pubKey)
|
||||||
|
res.status(INVALID.e_code).send("Public key missing");
|
||||||
|
else
|
||||||
|
processRequest(res, "Login", {
|
||||||
|
type: "login",
|
||||||
|
random: data.code,
|
||||||
|
proxyKey: data.proxyKey,
|
||||||
|
timestamp: data.timestamp
|
||||||
|
}, data.sign, data.floID, data.pubKey,
|
||||||
|
() => market.login(data.floID, data.proxyKey)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function Logout(req, res) {
|
||||||
|
let data = req.body;
|
||||||
|
processRequest(res, "Logout", {
|
||||||
|
type: "logout",
|
||||||
|
timestamp: data.timestamp
|
||||||
|
}, data.sign, data.floID, data.pubKey,
|
||||||
|
() => market.logout(data.floID)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function PlaceSellOrder(req, res) {
|
||||||
|
let data = req.body;
|
||||||
|
processRequest(res, "Sell order placement", {
|
||||||
|
type: "sell_order",
|
||||||
|
asset: data.asset,
|
||||||
|
quantity: data.quantity,
|
||||||
|
min_price: data.min_price,
|
||||||
|
timestamp: data.timestamp
|
||||||
|
}, data.sign, data.floID, data.pubKey,
|
||||||
|
() => market.addSellOrder(data.floID, data.asset, data.quantity, data.min_price)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function PlaceBuyOrder(req, res) {
|
||||||
|
let data = req.body;
|
||||||
|
processRequest(res, "Buy order placement", {
|
||||||
|
type: "buy_order",
|
||||||
|
asset: data.asset,
|
||||||
|
quantity: data.quantity,
|
||||||
|
max_price: data.max_price,
|
||||||
|
timestamp: data.timestamp
|
||||||
|
}, data.sign, data.floID, data.pubKey,
|
||||||
|
() => market.addBuyOrder(data.floID, data.asset, data.quantity, data.max_price)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function CancelOrder(req, res) {
|
||||||
|
let data = req.body;
|
||||||
|
processRequest(res, "Order cancellation", {
|
||||||
|
type: "cancel_order",
|
||||||
|
order: data.orderType,
|
||||||
|
id: data.orderID,
|
||||||
|
timestamp: data.timestamp
|
||||||
|
}, data.sign, data.floID, data.pubKey,
|
||||||
|
() => market.cancelOrder(data.orderType, data.orderID, data.floID)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function TransferToken(req, res) {
|
||||||
|
let data = req.body;
|
||||||
|
processRequest(res, "Token Transfer", {
|
||||||
|
type: "transfer_token",
|
||||||
|
receiver: JSON.stringify(data.receiver),
|
||||||
|
token: data.token,
|
||||||
|
timestamp: data.timestamp
|
||||||
|
}, data.sign, data.floID, data.pubKey,
|
||||||
|
() => market.transferToken(data.floID, data.receiver, data.token)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function DepositFLO(req, res) {
|
||||||
|
let data = req.body;
|
||||||
|
processRequest(res, "Deposit FLO", {
|
||||||
|
type: "deposit_flo",
|
||||||
|
txid: data.txid,
|
||||||
|
timestamp: data.timestamp
|
||||||
|
}, data.sign, data.floID, data.pubKey,
|
||||||
|
() => market.depositFLO(data.floID, data.txid)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function WithdrawFLO(req, res) {
|
||||||
|
let data = req.body;
|
||||||
|
processRequest(res, "Withdraw FLO", {
|
||||||
|
type: "withdraw_flo",
|
||||||
|
amount: data.amount,
|
||||||
|
timestamp: data.timestamp
|
||||||
|
}, data.sign, data.floID, data.pubKey,
|
||||||
|
() => market.withdrawFLO(data.floID, data.amount)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function DepositToken(req, res) {
|
||||||
|
let data = req.body;
|
||||||
|
processRequest(res, "Deposit Token", {
|
||||||
|
type: "deposit_token",
|
||||||
|
txid: data.txid,
|
||||||
|
timestamp: data.timestamp
|
||||||
|
}, data.sign, data.floID, data.pubKey,
|
||||||
|
() => market.depositToken(data.floID, data.txid)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function WithdrawToken(req, res) {
|
||||||
|
let data = req.body;
|
||||||
|
processRequest(res, "Withdraw Token", {
|
||||||
|
type: "withdraw_token",
|
||||||
|
token: data.token,
|
||||||
|
amount: data.amount,
|
||||||
|
timestamp: data.timestamp
|
||||||
|
}, data.sign, data.floID, data.pubKey,
|
||||||
|
() => market.withdrawToken(data.floID, data.token, data.amount)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function addUserTag(req, res) {
|
||||||
|
let data = req.body;
|
||||||
|
if (!trustedIDs.includes(data.floID))
|
||||||
|
res.status(INVALID.e_code).send("Access Denied");
|
||||||
|
else processRequest(res, "Add user-tag", {
|
||||||
|
type: "add_tag",
|
||||||
|
user: data.user,
|
||||||
|
tag: data.tag,
|
||||||
|
timestamp: data.timestamp
|
||||||
|
}, data.sign, data.floID, data.pubKey,
|
||||||
|
() => market.group.addTag(data.user, data.tag)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function removeUserTag(req, res) {
|
||||||
|
let data = req.body;
|
||||||
|
if (!trustedIDs.includes(data.floID))
|
||||||
|
res.status(INVALID.e_code).send("Access Denied");
|
||||||
|
else processRequest(res, "Remove user-tag", {
|
||||||
|
type: "remove_tag",
|
||||||
|
user: data.user,
|
||||||
|
tag: data.tag,
|
||||||
|
timestamp: data.timestamp
|
||||||
|
}, data.sign, data.floID, data.pubKey,
|
||||||
|
() => market.group.removeTag(data.user, data.tag)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Public Requests */
|
||||||
|
|
||||||
function getLoginCode(req, res) {
|
function getLoginCode(req, res) {
|
||||||
if (!serving)
|
if (!serving)
|
||||||
return res.status(INVALID.e_code).send(INVALID_SERVER_MSG);
|
return res.status(INVALID.e_code).send(INVALID_SERVER_MSG);
|
||||||
@ -95,211 +294,6 @@ function getLoginCode(req, res) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
function SignUp(req, res) {
|
|
||||||
if (!serving)
|
|
||||||
return res.status(INVALID.e_code).send(INVALID_SERVER_MSG);
|
|
||||||
let data = req.body;
|
|
||||||
if (floCrypto.getFloID(data.pubKey) !== data.floID)
|
|
||||||
return res.status(INVALID.e_code).send("Invalid Public Key");
|
|
||||||
if (!data.code || data.hash != Crypto.SHA1(data.code + secret))
|
|
||||||
return res.status(INVALID.e_code).send("Invalid Code");
|
|
||||||
let req_str = validateRequest_X({
|
|
||||||
type: "create_account",
|
|
||||||
random: data.code,
|
|
||||||
timestamp: data.timestamp
|
|
||||||
}, data.sign, data.pubKey);
|
|
||||||
if (req_str instanceof INVALID)
|
|
||||||
return res.status(INVALID.e_code).send(req_str.message);
|
|
||||||
let txQueries = [];
|
|
||||||
txQueries.push(["INSERT INTO Users(floID, pubKey) VALUES (?, ?)", [data.floID, data.pubKey]]);
|
|
||||||
txQueries.push(["INSERT INTO Cash (floID) Values (?)", [data.floID]]);
|
|
||||||
DB.transaction(txQueries).then(_ => {
|
|
||||||
storeRequest(data.floID, req_str, data.sign);
|
|
||||||
res.send("Account Created");
|
|
||||||
}).catch(error => {
|
|
||||||
if (error.code === "ER_DUP_ENTRY")
|
|
||||||
res.status(INVALID.e_code).send("Account already exist");
|
|
||||||
else {
|
|
||||||
console.error(error);
|
|
||||||
res.status(INTERNAL.e_code).send("Account creation failed! Try Again Later!");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
function Login(req, res) {
|
|
||||||
let data = req.body;
|
|
||||||
if (!data.code || data.hash != Crypto.SHA1(data.code + secret))
|
|
||||||
return res.status(INVALID.e_code).send("Invalid Code");
|
|
||||||
if (!data.pubKey)
|
|
||||||
return res.status(INVALID.e_code).send("Public key missing");
|
|
||||||
validateRequest({
|
|
||||||
type: "login",
|
|
||||||
random: data.code,
|
|
||||||
proxyKey: data.proxyKey,
|
|
||||||
timestamp: data.timestamp
|
|
||||||
}, data.sign, data.floID, data.pubKey).then(req_str => {
|
|
||||||
DB.query("INSERT INTO UserSession (floID, proxyKey) VALUE (?, ?) " +
|
|
||||||
"ON DUPLICATE KEY UPDATE session_time=DEFAULT, proxyKey=?",
|
|
||||||
[data.floID, data.proxyKey, data.proxyKey]).then(_ => {
|
|
||||||
storeRequest(data.floID, req_str, data.sign);
|
|
||||||
res.send("Login Successful");
|
|
||||||
}).catch(error => {
|
|
||||||
console.error(error);
|
|
||||||
res.status(INTERNAL.e_code).send("Login failed! Try again later!");
|
|
||||||
});
|
|
||||||
}).catch(error => {
|
|
||||||
if (error instanceof INVALID)
|
|
||||||
res.status(INVALID.e_code).send(error.message);
|
|
||||||
else {
|
|
||||||
console.error(error);
|
|
||||||
res.status(INTERNAL.e_code).send("Login failed! Try again later!");
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function Logout(req, res) {
|
|
||||||
let data = req.body;
|
|
||||||
validateRequest({
|
|
||||||
type: "logout",
|
|
||||||
timestamp: data.timestamp
|
|
||||||
}, data.sign, data.floID, data.pubKey).then(req_str => {
|
|
||||||
DB.query("DELETE FROM UserSession WHERE floID=?", [data.floID]).then(_ => {
|
|
||||||
storeRequest(data.floID, req_str, data.sign, !data.pubKey);
|
|
||||||
res.send('Logout successful');
|
|
||||||
}).catch(error => {
|
|
||||||
console.error(error);
|
|
||||||
res.status(INTERNAL.e_code).send("Logout failed! Try again later! Contact support if this error occurs frequently");
|
|
||||||
});
|
|
||||||
}).catch(error => {
|
|
||||||
if (error instanceof INVALID)
|
|
||||||
res.status(INVALID.e_code).send(error.message);
|
|
||||||
else {
|
|
||||||
console.error(error);
|
|
||||||
res.status(INTERNAL.e_code).send("Request processing failed! Try again later!");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function PlaceSellOrder(req, res) {
|
|
||||||
let data = req.body;
|
|
||||||
validateRequest({
|
|
||||||
type: "sell_order",
|
|
||||||
asset: data.asset,
|
|
||||||
quantity: data.quantity,
|
|
||||||
min_price: data.min_price,
|
|
||||||
timestamp: data.timestamp
|
|
||||||
}, data.sign, data.floID, data.pubKey).then(req_str => {
|
|
||||||
market.addSellOrder(data.floID, data.asset, data.quantity, data.min_price).then(result => {
|
|
||||||
storeRequest(data.floID, req_str, data.sign, !data.pubKey);
|
|
||||||
res.send(result);
|
|
||||||
}).catch(error => {
|
|
||||||
if (error instanceof INVALID)
|
|
||||||
res.status(INVALID.e_code).send(error.message);
|
|
||||||
else {
|
|
||||||
console.error(error);
|
|
||||||
res.status(INTERNAL.e_code).send("Order placement failed! Try again later!");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}).catch(error => {
|
|
||||||
if (error instanceof INVALID)
|
|
||||||
res.status(INVALID.e_code).send(error.message);
|
|
||||||
else {
|
|
||||||
console.error(error);
|
|
||||||
res.status(INTERNAL.e_code).send("Request processing failed! Try again later!");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function PlaceBuyOrder(req, res) {
|
|
||||||
let data = req.body;
|
|
||||||
validateRequest({
|
|
||||||
type: "buy_order",
|
|
||||||
asset: data.asset,
|
|
||||||
quantity: data.quantity,
|
|
||||||
max_price: data.max_price,
|
|
||||||
timestamp: data.timestamp
|
|
||||||
}, data.sign, data.floID, data.pubKey).then(req_str => {
|
|
||||||
market.addBuyOrder(data.floID, data.asset, data.quantity, data.max_price).then(result => {
|
|
||||||
storeRequest(data.floID, req_str, data.sign, !data.pubKey);
|
|
||||||
res.send(result);
|
|
||||||
}).catch(error => {
|
|
||||||
if (error instanceof INVALID)
|
|
||||||
res.status(INVALID.e_code).send(error.message);
|
|
||||||
else {
|
|
||||||
console.error(error);
|
|
||||||
res.status(INTERNAL.e_code).send("Order placement failed! Try again later!");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}).catch(error => {
|
|
||||||
if (error instanceof INVALID)
|
|
||||||
res.status(INVALID.e_code).send(error.message);
|
|
||||||
else {
|
|
||||||
console.error(error);
|
|
||||||
res.status(INTERNAL.e_code).send("Request processing failed! Try again later!");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function CancelOrder(req, res) {
|
|
||||||
let data = req.body;
|
|
||||||
validateRequest({
|
|
||||||
type: "cancel_order",
|
|
||||||
order: data.orderType,
|
|
||||||
id: data.orderID,
|
|
||||||
timestamp: data.timestamp
|
|
||||||
}, data.sign, data.floID, data.pubKey).then(req_str => {
|
|
||||||
market.cancelOrder(data.orderType, data.orderID, data.floID).then(result => {
|
|
||||||
storeRequest(data.floID, req_str, data.sign, !data.pubKey);
|
|
||||||
res.send(result);
|
|
||||||
}).catch(error => {
|
|
||||||
if (error instanceof INVALID)
|
|
||||||
res.status(INVALID.e_code).send(error.message);
|
|
||||||
else {
|
|
||||||
console.error(error);
|
|
||||||
res.status(INTERNAL.e_code).send("Order cancellation failed! Try again later!");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}).catch(error => {
|
|
||||||
if (error instanceof INVALID)
|
|
||||||
res.status(INVALID.e_code).send(error.message);
|
|
||||||
else {
|
|
||||||
console.error(error);
|
|
||||||
res.status(INTERNAL.e_code).send("Request processing failed! Try again later!");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function TransferToken(req, res) {
|
|
||||||
let data = req.body;
|
|
||||||
validateRequest({
|
|
||||||
type: "transfer_token",
|
|
||||||
receiver: JSON.stringify(data.receiver),
|
|
||||||
token: data.token,
|
|
||||||
timestamp: data.timestamp
|
|
||||||
}, data.sign, data.floID, data.pubKey).then(req_str => {
|
|
||||||
market.transferToken(data.floID, data.receiver, data.token).then(result => {
|
|
||||||
storeRequest(data.floID, req_str, data.sign, !data.pubKey);
|
|
||||||
res.send(result);
|
|
||||||
}).catch(error => {
|
|
||||||
if (error instanceof INVALID)
|
|
||||||
res.status(INVALID.e_code).send(error.message);
|
|
||||||
else {
|
|
||||||
console.error(error);
|
|
||||||
res.status(INTERNAL.e_code).send("Token Transfer failed! Try again later!");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}).catch(error => {
|
|
||||||
if (error instanceof INVALID)
|
|
||||||
res.status(INVALID.e_code).send(error.message);
|
|
||||||
else {
|
|
||||||
console.error(error);
|
|
||||||
res.status(INTERNAL.e_code).send("Request processing failed! Try again later!");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function ListSellOrders(req, res) {
|
function ListSellOrders(req, res) {
|
||||||
//TODO: Limit size (best)
|
//TODO: Limit size (best)
|
||||||
DB.query("SELECT * FROM SellOrder ORDER BY time_placed")
|
DB.query("SELECT * FROM SellOrder ORDER BY time_placed")
|
||||||
@ -358,206 +352,8 @@ function getTransaction(req, res) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function Account(req, res) {
|
|
||||||
let data = req.body;
|
|
||||||
validateRequest({
|
|
||||||
type: "get_account",
|
|
||||||
timestamp: data.timestamp
|
|
||||||
}, data.sign, data.floID, data.pubKey).then(req_str => {
|
|
||||||
market.getAccountDetails(data.floID).then(result => {
|
|
||||||
result.sinkID = global.sinkID;
|
|
||||||
if (trustedIDs.includes(data.floID))
|
|
||||||
result.subAdmin = true;
|
|
||||||
res.send(result);
|
|
||||||
});
|
|
||||||
}).catch(error => {
|
|
||||||
if (error instanceof INVALID)
|
|
||||||
res.status(INVALID.e_code).send(error.message);
|
|
||||||
else {
|
|
||||||
console.error(error);
|
|
||||||
res.status(INTERNAL.e_code).send("Request processing failed! Try again later!");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function DepositFLO(req, res) {
|
|
||||||
let data = req.body;
|
|
||||||
validateRequest({
|
|
||||||
type: "deposit_flo",
|
|
||||||
txid: data.txid,
|
|
||||||
timestamp: data.timestamp
|
|
||||||
}, data.sign, data.floID, data.pubKey).then(req_str => {
|
|
||||||
market.depositFLO(data.floID, data.txid).then(result => {
|
|
||||||
storeRequest(data.floID, req_str, data.sign, !data.pubKey);
|
|
||||||
res.send(result);
|
|
||||||
}).catch(error => {
|
|
||||||
if (error instanceof INVALID)
|
|
||||||
res.status(INVALID.e_code).send(error.message);
|
|
||||||
else {
|
|
||||||
console.error(error);
|
|
||||||
res.status(INTERNAL.e_code).send("Request processing failed! Try again later!");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}).catch(error => {
|
|
||||||
if (error instanceof INVALID)
|
|
||||||
res.status(INVALID.e_code).send(error.message);
|
|
||||||
else {
|
|
||||||
console.error(error);
|
|
||||||
res.status(INTERNAL.e_code).send("Request processing failed! Try again later!");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function WithdrawFLO(req, res) {
|
|
||||||
let data = req.body;
|
|
||||||
validateRequest({
|
|
||||||
type: "withdraw_flo",
|
|
||||||
amount: data.amount,
|
|
||||||
timestamp: data.timestamp
|
|
||||||
}, data.sign, data.floID, data.pubKey).then(req_str => {
|
|
||||||
market.withdrawFLO(data.floID, data.amount).then(result => {
|
|
||||||
storeRequest(data.floID, req_str, data.sign, !data.pubKey);
|
|
||||||
res.send(result);
|
|
||||||
}).catch(error => {
|
|
||||||
if (error instanceof INVALID)
|
|
||||||
res.status(INVALID.e_code).send(error.message);
|
|
||||||
else {
|
|
||||||
console.error(error);
|
|
||||||
res.status(INTERNAL.e_code).send("Request processing failed! Try again later!");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}).catch(error => {
|
|
||||||
if (error instanceof INVALID)
|
|
||||||
res.status(INVALID.e_code).send(error.message);
|
|
||||||
else {
|
|
||||||
console.error(error);
|
|
||||||
res.status(INTERNAL.e_code).send("Request processing failed! Try again later!");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function DepositToken(req, res) {
|
|
||||||
let data = req.body;
|
|
||||||
validateRequest({
|
|
||||||
type: "deposit_token",
|
|
||||||
txid: data.txid,
|
|
||||||
timestamp: data.timestamp
|
|
||||||
}, data.sign, data.floID, data.pubKey).then(req_str => {
|
|
||||||
market.depositToken(data.floID, data.txid).then(result => {
|
|
||||||
storeRequest(data.floID, req_str, data.sign, !data.pubKey);
|
|
||||||
res.send(result);
|
|
||||||
}).catch(error => {
|
|
||||||
if (error instanceof INVALID)
|
|
||||||
res.status(INVALID.e_code).send(error.message);
|
|
||||||
else {
|
|
||||||
console.error(error);
|
|
||||||
res.status(INTERNAL.e_code).send("Request processing failed! Try again later!");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}).catch(error => {
|
|
||||||
if (error instanceof INVALID)
|
|
||||||
res.status(INVALID.e_code).send(error.message);
|
|
||||||
else {
|
|
||||||
console.error(error);
|
|
||||||
res.status(INTERNAL.e_code).send("Request processing failed! Try again later!");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function WithdrawToken(req, res) {
|
|
||||||
let data = req.body;
|
|
||||||
validateRequest({
|
|
||||||
type: "withdraw_token",
|
|
||||||
token: data.token,
|
|
||||||
amount: data.amount,
|
|
||||||
timestamp: data.timestamp
|
|
||||||
}, data.sign, data.floID, data.pubKey).then(req_str => {
|
|
||||||
market.withdrawToken(data.floID, data.token, data.amount).then(result => {
|
|
||||||
storeRequest(data.floID, req_str, data.sign, !data.pubKey);
|
|
||||||
res.send(result);
|
|
||||||
}).catch(error => {
|
|
||||||
if (error instanceof INVALID)
|
|
||||||
res.status(INVALID.e_code).send(error.message);
|
|
||||||
else {
|
|
||||||
console.error(error);
|
|
||||||
res.status(INTERNAL.e_code).send("Request processing failed! Try again later!");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}).catch(error => {
|
|
||||||
if (error instanceof INVALID)
|
|
||||||
res.status(INVALID.e_code).send(error.message);
|
|
||||||
else {
|
|
||||||
console.error(error);
|
|
||||||
res.status(INTERNAL.e_code).send("Request processing failed! Try again later!");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function addUserTag(req, res) {
|
|
||||||
let data = req.body;
|
|
||||||
if (!trustedIDs.includes(data.floID))
|
|
||||||
res.status(INVALID.e_code).send("Access Denied");
|
|
||||||
else validateRequest({
|
|
||||||
type: "add_tag",
|
|
||||||
user: data.user,
|
|
||||||
tag: data.tag,
|
|
||||||
timestamp: data.timestamp
|
|
||||||
}, data.sign, data.floID, data.pubKey).then(req_str => {
|
|
||||||
market.group.addTag(data.user, data.tag).then(result => {
|
|
||||||
storeRequest(data.floID, req_str, data.sign, !data.pubKey);
|
|
||||||
res.send(result);
|
|
||||||
}).catch(error => {
|
|
||||||
if (error instanceof INVALID)
|
|
||||||
res.status(INVALID.e_code).send(error.message);
|
|
||||||
else {
|
|
||||||
console.error(error);
|
|
||||||
res.status(INTERNAL.e_code).send("Request processing failed! Try again later!");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}).catch(error => {
|
|
||||||
if (error instanceof INVALID)
|
|
||||||
res.status(INVALID.e_code).send(error.message);
|
|
||||||
else {
|
|
||||||
console.error(error);
|
|
||||||
res.status(INTERNAL.e_code).send("Request processing failed! Try again later!");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function removeUserTag(req, res) {
|
|
||||||
let data = req.body;
|
|
||||||
if (!trustedIDs.includes(data.floID))
|
|
||||||
res.status(INVALID.e_code).send("Access Denied");
|
|
||||||
else validateRequest({
|
|
||||||
type: "remove_tag",
|
|
||||||
user: data.user,
|
|
||||||
tag: data.tag,
|
|
||||||
timestamp: data.timestamp
|
|
||||||
}, data.sign, data.floID, data.pubKey).then(req_str => {
|
|
||||||
market.group.removeTag(data.user, data.tag).then(result => {
|
|
||||||
storeRequest(data.floID, req_str, data.sign, !data.pubKey);
|
|
||||||
res.send(result);
|
|
||||||
}).catch(error => {
|
|
||||||
if (error instanceof INVALID)
|
|
||||||
res.status(INVALID.e_code).send(error.message);
|
|
||||||
else {
|
|
||||||
console.error(error);
|
|
||||||
res.status(INTERNAL.e_code).send("Request processing failed! Try again later!");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}).catch(error => {
|
|
||||||
if (error instanceof INVALID)
|
|
||||||
res.status(INVALID.e_code).send(error.message);
|
|
||||||
else {
|
|
||||||
console.error(error);
|
|
||||||
res.status(INTERNAL.e_code).send("Request processing failed! Try again later!");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
getLoginCode,
|
getLoginCode,
|
||||||
//SignUp,
|
|
||||||
Login,
|
Login,
|
||||||
Logout,
|
Logout,
|
||||||
PlaceBuyOrder,
|
PlaceBuyOrder,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user