def post(self): user = self.get_user() if not user: return query_id = self.request.get('query_id') #user_email = self.request.get('user') data = self.request.get('data') time = self.request.get('time') #self.request.get('time', '') # get the question from the DB # get the user from the DB # add a Response object to the DB #user = User.get_by_email(user_email) query = db.get(query_id) #hmmm dp = DataPoint( text = data, query = query, timestamp = datetime.now() ) dp.lt_put() ActionLog.log('NewDatapoint', query.user, query.name) self.response.out.write('Got it!')
def post(self): user = self.get_user() if not user: return user_email = self.request.get('user_email') query_id = self.request.get('query_id') csv_data = self.request.get('csv_data') user = User.get_by_email(user_email) query = Query.get_by_id(query_id) for duple in self.parse_csv_data(csv_data): timestamp = duple[0] text = duple[1] # for testing self.response.out.write("<p>%s: %s\n</p>" % (timestamp, text)) dp = DataPoint( timestamp = duple[0], query = query, text = duple[1]) dp.lt_put() self.redirect('/data')
def post(self): ActionLog.log('ReceivedSMS') sender_phone = self.request.get('From') body = self.request.get('Body') # normalize the phone number to 10 digits # '+12268681112' => '2268681112' sender_phone = sender_phone[len(sender_phone) - 10:] logging.info('Got text from ' + sender_phone) # get the user user = User.get_by_phone(sender_phone) if not user: logging.error("Couldn't get the user for phone: " + sender_phone) return # parse the response query_value_pairs = self.parse_body(body) for query_name in query_value_pairs: value = query_value_pairs[query_name] if query_name == '' or value == '': logging.error('Got a bad response'); return query = Query.get_by_user_and_name(user, query_name) if not query: logging.error("Couldn't get query for user " + user.email + ' and query ' + query.name) continue timestamp = datetime.now() dp = DataPoint( user = user, query = query, text = value, timestamp = timestamp, ) dp.lt_put() ActionLog.log('NewDatapoint', user, query.name) query.refresh() logging.info('Received datapoint ' + query_name + ': ' + value + '\n') self.response.out.write('<Response><Sms>Got it!</Sms></Response>')
def receive(self, mail_message): # we need to make a new data point # get the user from the sender field user_email = mail_message.sender[ mail_message.sender.find('<') + 1 : mail_message.sender.rfind('>') ] user = User.get_by_email(user_email) if is_admin(user) and mail_message.to.find('users@') != -1: forward_to_users(mail_message) return if mail_message.to.find('feedback@') != -1: forward_to_admins(mail_message) return # get the datapoint from the body data = '' query_name = mail_message.subject[ mail_message.subject.rfind("Re:") + 4: ] query = Query.get_by_user_and_name(user, query_name) for content_type, body in mail_message.bodies('text/html'): # basically deprecated, since we're having users submit forms # straight from the emails now. logging.info('Message Body: ' + body.decode()) data = body.decode()[ : body.decode().find('<')] if data == None: data = '' # get the time from now() timestamp = datetime.now() log_str = "Want to create a new datapoint for user %s and with value %s and query name %s and query %s and timestamp %s" % (user_email, data, query_name, query.key(), timestamp) logging.info("Received a message from " + mail_message.sender) logging.info(log_str) # create and put the datapoint # dp = DataPoint(...) dp = DataPoint( text = data, query = query, timestamp = timestamp) dp.lt_put() ActionLog.log('ReceivedEmail') ActionLog.log('NewDatapoint', data=query.name, user=user) query.refresh()