Switched call requests request id column to decimals

pull/892/head
kompotkot 2023-08-10 15:42:08 +00:00
rodzic f1a84d8cec
commit 5e03473705
4 zmienionych plików z 13 dodań i 13 usunięć

Wyświetl plik

@ -1,4 +1,4 @@
"""Request ID bytes column
"""Request ID decimal column
Revision ID: 040f2dfde5a5
Revises: b4257b10daaf
@ -18,7 +18,7 @@ depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.add_column('call_requests', sa.Column('request_id', sa.BigInteger(), nullable=True))
op.add_column('call_requests', sa.Column('request_id', sa.DECIMAL(), nullable=True))
op.create_index(op.f('ix_call_requests_request_id'), 'call_requests', ['request_id'], unique=False)
op.create_unique_constraint(op.f('uq_call_requests_registered_contract_id'), 'call_requests', ['registered_contract_id', 'request_id'])
@ -56,15 +56,15 @@ WHERE
DELETE FROM call_requests WHERE id IN (SELECT id FROM DeleteDuplicates);""")
# Fulfill not empty requestID values
op.execute("UPDATE call_requests SET request_id = CAST(parameters->>'requestID' AS bigint) WHERE parameters->>'requestID' IS NOT NULL;")
op.execute("UPDATE call_requests SET request_id = CAST(parameters->>'requestID' AS DECIMAL) WHERE parameters->>'requestID' IS NOT NULL;")
# Fulfill raw types with random requestID
op.execute("UPDATE call_requests SET request_id = FLOOR(RANDOM()* 120500600 + 120400600) WHERE parameters->>'requestID' IS NULL;")
op.alter_column("call_requests", "request_id", nullable=False)
# Other
op.create_unique_constraint(op.f('uq_blockchains_id'), 'blockchains', ['id'])
op.create_unique_constraint(op.f('uq_call_request_types_name'), 'call_request_types', ['name'])
op.create_unique_constraint(op.f('uq_metatx_requesters_id'), 'metatx_requesters', ['id'])
# op.create_unique_constraint(op.f('uq_blockchains_id'), 'blockchains', ['id'])
# op.create_unique_constraint(op.f('uq_call_request_types_name'), 'call_request_types', ['name'])
# op.create_unique_constraint(op.f('uq_metatx_requesters_id'), 'metatx_requesters', ['id'])
# ### end Alembic commands ###

Wyświetl plik

@ -98,7 +98,7 @@ def parse_call_request_response(
call_request_type=obj[0].call_request_type_name,
caller=obj[0].caller,
method=obj[0].method,
request_id=obj[0].request_id,
request_id=str(obj[0].request_id),
parameters=obj[0].parameters,
expires_at=obj[0].expires_at,
created_at=obj[0].created_at,

Wyświetl plik

@ -271,7 +271,7 @@ class CallSpecification(BaseModel):
caller: str
method: str
call_request_type: str = "dropper-v0.2.0"
request_id: int
request_id: str
parameters: Dict[str, Any]
@validator("caller")
@ -303,7 +303,7 @@ class CallRequestResponse(BaseModel):
call_request_type: Optional[str] = None
caller: str
method: str
request_id: int
request_id: str
parameters: Dict[str, Any]
expires_at: Optional[datetime] = None
created_at: datetime

Wyświetl plik

@ -1,6 +1,7 @@
import uuid
from sqlalchemy import (
DECIMAL,
VARCHAR,
BigInteger,
Boolean,
@ -8,15 +9,15 @@ from sqlalchemy import (
DateTime,
ForeignKey,
Index,
Integer,
MetaData,
String,
UniqueConstraint,
Integer,
)
from sqlalchemy.dialects.postgresql import JSONB, UUID
from sqlalchemy.ext.compiler import compiles
from sqlalchemy.orm import relationship
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship
from sqlalchemy.sql import and_, expression
"""
@ -310,8 +311,7 @@ class CallRequest(Base):
caller = Column(VARCHAR(256), nullable=False, index=True)
method = Column(String, nullable=False, index=True)
request_id = Column(BigInteger, nullable=False, index=True)
# TODO(zomglings): Should we conditional indices on parameters depending on the contract type?
request_id = Column(DECIMAL, nullable=False, index=True)
parameters = Column(JSONB, nullable=False)
expires_at = Column(DateTime(timezone=True), nullable=True, index=True)