commit de448a35d14d581950b03c6dfca75ad39d577552 Author: Anekdotin Date: Tue Mar 26 13:17:04 2024 -0400 first commit diff --git a/Dockerfile b/Dockerfile new file mode 100755 index 0000000..c6164f9 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,19 @@ +FROM python:3.12-bullseye + +ENV PYTHONFAULTHANDLER=1 + +ENV PYTHONUNBUFFERED=1 + +RUN mkdir -p /app + +COPY requirements.txt /app + +WORKDIR /app + +RUN pip3 install -r requirements.txt + +EXPOSE 8000 + +COPY . /app + + diff --git a/__pycache__/main.cpython-312.pyc b/__pycache__/main.cpython-312.pyc new file mode 100644 index 0000000..4621194 Binary files /dev/null and b/__pycache__/main.cpython-312.pyc differ diff --git a/app/__init__.py b/app/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/__pycache__/__init__.cpython-312.pyc b/app/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000..8fe2c5d Binary files /dev/null and b/app/__pycache__/__init__.cpython-312.pyc differ diff --git a/app/__pycache__/database.cpython-312.pyc b/app/__pycache__/database.cpython-312.pyc new file mode 100644 index 0000000..9406172 Binary files /dev/null and b/app/__pycache__/database.cpython-312.pyc differ diff --git a/app/__pycache__/main.cpython-312.pyc b/app/__pycache__/main.cpython-312.pyc new file mode 100644 index 0000000..9a23e4e Binary files /dev/null and b/app/__pycache__/main.cpython-312.pyc differ diff --git a/app/database.py b/app/database.py new file mode 100644 index 0000000..0242857 --- /dev/null +++ b/app/database.py @@ -0,0 +1,21 @@ +from sqlalchemy import create_engine +from sqlalchemy.engine import URL +from sqlalchemy.orm import sessionmaker +from sqlalchemy.orm import declarative_base + +url = URL.create( + drivername="postgresql", + username="postgres", + password="password", + host="192.168.1.204", + database="eamco", + port=5432 +) + +engine = create_engine(url) + +Session = sessionmaker(autocommit=False, autoflush=False, bind=engine) +session = Session() + +Base = declarative_base() +Base.metadata.create_all(engine) \ No newline at end of file diff --git a/app/dependencies.py b/app/dependencies.py new file mode 100644 index 0000000..49d6ead --- /dev/null +++ b/app/dependencies.py @@ -0,0 +1,13 @@ +from typing import Annotated + +from fastapi import Header, HTTPException + + +async def get_token_header(x_token: Annotated[str, Header()]): + if x_token != "fake-super-secret-token": + raise HTTPException(status_code=400, detail="X-Token header invalid") + + +async def get_query_token(token: str): + if token != "jessica": + raise HTTPException(status_code=400, detail="No Jessica token provided") \ No newline at end of file diff --git a/app/internal/__init__.py b/app/internal/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/internal/admin.py b/app/internal/admin.py new file mode 100644 index 0000000..e69de29 diff --git a/app/main.py b/app/main.py new file mode 100644 index 0000000..24a1093 --- /dev/null +++ b/app/main.py @@ -0,0 +1,21 @@ + +from fastapi import FastAPI +from app.routers import printstatus, command + + + + + + +app = FastAPI() + +app.include_router(printstatus.router) +app.include_router(command.router) + + + +@app.get("/") +def read_root(): + return {"Hello": "World"} + + diff --git a/app/models/__init__.py b/app/models/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/models/__pycache__/__init__.cpython-312.pyc b/app/models/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000..1e1a8d4 Binary files /dev/null and b/app/models/__pycache__/__init__.cpython-312.pyc differ diff --git a/app/models/__pycache__/delivery.cpython-312.pyc b/app/models/__pycache__/delivery.cpython-312.pyc new file mode 100644 index 0000000..916210b Binary files /dev/null and b/app/models/__pycache__/delivery.cpython-312.pyc differ diff --git a/app/models/delivery.py b/app/models/delivery.py new file mode 100644 index 0000000..6696629 --- /dev/null +++ b/app/models/delivery.py @@ -0,0 +1,52 @@ +from sqlalchemy import Column, Integer,\ + Integer, DECIMAL, Text,\ + VARCHAR, TIMESTAMP, Date +from datetime import datetime +from app.database import Base + + +class Delivery(Base): + __tablename__ = "delivery_delivery" + + id = Column(Integer, + primary_key=True, + autoincrement=True, + unique=False) + + customer_id = Column(Integer) + customer_name = Column(VARCHAR(1000)) + customer_address = Column(VARCHAR(1000)) + customer_town = Column(VARCHAR(140)) + customer_state = Column(VARCHAR(140)) + customer_zip = Column(Integer) + + gallons_ordered = Column(Integer) + customer_asked_for_fill = Column(Integer) + gallons_delivered =Column(DECIMAL(50, 2)) + customer_filled = Column(Integer) + + delivery_status = Column(Integer) + when_ordered = Column(TIMESTAMP(), default=datetime.utcnow()) + when_delivered = Column(TIMESTAMP(), default=None) + expected_delivery_date = Column(Date(), default=None) + automatic = Column(Integer) + oil_id = Column(Integer) + supplier_price = Column(DECIMAL(50, 2)) + customer_price = Column(DECIMAL(50, 2)) + customer_temperature = Column(DECIMAL(50, 2)) + dispatcher_notes = Column(Text()) + prime = Column(Integer) + same_day = Column(Integer) + payment_type = Column(Integer) + payment_card_id = Column(Integer) + cash_recieved = Column(DECIMAL(50, 2)) + + driver_employee_id = Column(Integer) + driver_first_name = Column(VARCHAR(140)) + driver_last_name = Column(VARCHAR(140)) + + pre_charge_amount = Column(DECIMAL(50, 2)) + total_price = Column(DECIMAL(50, 2)) + final_price = Column(DECIMAL(50, 2)) + + diff --git a/app/routers/__init__.py b/app/routers/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/routers/__pycache__/__init__.cpython-312.pyc b/app/routers/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000..6d94662 Binary files /dev/null and b/app/routers/__pycache__/__init__.cpython-312.pyc differ diff --git a/app/routers/__pycache__/command.cpython-312.pyc b/app/routers/__pycache__/command.cpython-312.pyc new file mode 100644 index 0000000..3f75949 Binary files /dev/null and b/app/routers/__pycache__/command.cpython-312.pyc differ diff --git a/app/routers/__pycache__/printstatus.cpython-312.pyc b/app/routers/__pycache__/printstatus.cpython-312.pyc new file mode 100644 index 0000000..1967611 Binary files /dev/null and b/app/routers/__pycache__/printstatus.cpython-312.pyc differ diff --git a/app/routers/command.py b/app/routers/command.py new file mode 100644 index 0000000..630dfc9 --- /dev/null +++ b/app/routers/command.py @@ -0,0 +1,16 @@ +from fastapi import APIRouter, Depends, HTTPException +from app.database import session +from app.models.delivery import Delivery + + +router = APIRouter( + prefix="/command", + tags=["command"], + responses={404: {"description": "Not found"}}, +) + + +@router.get("/") +async def read_items(): + x = session.query(Delivery).first() + return {"x": x.id} \ No newline at end of file diff --git a/app/routers/printstatus.py b/app/routers/printstatus.py new file mode 100644 index 0000000..dab9e77 --- /dev/null +++ b/app/routers/printstatus.py @@ -0,0 +1,10 @@ +from fastapi import APIRouter, Depends, HTTPException + +router = APIRouter( + prefix="/status", + tags=["status"], + responses={404: {"description": "Not found"}}, +) +@router.get("/") +async def read_items(): + return {"Hello": "World"} \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..4e961b3 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,4 @@ +fastapi +uvicorn[standard] +psycopg2-binary +sqlalchemy \ No newline at end of file