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')
Beispiel #2
0
 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')
Beispiel #3
0
 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')
Beispiel #4
0
 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")
Beispiel #5
0
 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')
Beispiel #6
0
 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')
Beispiel #7
0
 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")
Beispiel #8
0
 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")
Beispiel #10
0
 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')
Beispiel #11
0
 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")
Beispiel #12
0
 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')
Beispiel #14
0
 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')
Beispiel #15
0
 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")
Beispiel #16
0
 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')