push node module 'caus lazy

ingnore node_modules, dont't be stupid
This commit is contained in:
Awen Lelu
2025-12-18 18:47:50 +01:00
parent 4db2049e08
commit e33771883c
40 changed files with 4151 additions and 17 deletions

6
back/Dockerfile Normal file
View File

@@ -0,0 +1,6 @@
from docker.io/library/python@sha256:6bf9e7405389a4409832f3adee8a906fbe03982449b9d8df6a323f00109476bb
run [ "pip", "install", "uv" ]
copy . /app
workdir /app
run ["uv", "sync"]
cmd [ "uv", "run", "fastapi", "run", "main.py" ]

View File

@@ -1,9 +1,9 @@
from typing import Union
from fastapi.middleware.cors import CORSMiddleware
from fastapi import FastAPI, HTTPException
from src.mongo import getMongo
from pydantic import BaseModel
from uuid import UUID, uuid4
from http import HTTPStatus
import os
class DirectorInput(BaseModel):
@@ -13,7 +13,7 @@ class DirectorInput(BaseModel):
class Director(DirectorInput):
id: str
_id: str
class MovieInput(BaseModel):
@@ -24,7 +24,7 @@ class MovieInput(BaseModel):
class Movie(MovieInput):
id: str
_id: str
director: Director
@@ -37,13 +37,21 @@ class ReviewInput(BaseModel):
class Review(ReviewInput):
id: str
_id: str
db, client = getMongo()
db, client = getMongo(os.environ.get("DB_URI", None))
app = FastAPI()
app.add_middleware(
CORSMiddleware,
allow_origins=['*'],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
@app.get("/directors")
def getDirectors() -> list[Director]:
@@ -57,7 +65,7 @@ def getDirector(director_id: str):
@app.post("/directors")
def addDirector(director: DirectorInput) -> Director:
director = Director(**director.model_dump(), id=str(uuid4()))
director = Director(**director.model_dump())
db["directors"].insert_one(director.model_dump())
return director
@@ -66,9 +74,9 @@ def addDirector(director: DirectorInput) -> Director:
def updateDirector(director_id: str, director: DirectorInput) -> Director:
db["directors"].replace_one(
{"id": director_id},
Director(id=director_id, **director.model_dump()).model_dump(),
Director(_id=director_id, **director.model_dump()).model_dump(),
)
return Director(id=director_id, **director.model_dump())
return Director(_id=director_id, **director.model_dump())
@app.delete("/directors/{director_id}")
@@ -97,7 +105,7 @@ def addMovie(movie: MovieInput) -> Movie:
raise HTTPException(
status_code=404, detail=f"director with id '{movie.director_id}' not found"
)
movie = Movie(**movie.model_dump(), id=str(uuid4()))
movie = Movie(**movie.model_dump())
db["movies"].insert_one(movie.model_dump())
return movie
@@ -109,9 +117,9 @@ def updateMovie(movie_id: str, movie: MovieInput) -> Movie:
db["movies"].replace_one(
{"id": movie_id},
Movie(id=movie_id, **movie.model_dump()).model_dump(),
Movie(_id=movie_id, **movie.model_dump()).model_dump(),
)
return Movie(id=movie_id, **movie.model_dump())
return Movie(_id=movie_id, **movie.model_dump())
@app.delete("/movies/{movie_id}")
@@ -139,7 +147,7 @@ def addReview(review: ReviewInput) -> Review:
raise HTTPException(
status_code=404, detail=f"movie with id '{review.movie_id}' not found"
)
review = Review(**review.model_dump(), id=str(uuid4()))
review = Review(**review.model_dump())
db["reviews"].insert_one(review.model_dump())
return review
@@ -151,9 +159,9 @@ def updateReview(review_id: str, review: Review) -> Review:
db["reviews"].replace_one(
{"id": review_id},
Review(id=review_id, **review.model_dump()).model_dump(),
Review(_id=review_id, **review.model_dump()).model_dump(),
)
return Review(id=review_id, **review.model_dump())
return Review(_id=review_id, **review.model_dump())
@app.delete("/reviews/{review_id}")

View File

@@ -0,0 +1,15 @@
Metadata-Version: 2.4
Name: back
Version: 0.1.0
Summary: Add your description here
Requires-Python: >=3.13
Description-Content-Type: text/markdown
Requires-Dist: fastapi[standard]>=0.125.0
Requires-Dist: pymongo>=4.15.5
# Installation
download dependencies and create a venv for the project
`uv sync`
# Test
`uv run fastapi dev test.py`

View File

@@ -0,0 +1,10 @@
README.md
pyproject.toml
src/__init__.py
src/import.py
src/mongo.py
src/back.egg-info/PKG-INFO
src/back.egg-info/SOURCES.txt
src/back.egg-info/dependency_links.txt
src/back.egg-info/requires.txt
src/back.egg-info/top_level.txt

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1,2 @@
fastapi[standard]>=0.125.0
pymongo>=4.15.5

View File

@@ -0,0 +1,3 @@
__init__
import
mongo

View File

View File

@@ -1,5 +1,5 @@
from pymongo import MongoClient
def getMongo(uri: str = "localhost:27017"):
def getMongo(uri = "localhost:27017"):
uri = uri
client = MongoClient(uri)