Exemplo n.º 1
0
 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
     })
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
 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)
Exemplo n.º 4
0
 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)
Exemplo n.º 5
0
 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)
Exemplo n.º 6
0
 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})
Exemplo n.º 7
0
    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})
Exemplo n.º 8
0
 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
     })
Exemplo n.º 9
0
 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
     })
Exemplo n.º 10
0
 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)
Exemplo n.º 11
0
 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
     })
Exemplo n.º 12
0
 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)
Exemplo n.º 13
0
 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)
Exemplo n.º 14
0
 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)
Exemplo n.º 15
0
 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)
Exemplo n.º 16
0
 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)
Exemplo n.º 17
0
 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()
Exemplo n.º 18
0
 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!"
Exemplo n.º 19
0
 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)
Exemplo n.º 20
0
 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})
Exemplo n.º 21
0
 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})
Exemplo n.º 22
0
 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
     })
Exemplo n.º 23
0
 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)