pull/820/head
Andrey 2023-06-19 01:19:10 +03:00
rodzic d473db954c
commit 0a7a5a7d99
3 zmienionych plików z 39 dodań i 13 usunięć

Wyświetl plik

@ -239,7 +239,7 @@ async def queries_data_update_handler(
requested_query = request_data.query
if request_data.blockchain:
if request_data.blockchain not in AvailableBlockchainType.values():
if request_data.blockchain not in [i.value for i in AvailableBlockchainType]:
logger.error(f"Unknown blockchain {request_data.blockchain}")
raise MoonstreamHTTPException(status_code=403, detail="Unknown blockchain")
@ -247,22 +247,22 @@ async def queries_data_update_handler(
requested_query = (
requested_query.replace(
"transaction_table",
"__transactions_table__",
get_transaction_model(blockchain).__tablename__,
)
.replace(
"block_table",
"__blocks_table__",
get_block_model(blockchain).__tablename__,
)
.replace(
"label_table",
"__labels_table__",
get_label_model(blockchain).__tablename__,
)
)
# Check if it can transform to TextClause
try:
query = text(request_data.query)
query = text(requested_query)
except Exception as e:
logger.error(
f"Can't parse query {query_id} to TextClause in drones /query_update endpoint, error: {e}"

Wyświetl plik

@ -15,7 +15,7 @@ from moonstreamdb.db import SessionLocal
from ..settings import BUGOUT_BROOD_URL, BUGOUT_SPIRE_URL, MOONSTREAM_APPLICATION_ID
from ..web3_provider import yield_web3_provider
from . import subscription_types, subscriptions, moonworm_tasks
from . import subscription_types, subscriptions, moonworm_tasks, queries
from .migrations import (
checksum_address,
update_dashboard_subscription_key,
@ -478,6 +478,33 @@ This CLI is configured to work with the following API URLs:
parser_moonworm_tasks_add.set_defaults(func=moonworm_tasks_add_subscription_handler)
queries_parser = subcommands.add_parser(
"queries", description="Manage Moonstream queries"
)
queries_parser.set_defaults(func=lambda _: queries_parser.print_help())
queries_subcommands = queries_parser.add_subparsers(
description="Query commands"
)
create_query_parser = queries_subcommands.add_parser(
"create-template", description="Create query template"
)
create_query_parser.add_argument(
"--query-file",
required=True,
type=argparse.FileType("r"),
help="File containing the query to add",
)
create_query_parser.add_argument(
"-n", "--name", required=True, help="Name for the new query"
)
create_query_parser.set_defaults(func=queries.create_query_template)
args = parser.parse_args()
args.func(args)

Wyświetl plik

@ -292,10 +292,9 @@ async def update_query_data_handler(
entries = bc.search(
token=MOONSTREAM_ADMIN_ACCESS_TOKEN,
journal_id=MOONSTREAM_QUERIES_JOURNAL_ID,
query=f"tag:template",
query=f"tag:query_template tag:query_url:{query_name_normalized}",
filters=[
f"context_type:{MOONSTREAM_QUERY_TEMPLATE_CONTEXT_TYPE}",
f"context_id:{query_name_normalized}",
],
limit=1,
)
@ -314,6 +313,7 @@ async def update_query_data_handler(
detail=f"Provided query name can't be normalize please select different.",
)
except Exception as e:
logger.error(f"Error in get query: {str(e)}")
raise MoonstreamHTTPException(status_code=500, internal_error=e)
try:
@ -335,7 +335,7 @@ async def update_query_data_handler(
status_code=403, detail="Query not approved yet."
)
else:
query_id = entries.results[0].id
query_id = entries.results[0].entry_url.split("/")[-1]
s3_response = None
@ -397,10 +397,9 @@ async def get_access_link_handler(
entries = bc.search(
token=MOONSTREAM_ADMIN_ACCESS_TOKEN,
journal_id=MOONSTREAM_QUERIES_JOURNAL_ID,
query=f"tag:template",
query=f"tag:query_template tag:query_url:{query_name_normalized}",
filters=[
f"context_type:{MOONSTREAM_QUERY_TEMPLATE_CONTEXT_TYPE}",
f"context_id:{query_name_normalized}",
f"context_type:{MOONSTREAM_QUERY_TEMPLATE_CONTEXT_TYPE}"
],
limit=1,
)
@ -529,7 +528,7 @@ def get_suggested_queries(
Return set of suggested queries for user
"""
filters = ["#type:query", "#approved", "#template"]
filters = ["tag:approved", "tag:query_template"]
if supported_interfaces:
filters.extend(