def current_user(self): item = {} if current_user.is_authenticated: item = user_to_dict(current_user) else: item['is_anonymous'] = True return success(item)
def put(self, username): response = {} try: user = User.all().filter('username ='******'error'] = 'Cannot find username' self.returnJSON(404, response) return user.first_name = self.request.get('first_name', user.first_name) user.last_name = self.request.get('last_name', user.last_name) user.street_address = self.request.get('street_address', user.street_address) user.locality = self.request.get('locality', user.locality) user.postcode = self.request.get('postcode', user.postcode) birth_date = self.request.get('birth_date', user.birth_date) if isinstance(birth_date, basestring): birth_date = datetime.date(*map(int, birth_date.split("-"))) user.birth_date = birth_date user.phone_no = self.request.get('phone_no', user.phone_no) user.email = self.request.get('email', user.email) user.twitter_username = self.request.get('twitter_username', user.twitter_username) user.gender = self.request.get('gender', user.gender) user.ethnicity = self.request.get('ethnicity', user.ethnicity) user.constituency = self.request.get('constituency', user.constituency) user.mp = self.request.get('mp', user.mp) user.put() response['user'] = utils.user_to_dict(user) self.returnJSON(200, response)
def initial_data(self): initialData = {} initialData['recaptcha'] = {'sitekey': app.config['recaptcha_sitekey']} initialData['google_signin'] = { 'client_id': app.config['google_singin_client_id'] } initialData['site_name'] = app.config['site_name'] initialData['site_home_title'] = app.config['site_home_title'] # inject user info if current_user.is_authenticated: initialData['authenticated'] = True initialData['user'] = user_to_dict(current_user) return success(data=initialData)
def delete(self, username): response = {} try: user = User.all().filter('username ='******'user'] = utils.user_to_dict(user) user.delete() except: response['error'] = 'Cannot find username' self.returnJSON(404, response) return self.returnJSON(200, response)
def check_reset_password_token(self): data = request_json() # recaptcha errorMsg = validate_recaptcha(data['recaptcha']) if errorMsg: return failed(errorMsg) token = data.get('token', None) if not token: return failed('Illegal request') item = models.reset_password_email.objects.filter(token=token).first() if not item: return failed('No record found with given token') expired = (datetime.now() - item.updated_at).seconds > 3600 * 1 if expired: return failed('Link expired') user = self.model.objects.filter(email=item.email).first() return success(user_to_dict(user))
def get(self, username): response = {} try: user = User.all().filter('username ='******'user'] = utils.user_to_dict(user) except: self.returnJSON(404, response) return self.query = UserVote.all().filter('user_username ='******'question') self.filterQueryOnParam('selection') response['votes'] = [] for vote in self.query: response['votes'].append(utils.vote_to_dict(vote)) response['total'] = len(response['votes']) self.returnJSON(200, response)
def get(self, username): response = {} try: user = User.all().filter('username ='******'user'] = utils.user_to_dict(user) except: response['error'] = 'Cannot find username' self.returnJSON(404, response) return response['comparisons'] = { 'mp': utils.compareMP(user), 'constituency': { 'politmus_score': user.constituency_score } } self.returnJSON(200, response)
def post(self): response = {} username = self.request.get('username') constituency = self.request.get('constituency', None) if not constituency: response['error'] = 'Must provide a constituency' self.returnJSON(402, response) return user = User() user.username = self.request.get('username', uuid1().hex) user.first_name = self.request.get('first_name') user.last_name = self.request.get('last_name') user.street_address = self.request.get('street_address') user.locality = self.request.get('locality') user.postcode = self.request.get('postcode') birth_date = self.request.get('birth_date', None) if birth_date is not None: birth_date = datetime.date(*map(int, birth_date.split("-"))) user.birth_date = birth_date user.phone_no = self.request.get('phone_no') user.email = self.request.get('email') user.twitter_username = self.request.get('twitter_username') user.gender = self.request.get('gender') user.ethnicity = self.request.get('ethnicity') user.constituency = self.request.get('constituency') user.mp = self.request.get('mp') user.constituency_score = 0 user.mp_score = 0 user.put() response['user'] = utils.user_to_dict(user) response['url'] = response['user']['details'] self.returnJSON(201, response)
def update(self, username, question_key): response = {} allowed_selections = ['aye', 'no', 'dont-care', 'dont-understand'] if self.request.get('selection') not in allowed_selections: logging.debug("hello") response['status'] = 'error' response['error'] = 'You did not send a selection [aye, no, dont-care, dont-understand]' self.returnJSON(406, response) # 406 Not Acceptable return None try: user = User.all().filter('username ='******'error'] = 'Cannot find user or question' self.returnJSON(404, response) return None # Get existing or new question existing = UserVote.all().filter('user_username ='******'question =', question_key) if existing.count() > 0: vote = existing[0] else: logging.debug(question) vote = UserVote(parent=question) vote.question = question_key vote.user_username = user.username vote.constituency = user.constituency vote.selection = self.request.get('selection') vote.put() response['vote'] = utils.vote_to_dict(vote) response['user'] = utils.user_to_dict(user) return response
def get(self): response = {'users': []} self.query = User.all() self.filterQueryOnParam('gender') self.filterQueryOnParam('ethnicity') self.filterQueryOnParam('phone_no') self.filterQueryOnParam('postcode') self.filterQueryOnParam('constituency') self.filterQueryOnParam('mp') self.addAgeFilter() response['total'] = self.query.count() response = self.addPagingFilters(response) for user in self.query: u = utils.user_to_dict(user) response['users'].append(u) self.returnJSON(200, response)
def get(self): response = { 'users': [] } self.query = User.all() self.filterQueryOnParam('gender') self.filterQueryOnParam('ethnicity') self.filterQueryOnParam('phone_no') self.filterQueryOnParam('postcode') self.filterQueryOnParam('constituency') self.filterQueryOnParam('mp') self.addAgeFilter() response['total'] = self.query.count() response = self.addPagingFilters(response) for user in self.query: u = utils.user_to_dict(user) response['users'].append(u) self.returnJSON(200, response)