CaesarCloudSync commited on
Commit
0a6d947
·
1 Parent(s): 58447b3

getrevisioncardws

Browse files
Files changed (2) hide show
  1. main.py +39 -6
  2. requirements.txt +1 -0
main.py CHANGED
@@ -26,6 +26,7 @@ import stripe
26
  import jwt
27
  #import cv2
28
  from fastapi.responses import StreamingResponse
 
29
  import re
30
  import jwt
31
  from fastapi import FastAPI, Header
@@ -391,12 +392,6 @@ async def getrevisioncards(authorization: str = Header(None)):
391
  #print(revisioncard)
392
  revisioncard.update({"revisionscheduleinterval":revisioncard["revisionscheduleinterval"]})
393
  yield json.dumps(revisioncard)
394
-
395
-
396
-
397
-
398
- #
399
-
400
  current_user = secure_decode(authorization.replace("Bearer ",""))["email"]
401
  if current_user:
402
  try:
@@ -410,6 +405,44 @@ async def getrevisioncards(authorization: str = Header(None)):
410
  return {"message":"No revision cards"} # Send in shape of data
411
  except Exception as ex:
412
  return {f"error":f"{type(ex)},{str(ex)}"}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
413
  @app.post('/uploadrevisioncardtxtfile') # POST # allow all origins all methods.
414
  async def uploadrevisioncardtxtfile(data : JSONStructure = None, authorization: str = Header(None)):
415
  try:
 
26
  import jwt
27
  #import cv2
28
  from fastapi.responses import StreamingResponse
29
+ from fastapi import WebSocket,WebSocketDisconnect
30
  import re
31
  import jwt
32
  from fastapi import FastAPI, Header
 
392
  #print(revisioncard)
393
  revisioncard.update({"revisionscheduleinterval":revisioncard["revisionscheduleinterval"]})
394
  yield json.dumps(revisioncard)
 
 
 
 
 
 
395
  current_user = secure_decode(authorization.replace("Bearer ",""))["email"]
396
  if current_user:
397
  try:
 
405
  return {"message":"No revision cards"} # Send in shape of data
406
  except Exception as ex:
407
  return {f"error":f"{type(ex)},{str(ex)}"}
408
+ @app.websocket("/getrevisioncardsws")
409
+ async def getrevisioncardsws(websocket: WebSocket):
410
+ await websocket.accept()
411
+
412
+ try:
413
+ while True:
414
+ authinfo = await websocket.receive_json()
415
+ authorization = authinfo["headers"]["Authorization"]
416
+ current_user = secure_decode(authorization.replace("Bearer ",""))["email"]
417
+ if current_user:
418
+ try:
419
+ email_exists = importcsv.db.accountrevisioncards.find_one({"email":current_user})
420
+ if email_exists: # Checks if email exists
421
+ user_revision_cards = list(importcsv.db.accountrevisioncards.find({"email": current_user}))[0]
422
+ del user_revision_cards["_id"],user_revision_cards["email"]
423
+ #return StreamingResponse(iter_df(user_revision_cards), media_type="application/json")
424
+ #return user_revision_cards
425
+ for revisioncard in user_revision_cards["revisioncards"]:
426
+ revisioncard.update({"revisionscheduleinterval":user_revision_cards["revisionscheduleinterval"],"sendtoemail":user_revision_cards["sendtoemail"]})
427
+ await websocket.send_json(json.dumps(revisioncard)) # sends the buffer as bytes
428
+ elif not email_exists:
429
+ await websocket.send_json(json.dumps({"message":"No revision cards"}))
430
+ #return {"message":"No revision cards"} # Send in shape of data
431
+ except Exception as ex:
432
+ return {f"error":f"{type(ex)},{str(ex)}"}
433
+ elif not current_user:
434
+ await websocket.send_json(json.dumps({"message":"No user."}))
435
+
436
+
437
+
438
+
439
+ except WebSocketDisconnect:
440
+ print("Client disconnected")
441
+
442
+
443
+
444
+
445
+
446
  @app.post('/uploadrevisioncardtxtfile') # POST # allow all origins all methods.
447
  async def uploadrevisioncardtxtfile(data : JSONStructure = None, authorization: str = Header(None)):
448
  try:
requirements.txt CHANGED
@@ -69,6 +69,7 @@ thinc==8.0.13
69
  tornado==6.1
70
  tqdm==4.62.3
71
  traitlets==5.1.1
 
72
  typer==0.4.0
73
  typing_extensions==4.0.1
74
  urllib3==1.26.7
 
69
  tornado==6.1
70
  tqdm==4.62.3
71
  traitlets==5.1.1
72
+ websockets
73
  typer==0.4.0
74
  typing_extensions==4.0.1
75
  urllib3==1.26.7