Commit 7fbd490d by rakesh.pv

very i nitial buidl

parents
# Default ignored files
/shelf/
/workspace.xml
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="PyPep8NamingInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true">
<option name="ignoredErrors">
<list>
<option value="N802" />
<option value="N806" />
</list>
</option>
</inspection_tool>
</profile>
</component>
\ No newline at end of file
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.11 (venv) (2)" project-jdk-type="Python SDK" />
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/FARM_STACK.iml" filepath="$PROJECT_DIR$/.idea/FARM_STACK.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
\ No newline at end of file
import uvicorn
if __name__ == '__main__':
uvicorn.run('scripts.core.services.app:app', reload=True)
fastapi == 0.65.1
uvicorn==0.14.0
pydantic~=1.10.4
import os
import motor
from motor.motor_asyncio import asyncio_framework
from asyncio import coroutine
MONGO_DETAILS = "mongodb://localhost:27017"
client = motor.motor_asyncio.AsyncIOMotorClient(os.environ["mongodb://localhost:27017"])
databse = client.TodoList
collection = databse.todo
from scripts.core.database.mongo_database import collection
async def create_todo(todo):
document = todo
result = await collection.insert_one(document)
return document
from scripts.core.database.mongo_database import collection
async def remove_todo(title):
await collection.delete_one({"title": title})
return True
from scripts.core.database.mongo_database import collection
from scripts.core.schemas.model import Todo
async def fetch_one(title):
document = await collection.find_one({"title": title})
return document
async def fetch_all():
todo = []
cursor = collection.find({})
async for document in cursor:
todo.append(Todo(**document))
return todo
from scripts.core.database.mongo_database import collection
async def update_todo(title,desc):
await collection.update_one({"title": title},{"%set":{"description":desc}})
document=await collection.find_one({"title":title})
return document
from pydantic import BaseModel
class Todo(BaseModel):
title: str
description: str
from fastapi import FastAPI, HTTPException
from fastapi.middleware.cors import CORSMiddleware
from scripts.core.handlers.create_todo import create_todo
from scripts.core.handlers.delete_todo import remove_todo
from scripts.core.handlers.get_data_fromdb import fetch_all, fetch_one
from scripts.core.handlers.update_tod import update_todo
from scripts.core.schemas.model import Todo
from asyncio import coroutine
origins = ['https://localhost:3000']
app = FastAPI()
app.add_middleware(
CORSMiddleware,
allow_origins=origins,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
@app.get("/")
def index():
return {"welcome to farm stack basic demonstartaion"}
@app.get("/todo", tags=[" display all TODO Task"])
async def get_todo():
response = await fetch_all()
return response
@app.get("/todo{title}", response_model=Todo, tags=["Display Task by id"])
async def get_todo_byid(title):
response = await fetch_one(title)
if response:
return response
raise HTTPException(404, "title not found")
@app.post("/todo",response_model=Todo)
async def post_todo(todo:Todo):
respone=await create_todo(todo.dict())
if respone:
return respone
raise HTTPException(400," error")
@app.put("/todo{title}",response_model=Todo)
async def put_todo(title:str,desc:str):
response=await update_todo(title,desc)
if response:
return response
raise HTTPException(400, " error")
@app.delete("/todo{title}")
async def delete_todo(title):
response = await remove_todo(title)
if response:
return response
raise HTTPException(400, " error")
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment