def create_post(): '''create a new post. Return status code 422 if there is error in form data. Return new post data upon success''' form = SellingPostForm() if form.validate_on_submit(): try: #Check if user is member of ucla group circle = Circle.by_name("ucla") if not current_user.is_member(circle): return Response.make_error_resp(msg="You can only post if you are a member of the ucla group") hashtags, error = Hashtag.validate_hashtags(form.hashtags.data) if error: return Response.make_form_error_resp(form=form, msg=error['msg']) #get images to add tmp_images = Image.tmp_by_user(current_user) error, new_images, del_images = get_new_and_del_images(form.images.data, tmp_images, []) if error: return Response.make_form_error_resp(form=form, msg=error['msg']) del form.images del form.hashtags post = SellingPost() form.populate_obj(post) post.user_id = current_user.id #save images to post post.add_images(new_images) #set primary image post.set_primary_image(form.primary_image_id.data) #save images to s3 save_images_to_s3(current_user, new_images) #add the hashtags to post post.add_hashtags_from_list(hashtags) circle.add_post(post) db.session.add(post) db.session.commit() #subscribe self to post subscriber = UserPostSubscribe(subscriber_id=current_user.id, post_id=post.id) db.session.add(subscriber) db.session.commit() except Exception as e: return Response.make_exception_resp(exception=e) data = post.to_json(user=current_user) return Response.make_data_resp(data=data, msg="You have successfully created a new post!") return Response.make_form_error_resp(form=form)
def create_buy_request(): form = BuyRequestForm() if form.validate_on_submit(): try: #Check if user is member of ucla group circle = Circle.by_name("ucla") if not current_user.is_member(circle): return Response.make_error_resp( msg= "You can only request if you are a member of the ucla group" ) hashtags, error = Hashtag.validate_hashtags(form.hashtags.data) if error: return Response.make_form_error_resp(form=form, msg=error['msg']) del form.hashtags buy_request = BuyRequest() form.populate_obj(buy_request) buy_request.user_id = current_user.id #add the hashtags to post buy_request.add_hashtags_from_list(hashtags) circle.add_post(buy_request) db.session.add(buy_request) db.session.commit() #subscribe self to buy request subscriber = UserPostSubscribe(subscriber_id=current_user.id, post_id=buy_request.id) db.session.add(subscriber) db.session.commit() except Exception as e: return Response.make_exception_resp(exception=e) data = buy_request.to_json(user=current_user) return Response.make_data_resp( data=data, msg="You have successfully created a new buy request!") return Response.make_form_error_resp(form=form)
def create_buy_request(): form = BuyRequestForm() if form.validate_on_submit(): try: #Check if user is member of ucla group circle = Circle.by_name("ucla") if not current_user.is_member(circle): return Response.make_error_resp(msg="You can only request if you are a member of the ucla group") hashtags, error = Hashtag.validate_hashtags(form.hashtags.data) if error: return Response.make_form_error_resp(form=form, msg=error['msg']) del form.hashtags buy_request = BuyRequest() form.populate_obj(buy_request) buy_request.user_id = current_user.id #add the hashtags to post buy_request.add_hashtags_from_list(hashtags) circle.add_post(buy_request) db.session.add(buy_request) db.session.commit() #subscribe self to buy request subscriber = UserPostSubscribe(subscriber_id=current_user.id, post_id=buy_request.id) db.session.add(subscriber) db.session.commit() except Exception as e: return Response.make_exception_resp(exception=e) data = buy_request.to_json(user=current_user) return Response.make_data_resp(data=data, msg="You have successfully created a new buy request!") return Response.make_form_error_resp(form=form)
def create_post(): '''create a new post. Return status code 422 if there is error in form data. Return new post data upon success''' form = SellingPostForm() if form.validate_on_submit(): try: #Check if user is member of ucla group circle = Circle.by_name("ucla") if not current_user.is_member(circle): return Response.make_error_resp( msg= "You can only post if you are a member of the ucla group") hashtags, error = Hashtag.validate_hashtags(form.hashtags.data) if error: return Response.make_form_error_resp(form=form, msg=error['msg']) #get images to add tmp_images = Image.tmp_by_user(current_user) error, new_images, del_images = get_new_and_del_images( form.images.data, tmp_images, []) if error: return Response.make_form_error_resp(form=form, msg=error['msg']) del form.images del form.hashtags post = SellingPost() form.populate_obj(post) post.user_id = current_user.id #save images to post post.add_images(new_images) #set primary image post.set_primary_image(form.primary_image_id.data) #save images to s3 save_images_to_s3(current_user, new_images) #add the hashtags to post post.add_hashtags_from_list(hashtags) circle.add_post(post) db.session.add(post) db.session.commit() #subscribe self to post subscriber = UserPostSubscribe(subscriber_id=current_user.id, post_id=post.id) db.session.add(subscriber) db.session.commit() except Exception as e: return Response.make_exception_resp(exception=e) data = post.to_json(user=current_user) return Response.make_data_resp( data=data, msg="You have successfully created a new post!") return Response.make_form_error_resp(form=form)