Sfoglia il codice sorgente

Changed some integers to floats

main
Madiwka 2 anni fa
parent
commit
9a532739de
12 ha cambiato i file con 66 aggiunte e 9 eliminazioni
  1. +13
    -0
      app/Dockerfile
  2. +6
    -0
      app/apis/v1/route_user.py
  3. +1
    -0
      app/core/config.py
  4. +2
    -2
      app/db/models/carpart.py
  5. +2
    -2
      app/db/models/fuelingtask.py
  6. +3
    -2
      app/db/models/vehicle.py
  7. +0
    -1
      app/python
  8. +9
    -0
      app/requirements.txt
  9. +1
    -0
      app/schemas/user.py
  10. +1
    -0
      app/start_service.sh
  11. +25
    -0
      docker-compose.yml
  12. +3
    -2
      requirements.txt

+ 13
- 0
app/Dockerfile Vedi File

@@ -0,0 +1,13 @@
FROM python:3.11-slim

WORKDIR /app
COPY ./requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
ENV PYTHONPATH "${PYTHONPATH}:/app/core:/:/app:/app/app/core:/app/app"
COPY . .



EXPOSE 2764
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "2764"]


+ 6
- 0
app/apis/v1/route_user.py Vedi File

@@ -4,6 +4,7 @@ from sqlalchemy.orm import Session
from fastapi import Depends from fastapi import Depends
from typing import List, Annotated from typing import List, Annotated
from apis.v1.route_auth import get_current_user from apis.v1.route_auth import get_current_user
from core.config import Settings
from db.models.user import User from db.models.user import User
from schemas.user import UserCreate, ShowUser, ShowDriver, DriverCreate from schemas.user import UserCreate, ShowUser, ShowDriver, DriverCreate
from db.session import get_db from db.session import get_db
@@ -26,6 +27,11 @@ def create_user(
db: Session = Depends(get_db), db: Session = Depends(get_db),
current_user: User = Depends(get_current_user), current_user: User = Depends(get_current_user),
): ):
if user.Role not in Settings.ALLOWED_ROLES:
raise HTTPException(
status_code=400,
detail=f"Status {status} is not allowed. Allowed status are {settings.ALLOWED_TASK_STATUS}",
)
if current_user.Role != "Admin": if current_user.Role != "Admin":
raise HTTPException( raise HTTPException(
status_code=403, detail="You are not authorized to perform this action" status_code=403, detail="You are not authorized to perform this action"


+ 1
- 0
app/core/config.py Vedi File

@@ -11,6 +11,7 @@ class Settings:
SECRET_KEY: str = "tH357aC6oA7ofCaN3yTffYkRh" SECRET_KEY: str = "tH357aC6oA7ofCaN3yTffYkRh"
ALGORITHM: str = "HS256" ALGORITHM: str = "HS256"
ALLOWED_TASK_STATUS: list = ["Pending", "In Progress", "Completed", "Cancelled"] ALLOWED_TASK_STATUS: list = ["Pending", "In Progress", "Completed", "Cancelled"]
ALLOWED_ROLES: list = ["Admin", "Driver", "Maintenance", "Fueling"]




settings = Settings() settings = Settings()


+ 2
- 2
app/db/models/carpart.py Vedi File

@@ -1,4 +1,4 @@
from sqlalchemy import Column, Integer, String, ForeignKey, LargeBinary
from sqlalchemy import Column, Float, Integer, String, ForeignKey, LargeBinary
from sqlalchemy.orm import relationship from sqlalchemy.orm import relationship
from db.base import Base from db.base import Base


@@ -12,4 +12,4 @@ class CarPart(Base):
Number = Column(String, nullable=False) Number = Column(String, nullable=False)
Condition = Column(String, nullable=False) Condition = Column(String, nullable=False)
ImageURL = Column(LargeBinary, nullable=False) ImageURL = Column(LargeBinary, nullable=False)
Cost = Column(Integer, nullable=False)
Cost = Column(Float, nullable=False)

+ 2
- 2
app/db/models/fuelingtask.py Vedi File

@@ -1,4 +1,4 @@
from sqlalchemy import Column, Integer, String, ForeignKey, DateTime, LargeBinary
from sqlalchemy import Column, Float, Integer, String, ForeignKey, DateTime, LargeBinary
from sqlalchemy.orm import relationship from sqlalchemy.orm import relationship
from db.base import Base from db.base import Base


@@ -11,7 +11,7 @@ class FuelingTask(Base):
Date = Column(DateTime, nullable=False) Date = Column(DateTime, nullable=False)
Description = Column(String, nullable=True) Description = Column(String, nullable=True)
Cost = Column(Integer, nullable=False) Cost = Column(Integer, nullable=False)
FuelRefilled = Column(Integer, nullable=False)
FuelRefilled = Column(Float, nullable=False)
GasStationName = Column(String, nullable=False) GasStationName = Column(String, nullable=False)
ImageBefore = Column(LargeBinary, nullable=False) ImageBefore = Column(LargeBinary, nullable=False)
ImageAfter = Column(LargeBinary, nullable=False) ImageAfter = Column(LargeBinary, nullable=False)


+ 3
- 2
app/db/models/vehicle.py Vedi File

@@ -1,6 +1,7 @@
# Postgres table model for vehicles # Postgres table model for vehicles
from sqlalchemy import ( from sqlalchemy import (
Column, Column,
Float,
Integer, Integer,
String, String,
ARRAY, ARRAY,
@@ -16,8 +17,8 @@ class Vehicle(Base):
LicensePlate = Column(String, nullable=False) LicensePlate = Column(String, nullable=False)
Type = Column(String, nullable=False) Type = Column(String, nullable=False)
CurrentLocation = Column(ARRAY(String), nullable=True) CurrentLocation = Column(ARRAY(String), nullable=True)
Fuel = Column(Integer, nullable=False)
Mileage = Column(Integer, nullable=False)
Fuel = Column(Float, nullable=False)
Mileage = Column(Float, nullable=False)
Status = Column(String, nullable=False) Status = Column(String, nullable=False)
Capacity = Column(Integer, nullable=False) Capacity = Column(Integer, nullable=False)
DriverHistory = Column(ARRAY(Integer), nullable=True) DriverHistory = Column(ARRAY(Integer), nullable=True)


+ 0
- 1
app/python Vedi File

@@ -1 +0,0 @@
/usr/local/bin/python3.10/usr/local/bin/python

+ 9
- 0
app/requirements.txt Vedi File

@@ -0,0 +1,9 @@
fastapi[all]
pydantic
sqlalchemy
psycopg2-binary
alembic==1.12.0
passlib
python-jose==3.3.0
python-multipart==0.0.6
requests

+ 1
- 0
app/schemas/user.py Vedi File

@@ -13,6 +13,7 @@ class UserCreate(BaseModel):
GovernmentId: str = Field(...) GovernmentId: str = Field(...)
Address: str = Field(...) Address: str = Field(...)
Email: EmailStr = Field(...) Email: EmailStr = Field(...)
Role: str = Field(...)




class DriverCreate(UserCreate): class DriverCreate(UserCreate):


+ 1
- 0
app/start_service.sh Vedi File

@@ -0,0 +1 @@
uvicorn main:app --host 0.0.0.0 --port 2764

+ 25
- 0
docker-compose.yml Vedi File

@@ -0,0 +1,25 @@
version: "3.11"

services:
backend:
build: app
ports:
- "8000:2764"
depends_on:
- db


db:
image: "postgres"
restart: always
environment:
POSTGRES_USER: VMSBase
POSTGRES_PASSWORD: VMSBasePass
POSTGRES_DB: VMSData
POSTGRES_PORT: 5432
expose:
- "5432"

networks:
practice:

+ 3
- 2
requirements.txt Vedi File

@@ -1,8 +1,9 @@
fastapi[all] fastapi[all]
pydantic pydantic
sqlalchemy sqlalchemy
psycopg2
psycopg2-binary
alembic==1.12.0 alembic==1.12.0
passlib passlib
python-jose==3.3.0 python-jose==3.3.0
python-multipart==0.0.6
python-multipart==0.0.6
requests

Caricamento…
Annulla
Salva