API for ordered list for sell/buy
- The API for Listing sell/buy orders now returns ordered list of the queue (approx). - list-buyorders, list-sellorders and list-trades API now accepts optional GET parameter 'asset'. . If passed, then orders/trades of only given asset will be returned. . If asset is not passed, then returns all asset by default as before. - list buy/sell order API return max of 100 best orders - list trade API return max of 1000 recent trades
This commit is contained in:
parent
3c97cb4810
commit
55bd121021
@ -541,9 +541,9 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
exchangeAPI.getBuyList = function() {
|
exchangeAPI.getBuyList = function(asset = null) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
fetch_api('/list-buyorders')
|
fetch_api('/list-buyorders' + (asset ? "?asset=" + asset : ""))
|
||||||
.then(result => responseParse(result)
|
.then(result => responseParse(result)
|
||||||
.then(result => resolve(result))
|
.then(result => resolve(result))
|
||||||
.catch(error => reject(error)))
|
.catch(error => reject(error)))
|
||||||
@ -551,9 +551,9 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
exchangeAPI.getSellList = function() {
|
exchangeAPI.getSellList = function(asset = null) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
fetch_api('/list-sellorders')
|
fetch_api('/list-sellorders' + (asset ? "?asset=" + asset : ""))
|
||||||
.then(result => responseParse(result)
|
.then(result => responseParse(result)
|
||||||
.then(result => resolve(result))
|
.then(result => resolve(result))
|
||||||
.catch(error => reject(error)))
|
.catch(error => reject(error)))
|
||||||
@ -561,9 +561,9 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
exchangeAPI.getTradeList = function() {
|
exchangeAPI.getTradeList = function(asset = null) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
fetch_api('/list-trades')
|
fetch_api('/list-trades' + (asset ? "?asset=" + asset : ""))
|
||||||
.then(result => responseParse(result)
|
.then(result => responseParse(result)
|
||||||
.then(result => resolve(result))
|
.then(result => resolve(result))
|
||||||
.catch(error => reject(error)))
|
.catch(error => reject(error)))
|
||||||
|
|||||||
@ -705,5 +705,8 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
set assetList(assets) {
|
set assetList(assets) {
|
||||||
assetList = assets;
|
assetList = assets;
|
||||||
|
},
|
||||||
|
get assetList() {
|
||||||
|
return assetList
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -325,24 +325,65 @@ function GetLoginCode(req, res) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function ListSellOrders(req, res) {
|
function ListSellOrders(req, res) {
|
||||||
//TODO: Limit size (best)
|
if (!serving)
|
||||||
DB.query("SELECT * FROM SellOrder ORDER BY time_placed")
|
res.status(INVALID.e_code).send(INVALID_SERVER_MSG);
|
||||||
.then(result => res.send(result))
|
else {
|
||||||
.catch(error => res.status(INTERNAL.e_code).send("Try again later!"));
|
let asset = req.query.asset;
|
||||||
|
if (asset && !market.assetList.includes(asset))
|
||||||
|
res.status(INVALID.e_code).send("Invalid asset parameter");
|
||||||
|
else
|
||||||
|
DB.query("SELECT SellOrder.floID, SellOrder.asset, GREATEST(SellOrder.minPrice, SellChips.base) AS minPrice, SellOrder.quantity, SellOrder.time_placed FROM SellOrder" +
|
||||||
|
" INNER JOIN UserBalance ON UserBalance.floID = SellOrder.floID AND UserBalance.token = SellOrder.asset" +
|
||||||
|
" INNER JOIN SellChips ON SellChips.floID = SellOrder.floID AND SellChips.asset = SellOrder.asset" +
|
||||||
|
" LEFT JOIN UserTag ON UserTag.floID = SellOrder.floID" +
|
||||||
|
" LEFT JOIN TagList ON TagList.tag = UserTag.tag" +
|
||||||
|
" WHERE UserBalance.quantity >= SellOrder.quantity" +
|
||||||
|
(asset ? " AND SellOrder.asset = ?" : "") +
|
||||||
|
" GROUP BY SellOrder.id" +
|
||||||
|
" ORDER BY TagList.sellPriority DESC, SellChips.locktime ASC, SellOrder.time_placed ASC" +
|
||||||
|
" LIMIT 100", [asset || null])
|
||||||
|
.then(result => res.send(result))
|
||||||
|
.catch(error => res.status(INTERNAL.e_code).send("Try again later!"));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function ListBuyOrders(req, res) {
|
function ListBuyOrders(req, res) {
|
||||||
//TODO: Limit size (best)
|
if (!serving)
|
||||||
DB.query("SELECT * FROM BuyOrder ORDER BY time_placed")
|
res.status(INVALID.e_code).send(INVALID_SERVER_MSG);
|
||||||
.then(result => res.send(result))
|
else {
|
||||||
.catch(error => res.status(INTERNAL.e_code).send("Try again later!"));
|
let asset = req.query.asset;
|
||||||
|
if (asset && !market.assetList.includes(asset))
|
||||||
|
res.status(INVALID.e_code).send("Invalid asset parameter");
|
||||||
|
else
|
||||||
|
DB.query("SELECT BuyOrder.floID, BuyOrder.asset, BuyOrder.maxPrice, BuyOrder.quantity, BuyOrder.time_placed FROM BuyOrder" +
|
||||||
|
" INNER JOIN UserBalance ON UserBalance.floID = BuyOrder.floID AND UserBalance.token = ?" +
|
||||||
|
" LEFT JOIN UserTag ON UserTag.floID = BuyOrder.floID" +
|
||||||
|
" LEFT JOIN TagList ON TagList.tag = UserTag.tag" +
|
||||||
|
" WHERE UserBalance.quantity >= BuyOrder.maxPrice * BuyOrder.quantity" +
|
||||||
|
(asset ? " AND BuyOrder.asset = ?" : "") +
|
||||||
|
" GROUP BY BuyOrder.id" +
|
||||||
|
" ORDER BY TagList.buyPriority DESC, BuyOrder.time_placed ASC" +
|
||||||
|
" LIMIT 100", [floGlobals.currency, asset || null])
|
||||||
|
.then(result => res.send(result))
|
||||||
|
.catch(error => res.status(INTERNAL.e_code).send("Try again later!"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function ListTradeTransactions(req, res) {
|
function ListTradeTransactions(req, res) {
|
||||||
//TODO: Limit size (recent)
|
if (!serving)
|
||||||
DB.query("SELECT * FROM TradeTransactions ORDER BY tx_time DESC")
|
res.status(INVALID.e_code).send(INVALID_SERVER_MSG);
|
||||||
.then(result => res.send(result))
|
else {
|
||||||
.catch(error => res.status(INTERNAL.e_code).send("Try again later!"));
|
let asset = req.query.asset;
|
||||||
|
if (asset && !market.assetList.includes(asset))
|
||||||
|
res.status(INVALID.e_code).send("Invalid asset parameter");
|
||||||
|
else
|
||||||
|
DB.query("SELECT * FROM TradeTransactions" +
|
||||||
|
(asset ? " WHERE asset = ?" : "") +
|
||||||
|
" ORDER BY tx_time DESC LIMIT 1000", [asset || null])
|
||||||
|
.then(result => res.send(result))
|
||||||
|
.catch(error => res.status(INTERNAL.e_code).send("Try again later!"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function GetRates(req, res) {
|
function GetRates(req, res) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user