push node module 'caus lazy
ingnore node_modules, dont't be stupid
This commit is contained in:
6
back/Dockerfile
Normal file
6
back/Dockerfile
Normal 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" ]
|
||||
Binary file not shown.
38
back/main.py
38
back/main.py
@@ -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}")
|
||||
|
||||
Binary file not shown.
15
back/src/back.egg-info/PKG-INFO
Normal file
15
back/src/back.egg-info/PKG-INFO
Normal 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`
|
||||
10
back/src/back.egg-info/SOURCES.txt
Normal file
10
back/src/back.egg-info/SOURCES.txt
Normal 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
|
||||
1
back/src/back.egg-info/dependency_links.txt
Normal file
1
back/src/back.egg-info/dependency_links.txt
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
2
back/src/back.egg-info/requires.txt
Normal file
2
back/src/back.egg-info/requires.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
fastapi[standard]>=0.125.0
|
||||
pymongo>=4.15.5
|
||||
3
back/src/back.egg-info/top_level.txt
Normal file
3
back/src/back.egg-info/top_level.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
__init__
|
||||
import
|
||||
mongo
|
||||
@@ -1,5 +1,5 @@
|
||||
from pymongo import MongoClient
|
||||
def getMongo(uri: str = "localhost:27017"):
|
||||
def getMongo(uri = "localhost:27017"):
|
||||
uri = uri
|
||||
|
||||
client = MongoClient(uri)
|
||||
|
||||
Reference in New Issue
Block a user