def update(self, d): id = self.request.get('id') params = tools.gets(self, integers=['type'], strings=['notes', 'title', 'url', 'author', 'source'], booleans=['read', 'favorite'], lists=['tags']) if id: r = self.user.get(Readable, id=id) else: # New r = Readable.CreateOrUpdate(self.user, None, **params) if r: r.Update(**params) if r.source == 'pocket': access_token = self.user.get_integration_prop('pocket_access_token') if access_token: from services import pocket if params.get('favorite') == 1: pocket.update_article(access_token, r.source_id, action='favorite') if params.get('read') == 1: pocket.update_article(access_token, r.source_id, action='archive') r.put() self.success = True self.set_response({ 'readable': r.json() if r else None })
def update(self, d): success = False message = None missing_scopes = [] id = self.request.get_range('id') params = tools.gets(self, strings=['name','password','phone','email','location_text','currency'], integers=['level'], lists=['services_enabled'], json=['service_settings'], ignoreMissing=True) user = None isSelf = False if id: user = User.get_by_id(id) else: user = User.Create(email=params.get('email'), phone=params.get('phone')) if user: isSelf = user.key == self.user.key user.Update(**params) missing_scopes = user.check_available_scopes() user.put() success = True if user: if isSelf: self.session['user'] = user message = "Profile saved" else: message = "User saved" else: message = "Problem creating user" data = { 'user': user.json() if user else None, } if user and missing_scopes: data['oauth_uri'] = user.get_auth_uri(scope=' '.join(missing_scopes)) self.json_out(data, success=success, message=message)
def update(self, d): """ Update or Create """ success = False message = None sg = None key = self.request.get('key') params = tools.gets(self, strings=['name']) if key: sg = SensorGroup.get(key) elif d['enterprise']: # Create if params.get('name'): sg = SensorGroup.Create(d['enterprise']) else: message = "Name required" else: message = "Malformed" if sg: # Update sg.Update(**params) sg.put() sg.updateSearchDoc() success = True data = { 'group': sg.json() if sg else None } self.json_out(data, message=message, success=success, debug=True)
def update(self, d): success = False message = None id = self.request.get_range('id') params = tools.gets(self, strings=['name','password','phone','email','location_text','currency'], integers=['level', 'alert_channel'], lists=['group_ids'], json=['custom_attrs'], ignoreMissing=True) user = None isSelf = False if id: user = User.get_by_id(id) logging.debug(user) else: user = User.Create(d['enterprise'], email=params.get('email'), phone=params.get('phone')) if user: isSelf = user.is_saved() and user.key() == d['user'].key() user.Update(**params) user.put() success = True if user: if isSelf: self.session['user'] = user message = "Profile saved" else: message = "User saved" else: message = "Problem creating user" data = { 'user': user.json() if user else None } self.json_out(data, success=success, message=message)
def update(self, d): """ Update or Create For creating video media """ success = False message = None p = pm = None key = self.request.get('key') uid = self.request.get_range('uid') id = self.request.get_range('id') params = tools.gets(self, strings=['external_link'], integers=['type']) if id and uid: p = Sensor.get_by_id(id, parent=db.Key.from_path('User', uid)) if p: pm = SensorMedia.Create(p, user=d['user'], _type=params.get('type')) if pm: pm.Update(**params) pm.put() p.Update() p.put() # Change update timestamp success = True else: message = "Malformed" data = { 'media': pm.json() if pm else None } self.json_out(data, message=message, success=success)
def update(self, d): ''' Create or update ''' id = self.request.get_range('id') params = tools.gets(self, strings=['title', 'subhead', 'url1', 'url2'], booleans=['starred', 'archived'], integers=['progress'], dates=['due'], supportTextBooleans=True) if id: prj = self.user.get(Project, id=id) else: prj = Project.Create(self.user) if prj: was_complete = prj.is_completed() update_urls = False urls = [] if 'url1' in params: urls.append(params.get('url1')) update_urls = True if 'url2' in params: urls.append(params.get('url2')) update_urls = True if update_urls: params['urls'] = urls prj.Update(**params) prj.put() completed = prj.is_completed() and not was_complete if completed: self.message = "Project completed!" self.success = True self.set_response({'project': prj.json() if prj else None})
def submit(self, d): ''' Submit today's journal (yesterday if 00:00 - 04:00) ''' date = None _date = self.request.get('date') if _date: date = tools.fromISODate(_date) task_json = tools.getJson(self.request.get('tasks')) # JSON params = tools.gets(self, strings=['lat', 'lon', 'tags_from_text'], json=['data'], lists=['tags']) logging.debug(params) if params.get('data'): if not params.get('tags'): params['tags'] = [] jrnl = MiniJournal.Create(self.user, date) jrnl.Update(**params) jrnl.parse_tags() jrnl.put() if task_json: # Save new tasks for tomorrow tasks = [] for t in task_json: if t: task = Task.Create(self.user, t) tasks.append(task) ndb.put_multi(tasks) self.success = True self.message = "Journal submitted!" self.set_response({'journal': jrnl.json() if jrnl else None})
def update(self, d): ''' Create or update ''' id = self.request.get('id') params = tools.gets(self, strings=['text1', 'text2', 'text3', 'text4'], integers=['assessment'] ) goal = self.user.get(Goal, id=id) if not goal: goal = Goal.Create(self.user, id=id) if goal: text = [] for i in range(1, 5): key = 'text%d' % i if key in params: text_i = params.get(key) if text_i: text.append(text_i) if text: params['text'] = text goal.Update(**params) goal.put() self.message = "Goal saved" self.success = True else: self.message = "Couldn't create goal" self.set_response({ 'goal': goal.json() if goal else None })
def update(self, d): ''' Create or update ''' id = self.request.get_range('id') params = tools.gets(self, strings=['title', 'details', 'color'], dates=['date_start', 'date_end'], booleans=['ongoing'], supportTextBooleans=True ) event = self.user.get(Event, id=id) if not event: start = params.get('date_start') if start: event = Event.Create(self.user, params.get('date_start')) if event: event.Update(**params) event.put() self.success = True self.message = "Event saved" else: self.message = "Couldn't create event" self.set_response({ 'event': event.json() if event else None })
def update(self, d): """ Update or Create """ success = False message = None target = None key = self.request.get('key') params = tools.gets(self, strings=['name','lat','lon'], lists=['group_ids']) if key: target = Target.get(key) elif d['enterprise']: if params.get('name'): # Create target = Target.Create(d['enterprise']) else: message = "Name required" else: message = "Malformed" if target: # Update target.Update(**params) target.put() target.updateSearchDoc() success = True data = { 'target': target.json() if target else None } self.json_out(data, message=message, success=success)
def update(self, d): ''' Create or update ''' id = self.request.get_range('id') params = tools.gets(self, strings=['name', 'description', 'color', 'icon'], booleans=['archived'], integers=['tgt_weekly'], supportTextBooleans=True ) habit = None if id: habit = self.user.get(Habit, id=id) else: name = params.get('name') if not name: self.message = "Name required" else: habit = Habit.Create(self.user) if habit: habit.Update(**params) habit.put() self.success = True self.set_response({ 'habit': habit.json() if habit else None })
def update(self, d): """ Update or Create """ success = False message = None rule = None key = self.request.get('key') params = tools.gets(self, strings=['name','column','alert_message','payment_amount'], floats=['value1','value2'], json=['value_complex'], integers=['sensortype_id','duration','buffer','plimit','plimit_type','consecutive','consecutive_limit','trigger'], lists=['alert_contacts','payment_contacts']) if key: rule = Rule.get(key) elif d['enterprise']: # Create rule = Rule.Create(d['enterprise']) else: message = "Malformed" if rule: # Update update_message = rule.Update(**params) if update_message: message = update_message rule.put() success = True data = { 'rule': rule.json() if rule else None } self.json_out(data, message=message, success=success, debug=True)
def update(self, d): """ Update or Create """ success = False message = None p = None key = self.request.get('key') params = tools.gets(self, strings=['label'], times=['time_start','time_end'], integers=['interval'], json=['spec'], lists=['rule_ids','month_days','week_days']) if key: p = ProcessTask.get(key) elif d['enterprise']: # Create p = ProcessTask.Create(d['enterprise']) else: message = "Malformed" if p: # Update p.Update(**params) p.put() success = True message = "Process task updated!" data = { 'processtask': p.json() if p else None } self.json_out(data, message=message, success=success, debug=True)
def update(self, d): """ Update or Create """ success = False message = None st = None key = self.request.get('key') params = tools.gets(self, strings=['name','alias'], json=['schema']) if key: st = SensorType.get(key) elif d['enterprise']: # Create st = SensorType.Create(d['enterprise']) else: message = "Malformed" if st: # Update schema_ok = True schema = params.get("schema") if schema: for colname in RECORD.ILLEGAL_COLNAMES: if colname in schema: schema_ok = False break if schema_ok: st.Update(**params) st.put() success = True else: message = "Illegal column name in schema" data = { 'sensortype': st.json() if st else None } self.json_out(data, message=message, success=success)
def submit(self, d): ''' Submit a snapshot. Assume snapshot is now ''' params = tools.gets(self, strings=['lat', 'lon', 'activity', 'place'], json=['metrics'], lists=['people']) snap = Snapshot.Create(self.user, **params) snap.put() self.success = True self.set_response({'snapshot': snap.json() if snap else None}, message="Snapshot submitted!", debug=True)
def update_self(self, d): params = tools.gets(self, strings=['timezone', 'birthday', 'password'], lists=['sync_services'], json=['settings']) self.user.Update(**params) self.user.put() self.update_session_user(self.user) message = "User settings updated" self.success = True self.set_response({ 'message': message, 'user': self.user.json() }, debug=True)
def submit(self, d): from constants import SENDER_EMAIL, ADMIN_EMAIL, SITENAME params = tools.gets(self, strings=['feedback', 'email']) if 'feedback' in params and 'email' in params: feedback = params.get('feedback') email = params.get('email') mail.send_mail(to=ADMIN_EMAIL, sender=SENDER_EMAIL, subject="[ %s ] Feedback from %s" % (SITENAME, email), body="Message: %s" % feedback) self.success = True self.message = "Thanks for your feedback!" self.set_response()
def submit(self, d): from constants import SENDER_EMAIL, ADMIN_EMAIL, SITENAME params = tools.gets(self, strings=['feedback', 'email']) if 'feedback' in params and 'email' in params: feedback = params.get('feedback') email = params.get('email') try: mail.send_mail(to=ADMIN_EMAIL, sender=SENDER_EMAIL, subject="[ %s ] Feedback from %s" % (SITENAME, email), body="Message: %s" % feedback) except Exception, e: logging.warning("Can't send mail") logging.debug(email) logging.debug(feedback) self.success = True self.message = "Thanks for your feedback!"
def update(self, d): """ Update or Create """ success = False message = None s = None key = self.request.get('key') kn = self.request.get('kn') params = tools.gets(self, strings=['name','lat','lon', 'sensortype_alias'], json=['contacts'], integers=['sensortype_id', 'target_id', 'process_task_id'], lists=['group_ids']) if key: s = Sensor.get(key) elif d['enterprise'] and kn and ('sensortype_id' in params or 'sensortype_alias' in params): # Create sensortype_id = params.get('sensortype_id') if not sensortype_id: alias = params.get('sensortype_alias') st = SensorType.Get(d['enterprise'], alias) if st: sensortype_id = st.key().id() if sensortype_id: s = Sensor.Create(d['enterprise'], kn, sensortype_id) else: message = "No sensor type" else: message = "Malformed" if s: # Update s.Update(**params) s.put() s.updateSearchDoc() if 'process_task_id' in params: # Associate with processer pt = ProcessTask.GetAccessible(params['process_task_id'], d['user'], parent=d['enterprise']) if pt: spt = SensorProcessTask.Create(d['enterprise'], pt, s) if spt: spt.put() success = True data = { 'sensor': s.json() if s else None } self.json_out(data, message=message, success=success, debug=True)
def update(self, d): id = self.request.get('id') params = tools.gets( self, strings=['source', 'content', 'link', 'location', 'date'], lists=['tags']) quote = None if id: quote = self.user.get(Quote, id=id) else: if 'date' in params: params['dt_added'] = tools.fromISODate(params.get('date')) quote = Quote.Create(self.user, **params) self.message = "Quote saved!" if quote else "Couldn't create quote" self.success = quote is not None quote.Update(**params) quote.put() self.set_response({'quote': quote.json() if quote else None})
def update(self, d): ''' Create or update ''' id = self.request.get_range('id') params = tools.gets(self, strings=['title'], booleans=['archived', 'wip'], integers=['status']) task = None if id: task = self.user.get(Task, id=id) elif 'title' in params: task = Task.Create(self.user, None) if task: self.message = task.Update(**params) self.success = True task.put() self.set_response({'task': task.json() if task else None})
def update(self, d): ''' ''' id = self.request.get('id') params = tools.gets(self, strings=['tags_from_text'], json=['data'] ) jrnl = None if id: jrnl = MiniJournal.get_by_id(id, parent=self.user.key) jrnl.Update(**params) jrnl.parse_tags() jrnl.put() self.success = True self.message = "Journal updated" else: self.message = "Malformed request - id required" self.set_response({ 'journal': jrnl.json() if jrnl else None })
def update(self, d): """ """ success = False message = None ent = None key = self.request.get('key') params = tools.gets(self, strings=['name','country','timezone','alias'], integers=['default_sensortype'], json=['gateway_config'], ignoreMissing=True) if key: ent = Enterprise.get(key) elif params.get('name'): ent = Enterprise.Create() if ent: ent.Update(**params) ent.put() success = True else: message = "Malformed" data = { 'enterprise': ent.json() if ent else None } self.json_out(data, message=message, success=success)