Example #1
0
    def post(self):
        result = utils.init_response_data()
        self.model.extra_params = self.response_extra_params
        try:
            self.check_request_params(self.mp_require_params)
            request_params = self.format_request_params()
            exec("""request_params = self.mp_default_params.update(%s)""" %
                 request_params)
            request_params = self.mp_default_params
            query_params = {}
            for key in self.mp_query_params:
                query_params.update({
                    key: request_params[key],
                })

            if query_params == {} or not self.model.is_exists(query_params):
                obj = self.model.create(**request_params)
                result["data"] = utils.dump(obj)
            else:
                if self.mp_update_or_raise == "update":
                    obj = self.model.search(query_params)
                    query_params = {"_id": utils.create_objectid(obj["_id"])}
                    result["data"] = self.model.update(query_params,
                                                       request_params)
                else:
                    raise Exception("已存在!")
        except Exception, e:
            result = utils.reset_response_data(0, str(e))
Example #2
0
    def put(self):
        result = utils.init_response_data()
        try:
            banner_id = self.get_argument("banner_id", "")
            use_type = self.get_argument("use_type", "banner")
            banner = self.model.get_coll().find_one({"_id": utils.create_objectid(banner_id), "enable_flag": 1})
            if banner is None:
                raise ValueError(u'该图片不存在或已被删除')

            files = self.request.files
            if files.has_key("files"):
                files = files["files"]
                data = self.model.upload_image(files, use_type)
            else:
                raise ValueError(u"没有上传文件")
            for d in data:
                banner["file_name"] = d["file_name"]
                banner["use_type"] = d["use_type"]
                banner["add_time"] = d["add_time"]
                banner["file_type"] = d["file_type"]
                banner["logs"].append({
                    "user_id": "",
                    "action_date": utils.get_current_time(),
                    "action": "修改文件",
                    "note": "file_path|from|%s|to|%s" % (banner['file_path'], d['file_path'])
                })
                banner["file_path"] = d["file_path"]
                self.model.get_coll().save(banner)
        except StandardError, e:
            result = utils.reset_response_data(0, unicode(e))
Example #3
0
 def delete(self):
     result = utils.init_response_data()
     try:
         ids = json.loads(self.get_argument("ids"))
         _ids = [utils.create_objectid(id) for id in ids]
         for _id in _ids:
             self.model.delete(_id=_id)
     except Exception, e:
         result = utils.reset_response_data(0, str(e))
Example #4
0
 def get_user_id(self):
     token = self.get_argument('access_token', None)
     if not token:
         auth_header = self.request.headers.get('Authorization', None)
         if not auth_header:
             raise Exception('This resource need a authorization token')
         token = auth_header[7:]
     redis_tool = redislib.RedisTool()
     user_id = redis_tool.get(token)
     return utils.create_objectid(user_id)
Example #5
0
 def get(self):
     result = utils.init_response_data()
     try:
         _id = self.get_argument("_id")
         link = self.model.search({"_id": utils.create_objectid(_id)})
         if link:
             count = link.get("count", 0) + 1
             last_read_time = str(datetime.datetime.now())
             query_params = {"_id": utils.create_objectid(_id)}
             update_params = {
                 "count": count,
                 "last_read_time": last_read_time
             }
             self.model.update(query_params, update_params)
     except Exception, e:
         result = utils.reset_response_data(0, str(e))
         self.write(result)
         self.finish()
         return
Example #6
0
 def get(self):
     result = utils.init_response_data()
     self.model.extra_params = self.mg_extra_params
     try:
         id = self.get_argument("id")
         _id = utils.create_objectid(id)
         ret = self.model.search({"_id": _id})
         if ret:
             result["data"] = ret
         else:
             result["data"] = {}
     except Exception, e:
         result = utils.reset_response_data(0, str(e))
Example #7
0
    def delete(self, file_id):
        file = self.get_coll().find_one(
            {"_id": utils.create_objectid(file_id)})
        if file is None:
            raise ValueError(u"该文件不存在或已被删除")

        file['enable_flag'] = 0
        file['logs'].append({
            "action_date": utils.get_current_time(),
            "action": "删除文件",
            "note": ""
        })
        self.get_coll().save(file)
Example #8
0
    def edit(self, file_id, file):
        '''

        :param file_id: 文件id
        :param file: self.request.files['file']的格式
        :param user_id: 用户id
        :return:
        '''
        import os, time
        file_coll = self.get_coll().find_one({
            "_id":
            utils.create_objectid(file_id),
            "enable_flag":
            1
        })
        if file_coll is None:
            raise ValueError(u"该文件不存在或已被删除")

        upload_path = options.file_download_store_url + "%s/%s/" % (
            file_coll['file_type'], time.strftime('%Y/%m/%d'))

        if not os.path.exists(upload_path):
            os.makedirs(upload_path)

        file_metas = file
        if file_metas == '':
            raise ValueError(u"没有上传文件")

        for meta in file_metas:
            filename = str(utils.get_local_timestamp()) + meta['filename']
            filepath = os.path.join(upload_path, filename)
            #有些文件需要已二进制的形式存储,实际中可以更改
            with open(filepath, 'wb') as up:
                up.write(meta['body'])
            file_coll['logs'].append({
                "action_date":
                utils.get_current_time(),
                "action":
                "修改文件",
                "note":
                "file_path|from|%s|to|%s" %
                (file_coll['file_path'],
                 filepath.split(utils.options.project_root_path)[1])
            })
            file_coll['file_path'] = filepath.split(
                utils.options.project_root_path)[1]
            self.get_coll().save(file_coll)
Example #9
0
    def put(self):
        result = utils.init_response_data()
        try:
            id = self.get_argument("id")
            _id = utils.create_objectid(id)

            self.check_request_params(self.mp_require_params)
            request_params = self.format_request_params()

            update_params = {}
            exec("""update_params.update(%s)""" % request_params)
            self.check_update_params(update_params)
            update_params["_id"] = _id
            del update_params["id"]

            ret = self.model.update(query_params={"_id": _id},
                                    update_params=update_params)
            result['data'] = ret
        except Exception, e:
            result = utils.reset_response_data(0, str(e))