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

34
api.php
View File

@@ -790,8 +790,9 @@ if ($q == "getAddress") {
api_echo(true); api_echo(true);
} elseif ($q === "assetBalance"){ } elseif ($q === "assetBalance"){
$public_key = $data['public_key']; $asset = san($data['asset']);
$account = $data['account']; $public_key = san($data['public_key']);
$account = san($data['account']);
if (!empty($public_key) && strlen($public_key) < 32) { if (!empty($public_key) && strlen($public_key) < 32) {
api_err("Invalid public key"); api_err("Invalid public key");
} }
@@ -799,13 +800,32 @@ if ($q == "getAddress") {
$account = $acc->get_address($public_key); $account = $acc->get_address($public_key);
} }
if (empty($account)) { if(empty($asset)&&empty($account)){
api_err("Invalid account id"); 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_echo($r); 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"){ } elseif ($q === "asset-orders"){
$asset = san($data['asset']); $asset = san($data['asset']);
$account = san($data['account']); $account = san($data['account']);