Beispiel #1
0
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)   
Beispiel #4
0
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)