コード例 #1
0
def create():
    if request.method == 'POST':
        title = request.form['title']
        body = request.form['body']
        image_file = request.files['file']
        error = None

        if not title:
            error = 'Title is required.'

        if error is not None:
            flash(error)
        if not image_file:
            flash("Please Attach a file")
        else:

            folder = f"user_{g.user.id}"  # static/images
            try:
                image_path = image_helper.save_image(image_file, folder=folder)
                basename = image_helper.get_path(image_path)
                userModel = UserModel.find_user_by_id(g.user.id)
                post = PostModel(title=title,
                                 posts=body,
                                 image_url=image_path,
                                 user_id=userModel.id)
                post.save_to_db()

            except UploadNotAllowed:
                extension = image_helper.get_extension(image_file)
                flash("file with extension {} not allowed".format(extension))

            return redirect(url_for('blog.index'))

    return render_template('blog/create.html')
コード例 #2
0
    def put(self, _id):
        data = Post.parser.parse_args()

        if len(data['title']) > Configuration.MAX_POST_TITLE_SIZE:
            return {
                'message':
                'A title\'s length is more than {}'.format(
                    Configuration.MAX_POST_TITLE_SIZE)
            }
        category = data['category_id']
        if category:
            if not CM.query.filter(CM.id == category).first():
                return {
                    'message':
                    'There is no such category: \'{}\''.format(category)
                }

        tag_names = data['tags']
        if tag_names:
            tags = get_tags(tag_names)
        else:
            tags = []

        comments_id = data['comments']
        if comments_id:
            comments = get_comments(comments_id)
        else:
            comments = []

        del data['tags']
        del data['category_id']
        del data['comments']

        post = PostModel.find_by_id(_id)
        if not post:
            post = PostModel(**data)
            if tags:
                post = get_item_tags(tags, post)
            if comments:
                post = get_item_comments(comments, post)
        else:
            post.title = data['title']
            post.body = data['body']
            post.user_id = data['user_id']
            post.is_published = data['is_published']
            post.category_id = category
            post.tags = []
            post.comments = []
            if tags:
                post = get_item_tags(tags, post)
            if comments:
                post = get_item_comments(comments, post)

        try:
            post.save_to_db()
        except SQLAlchemyError as e:
            err = str(e.__class__.__name__)
            return {'message': '{}'.format(err)}, 500
        return post.get_json(), 201
コード例 #3
0
ファイル: posts.py プロジェクト: jitenderShrma/FlaskRestAPI
 def post(self, name):
     data = Post.parser.parse_args()
     if PostModel.find_by_title(data['title']):
         return {"message": "Title with the name '{}' already exist".format(data['title'])}, 400
     post = PostModel(data['title'], data['desc'])
     try:
         post.save_to_db()
         return post.json(), 201
     except:
         return {"message": "Error in order to save post"}, 500
コード例 #4
0
ファイル: posts.py プロジェクト: jitenderShrma/FlaskRestAPI
 def put(self, name):
     data = Post.parser.parse_args()
     post = PostModel.find_by_title(name)
     if post is None:
         post = PostModel(data['title'], data['desc'])
     else:
         post.title = data['title']
         post.desc = data['desc']
     post.save_to_db()
     return post.json()
コード例 #5
0
ファイル: post.py プロジェクト: Antoalvar/revista-pichon-API
    def put(self, post_id):
        data = Post.parser.parse_args()

        post = PostModel.find_by_id(post_id)

        if post is None:
            post = PostModel(post_id, data['title'])
        else:
            post.title = data['title']

        post.save_to_db()
        return post.json()
コード例 #6
0
	def post(self):
		_id = get_jwt_identity()
		user = UserModel.find_by_id(_id)
		data = Post.parser.parse_args()
		data["date_created"] = datetime.date(datetime.now())
		try:
			post = PostModel(**data)
			post.save_to_db()
			user.add_post(post)
			return {"msg" : "Post added"}, 200
		except:
			return {"msg" : "error adding new post"}, 500
コード例 #7
0
ファイル: blog.py プロジェクト: trey-rosius/final_flask_blog
def create():
    bucket = 'rosius'
    content_type = request.mimetype
    if request.method == 'POST':
        title = request.form['title']
        body = request.form['body']
        image_file = request.files['file']
        client = boto3.client(
            's3',
            region_name='us-east-2',
            endpoint_url='https://s3.us-east-2.amazonaws.com',
            aws_access_key_id=os.environ.get('AWS_ACCESS_KEY'),
            aws_secret_access_key=os.environ.get('AWS_SECRET_KEY'))
        error = None

        if not title:
            error = 'Title is required.'

        if error is not None:
            flash(error)
        if not image_file:
            flash("Please Attach a file")
        else:

            folder = f"user_{g.user.id}"  # static/images
            try:
                if image_helper.is_filename_safe(image_file):
                    client.put_object(Body=image_file,
                                      Bucket=bucket,
                                      Key=image_file.filename,
                                      ACL="public-read",
                                      ContentType=content_type)
                    #image_path = image_helper.save_image(image_file,folder=folder)
                    #basename = image_helper.get_path(image_path)
                    print("https://rosius.s3.us-east-2.amazonaws.com/" +
                          image_file.filename)
                    userModel = UserModel.find_user_by_id(g.user.id)
                    post = PostModel(
                        title=title,
                        posts=body,
                        image_url="https://rosius.s3.us-east-2.amazonaws.com/"
                        + image_file.filename,
                        user_id=userModel.id)
                    post.save_to_db()

            except UploadNotAllowed:
                extension = image_helper.get_extension(image_file)
                flash("file with extension {} not allowed".format(extension))

            return redirect(url_for('blog.index'))

    return render_template('blog/create.html')
コード例 #8
0
 def post(self):
     data = post_parser.parse_args()
     image_file = data['imageurl']
     blob = BlobClient.from_connection_string(
         conn_str=
         "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=image1689;AccountKey=LSKVztWeg3o9R4ufT6o9FtV4eW776/McWu+jaQWzjjrG4RnH8ztwyERNrVv8XIIHrdVnG4heorual1zOuVhjBg==",
         container_name="images",
         blob_name=str(uuid.uuid4().fields[-1])[:5] + ".jpg")
     blob.upload_blob(image_file)
     post = PostModel(data['content'], data['likes'], blob.url,
                      data['pub_date'], data['feed_id'], data['user_id'])
     post.save_to_db()
     return {"message": "Image Post Created."}, 201
コード例 #9
0
ファイル: post.py プロジェクト: samsthithi/go-world
    def put(self, title):
        data = Post.parser.parse_args()

        post = PostModel.find_by_title(title)

        if post:
            post.title = data['title']
        else:
            post = PostModel(title, **data)

        post.save_to_db()

        return post.json()
コード例 #10
0
    def post(self):
        # get the current user's id
        user_id = current_identity.id
        # get the post data
        data = AddPost.parser.parse_args()
        # Create a new post using the data and user_id
        post = PostModel(None, data['title'], data['body'], user_id, data['category_id'])

        # Try saving the post
        try:
            post.save_to_db()
        except:
            return {'success': False, 'message': 'Something went wrong'}, 500

        return {'sucess': 'Created successfully'}, 201
コード例 #11
0
ファイル: post.py プロジェクト: samsthithi/go-world
    def post(self, title):
        if PostModel.find_by_title(title):
            return {'message': "An post with title '{}' already exists.".format(title)}, 400

        data = Post.parser.parse_args()
        data['user_id'] = current_identity.id
        
        post = PostModel(title, **data)

        try:
            post.save_to_db()
        except:
            return {"message": "An error occurred inserting the post."}, 500

        return post.json(), 201
コード例 #12
0
ファイル: post.py プロジェクト: beast557/flask-blog
    def post(self):
        
        data = Post.parser.parse_args()
        if PostModel.find_by_title(data['title']):
            return {'message': "A post with title '{}' already exists.".format(data['title'])}, 400
        user_id = get_jwt_identity()
        # print(user_id)
        post = PostModel(data['title'], data['body'],user_id)

        try:
            post.save_to_db()
        except:
            return {"message": "An error occurred inserting the item."}, 500

        return post.json(), 201
コード例 #13
0
ファイル: post.py プロジェクト: Antoalvar/revista-pichon-API
    def post(self, post_id):
        if PostModel.find_by_id(post_id):
            return {
                'message':
                "An item with id: '{}' already exist".format(post_id)
            }, 400

        data = Post.parser.parse_args()
        post = PostModel(post_id, data['title'])

        try:
            post.save_to_db()
        except:
            return {'message': 'An error inserting post'}, 500

        return post.json(), 201
コード例 #14
0
    def post(self):
        data = PostRegister.parser.parse_args()
        tag_names = data['tags']
        if tag_names:
            tags = get_tags(tag_names)
        else:
            tags = []

        if len(data['title']) > Configuration.MAX_POST_TITLE_SIZE:
            return {
                'message':
                'A title\'s length is more than {}'.format(
                    Configuration.MAX_POST_TITLE_SIZE)
            }

        category = data['category_id']
        if category:
            if not CM.query.filter(CM.id == category).first():
                return {
                    'message':
                    'There is no such category: \'{}\''.format(category)
                }

        comments_id = data['comments']
        if comments_id:
            comments = get_comments(comments_id)
        else:
            comments = []

        del data['tags']
        del data['category_id']
        del data['comments']

        new_post = PostModel(**data)

        if tags:
            new_post = get_item_tags(tags, new_post)
        if comments:
            new_post = get_item_comments(comments, new_post)

        try:
            new_post.save_to_db()
        except SQLAlchemyError as e:
            err = str(e.__class__.__name__)
            return {'message': '{}'.format(err)}, 500
        return new_post.get_json(), 201
コード例 #15
0
    def create_post(theme, anonymity, writer_id, content):
        # check if that theme exists
        # check if that username exists
        # check if content is less than characters
        writer = UserModel.find_by_id(writer_id)
        if not ThemeModel.find_by_theme(theme):
            return "The post's theme doesn't exist.", None
        if not writer:
            return "The writer is not a user", None
        if len(content) > 150:
            return "The content is too long", None

        try:
            new_post = PostModel(theme, anonymity, writer_id, content)
            new_post.save_to_db()
        except:
            return "Error saving to db", None

        return ""
コード例 #16
0
 def post(self):
     data = post_parser.parse_args()
     post = PostModel(**data)
     post.save_to_db()
     return {"message": "Post Created."}, 201
コード例 #17
0
ファイル: post.py プロジェクト: ngls17/Simple-REST-API
    def post(self):
        data = Post.parser.parse_args()

        post = PostModel(data['text'])
        post.save_to_db()
        return {"message": "Post created successfully."}, 201