def update_info(self, client, user, token): unit = Unit.get_by_user_key(self.current_user.key) if unit is None: unit = Unit(id='en', parent=self.current_user.key) logging.info('Create new Unit') try: user_store = client.get_user_store() en_user = user_store.getUser() except (EDAMUserException, EDAMSystemException) as e: logging.error('Evernote Error: %s %s, parm: %s' % (str(e.errorCode), EDAMErrorCode._VALUES_TO_NAMES[e.errorCode], e.parameter)) return False unit.token = token unit.username = en_user.username unit.user_id = en_user.id #generate an initial id for the unit if alias is already used unit.alias = unit.username.lower() x = 0 while Unit.query(Unit.alias==unit.alias).count(1) > 0 or helper.is_reserved_name(unit.alias): if x >= 10: logging.info('Failed to generate valid alias.') return False unit.alias = helper.code_generator(size=8, chars=string.ascii_lowercase + string.digits) x += 1 logging.info('Generated alias is %s' % unit.alias) """ save Unit """ try: unit.put() except: return False # update user information if user.en_name != en_user.name: user.en_name = en_user.name user.put() return True
def put(self, target): if not self.logged_in: self.response.status = '401 Unauthorized' return if not self.current_user.active: self.response.status = '401 Unauthorized' return user = self.current_user if target == 'account': user.email = helper.escape(self.request.get('email')) try: user.put() except TransactionFailedError: self.response.status = '500 Database Error' return elif target == 'notebook': unit = Unit.get_by_user_key(user.key) if unit is None: self.response.status = '404 Not Found' return """ check alias """ if self.request.get('alias'): alias = helper.escape(self.request.get('alias')).lower() if alias != ''.join(re.findall('[a-z0-9]+', alias.lower())): self.response.status = '400 Bad Request' self.response.write('Invalid alias name.') return if unit.alias != alias and (Unit.query(Unit.alias==alias).count(1) > 0 or helper.is_reserved_name(alias)): self.response.status = '400 Bad Request' self.response.write('Value of \'alias\' is taken.') return if alias == '': self.response.status = '400 Bad Request' self.response.write('Value of \'alias\' can\'t be empty.') return put = False if unit.title != helper.escape(self.request.get('title')): unit.title = helper.escape(self.request.get('title')) put = True if unit.sub_title != helper.escape(self.request.get('sub_title')): unit.sub_title = helper.escape(self.request.get('sub_title')) put = True if unit.alias != helper.escape(self.request.get('alias')): unit.alias = helper.escape(self.request.get('alias')) put = True if unit.display != helper.escape(self.request.get('display')): unit.display = helper.escape(self.request.get('display')) put = True if unit.bio != helper.escape(self.request.get('bio')): unit.bio = helper.escape(self.request.get('bio')) put = True if put: try: unit.put() except TransactionFailedError: self.response.status = '500 Internal Server Error' return