Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
fastAPI_task
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ajil.k
fastAPI_task
Commits
555bf375
Commit
555bf375
authored
Feb 07, 2023
by
ajil.k
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added file uploading feature
parent
fc776ec4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
19 additions
and
18 deletions
+19
-18
scripts/constants/endpoints.py
+3
-3
scripts/core/handlers/api_functions.py
+4
-3
scripts/core/handlers/read_file.py
+2
-2
scripts/services/api_call.py
+10
-10
No files found.
scripts/constants/endpoints.py
View file @
555bf375
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}"
scripts/core/handlers/api_functions.py
View file @
555bf375
...
...
@@ -9,15 +9,16 @@ from scripts.database.mongodb.models import personal_details, PersonalDetails
connect
(
db
=
'db_person'
,
host
=
'localhost'
,
port
=
27017
)
class
operations_on_a
pi
:
class
OperationsOnA
pi
:
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!"
)
...
...
scripts/core/handlers/read_file.py
View file @
555bf375
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
)
scripts/services/api_call.py
View file @
555bf375
# importing libraries
from
fastapi
import
FastAPI
from
scripts.core.handlers.api_functions
import
operations_on_a
pi
from
fastapi
import
FastAPI
,
UploadFile
from
scripts.core.handlers.api_functions
import
OperationsOnA
pi
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_a
pi
()
.
get_data_from_db
()
documents
=
OperationsOnA
pi
()
.
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_a
pi
()
.
insert_one_document
(
details
)
result
=
OperationsOnA
pi
()
.
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_a
pi
()
.
update_one_document
(
document_id
,
update_details
)
OperationsOnA
pi
()
.
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_a
pi
()
.
delete_one_document
(
document_id
)
OperationsOnA
pi
()
.
delete_one_document
(
document_id
)
return
{
"Message"
:
"Document deleted Successfully!"
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment