示例#1
0
    def post(self, *args, **kwargs):
        if is_json_request(self.request):
            body = json.loads(self.request.body)
            body = body.get('data', None)
        else:
            body = self.get_argument('data', None)
            body = escape.json_decode(body) if body else {}
            # self.send_error(reason="仅支持Content-type:application/json")
            # return

        db = self.settings['mongo_client'][self.db]
        for row in body:
            id = row.get('id', None)
            if row.get('_state', None) == 'removed':
                if self.is_object_id(id):
                    yield db[self.cname].remove({"_id": ObjectId(id)})

            if id and self.is_object_id(id):  # update
                row['update_time'] = format_datetime(datetime.now())
                row['update_user'] = self.current_user.get('userid', '')
                yield db[self.cname].update({"_id": ObjectId(id) if self.is_object_id(id) else id}, {
                    "$set": clone_dict(row, without=[])
                })

            else:
                obj = clone_dict(row)
                obj['id'] = ObjectId()
                obj['_id'] = obj['id']

                obj['create_time'] = format_datetime(datetime.now())
                obj['create_user'] = self.current_user.get('userid', '')
                yield db[self.cname].insert(obj)
        # self.write(generate_response(message="保存成功"))
        self.send_message("保存成功")
 def on_message(self, message):
     decoded_message = escape.json_decode(message)
     text = decoded_message.get('message')
     if not text:
         self.send_error(reason='Empty text')
         return
     db_connection = self.get_db_connection()
     message = Message(user=self.user, channel=self.channel, text=text)
     message_repo = MessageRepository(db_connection)
     yield message_repo.save(message)
     yield message_repo.publish_message(message)
     yield self.release_db_connection(db_connection)
示例#3
0
    def post(self, *args, **kwargs):
        db = self.settings['mongo_client'][self.db]
        if 'application/json' in self.request.headers['content-Type']:
            body = json_decode(self.request.body)
            if body:
                data = body.get('data', None)
                remove_data = body.get('removed', None)
        else:
            data = self.get_argument('data', None)
            remove_data = self.get_argument('removed', None)

        if data:
            data_json = escape.json_decode(data) if type(data) == unicode else data
            list = to_list(data_json, "-1", "children", "id", "pid",self.current_user.get('userid'))
            for i, item in enumerate(list):
                yield db[self.cname].save(item)

        if remove_data:
            data_json = escape.json_decode(remove_data)
            list = to_list(data_json, "-1", "children", "id", "pid",self.current_user.get('userid'))
            for item in list:
                yield db[self.cname].remove({"_id": item['id']})
示例#4
0
    async def get(self):
        _gitlab_id = self.get_query_argument('gitlab_id', False)
        if not _gitlab_id:
            _projects = self.db_sesion.query(self.schema.project).all()
            self.render('project/project.html', projects = _projects)
        else:
            _project = self.db_sesion.query(self.schema.project).filter(
                self.schema.project.gitlab_id == _gitlab_id).one()
            _commits = await self.get_gitlab_api(
                '/projects/{project_id}/repository/commits'.format(project_id=_gitlab_id))

            _history = self.db_sesion.query(self.schema.deploy_history).filter(
                self.schema.deploy_history.gitlab_id == _gitlab_id).order_by(self.schema.deploy_history.op_time)[-20:]

            self.render('project/projectdetails.html', project=_project, commits=escape.json_decode(_commits),
                        history=_history)
示例#5
0
    def post(self, *args, **kwargs):
        post_data = escape.json_decode(self.request.body)

        # todo: validate post date
        bot_name = post_data.get("name")
        bot_url = post_data.get("url")

        self.add_header("Content-Type", "application/json")

        if bot_name and bot_url:
            arena = Arena.get_arena()
            try:
                bot = arena.register_bot(name=bot_name, url=bot_url)
            except Arena.BotAlreadyRegisteredException, e:
                self.send_error(status_code=400, error_message=e.message)
                return
            else:
                response_data = bot.to_json()
                self.write(response_data)
示例#6
0
	def post(self,*args,**kwargs):
		 
		body=escape.json_decode(self.request.body)
		global todos
		todos['todos'].append({'text':body.get('text','Empty'),'completed':False})
		gen_log.info(todos)