benjolo commited on
Commit
10f9dff
·
verified ·
1 Parent(s): 1ff2578

Updating endpoints to pass collection object instead of request object as parameter

Browse files
Files changed (1) hide show
  1. backend/mongodb/endpoints/calls.py +30 -13
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
- return calls.create_calls(request, user_calls)
 
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
- return calls.list_calls(request, 100)
 
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
- return calls.find_calls(request, call_id)
 
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
- return calls.find_user_calls(request, user_id)
 
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
- return calls.list_transcripts_by_key_terms(request, key_terms)
 
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
- return calls.list_transcripts_by_dates(request, start_date, end_date)
 
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
- return calls.list_transcripts_by_duration(request, min_len, max_len)
 
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
- return calls.update_calls(request, call_id, user_calls)
 
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
- return calls.update_captions(request, call_id, user_calls)
 
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
- return calls.delete_calls(request, call_id)
 
 
 
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
+