kopia lustrzana https://github.com/bugout-dev/moonstream
Add using read only user.
rodzic
3c59048459
commit
542f411449
|
@ -57,6 +57,12 @@ class StatusAPIException(Exception):
|
|||
"""
|
||||
|
||||
|
||||
class NameNormalizationException(Exception):
|
||||
"""
|
||||
Raised on actions when slugify can't normalize name.
|
||||
"""
|
||||
|
||||
|
||||
class LabelNames(Enum):
|
||||
ETHERSCAN_SMARTCONTRACT = "etherscan_smartcontract"
|
||||
COINMARKETCAP_TOKEN = "coinmarketcap_token"
|
||||
|
@ -539,8 +545,9 @@ def name_normalization(query_name: str) -> str:
|
|||
try:
|
||||
normalized_query_name = slugify(query_name, max_length=50)
|
||||
except Exception as e:
|
||||
logger.error(f"Error in query normalization.")
|
||||
raise MoonstreamHTTPException(status_code=500, internal_error=e)
|
||||
logger.error(f"Error in query normalization. Error: {e}")
|
||||
|
||||
raise NameNormalizationException(f"Can't normalize name:{query_name}")
|
||||
|
||||
return normalized_query_name
|
||||
|
||||
|
|
|
@ -10,11 +10,10 @@ from bugout.data import BugoutResources, BugoutJournalEntryContent, BugoutJourna
|
|||
from bugout.exceptions import BugoutResponseException
|
||||
from fastapi import APIRouter, Body, Request
|
||||
import requests
|
||||
from slugify import slugify # type: ignore
|
||||
|
||||
|
||||
from .. import data
|
||||
from ..actions import get_query_by_name, name_normalization
|
||||
from ..actions import get_query_by_name, name_normalization, NameNormalizationException
|
||||
from ..middleware import MoonstreamHTTPException
|
||||
from ..settings import (
|
||||
MOONSTREAM_ADMIN_ACCESS_TOKEN,
|
||||
|
@ -95,14 +94,19 @@ async def create_query_handler(
|
|||
used_queries: List[str] = [
|
||||
resource.resource_data["name"] for resource in resources.resources
|
||||
]
|
||||
|
||||
query_name = name_normalization(query_applied.name)
|
||||
try:
|
||||
query_name = name_normalization(query_applied.name)
|
||||
except NameNormalizationException:
|
||||
raise MoonstreamHTTPException(
|
||||
status_code=403,
|
||||
detail=f"Provided query name can't be normalize please select different.",
|
||||
)
|
||||
|
||||
if query_name in used_queries:
|
||||
|
||||
raise MoonstreamHTTPException(
|
||||
status_code=404,
|
||||
detail=f"Provided query name already use. Please remove it or use PUT /{query_name}",
|
||||
detail=f"Provided query name already use. Please remove it or use PUT /{query_name} for update query",
|
||||
)
|
||||
|
||||
try:
|
||||
|
@ -166,6 +170,11 @@ async def get_query_handler(request: Request, query_name: str) -> BugoutJournalE
|
|||
|
||||
try:
|
||||
query_id = get_query_by_name(query_name, token)
|
||||
except NameNormalizationException:
|
||||
raise MoonstreamHTTPException(
|
||||
status_code=403,
|
||||
detail=f"Provided query name can't be normalize please select different.",
|
||||
)
|
||||
except ResourceQueryFetchException as e:
|
||||
logger.error(f"Error in request query by name from brood resources: {e}")
|
||||
raise MoonstreamHTTPException(status_code=500, internal_error=e)
|
||||
|
@ -200,6 +209,11 @@ async def update_query_handler(
|
|||
|
||||
try:
|
||||
query_id = get_query_by_name(query_name, token)
|
||||
except NameNormalizationException:
|
||||
raise MoonstreamHTTPException(
|
||||
status_code=403,
|
||||
detail=f"Provided query name can't be normalize please select different.",
|
||||
)
|
||||
except ResourceQueryFetchException as e:
|
||||
logger.error(f"Error in request query by name from brood resources: {e}")
|
||||
raise MoonstreamHTTPException(status_code=500, internal_error=e)
|
||||
|
@ -242,6 +256,11 @@ async def update_query_data_handler(
|
|||
|
||||
try:
|
||||
query_id = get_query_by_name(query_name, token)
|
||||
except NameNormalizationException:
|
||||
raise MoonstreamHTTPException(
|
||||
status_code=403,
|
||||
detail=f"Provided query name can't be normalize please select different.",
|
||||
)
|
||||
except ResourceQueryFetchException as e:
|
||||
logger.error(f"Error in request query by name from brood resources: {e}")
|
||||
raise MoonstreamHTTPException(status_code=500, internal_error=e)
|
||||
|
@ -308,6 +327,11 @@ async def get_access_link_handler(
|
|||
|
||||
try:
|
||||
query_id = get_query_by_name(query_name, token)
|
||||
except NameNormalizationException:
|
||||
raise MoonstreamHTTPException(
|
||||
status_code=403,
|
||||
detail=f"Provided query name can't be normalize please select different.",
|
||||
)
|
||||
except ResourceQueryFetchException as e:
|
||||
logger.error(f"Error in request query by name from brood resources: {e}")
|
||||
raise MoonstreamHTTPException(status_code=500, internal_error=e)
|
||||
|
|
|
@ -5,8 +5,8 @@ from io import StringIO
|
|||
import csv
|
||||
|
||||
|
||||
import boto3 # type: ignore
|
||||
from moonstreamdb.db import yield_db_session_ctx
|
||||
import boto3
|
||||
from moonstreamdb.db import yield_db_read_only_session_ctx
|
||||
from ..settings import MOONSTREAM_QUERIES_BUCKET_PREFIX
|
||||
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
|
@ -38,7 +38,7 @@ def data_generate(
|
|||
"""
|
||||
s3 = boto3.client("s3")
|
||||
|
||||
with yield_db_session_ctx() as db_session:
|
||||
with yield_db_read_only_session_ctx() as db_session:
|
||||
|
||||
if file_type == "csv":
|
||||
csv_buffer = StringIO()
|
||||
|
|
|
@ -91,4 +91,4 @@ def yield_db_read_only_session() -> Session:
|
|||
session.close()
|
||||
|
||||
|
||||
yield_db_read_only_session_ctx = contextmanager(yield_db_session)
|
||||
yield_db_read_only_session_ctx = contextmanager(yield_db_read_only_session)
|
||||
|
|
|
@ -2,4 +2,4 @@
|
|||
Moonstream database version.
|
||||
"""
|
||||
|
||||
MOONSTREAMDB_VERSION = "0.2.2"
|
||||
MOONSTREAMDB_VERSION = "0.2.3"
|
||||
|
|
Ładowanie…
Reference in New Issue