def mutate(cls, _, info, title, body, category): author = User.objects(email=get_jwt_identity()).first() new_idea = Idea(author=author, title=title, body=body, category=category) new_idea.save() author.update(inc__point=50) author.update(push__ideas=new_idea) idea_activity_logger(user=author, type="new") return NewIdeaMutation(result=ResponseMessageField( is_success=True, message="Idea upload success"))
def bookmarklet(request): posted = False if request.method == 'POST': #If something has been submitted if 'submit_idea' in request.POST: ideaForm = IdeaForm(request.POST) # A form bound to the POST data if ideaForm.is_valid(): # All validation rules pass # Process the data in form.cleaned_data # ... clean = ideaForm.cleaned_data idea = Idea(idea=clean['idea_content'], user = request.user, private=clean['private']) idea.save() helpers.filter_tags(clean['tags'], idea) posted = True ideaForm = IdeaForm() return render_to_response("main/bookmarklet.html", locals(), context_instance=RequestContext(request))
def create(self, request, apikey, apisignature): """ Creates an Idea """ if not key_check( apikey, apisignature, '/idea/post/'): return {'error':'authentication failed'} else: tags = False try: ideaForm = IdeaForm({"idea_content":request.POST['idea_text'],"tags":request.POST['idea_tags']}) except: ideaForm = IdeaForm({"idea_content":request.POST['idea_text'],}) else: if request.POST['idea_tags'] != '': tags = True #set tags if the user submitted them if ideaForm.is_valid(): private = False try: if request.POST['private'] == '1': private = True except: pass clean = ideaForm.cleaned_data idea = Idea(idea=clean['idea_content'], user = User.objects.get(id = request.POST['user_id']), private = private ) idea.save() # if tags: helpers.filter_tags(clean['tags'], idea) # try: # if request.POST['slate'] != "": # print "slate problem" # slate = Slate.objects.get(id=request.POST['slate']) # slate.ideas.add(idea) # slate.save() # except Error as e: # print e return idea else: return {'error':'no idea'}
def add_idea(request, slate_id=None): print slate_id ideaForm = IdeaForm(request.POST) if ideaForm.is_valid(): # All validation rules pass # Process the data in form.cleaned_data # ... clean = ideaForm.cleaned_data idea = Idea( idea=clean['idea_content'], user = request.user, private = clean['private'], ) idea.save() if slate_id: print "add to slate" slate = Slate.objects.get(id=slate_id) slate.ideas.add(idea) slate.save() filter_tags(clean['tags'], idea) print "returning idea" return idea
def ideas(): if not request.data: return make_response(jsonify(error="Missing parameters."), 400) if request.method == "POST": token = str(request.json.get('id', '')) user = User.query.filter_by(token=token) action = Action.query.filter_by( action=str(request.json.get('action', ''))) idea = Idea.query.filter_by( response=str(request.json.get('idea', ''))) categories = request.json.get('categories', '') if str(request.json.get('isGenius', '')) == 'True': is_genius = True if str(request.json.get('isGenius', '')) == 'False': is_genius = False if user.count() <= 0: return make_response(jsonify(error="User not found."), 404) elif idea.count() > 0: return make_response( jsonify( error= "{0} idea already exists in the database for {1} {2}.". format(action[0].action, user[0].first_name, user[0].last_name)), 400) else: idea = Idea(response=str(request.json.get('idea', '')), random_word=str(request.json.get( 'random_word', '')), user_id=user[0].id, action_id=action[0].id, is_genius=is_genius, question=str(request.json.get('question', ''))) idea.save() for category in categories: found_cat = Category.query.filter_by(name=category['name']) new_idea_categories = idea_categories.insert().values( idea_id=idea.id, category_id=found_cat[0].id) db.session.execute(new_idea_categories) db.session.commit() return make_response( jsonify( success= "{0} idea for {1} {2} has been successfully created!". format(action[0].action, user[0].first_name, user[0].last_name)), 200) if request.method == "DELETE": token = str(request.json.get('token', '')) user = User.query.filter_by(token=token) idea_id = str(request.json.get('idea_id', '')) if user.count() <= 0: return make_response(jsonify(error="User not found."), 404) else: idea = Idea.query.filter_by(id=idea_id, user_id=user[0].id) if idea.count() <= 0: return make_response(jsonify(error="Idea not found."), 404) else: idea_name = idea[0].question Idea.delete(idea[0]) return make_response('', 204)
def setUp(self): self.app = create_app(config_name="testing") self.client = self.app.test_client from app.models import User, Category, Action, Idea with self.app.app_context(): db.create_all() user = User(first_name="Ryan", last_name="Hantak", email="*****@*****.**", password="******") user.save() cat1 = Category(name="Finance") cat1.save() cat2 = Category(name="Education") cat2.save() cat3 = Category(name="Tech") cat3.save() action1 = Action(action="Create an app") action1.save() action2 = Action(action="Draft an ad campaign") action2.save() idea1 = Idea( user_id=user.id, random_word="Skate", action_id=action2.id, is_genius=True, question= "Create an ad campaign to sell a book about financial literacy.", response= "Two friends in a roller derby match are having a conversation about how they're investing their money, one tells the other about what they learned from the book and the second person is so impressed they want to buy it." ) idea1.save() idea2 = Idea( user_id=user.id, random_word="Bird", action_id=action1.id, is_genius=False, question="Create an app people use to trade stocks", response= "Make it easy to trade stocks mobile, charge a monthly fee so people don't feel like each trade costs them extra money and offer daily articles to encourage them to keep checking." ) idea2.save() user.categories.append(cat1) user.categories.append(cat2) user.categories.append(cat3) user.actions.append(action1) user.actions.append(action2) idea1.categories.append(cat1) idea1.categories.append(cat2) idea2.categories.append(cat1) idea2.categories.append(cat3) db.session.add_all([idea1, idea2]) db.session.commit() global user_token user_token = User.query.filter_by( email='*****@*****.**').first().token