@@ -97,6 +97,28 @@ def get(self):
97
97
users = yield self .db .get_userlist ()
98
98
self .render ('users.html' , users = users )
99
99
100
+ class ClaimHandler (BaseHandler ):
101
+ @tornado .web .authenticated
102
+ @tornado .gen .coroutine
103
+ def post (self , username ):
104
+ if not self .current_user ['is_mentor' ]:
105
+ raise tornado .web .HTTPError (403 )
106
+ mentee = yield self .db .get_user_by ('username' , username )
107
+ if mentee ['is_mentor' ]:
108
+ raise tornado .web .HTTPError (403 )
109
+ yield self .db .create_mentorship (mentee ['github_id' ], self .current_user ['github_id' ])
110
+ self .redirect ('/users/' + username )
111
+
112
+ class UnclaimHandler (BaseHandler ):
113
+ @tornado .web .authenticated
114
+ @tornado .gen .coroutine
115
+ def post (self , username ):
116
+ if not self .current_user ['is_mentor' ]:
117
+ raise tornado .web .HTTPError (403 )
118
+ mentee = yield self .db .get_user_by ('username' , username )
119
+ yield self .db .remove_mentorship (mentee ['github_id' ], self .current_user ['github_id' ])
120
+ self .redirect ('/users/' + username )
121
+
100
122
class ProfileHandler (BaseHandler ):
101
123
@tornado .gen .coroutine
102
124
def get (self , username ):
@@ -111,16 +133,6 @@ def get(self, username):
111
133
questions , answers = yield self .db .get_questionnaire (user ['github_id' ])
112
134
self .render ('profile.html' , user = user , mentor = mentor , mentees = mentees , questions = questions , answers = answers )
113
135
114
- @tornado .web .authenticated
115
- @tornado .gen .coroutine
116
- def post (self , username ):
117
- if not self .current_user ['is_mentor' ]:
118
- raise tornado .web .HTTPError (403 )
119
- mentee = yield self .db .get_user_by ('username' , username )
120
- mentor = yield self .db .get_user (self .current_user ['github_id' ])
121
- yield self .db .create_mentorship (mentee , mentor )
122
- self .redirect ('/users/' + username )
123
-
124
136
class AccountHandler (BaseHandler ):
125
137
@tornado .web .authenticated
126
138
@tornado .gen .coroutine
@@ -166,6 +178,8 @@ def get(self, css_path):
166
178
(r'/github_emails' , GithubEmailsHandler ),
167
179
(r'/logout' , LogoutHandler ),
168
180
(r'/users' , UserListHandler ),
181
+ (r'/users/(.*)/claim' , ClaimHandler ),
182
+ (r'/users/(.*)/unclaim' , UnclaimHandler ),
169
183
(r'/users/(.*)' , ProfileHandler ),
170
184
(r'/account' , AccountHandler ),
171
185
(r'/account/contact_info' , ContactInfoHandler ),
0 commit comments