Exemplo n.º 1
0
def extra_charge(card_id):
    if not request.json or 'amount' not in request.json:
        return Response('Missing amount parameter.', 400)

    # Get Card
    card = Card.select(Card.credit).where(Card.id == card_id)
    if not card and not card[0]:
        return Response('Card not found.', 400)

    amount = float(request.json['amount'])
    prev_credit = card[0].credit
    new_balance = prev_credit - amount
    Card.update(credit=new_balance).where(Card.id == card_id).execute()

    # add charge
    charge = Charge(id_cc_card=card_id, amount=amount, chargetype=4)
    charge.save()

    # prepare dictionary for JSON return
    data = {
        'card_id': card_id,
        'current_balance': new_balance,
        'amount': amount,
        'charge_id': charge.id
    }
    return jsonify(data)
Exemplo n.º 2
0
def extra_charge(card_id):
    if not request.json or 'amount' not in request.json:
        return Response('Missing amount parameter.', 400)

    # Get Card
    card = Card.select(Card.credit).where(Card.id == card_id)
    if not card and not card[0]:
        return Response('Card not found.', 400)

    amount = float(request.json['amount'])
    prev_credit = card[0].credit
    new_balance = prev_credit - amount
    Card.update(credit=new_balance).where(Card.id == card_id).execute()

    # add charge
    charge = Charge(id_cc_card=card_id, amount=amount, chargetype=4)
    charge.save()

    # prepare dictionary for JSON return
    data = {
        'card_id': card_id,
        'current_balance': new_balance,
        'amount': amount,
        'charge_id': charge.id
    }
    return jsonify(data)
Exemplo n.º 3
0
 def test_charges_api(self):
   charge1 = Charge(self.ce1, self.cr1)
   charge2 = Charge(self.ce2, self.cr1)
   db.session.add_all([charge1, charge2])
   db.session.commit()
   expected = [{'uri': 'http://localhost/api/charge/1', 'id': 1}, 
               {'uri': 'http://localhost/api/charge/2', 'id': 2}]
   response_json = self.get_json_from_url('/api/charge')
   self.assertEqual(response_json, expected)
Exemplo n.º 4
0
  def test_celebrities_api(self):
    charge1 = Charge(self.ce1, self.cr1)
    charge2 = Charge(self.ce2, self.cr1)
    db.session.add_all([charge1, charge2])
    db.session.commit()

    str_data = self.app.get('/api/celebrity').get_data().decode("utf-8")
    response_json = json.loads(str_data)

    #response_json = self.get_json_from_url('/api/celebrity')
    expected = [{'id': 1, 'name': '1', 'uri': 'http://localhost/api/celebrity/1'}, 
        {'id': 2, 'name': '2', 'uri': 'http://localhost/api/celebrity/2'}]

    self.assertEqual(response_json, expected)
Exemplo n.º 5
0
 def test_crime_api(self):
   charge1 = Charge(self.ce1, self.cr1)
   charge2 = Charge(self.ce2, self.cr1)
   db.session.add_all([charge1, charge2])
   db.session.commit()
   expected = {'description': None, 
               'wiki_url': None, 
               'id': 1, 
               'name': '1', 
               'celebrities': [{'uri': 'http://localhost/api/celebrity/1', 'id': 1, 'name': '1'}, 
                               {'uri': 'http://localhost/api/celebrity/2', 'id': 2, 'name': '2'}], 
               'charges': [{'uri': 'http://localhost/api/charge/1', 'id': 1}, 
                           {'uri': 'http://localhost/api/charge/2', 'id': 2}]}
   response_json = self.get_json_from_url('/api/crime/1')
   self.assertEqual(response_json, expected)
Exemplo n.º 6
0
def seed_db():
    db.session.add(
        Charge(date=datetime.strptime("2020-01-23", '%Y-%m-%d'),
               description="Electric bill",
               price_amount=154,
               account="Savings"))
    db.session.commit()
Exemplo n.º 7
0
  def test_charge_api(self):
    charge1 = Charge(self.ce1, self.cr2)
    db.session.add_all([charge1])
    db.session.commit()
    response_json = self.get_json_from_url('/api/charge/1')


    expected = {'crime': {'name': '2', 'id': 1, 'uri': 'http://localhost/api/crime/1'}, 
                'celebrity': {'name': '1', 'id': 1, 'uri': 'http://localhost/api/celebrity/1'}, 
                'classification': None, 
                'location': None, 
                'date': None, 
                'description': None}

    self.assertEqual(response_json, expected)
Exemplo n.º 8
0
  def test_celebrity_api(self):
    charge1 = Charge(self.ce1, self.cr1)
    charge2 = Charge(self.ce1, self.cr2)
    alias = CelebrityAlias("One", self.ce1)
    db.session.add_all([charge1, charge2, alias])
    db.session.commit()

    expected = {
      'name': '1', 
      'id': 1, 
      'charges': [{'uri': 'http://localhost/api/charge/1', 'id': 1}, 
                  {'uri': 'http://localhost/api/charge/2', 'id': 2}],
      'crimes' : [{'uri': 'http://localhost/api/crime/1', 'id': 1, 'name': '1'}, 
                  {'uri': 'http://localhost/api/crime/2', 'id': 2, 'name': '2'}],
      'aliases': [{'id': 1, 'alias': 'One'}],
      'description': None, 
      'picture_url': None, 
      'imdb_url': None, 
      'wiki_url': None, 
      'twitter_handle' : None,
      'birthday': None, 
    }
    response_json = self.get_json_from_url('/api/celebrity/1')
    self.assertEqual(response_json, expected)
Exemplo n.º 9
0
  def setUp(self):
    self.external_url = 'http://23.253.252.30'
    app = get_app('testsdb') 
    self.app = app.test_client()
  
    db.create_all()

    self.speeding = Crime("Speeding", "www.speeding.com", "Goin' real real fast!")
    self.ched = Celebrity(name='Ched', description='Actor', twitter_handle='@Ched', 
                  birthday=date(1900,1,1), wiki_url='ched.wiki', imdb_url='ched.imdb', picture_url='ched.picture')
    self.charge1 = Charge(date=date(2000,1,1), location='Austin, Texas', 
              description='Driving Fast!',
              classification='Class A misdemeanor', 
              crime = self.speeding, 
              celebrity = self.ched)

    self.cr1 = Crime("1")
    self.cr2 = Crime("2")
    self.ce1 = Celebrity("1")
    self.ce2 = Celebrity("2")
Exemplo n.º 10
0
 def test_celebs_charges(self):
   charge1 = Charge(self.ce1, self.cr1)
   charge2 = Charge(self.ce1, self.cr1)
   db.session.add_all([charge1, charge2])
   db.session.commit()
   self.assertEqual(set(self.ce1.charges), {charge1, charge2})
Exemplo n.º 11
0
 def test_crimes_celebs_no_dups(self):
   charge1 = Charge(self.ce1, self.cr1)
   charge2 = Charge(self.ce1, self.cr1)
   db.session.add_all([charge1, charge2])
   db.session.commit()
   self.assertEqual(self.cr1.celebrities, [self.ce1])
Exemplo n.º 12
0
 def test_crimes_celebs(self):
   charge1 = Charge(self.ce1, self.cr1)
   charge2 = Charge(self.ce2, self.cr1)
   db.session.add_all([charge1, charge2])
   db.session.commit()
   self.assertEqual(set(self.cr1.celebrities), {self.ce1, self.ce2})