def post(self): """ this handler supports http post """ google_user = google_users.get_current_user() user = db.Query(Users).filter('user_id =', google_user.user_id()).get() if user is None: user = Users(user_id = google_user.user_id(), email = google_user.email()) username = self.request.get('username') password = self.request.get('password') token = self.request.get('token', None) if token == None: url = 'https://www.pivotaltracker.com/services/v3/tokens/active' base64string = base64.encodestring('%s:%s' % (username, password))[:-1] authheader = "Basic %s" % base64string result = urlfetch.fetch(url=url, headers={"Authorization": authheader}) if result.status_code == 200: token_dom = minidom.parseString(result.content) for node in token_dom.getElementsByTagName('token'): token = node.getElementsByTagName('guid')[0].firstChild.data elif result.status_code == 401: self.response.out.write("Invalid Username or Password") self.response.set_status(401) return else: self.response.out.write("Error getting token. Please try again later") self.response.set_status(400) return elif token.strip() == '': self.response.out.write("Token is required.") self.response.set_status(400) return user.pt_username = username user.pt_token = token db.put(user) self.response.out.write(token)