first commit

This commit is contained in:
2024-03-26 13:17:04 -04:00
commit de448a35d1
22 changed files with 156 additions and 0 deletions

19
Dockerfile Executable file
View File

@@ -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

Binary file not shown.

0
app/__init__.py Normal file
View File

Binary file not shown.

Binary file not shown.

Binary file not shown.

21
app/database.py Normal file
View File

@@ -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)

13
app/dependencies.py Normal file
View File

@@ -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")

0
app/internal/__init__.py Normal file
View File

0
app/internal/admin.py Normal file
View File

21
app/main.py Normal file
View File

@@ -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"}

0
app/models/__init__.py Normal file
View File

Binary file not shown.

Binary file not shown.

52
app/models/delivery.py Normal file
View File

@@ -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))

0
app/routers/__init__.py Normal file
View File

Binary file not shown.

Binary file not shown.

Binary file not shown.

16
app/routers/command.py Normal file
View File

@@ -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}

View File

@@ -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"}

4
requirements.txt Normal file
View File

@@ -0,0 +1,4 @@
fastapi
uvicorn[standard]
psycopg2-binary
sqlalchemy