1- from typing import Any , Dict , List , Optional , Tuple
1+ from typing import Any , Dict , List , Optional
2+ import uuid
23
34from . import data
45from . import calls
78from .user import User
89
910
11+ class InvalidParameters (ValueError ):
12+ """
13+ Raised when provided invalid parameters.
14+ """
15+
16+
1017class Bugout :
1118 def __init__ (
1219 self , brood_api_url : Optional [str ] = None , spire_api_url : Optional [str ] = None
@@ -27,15 +34,16 @@ def spire_url(self):
2734 return self .spire_api_url
2835
2936 def brood_ping (self ) -> Dict [str , str ]:
37+ if self .brood_api_url is None :
38+ raise InvalidParameters ("Brood API url should be provided" )
3039 return calls .ping (self .brood_api_url )
3140
3241 def spire_ping (self ) -> Dict [str , str ]:
42+ if self .spire_api_url is None :
43+ raise InvalidParameters ("Spire API url should be provided" )
3344 return calls .ping (self .spire_api_url )
3445
3546 # User handlers
36- def get_user (self , token : str ) -> data .BugoutUser :
37- return self .user .get_user (token )
38-
3947 def create_user (
4048 self ,
4149 username : str ,
@@ -47,24 +55,106 @@ def create_user(
4755 username , email , password , autogenerated_token = autogenerated_token
4856 )
4957
58+ def get_user (self , token : uuid .UUID ) -> data .BugoutUser :
59+ return self .user .get_user (token )
60+
61+ def get_user_by_id (self , token : uuid .UUID , user_id : uuid .UUID ) -> data .BugoutUser :
62+ return self .user .get_user_by_id (token , user_id )
63+
64+ def confirm_email (
65+ self , token : uuid .UUID , verification_code : str
66+ ) -> data .BugoutUser :
67+ return self .user .confirm_email (token , verification_code )
68+
69+ def restore_password (self , email : str ) -> Dict [str , str ]:
70+ return self .user .restore_password (email )
71+
72+ def reset_password (self , reset_id : uuid .UUID , new_password : str ) -> data .BugoutUser :
73+ return self .user .reset_password (reset_id , new_password )
74+
75+ def change_password (
76+ self , token : uuid .UUID , current_password : str , new_password : str
77+ ) -> data .BugoutUser :
78+ return self .user .change_password (token , current_password , new_password )
79+
80+ def delete_user (
81+ self , token : uuid .UUID , user_id : uuid .UUID , password : str
82+ ) -> data .BugoutUser :
83+ return self .user .delete_user (token , user_id , password )
84+
85+ # Token handlers
5086 def create_token (self , username : str , password : str ) -> data .BugoutToken :
5187 return self .user .create_token (username , password )
5288
53- def revoke_token (self , token : str ) -> data . BugoutToken :
89+ def revoke_token (self , token : uuid . UUID ) -> uuid . UUID :
5490 return self .user .revoke_token (token )
5591
92+ def revoke_token_by_id (self , token : uuid .UUID ) -> uuid .UUID :
93+ return self .user .revoke_token_by_id (token )
94+
5695 def update_token (
5796 self ,
58- token : str ,
59- token_type : Optional [str ] = None ,
97+ token : uuid . UUID ,
98+ token_type : Optional [data . TokenType ] = None ,
6099 token_note : Optional [str ] = None ,
61100 ) -> data .BugoutToken :
62101 return self .user .update_token (token , token_type , token_note )
63102
103+ def get_token_types (self , token : uuid .UUID ) -> List [str ]:
104+ return self .user .get_token_types (token )
105+
106+ def get_user_tokens (
107+ self ,
108+ token : uuid .UUID ,
109+ active : Optional [bool ] = None ,
110+ token_type : Optional [data .TokenType ] = None ,
111+ ) -> data .BugoutUserTokens :
112+ return self .user .get_user_tokens (token , active , token_type )
113+
64114 # Group handlers
65- def get_group (self , group_id : str , token : str ) -> data .BugoutGroup :
66- return self .group .get_group (group_id , token )
115+ def get_group (self , token : uuid .UUID , group_id : uuid .UUID ) -> data .BugoutGroup :
116+ return self .group .get_group (token , group_id )
117+
118+ def get_user_groups (self , token : uuid .UUID ) -> data .BugoutUserGroups :
119+ return self .group .get_user_groups (token )
120+
121+ def create_group (self , token : uuid .UUID , group_name : str ) -> data .BugoutGroup :
122+ return self .group .create_group (token , group_name )
123+
124+ def set_user_group (
125+ self ,
126+ token : uuid .UUID ,
127+ group_id : uuid .UUID ,
128+ user_type : data .Role ,
129+ username : Optional [str ] = None ,
130+ email : Optional [str ] = None ,
131+ ) -> data .BugoutGroupUser :
132+ return self .group .set_user_group (token , group_id , user_type , username , email )
133+
134+ def delete_user_group (
135+ self ,
136+ token : uuid .UUID ,
137+ group_id : uuid .UUID ,
138+ username : Optional [str ] = None ,
139+ email : Optional [str ] = None ,
140+ ) -> data .BugoutGroupUser :
141+ return self .group .delete_user_group (token , group_id , username , email )
142+
143+ def get_group_members (
144+ self , token : uuid .UUID , group_id : uuid .UUID
145+ ) -> data .BugoutGroupMembers :
146+ return self .group .get_group_members (token , group_id )
147+
148+ def update_group (
149+ self , token : uuid .UUID , group_id : uuid .UUID , group_name : str
150+ ) -> data .BugoutGroup :
151+ return self .group .update_group (token , group_id , group_name )
152+
153+ def delete_group (self , token : uuid .UUID , group_id : uuid .UUID ) -> data .BugoutGroup :
154+ return self .group .delete_group (token , group_id )
67155
68156 # Journal handlers
69- def get_journal (self , journal_id : str , token : str ) -> data .BugoutJournal :
157+ def get_journal (
158+ self , journal_id : uuid .UUID , token : uuid .UUID
159+ ) -> data .BugoutJournal :
70160 return self .journal .get_journal (journal_id , token )
0 commit comments