From 5b59427d4f8b34f69a42394016391a71d2180f85 Mon Sep 17 00:00:00 2001 From: Luke Van Seters Date: Thu, 18 Nov 2021 13:43:21 -0500 Subject: [PATCH] Write prices. Ignore duplicates --- mev_inspect/crud/prices.py | 17 +++++++++++++++++ mev_inspect/models/prices.py | 11 +++++++++++ 2 files changed, 28 insertions(+) create mode 100644 mev_inspect/crud/prices.py create mode 100644 mev_inspect/models/prices.py diff --git a/mev_inspect/crud/prices.py b/mev_inspect/crud/prices.py new file mode 100644 index 0000000..97f4166 --- /dev/null +++ b/mev_inspect/crud/prices.py @@ -0,0 +1,17 @@ +from typing import List + +from sqlalchemy.dialects.postgresql import insert + +from mev_inspect.models.prices import PriceModel +from mev_inspect.schemas.prices import Price + + +def write_prices(db_session, prices: List[Price]) -> None: + insert_statement = ( + insert(PriceModel.__table__) + .values([price.dict() for price in prices]) + .on_conflict_do_nothing() + ) + + db_session.execute(insert_statement) + db_session.commit() diff --git a/mev_inspect/models/prices.py b/mev_inspect/models/prices.py new file mode 100644 index 0000000..cb41c83 --- /dev/null +++ b/mev_inspect/models/prices.py @@ -0,0 +1,11 @@ +from sqlalchemy import Column, Numeric, String, TIMESTAMP + +from .base import Base + + +class PriceModel(Base): + __tablename__ = "usd_prices" + + timestamp = Column(TIMESTAMP, nullable=False, primary_key=True) + usd_price = Column(Numeric, nullable=False) + token_address = Column(String, nullable=False, primary_key=True)