mirror of
https://github.com/planetmint/planetmint.git
synced 2025-11-24 22:45:44 +00:00
adjusted some queries, wip print statements to be removed
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
This commit is contained in:
parent
93f282dd8c
commit
e1a7ade68c
@ -9,6 +9,7 @@ from hashlib import sha256
|
|||||||
from operator import itemgetter
|
from operator import itemgetter
|
||||||
|
|
||||||
import tarantool.error
|
import tarantool.error
|
||||||
|
import json
|
||||||
|
|
||||||
from planetmint.backend import query
|
from planetmint.backend import query
|
||||||
from planetmint.backend.utils import module_dispatch_registrar
|
from planetmint.backend.utils import module_dispatch_registrar
|
||||||
@ -34,6 +35,9 @@ def _group_transaction_by_ids(connection, txids: list):
|
|||||||
_txassets = connection.run(connection.space("assets").select(txid, index="txid_search"))
|
_txassets = connection.run(connection.space("assets").select(txid, index="txid_search"))
|
||||||
_txmeta = connection.run(connection.space("meta_data").select(txid, index="id_search"))
|
_txmeta = connection.run(connection.space("meta_data").select(txid, index="id_search"))
|
||||||
|
|
||||||
|
print('TX ASSETS')
|
||||||
|
print(_txassets)
|
||||||
|
|
||||||
_txinputs = sorted(_txinputs, key=itemgetter(6), reverse=False)
|
_txinputs = sorted(_txinputs, key=itemgetter(6), reverse=False)
|
||||||
_txoutputs = sorted(_txoutputs, key=itemgetter(8), reverse=False)
|
_txoutputs = sorted(_txoutputs, key=itemgetter(8), reverse=False)
|
||||||
result_map = {
|
result_map = {
|
||||||
@ -109,7 +113,7 @@ def store_metadatas(connection, metadata: list):
|
|||||||
for meta in metadata:
|
for meta in metadata:
|
||||||
connection.run(
|
connection.run(
|
||||||
connection.space("meta_data").insert(
|
connection.space("meta_data").insert(
|
||||||
(meta["id"], meta["data"] if not "metadata" in meta else meta["metadata"]))
|
(meta["id"], json.dumps(meta["data"] if not "metadata" in meta else meta["metadata"])))
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -122,33 +126,30 @@ def get_metadata(connection, transaction_ids: list):
|
|||||||
)
|
)
|
||||||
if metadata is not None:
|
if metadata is not None:
|
||||||
if len(metadata) > 0:
|
if len(metadata) > 0:
|
||||||
_returned_data.append(metadata)
|
_returned_data.append(json.loads(metadata))
|
||||||
return _returned_data if len(_returned_data) > 0 else None
|
return _returned_data if len(_returned_data) > 0 else None
|
||||||
|
|
||||||
|
|
||||||
@register_query(TarantoolDBConnection)
|
@register_query(TarantoolDBConnection)
|
||||||
def store_asset(connection, asset):
|
def store_asset(connection, asset):
|
||||||
convert = lambda obj: obj if isinstance(obj, tuple) else (obj, obj["id"], obj["id"])
|
def convert(obj):
|
||||||
try:
|
if isinstance(obj, tuple):
|
||||||
return connection.run(
|
obj = list(obj)
|
||||||
connection.space("assets").insert(convert(asset)),
|
obj[0] = json.dumps(obj[0])
|
||||||
only_data=False
|
return tuple(obj)
|
||||||
)
|
else:
|
||||||
except tarantool.error.DatabaseError:
|
(json.dumps(obj), obj["id"], obj["id"])
|
||||||
pass
|
|
||||||
|
return connection.run(
|
||||||
|
connection.space("assets").insert(convert(asset)),
|
||||||
|
only_data=False
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@register_query(TarantoolDBConnection)
|
@register_query(TarantoolDBConnection)
|
||||||
def store_assets(connection, assets: list):
|
def store_assets(connection, assets: list):
|
||||||
convert = lambda obj: obj if isinstance(obj, tuple) else (obj, obj["id"], obj["id"])
|
|
||||||
for asset in assets:
|
for asset in assets:
|
||||||
try:
|
store_asset(connection, asset)
|
||||||
connection.run(
|
|
||||||
connection.space("assets").insert(convert(asset)),
|
|
||||||
only_data=False
|
|
||||||
)
|
|
||||||
except tarantool.error.DatabaseError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
@register_query(TarantoolDBConnection)
|
@register_query(TarantoolDBConnection)
|
||||||
@ -156,7 +157,12 @@ def get_asset(connection, asset_id: str):
|
|||||||
_data = connection.run(
|
_data = connection.run(
|
||||||
connection.space("assets").select(asset_id, index="txid_search")
|
connection.space("assets").select(asset_id, index="txid_search")
|
||||||
)
|
)
|
||||||
return _data[0][0] if len(_data) > 0 else []
|
|
||||||
|
print('GET ASSET')
|
||||||
|
|
||||||
|
print(_data)
|
||||||
|
|
||||||
|
return json.loads(_data[0][0]) if len(_data) > 0 else []
|
||||||
|
|
||||||
|
|
||||||
@register_query(TarantoolDBConnection)
|
@register_query(TarantoolDBConnection)
|
||||||
@ -165,6 +171,10 @@ def get_assets(connection, assets_ids: list) -> list:
|
|||||||
for _id in list(set(assets_ids)):
|
for _id in list(set(assets_ids)):
|
||||||
asset = get_asset(connection, _id)
|
asset = get_asset(connection, _id)
|
||||||
_returned_data.append(asset)
|
_returned_data.append(asset)
|
||||||
|
|
||||||
|
print('############# RETURNED DATA ##########')
|
||||||
|
print(_returned_data)
|
||||||
|
|
||||||
return sorted(_returned_data, key=lambda k: k["id"], reverse=False)
|
return sorted(_returned_data, key=lambda k: k["id"], reverse=False)
|
||||||
|
|
||||||
|
|
||||||
@ -276,7 +286,7 @@ def get_txids_filtered(connection, asset_id: str, operation: str = None,
|
|||||||
# return (_remove_text_score(obj) for obj in cursor)
|
# return (_remove_text_score(obj) for obj in cursor)
|
||||||
|
|
||||||
@register_query(TarantoolDBConnection)
|
@register_query(TarantoolDBConnection)
|
||||||
def text_search(conn, search, table='assets'):
|
def text_search(conn, search, table='assets', limit=0):
|
||||||
pattern = ".{}.".format(search)
|
pattern = ".{}.".format(search)
|
||||||
res = conn.run(
|
res = conn.run(
|
||||||
conn.space(table).call('indexed_pattern_search', (table, 1, pattern))
|
conn.space(table).call('indexed_pattern_search', (table, 1, pattern))
|
||||||
|
|||||||
@ -37,10 +37,10 @@ INDEX_COMMANDS = {
|
|||||||
},
|
},
|
||||||
"assets":
|
"assets":
|
||||||
{
|
{
|
||||||
|
"secondary": "assets:create_index('secondary', {unique=false,parts={1,'string',2,'string',3,'string'}})",
|
||||||
"txid_search": "assets:create_index('txid_search', {type='hash', parts={'tx_id'}})",
|
"txid_search": "assets:create_index('txid_search', {type='hash', parts={'tx_id'}})",
|
||||||
"assetid_search": "assets:create_index('assetid_search', {type='tree',unique=false, parts={'asset_id', 'tx_id'}})",
|
"assetid_search": "assets:create_index('assetid_search', {type='tree',unique=false, parts={'asset_id', 'tx_id'}})",
|
||||||
"only_asset_search": "assets:create_index('only_asset_search', {type='tree', unique=false, parts={'asset_id'}})",
|
"only_asset_search": "assets:create_index('only_asset_search', {type='tree', unique=false, parts={'asset_id'}})"
|
||||||
"secondary": "assets:create_index('secondary', {unique=false,parts={1,'string',2,'string',3,'string'}})"
|
|
||||||
},
|
},
|
||||||
"blocks":
|
"blocks":
|
||||||
{
|
{
|
||||||
@ -61,6 +61,7 @@ INDEX_COMMANDS = {
|
|||||||
},
|
},
|
||||||
"meta_data":
|
"meta_data":
|
||||||
{
|
{
|
||||||
|
"secondary": "meta_datas:create_index('secondary', {unique=false,parts={1,'string',2,'string'}}",
|
||||||
"id_search": "meta_datas:create_index('id_search', { type='hash' , parts={'transaction_id'}})"
|
"id_search": "meta_datas:create_index('id_search', { type='hash' , parts={'transaction_id'}})"
|
||||||
},
|
},
|
||||||
"pre_commits":
|
"pre_commits":
|
||||||
@ -114,7 +115,7 @@ SCHEMA_COMMANDS = {
|
|||||||
"blocks_tx": "blocks_tx:format{{name='transaction_id', type = 'string'}, {name = 'block_id', type = 'string'}}",
|
"blocks_tx": "blocks_tx:format{{name='transaction_id', type = 'string'}, {name = 'block_id', type = 'string'}}",
|
||||||
"elections":
|
"elections":
|
||||||
"elections:format({{name='election_id' , type='string'},{name='height' , type='integer'}, {name='is_concluded' , type='boolean'}})",
|
"elections:format({{name='election_id' , type='string'},{name='height' , type='integer'}, {name='is_concluded' , type='boolean'}})",
|
||||||
"meta_data": "meta_datas:format({{name='transaction_id' , type='string'}, {name='meta_data' , type='any'}})",
|
"meta_data": "meta_datas:format({{name='transaction_id' , type='string'}, {name='meta_data' , type='string'}})",
|
||||||
"pre_commits":
|
"pre_commits":
|
||||||
"pre_commits:format({{name='commit_id', type='string'}, {name='height',type='integer'}, {name='transactions',type=any}})",
|
"pre_commits:format({{name='commit_id', type='string'}, {name='height',type='integer'}, {name='transactions',type=any}})",
|
||||||
"validators":
|
"validators":
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
from secrets import token_hex
|
from secrets import token_hex
|
||||||
import copy
|
import copy
|
||||||
|
import json
|
||||||
from planetmint.transactions.common.memoize import HDict
|
from planetmint.transactions.common.memoize import HDict
|
||||||
|
|
||||||
|
|
||||||
@ -56,14 +57,14 @@ class TransactionDecompose:
|
|||||||
if metadata is None:
|
if metadata is None:
|
||||||
return
|
return
|
||||||
|
|
||||||
self._tuple_transaction["metadata"] = (self._transaction["id"], metadata)
|
self._tuple_transaction["metadata"] = (self._transaction["id"], json.dumps(metadata))
|
||||||
|
|
||||||
def __asset_check(self):
|
def __asset_check(self):
|
||||||
_asset = self._transaction.get("asset")
|
_asset = self._transaction.get("asset")
|
||||||
if _asset is None:
|
if _asset is None:
|
||||||
return
|
return
|
||||||
asset_id = _asset["id"] if _asset.get("id") is not None else self._transaction["id"]
|
asset_id = _asset["id"] if _asset.get("id") is not None else self._transaction["id"]
|
||||||
self._tuple_transaction["asset"] = (_asset, self._transaction["id"], asset_id)
|
self._tuple_transaction["asset"] = (json.loads(_asset), self._transaction["id"], asset_id)
|
||||||
|
|
||||||
def __prepare_inputs(self):
|
def __prepare_inputs(self):
|
||||||
_inputs = []
|
_inputs = []
|
||||||
@ -152,12 +153,15 @@ class TransactionCompose:
|
|||||||
return self.db_results["transaction"][0]
|
return self.db_results["transaction"][0]
|
||||||
|
|
||||||
def _get_asset(self):
|
def _get_asset(self):
|
||||||
|
print('_GET_ASSET')
|
||||||
_asset = iter(self.db_results["asset"])
|
_asset = iter(self.db_results["asset"])
|
||||||
|
print(_asset)
|
||||||
_res_asset = next(iter(next(_asset, iter([]))), None)
|
_res_asset = next(iter(next(_asset, iter([]))), None)
|
||||||
return _res_asset
|
print(_res_asset)
|
||||||
|
return json.loads(_res_asset)
|
||||||
|
|
||||||
def _get_metadata(self):
|
def _get_metadata(self):
|
||||||
return self.db_results["metadata"][0][1] if len(self.db_results["metadata"]) == 1 else None
|
return json.loads(self.db_results["metadata"][0][1]) if len(self.db_results["metadata"]) == 1 else None
|
||||||
|
|
||||||
def _get_inputs(self):
|
def _get_inputs(self):
|
||||||
_inputs = []
|
_inputs = []
|
||||||
|
|||||||
@ -42,7 +42,7 @@ class MetadataApi(Resource):
|
|||||||
pool = current_app.config['bigchain_pool']
|
pool = current_app.config['bigchain_pool']
|
||||||
|
|
||||||
with pool() as planet:
|
with pool() as planet:
|
||||||
args['table'] = 'metadata'
|
args['table'] = 'meta_data'
|
||||||
metadata = planet.text_search(**args)
|
metadata = planet.text_search(**args)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user