From 69e375ab616157d11d3bdc84399ada56a9b43ff5 Mon Sep 17 00:00:00 2001 From: kompotkot Date: Wed, 4 Oct 2023 11:27:40 +0000 Subject: [PATCH] tx_hash for call_requests field --- .../7191eb70e99e_tx_hash_for_call_requests.py | 30 +++++++++++++++++++ engineapi/engineapi/contracts_actions.py | 1 + engineapi/engineapi/data.py | 1 + engineapi/engineapi/models.py | 1 + 4 files changed, 33 insertions(+) create mode 100644 engineapi/alembic/versions/7191eb70e99e_tx_hash_for_call_requests.py diff --git a/engineapi/alembic/versions/7191eb70e99e_tx_hash_for_call_requests.py b/engineapi/alembic/versions/7191eb70e99e_tx_hash_for_call_requests.py new file mode 100644 index 00000000..fc9a1e42 --- /dev/null +++ b/engineapi/alembic/versions/7191eb70e99e_tx_hash_for_call_requests.py @@ -0,0 +1,30 @@ +"""Tx hash for call requests + +Revision ID: 7191eb70e99e +Revises: 4f05d212ea49 +Create Date: 2023-10-04 11:23:12.516797 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '7191eb70e99e' +down_revision = '4f05d212ea49' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('call_requests', sa.Column('tx_hash', sa.VARCHAR(length=256), nullable=True)) + op.create_unique_constraint(op.f('uq_call_requests_tx_hash'), 'call_requests', ['tx_hash']) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_constraint(op.f('uq_call_requests_tx_hash'), 'call_requests', type_='unique') + op.drop_column('call_requests', 'tx_hash') + # ### end Alembic commands ### diff --git a/engineapi/engineapi/contracts_actions.py b/engineapi/engineapi/contracts_actions.py index 6cab6912..3d9e01d0 100644 --- a/engineapi/engineapi/contracts_actions.py +++ b/engineapi/engineapi/contracts_actions.py @@ -100,6 +100,7 @@ def parse_call_request_response( method=obj[0].method, request_id=str(obj[0].request_id), parameters=obj[0].parameters, + tx_hash=obj[0].tx_hash, expires_at=obj[0].expires_at, live_at=obj[0].live_at, created_at=obj[0].created_at, diff --git a/engineapi/engineapi/data.py b/engineapi/engineapi/data.py index 5fa20255..dd601efe 100644 --- a/engineapi/engineapi/data.py +++ b/engineapi/engineapi/data.py @@ -306,6 +306,7 @@ class CallRequestResponse(BaseModel): method: str request_id: str parameters: Dict[str, Any] + tx_hash: Optional[str] = None expires_at: Optional[datetime] = None live_at: datetime created_at: datetime diff --git a/engineapi/engineapi/models.py b/engineapi/engineapi/models.py index 10d2e357..f763fea9 100644 --- a/engineapi/engineapi/models.py +++ b/engineapi/engineapi/models.py @@ -313,6 +313,7 @@ class CallRequest(Base): method = Column(String, nullable=False, index=True) request_id = Column(DECIMAL, nullable=False, index=True) parameters = Column(JSONB, nullable=False) + tx_hash = Column(VARCHAR(256), unique=True, nullable=True) expires_at = Column(DateTime(timezone=True), nullable=True, index=True) live_at = Column(DateTime(timezone=True), server_default=utcnow(), nullable=False)