コード例 #1
0
 def current_user(self):
     item = {}
     if current_user.is_authenticated:
         item = user_to_dict(current_user)
     else:
         item['is_anonymous'] = True
     return success(item)
コード例 #2
0
ファイル: users.py プロジェクト: ahume/politmus-api
	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)
コード例 #3
0
ファイル: IndexController.py プロジェクト: dickhfchan/borocol
 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)
コード例 #4
0
    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)
コード例 #5
0
ファイル: users.py プロジェクト: ahume/politmus-api
	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)
コード例 #6
0
 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))
コード例 #7
0
ファイル: uservotes.py プロジェクト: ahume/politmus-api
	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)
コード例 #8
0
    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)
コード例 #9
0
ファイル: users.py プロジェクト: ahume/politmus-api
	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)
コード例 #10
0
    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)
コード例 #11
0
ファイル: users.py プロジェクト: ahume/politmus-api
	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)
コード例 #12
0
ファイル: uservotes.py プロジェクト: ahume/politmus-api
	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
コード例 #13
0
    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)
コード例 #14
0
    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)
コード例 #15
0
ファイル: users.py プロジェクト: ahume/politmus-api
	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)