Update api.php

update assetBalance to return either results for account or asset
This commit is contained in:
Ario Sius
2021-03-12 11:39:28 +01:00
committed by GitHub
parent 2f09d9e065
commit 8fc4acad3c

32
api.php
View File

@@ -790,8 +790,9 @@ if ($q == "getAddress") {
api_echo(true);
} elseif ($q === "assetBalance"){
$public_key = $data['public_key'];
$account = $data['account'];
$asset = san($data['asset']);
$public_key = san($data['public_key']);
$account = san($data['account']);
if (!empty($public_key) && strlen($public_key) < 32) {
api_err("Invalid public key");
}
@@ -799,13 +800,32 @@ if ($q == "getAddress") {
$account = $acc->get_address($public_key);
}
if (empty($account)) {
api_err("Invalid account id");
if(empty($asset)&&empty($account)){
api_err("An asset or an account are necessary");
}
$account = san($account);
$r=$db->run("SELECT asset, alias, assets_balance.balance FROM assets_balance LEFT JOIN accounts ON accounts.id=assets_balance.asset WHERE assets_balance.account=:account LIMIT 1000",[":account"=>$account]);
if(!empty($asset)&&!empty($account)){
api_err("Choose either account or asset parameter");
}
$whr="WHERE assets_balance.";
$bind=[];
if(!empty($asset)){
$whr.="asset=:asset ";
$bind[':asset']=$asset;
}
if(!empty($account)){
$whr.="account=:account ";
$bind[':account']=$account;
}
$r=$db->run("SELECT asset, alias, account, assets_balance.balance FROM assets_balance LEFT JOIN accounts ON accounts.id=assets_balance.asset $whr LIMIT 1000",$bind);
if ($r)
api_echo($r);
else
api_err("An asset or an account not found");
} elseif ($q === "asset-orders"){
$asset = san($data['asset']);
$account = san($data['account']);