Commit 555bf375 by ajil.k

added file uploading feature

parent fc776ec4
class APIEndpoints:
# FastAPI endpoints
root = "/"
insert_all_documents = "/insert-all-documents-into-db/"
get_details = "/get_details"
create_new_document = "/create-new-document"
upload_csv_and_store_in_db = "/upload_csv_and_store_in_db/"
get_details = "/get_details/"
create_new_document = "/create-new-document/"
update_document = "/update-document/{document_id}"
delete_document = "/delete-document/{document_id}"
......@@ -9,15 +9,16 @@ from scripts.database.mongodb.models import personal_details, PersonalDetails
connect(db='db_person', host='localhost', port=27017)
class operations_on_api:
class OperationsOnApi:
def __init__(self):
self.db = db_connect()
collection_name = 'personal_details'
self.collection = self.db[collection_name]
def insert_all_data(self):
def upload_csv(self, file):
try:
data = extract_data(csv_path)
data = file.file
data = extract_data(data)
insert_status = insert_into_db(self.collection, data)
if insert_status:
print("Data inserted from csv to database successfully!")
......
import pandas as pd
def extract_data(path):
def extract_data(file):
try:
data_from_csv = pd.read_csv(path)
data_from_csv = pd.read_csv(file)
return data_from_csv.to_dict('records')
except Exception as e:
print("Error-", e)
# importing libraries
from fastapi import FastAPI
from scripts.core.handlers.api_functions import operations_on_api
from fastapi import FastAPI, UploadFile
from scripts.core.handlers.api_functions import OperationsOnApi
from scripts.database.mongodb.models import PersonalDetails, UpdatePersonalDetails
from scripts.constants.endpoints import APIEndpoints
......@@ -17,36 +17,36 @@ async def root():
return {"Message": "It's Working!"}
# Insert data from csv to database
@app.post(api_endpoint.insert_all_documents, tags=["insert_all_documents_into_db"])
async def insert_all_documents_into_db():
operations_on_api().insert_all_data()
# Upload and Insert data from csv to database
@app.post(api_endpoint.upload_csv_and_store_in_db, tags=["upload_csv_file_and_store_in_db"])
async def upload_file(file: UploadFile):
OperationsOnApi().upload_csv(file)
return {"Message": "Data inserted from csv to database successfully!"}
# Display all documents
@app.get(api_endpoint.get_details, tags=["read documents"])
def get_all_details():
documents = operations_on_api().get_data_from_db()
documents = OperationsOnApi().get_data_from_db()
return {"data": documents}
# Insert one document to db
@app.post(api_endpoint.create_new_document, tags=["create document"])
async def create_new_document(details: PersonalDetails):
result = operations_on_api().insert_one_document(details)
result = OperationsOnApi().insert_one_document(details)
return {"inserted document id": str(result.inserted_id)}
# Update one Document
@app.put(api_endpoint.update_document, tags=["update document"])
async def update_document(document_id: int, update_details: UpdatePersonalDetails):
operations_on_api().update_one_document(document_id, update_details)
OperationsOnApi().update_one_document(document_id, update_details)
return {"Message": "Document updated"}
# Delete one Document
@app.delete(api_endpoint.delete_document, tags=["delete document"])
async def delete_documents(document_id: int):
operations_on_api().delete_one_document(document_id)
OperationsOnApi().delete_one_document(document_id)
return {"Message": "Document deleted Successfully!"}
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