khawir commited on
Commit
a60d65d
·
1 Parent(s): fa3fd2e

added routes for adding/removing sites to users

Browse files
Files changed (3) hide show
  1. routers/profile.py +7 -7
  2. routers/users.py +45 -2
  3. test.db +0 -0
routers/profile.py CHANGED
@@ -76,13 +76,13 @@ def read_site(*,
76
  site_id: int
77
  ):
78
  current_site = crud.get_current_site(session, current_user, site_id)
79
- # access_token = utils.get_key()
80
- # in_url= utils.get_feed_url(access_token, current_site.in_camera)
81
- # out_url= utils.get_feed_url(access_token, current_site.out_camera)
82
- # current_site.in_url = in_url
83
- # current_site.out_url = out_url
84
- # session.add(current_site)
85
- # session.commit()
86
  return current_site
87
 
88
 
 
76
  site_id: int
77
  ):
78
  current_site = crud.get_current_site(session, current_user, site_id)
79
+ access_token = utils.get_key()
80
+ in_url= utils.get_feed_url(access_token, current_site.in_camera)
81
+ out_url= utils.get_feed_url(access_token, current_site.out_camera)
82
+ current_site.in_url = in_url
83
+ current_site.out_url = out_url
84
+ session.add(current_site)
85
+ session.commit()
86
  return current_site
87
 
88
 
routers/users.py CHANGED
@@ -1,7 +1,7 @@
1
  from datetime import datetime
2
  from fastapi import Depends, APIRouter, HTTPException, Query
3
  from sqlmodel import Session, select
4
- from models import User, UserCreate, UserPublic, UserUpdate, UserPublicWith
5
  from core import crud, utils
6
 
7
  router = APIRouter(
@@ -54,4 +54,47 @@ def delete_user(*, session: Session = Depends(utils.get_session), user_id: int):
54
  raise HTTPException(status_code=404, detail="User not found")
55
  session.delete(user)
56
  session.commit()
57
- return {"ok": True}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  from datetime import datetime
2
  from fastapi import Depends, APIRouter, HTTPException, Query
3
  from sqlmodel import Session, select
4
+ from models import User, UserCreate, UserPublic, UserUpdate, UserPublicWith, Site
5
  from core import crud, utils
6
 
7
  router = APIRouter(
 
54
  raise HTTPException(status_code=404, detail="User not found")
55
  session.delete(user)
56
  session.commit()
57
+
58
+
59
+ @router.patch("/{user_id}/site/{site_id}", response_model=UserPublicWith)
60
+ def add_user_site(*,
61
+ session: Session = Depends(utils.get_session),
62
+ user_id: int,
63
+ site_id: int,
64
+ ):
65
+ db_user = session.get(User, user_id)
66
+ if not db_user:
67
+ raise HTTPException(status_code=404, detail="User not found")
68
+ user_site_list = [site.id for site in db_user.sites]
69
+ if site_id in user_site_list:
70
+ raise HTTPException(status_code=404, detail=f"Site '{site_id}' already associated with the user")
71
+ db_site = session.get(Site, site_id)
72
+ if not db_site:
73
+ raise HTTPException(status_code=404, detail="Site not found")
74
+ db_user.sites.append(db_site)
75
+ session.add(db_user)
76
+ session.commit()
77
+ session.refresh(db_user)
78
+ return db_user
79
+
80
+
81
+ @router.patch("/{user_id}/notsite/{site_id}", response_model=UserPublicWith)
82
+ def delete_user_site(*,
83
+ session: Session = Depends(utils.get_session),
84
+ user_id: int,
85
+ site_id: int,
86
+ ):
87
+ db_user = session.get(User, user_id)
88
+ if not db_user:
89
+ raise HTTPException(status_code=404, detail="User not found")
90
+ user_site_list = [site.id for site in db_user.sites]
91
+ if site_id not in user_site_list:
92
+ raise HTTPException(status_code=404, detail=f"Site '{site_id}' not associated with the user")
93
+ db_site = session.get(Site, site_id)
94
+ if not db_site:
95
+ raise HTTPException(status_code=404, detail="Site not found")
96
+ db_user.sites.remove(db_site)
97
+ session.add(db_user)
98
+ session.commit()
99
+ session.refresh(db_user)
100
+ return db_user
test.db CHANGED
Binary files a/test.db and b/test.db differ