Find action

This commit is contained in:
marcdeb1 2018-12-18 17:58:49 +01:00
parent 3cddd6ece1
commit e5d16d0100

View file

@ -256,38 +256,38 @@ class MainController extends AppController {
if (is_numeric($criteria)) { if (is_numeric($criteria)) {
$height = (int) $criteria; $height = (int) $criteria;
$block = $this->Blocks->find()->select(['Id'])->where(['Height' => $height])->first(); $block = $this->Blocks->find()->select(['id'])->where(['height' => $height])->first();
if ($block) { if ($block) {
return $this->redirect('/blocks/' . $height); return $this->redirect('/blocks/' . $height);
} }
} else if (strlen(trim($criteria)) === 34) { } else if (strlen(trim($criteria)) === 34) {
// Address // Address
$address = $this->Addresses->find()->select(['Id', 'Address'])->where(['Address' => $criteria])->first(); $address = $this->Addresses->find()->select(['id', 'address'])->where(['address' => $criteria])->first();
if ($address) { if ($address) {
return $this->redirect('/address/' . $address->Address); return $this->redirect('/address/' . $address->address);
} }
} else if (strlen(trim($criteria)) === 40) { } else if (strlen(trim($criteria)) === 40) {
// Claim ID // Claim ID
$claim = $this->Claims->find()->select(['ClaimId'])->where(['ClaimId' => $criteria])->first(); $claim = $this->Claims->find()->select(['claim_id'])->where(['claim_id' => $criteria])->first();
if ($claim) { if ($claim) {
return $this->redirect('/claims/' . $claim->ClaimId); return $this->redirect('/claims/' . $claim->claim_id);
} }
} else if (strlen(trim($criteria)) === 64) { // block or tx hash } else if (strlen(trim($criteria)) === 64) { // block or tx hash
// Try block hash first // Try block hash first
$block = $this->Blocks->find()->select(['Height'])->where(['Hash' => $criteria])->first(); $block = $this->Blocks->find()->select(['height'])->where(['hash' => $criteria])->first();
if ($block) { if ($block) {
return $this->redirect('/blocks/' . $block->Height); return $this->redirect('/blocks/' . $block->height);
} else { } else {
$tx = $this->Transactions->find()->select(['Hash'])->where(['Hash' => $criteria])->first(); $tx = $this->Transactions->find()->select(['hash'])->where(['hash' => $criteria])->first();
if ($tx) { if ($tx) {
return $this->redirect('/tx/' . $tx->Hash); return $this->redirect('/tx/' . $tx->hash);
} }
} }
} else { } else {
// finally, try exact claim name match // finally, try exact claim name match
$claims = $this->Claims->find()->distinct(['Claims.ClaimId'])->where(['Name' => $criteria])->order(['Claims.Created' => 'DESC'])->limit(10)->toArray(); $claims = $this->Claims->find()->distinct(['claim_id'])->where(['name' => $criteria])->order(['created_at' => 'DESC'])->limit(10)->toArray();
if (count($claims) == 1) { if (count($claims) == 1) {
return $this->redirect('/claims/' . $claims[0]->ClaimId); return $this->redirect('/claims/' . $claims[0]->claim_id);
} }
else { else {
$this->set('claims', $claims); $this->set('claims', $claims);
@ -371,7 +371,7 @@ class MainController extends AppController {
$confirmations = $block->confirmations; $confirmations = $block->confirmations;
$inputs = $this->Inputs->find()->where(['transaction_id' => $tx->id])->order(['prevout_n' => 'asc'])->toArray(); $inputs = $this->Inputs->find()->where(['transaction_id' => $tx->id])->order(['prevout_n' => 'asc'])->toArray();
foreach($inputs as $input) { foreach($inputs as $input) {
$inputAddresses = $this->Addresses->find()->where(['id' => 'input_address_id'])->toArray(); $inputAddresses = $this->Addresses->find()->select(['id', 'address'])->where(['id' => $input->input_address_id])->toArray();
$input->input_addresses = $inputAddresses; $input->input_addresses = $inputAddresses;
} }
@ -387,7 +387,7 @@ class MainController extends AppController {
$outputs[$i]->IsClaim = (strpos($outputs[$i]->script_pub_key_asm, 'CLAIM') > -1); $outputs[$i]->IsClaim = (strpos($outputs[$i]->script_pub_key_asm, 'CLAIM') > -1);
$outputs[$i]->IsSupportClaim = (strpos($outputs[$i]->script_pub_key_asm, 'SUPPORT_CLAIM') > -1); $outputs[$i]->IsSupportClaim = (strpos($outputs[$i]->script_pub_key_asm, 'SUPPORT_CLAIM') > -1);
$outputs[$i]->IsUpdateClaim = (strpos($outputs[$i]->script_pub_key_asm, 'UPDATE_CLAIM') > -1); $outputs[$i]->IsUpdateClaim = (strpos($outputs[$i]->script_pub_key_asm, 'UPDATE_CLAIM') > -1);
$claim = $this->Claims->find()->where(['transaction_hash_id' => $tx->hash, 'vout' => $outputs[$i]->vout])->first(); $claim = $this->Claims->find()->select(['id', 'claim_id', 'vout', 'transaction_hash_id'])->where(['transaction_hash_id' => $tx->hash, 'vout' => $outputs[$i]->vout])->first();
$outputs[$i]->Claim = $claim; $outputs[$i]->Claim = $claim;
} }