def delete(self, id): if id is None: return helpers.api_error('No Organization ID Provided!', 404), 404 else: o = Organization.objects.get_or_404(id=id) o.delete() return helpers.api_return('DELETED', datetime.utcnow(), id, 'Organization')
def delete(self, id): if id is None: return helpers.api_error('No Project ID Provided!', 404), 404 else: p = Project.objects.get_or_404(id=id) p.delete() return helpers.api_return('DELETED', datetime.utcnow(), id, 'Project')
def post(self, id=None): data = request.get_json(force=True, silent=False) if 'rewards' in data: reward_list = [] for reward in data['rewards']: reward_list.append(Reward(**reward)) data['rewards'] = reward_list if 'organization' in data: org = Organization.objects.get_or_404(id=data['organization']) data['organization'] = org if 'name' not in data: return helpers.api_error('Please enter an appropriate name for your project!', 400), 400 user = User.objects.get_or_404(id=data['creator']) for key, value in data.iteritems(): if key in ['start_date', 'end_date', 'fulfilled_date', 'published']: data[key] = datetime.strptime(value['date'], "%Y-%m-%d %H:%M:%S") else: data[key] = value data['creator'] = user proj = Project(**data) proj.updated = datetime.utcnow() try: proj.save() except ValidationError as e: return helpers.api_error(e.message, 400), 400 except NotUniqueError as e: return helpers.api_error(e.message, 409), 409 except Exception: return helpers.api_error("Something went wrong! Check your request parameters!", 500), 500 ml = MarketingList(project=proj.id, contacts=[], pledge_conversion=0, convert_conversion=0, total_donated=0) ml.save() return helpers.api_return("OK", proj.updated, proj.id, 'Project')
def delete(self, ml_id, id): email = request.args.get("email", None) if ml_id is None or email is None: return helpers.api_error("No Contact ID Provided!", 404), 404 else: ml = MarketingList.objects(id=ml_id).update(pull__contacts__email=email) return helpers.api_return("DELETED", datetime.utcnow(), ml_id, "Contact")
def delete(self, id): if id is None: return helpers.api_error('No user_id provided!', 404), 404 else: u = User.objects.get_or_404(id=id) u.delete() return helpers.api_return('DELETED', datetime.utcnow(), id, 'User')
def post(self, id=None): data = request.get_json(force=True, silent=False) if 'email' in data: data['email'] = data['email'].lower() # verification email if 'password' in data: data['password'] = bcrypt.hashpw( data['password'], bcrypt.gensalt()) if 'stripe_info' in data: data['stripe_info'] = UserStripeInfo(**data['stripe_info']) if 'fb_friends' in data: new_list = [] for friend in data['fb_friends']: new_list.append(FBFriend(fb_id=friend['id'], fb_name=friend['name'])) data['fb_friends'] = new_list user = User(**data) user.updated = datetime.utcnow() try: user.save() except ValidationError as e: return helpers.api_error(e.message, 400), 400 except NotUniqueError as e: return helpers.api_error(e.message, 409), 409 except Exception: return helpers.api_error("Something went wrong! Check your request parameters!", 500), 500 return helpers.api_return('OK', user.updated, user.id, 'User')
def put(self, ml_id, id): data = request.get_json(force=True, silent=False) contact = Contact(**data) contact.con_id = id contact.updated = datetime.utcnow() ml = MarketingList.objects(id=ml_id, contacts__con_id=id).update(set__contacts__S=contact) return helpers.api_return("OK", datetime.utcnow(), ml_id, "Contact")
def post(self, ml_id, id=None): data = request.get_json(force=True, silent=False) contact = Contact(**data) email = contact.email contact.updated = datetime.utcnow() ml = 0 if email is not None: ml = MarketingList.objects(id=ml_id, contacts__email=email).update(set__contacts__S=contact) if ml == 0: contact.con_id = ObjectId() ml = MarketingList.objects(id=ml_id).update(push__contacts=contact) return helpers.api_return("OK", datetime.utcnow(), contact.con_id, "Contact")
def post(self, id=None): data = request.get_json(force=True, silent=False) proj = Project.objects.get_or_404(id=data["project"]) transaction = Transaction( fullname=data["fullname"], email=data["email"], project=proj, total_amt=data["total_amt"], giga_fee=data["giga_fee"], trans_fee=data["trans_fee"], net_amt=data["net_amt"], stripe_id=data["stripe_id"], survey_fields=data["survey_fields"], ) if "comment" in data: transaction.comment = data["comment"] if "referring_user" in data: ref = User.objects.get_or_404(id=data["referring_user"]) transaction.referring_user = ref if "organization" in data: org = Organization.objects.get_or_404(id=data["organization"]) transaction.organization = org if "user" in data: user = User.objects.get_or_404(id=data["user"]) transaction.user = user transaction.updated = datetime.utcnow() transaction.created = datetime.utcnow() try: transaction.save() except ValidationError as e: return helpers.api_error(e.message, 400), 400 except NotUniqueError as e: return helpers.api_error(e.message, 409), 409 except Exception: return helpers.api_error("Something went wrong! Check your request parameters!", 500), 500 if data["project"] == "5341f31c21391d0d902b29f1" or data["project"] == "5341f12d242f872d43ffae59": rmc_email.delay(data["email"], data["project"]) proj.update( inc__total_raised=data["total_amt"], inc__total_giga_fee=data["giga_fee"], inc__total_trans_fee=data["trans_fee"], inc__total_net_raised=data["net_amt"], add_to_set__donor_list=data["email"], ) ml = MarketingList.objects(project=proj.id, contacts__email=data["email"]).update( set__contacts__S__status="converted", set__contacts__S__donated=data["total_amt"] ) if ml > 0: ml = MarketingList.objects(project=proj.id).update( inc__convert_conversion=1, inc__total_donated=data["total_amt"] ) return helpers.api_return("OK", transaction.updated, transaction.id, "Transaction")
def post(self, id=None): data = request.get_json(force=True, silent=False) pledge = Pledge(**data) pledge.updated = datetime.utcnow() try: pledge.save() except ValidationError as e: return helpers.api_error(e.message, 400), 400 except NotUniqueError as e: return helpers.api_error(e.message, 409), 409 except Exception: return helpers.api_error("Something went wrong! Check your request parameters!", 500), 500 return helpers.api_return('OK', pledge.updated, pledge.id, 'Pledge')
def delete(self, id): if id is None: return helpers.api_error("No Transaction ID Provided!", 404), 404 else: t = Transaction.objects.get_or_404(id=id) Project.objects(id=t.project.id).update_one( dec__total_raised=t.total_amt, dec__total_giga_fee=t.giga_fee, dec__total_trans_fee=t.trans_fee, dec__total_net_raised=t.net_amt, pull__donor_list=t.email, ) t.delete() return helpers.api_return("DELETED", datetime.utcnow(), id, "Transaction")
def put(self, id): data = request.get_json(force=True, silent=False) if 'rewards' in data: reward_list = [] for reward in data['rewards']: reward_list.append(Reward(**reward)) data['rewards'] = reward_list if 'organization' in data: org = Organization.objects.get_or_404(id=data['organization']) data['organization'] = org proj = Project.objects.get_or_404(id=id) proj = helpers.generic_update(proj, data) # acceptable changes to name, twitter_hash, video_url, logo_url, # description, rewards, tags, perma_name, # pledge start date, start_date, end_date, return helpers.api_return("OK", proj.updated, proj.id, 'Project')
def post(self, id=None): data = request.get_json(force=True, silent=False) if 'name' not in data: raise helpers.api_error('Please enter an appropriate name for this Organization!', 400), 400 elif 'perma_name' not in data: data['perma_name'] = slugify(data['name']) org = Organization(**data) org.updated = datetime.utcnow() try: org.save() except ValidationError as e: return helpers.api_error(e.message, 400), 400 except NotUniqueError as e: return helpers.api_error(e.message, 409), 409 except Exception: return helpers.api_error("Something went wrong! Check your request parameters!", 500), 500 return helpers.api_return('OK', org.updated, org.id, 'Organization')
def put(self, id): data = request.get_json(force=True, silent=False) if 'email' in data: data['email'] = data['email'].lower() # verification email if 'password' in data: data['password'] = bcrypt.hashpw( data['password'], bcrypt.gensalt()) if 'stripe_info' in data: data['stripe_info'] = UserStripeInfo(**data['stripe_info']) if 'fb_friends' in data: new_list = [] for friend in data['fb_friends']: new_list.append(FBFriend(fb_id=friend['id'], fb_name=friend['name'])) data['fb_friends'] = new_list user = User.objects.get_or_404(id=id) user = helpers.generic_update(user, data) return helpers.api_return('OK', user.updated, user.id, 'User')
def put(self, id): data = request.get_json(force=True, silent=False) transaction = Transaction.objects.get_or_404(id=id) if "total_amt" in data: org = transaction.organization diff = data["total_amt"] - transaction.total_amt if org is not None: diff_giga = ( (data["total_amt"] * (org.giga_fee_percent / 10000.0)) + org.giga_fee_cents ) - transaction.giga_fee diff_trans = ( (data["total_amt"] * (org.trans_fee_percent / 10000.0)) + org.trans_fee_cents ) - transaction.trans_fee net_amt = (data["total_amt"] - (diff_giga + diff_trans)) - transaction.net_amt else: diff_giga = (data["total_amt"] * 0.05) - transaction.giga_fee diff_trans = ((data["total_amt"] * 0.029) + 30) - transaction.trans_fee net_amt = (data["total_amt"] - (diff_giga + diff_trans)) - transaction.net_amt Project.objects(id=transaction.project.id).update_one( inc__total_raised=diff, inc__total_giga_fee=diff_giga, inc__total_trans_fee=diff_trans, inc__total_net_raised=net_amt, ) if "comment" in data: transaction.comment = data["comment"] if "referring_user" in data: ref = User.objects.get_or_404(id=data["referring_user"]) transaction.referring_user = ref if "organization" in data: org = Organization.objects.get_or_404(id=data["organization"]) transaction.organization = org if "user" in data: user = User.objects.get_or_404(id=data["user"]) transaction.user = user transaction = helpers.generic_update(transaction, data) return helpers.api_return("OK", transaction.updated, transaction.id, "Transaction")
def put(self, id): data = request.get_json(force=True, silent=False) pledge = Pledge.objects.get_or_404(id=id) pledge = helpers.generic_update(pledge, data) return helpers.api_return('OK', pledge.updated, pledge.id, 'Pledge')
def put(self, id): data = request.get_json(force=True, silent=False) org = Organization.objects.get_or_404(id=id) org = helpers.generic_update(org, data) return helpers.api_return('OK', org.updated, org.id, 'Organization')
def put(self, id): data = request.get_json(force=True, silent=False) ml = MarketingList.objects.get_or_404(id=id) ml = helpers.generic_update(ml, data) return helpers.api_return('OK', ml.updated, ml.id, 'MarketingList')