예제 #1
0
파일: main.py 프로젝트: chrisvaughn/pt-mail
	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)