Spaces:
Paused
Paused
Updating endpoints to pass collection object instead of request object as parameter
Browse files
backend/mongodb/endpoints/calls.py
CHANGED
@@ -3,7 +3,6 @@ from typing import List
|
|
3 |
from datetime import date
|
4 |
|
5 |
import sys
|
6 |
-
# sys.path.append('/Users/benolojo/DCU/CA4/ca400_FinalYearProject/2024-ca400-olojob2-majdap2/src/backend/src/')
|
7 |
|
8 |
from ..operations import calls as calls
|
9 |
from ..models.calls import UserCall, UpdateCall
|
@@ -11,43 +10,61 @@ from ..models.calls import UserCall, UpdateCall
|
|
11 |
router = APIRouter(prefix="/call",
|
12 |
tags=["Calls"])
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
@router.post("/create-call", response_description="Create a new user call record", status_code=status.HTTP_201_CREATED, response_model=UserCall)
|
15 |
async def create_calls(request: Request, user_calls: UserCall = Body(...)):
|
16 |
-
|
|
|
17 |
|
18 |
@router.get("/list-call", response_description="List all existing call records", response_model=List[UserCall])
|
19 |
async def list_calls(request: Request, limit: int):
|
20 |
-
|
|
|
21 |
|
22 |
@router.get("/find-call/{call_id}", response_description="Find user's calls based on User ID", response_model=UserCall)
|
23 |
-
async def find_calls(request: Request, call_id: str):
|
24 |
-
|
|
|
25 |
|
26 |
@router.get("/find-user/{user_id}", response_description="Find user's calls based on User ID", response_model=List[UserCall])
|
27 |
-
async def find_user_calls(request: Request, user_id: str):
|
28 |
-
|
|
|
29 |
|
30 |
'''Key terms list can have variable length -> using POST request over GET'''
|
31 |
@router.post("/find-term/", response_description="Find calls based on key term list", response_model=List[UserCall])
|
32 |
async def list_transcripts_by_key_terms(request: Request, key_terms: List[str]):
|
33 |
-
|
|
|
34 |
|
35 |
@router.get("/find-date/{start_date}/{end_date}", response_description="Find calls based on date ranges", response_model=List[UserCall])
|
36 |
async def list_transcripts_by_dates(request: Request, start_date: str, end_date: str):
|
37 |
-
|
|
|
38 |
|
39 |
@router.get("/find-duration/{min_len}/{max_len}", response_description="Find calls based on call duration in minutes", response_model=List[UserCall])
|
40 |
async def list_transcripts_by_duration(request: Request, min_len: int, max_len: int):
|
41 |
-
|
|
|
42 |
|
43 |
@router.put("/update-call/{call_id}", response_description="Update an existing call", response_model=UpdateCall)
|
44 |
async def update_calls(request: Request, call_id: str, user_calls: UpdateCall = Body(...)):
|
45 |
-
|
|
|
46 |
|
47 |
@router.put("/update-captions/{call_id}", response_description="Update an existing call", response_model=UpdateCall)
|
48 |
async def update_captions(request: Request, call_id: str, user_calls: UpdateCall = Body(...)):
|
49 |
-
|
|
|
50 |
|
51 |
@router.delete("/delete-call/{call_id}", response_description="Delete a call by its id")
|
52 |
async def delete_call(request: Request, call_id :str):
|
53 |
-
|
|
|
|
|
|
3 |
from datetime import date
|
4 |
|
5 |
import sys
|
|
|
6 |
|
7 |
from ..operations import calls as calls
|
8 |
from ..models.calls import UserCall, UpdateCall
|
|
|
10 |
router = APIRouter(prefix="/call",
|
11 |
tags=["Calls"])
|
12 |
|
13 |
+
def get_collection_calls(request: Request):
|
14 |
+
try:
|
15 |
+
# return request.app.database["call_records"]
|
16 |
+
return request.app.database["call_test"]
|
17 |
+
except:
|
18 |
+
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail=f"Unable to find call records Database.")
|
19 |
+
|
20 |
@router.post("/create-call", response_description="Create a new user call record", status_code=status.HTTP_201_CREATED, response_model=UserCall)
|
21 |
async def create_calls(request: Request, user_calls: UserCall = Body(...)):
|
22 |
+
collection = get_collection_calls(request)
|
23 |
+
return calls.create_calls(collection, user_calls)
|
24 |
|
25 |
@router.get("/list-call", response_description="List all existing call records", response_model=List[UserCall])
|
26 |
async def list_calls(request: Request, limit: int):
|
27 |
+
collection = get_collection_calls(request)
|
28 |
+
return calls.list_calls(collection, 100)
|
29 |
|
30 |
@router.get("/find-call/{call_id}", response_description="Find user's calls based on User ID", response_model=UserCall)
|
31 |
+
async def find_calls(request: Request, call_id: str):
|
32 |
+
collection = get_collection_calls(request)
|
33 |
+
return calls.find_calls(collection, call_id)
|
34 |
|
35 |
@router.get("/find-user/{user_id}", response_description="Find user's calls based on User ID", response_model=List[UserCall])
|
36 |
+
async def find_user_calls(request: Request, user_id: str):
|
37 |
+
collection = get_collection_calls(request)
|
38 |
+
return calls.find_user_calls(collection, user_id)
|
39 |
|
40 |
'''Key terms list can have variable length -> using POST request over GET'''
|
41 |
@router.post("/find-term/", response_description="Find calls based on key term list", response_model=List[UserCall])
|
42 |
async def list_transcripts_by_key_terms(request: Request, key_terms: List[str]):
|
43 |
+
collection = get_collection_calls(request)
|
44 |
+
return calls.list_transcripts_by_key_terms(collection, key_terms)
|
45 |
|
46 |
@router.get("/find-date/{start_date}/{end_date}", response_description="Find calls based on date ranges", response_model=List[UserCall])
|
47 |
async def list_transcripts_by_dates(request: Request, start_date: str, end_date: str):
|
48 |
+
collection = get_collection_calls(request)
|
49 |
+
return calls.list_transcripts_by_dates(collection, start_date, end_date)
|
50 |
|
51 |
@router.get("/find-duration/{min_len}/{max_len}", response_description="Find calls based on call duration in minutes", response_model=List[UserCall])
|
52 |
async def list_transcripts_by_duration(request: Request, min_len: int, max_len: int):
|
53 |
+
collection = get_collection_calls(request)
|
54 |
+
return calls.list_transcripts_by_duration(collection, min_len, max_len)
|
55 |
|
56 |
@router.put("/update-call/{call_id}", response_description="Update an existing call", response_model=UpdateCall)
|
57 |
async def update_calls(request: Request, call_id: str, user_calls: UpdateCall = Body(...)):
|
58 |
+
collection = get_collection_calls(request)
|
59 |
+
return calls.update_calls(collection, call_id, user_calls)
|
60 |
|
61 |
@router.put("/update-captions/{call_id}", response_description="Update an existing call", response_model=UpdateCall)
|
62 |
async def update_captions(request: Request, call_id: str, user_calls: UpdateCall = Body(...)):
|
63 |
+
collection = get_collection_calls(request)
|
64 |
+
return calls.update_captions(collection, call_id, user_calls)
|
65 |
|
66 |
@router.delete("/delete-call/{call_id}", response_description="Delete a call by its id")
|
67 |
async def delete_call(request: Request, call_id :str):
|
68 |
+
collection = get_collection_calls(request)
|
69 |
+
return calls.delete_calls(collection, call_id)
|
70 |
+
|