Пример #1
0
 async def get(self, request, id):
     user = request['session'].get('user')
     if not user:
         return self.response_status(401)
     with db_session:
         if id == 'all':
             return self.response_status(200, Card.select())
         if not Card.exists(id=id):
             return self.response_status(404)
         return self.response_status(200, Card.select(lambda x: x.id == id))
def bootstrap():
    Card.delete().execute()

    def load_dataset(filename, data=[], keys=[]):
        with open(filename, 'rb') as csvfile:
            lines = csv.reader(csvfile)
            dataset = list(lines)
            keys = dataset[0]
            for x in range(1, len(dataset)):
                element = {}
                for y in range(len(dataset[x])):
                    element[keys[y]] = dataset[x][y]
                data.append(element)

    decks_file = "WebSite/hearthstonedecks.csv"
    raw_data = []

    load_dataset(decks_file, raw_data)
    print("Raw_data: " + repr(len(raw_data)))
    
    with db.database.atomic():
        step = 100
        for idx in range(0, len(raw_data), step):
            Card.insert_many(raw_data[idx:idx + step]).execute()
            print("Inserted: " + repr(idx))

    cards = Card.select().execute()
    for card in raw_data:
        naive_bayes.add_card(card)
        k_neighbours.update_deck(card)
    return make_response("Success")
Пример #3
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)
Пример #4
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)
Пример #5
0
def refill(card_id):
    if not request.json or 'credit' not in request.json:
        return Response('Missing credit parameter.', 400)

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

    vat = card[0].vat

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

    credit_without_vat = credit / (1 + vat / 100)

    # add logrefill
    logrefill = Logrefill(card=card_id,
                          date=datetime.datetime.now,
                          credit=credit,
                          refill_type=0)
    logrefill.save()

    # add logpayment
    logpayment = Logpayment(card=card_id,
                            date=datetime.datetime.now,
                            payment=credit,
                            payment_type=0,
                            id_logrefill=logrefill.id)
    logpayment.save()

    # prepare dictionary for JSON return
    data = {
        'card_id': card_id,
        'current_balance': new_balance,
        'credit_without_vat': credit_without_vat,
        'credited': credit,
        'vat': card[0].vat,
        'logrefill_id': logrefill.id,
        'logpayment_id': logpayment.id
    }
    return jsonify(data)
Пример #6
0
def refill(card_id):
    if not request.json or 'credit' not in request.json:
        return Response('Missing credit parameter.', 400)

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

    vat = card[0].vat

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

    credit_without_vat = credit / (1 + vat / 100)

    # add logrefill
    logrefill = Logrefill(card=card_id, date=datetime.datetime.now, credit=credit, refill_type=0)
    logrefill.save()

    # add logpayment
    logpayment = Logpayment(card=card_id, date=datetime.datetime.now, payment=credit, payment_type=0, id_logrefill=logrefill.id)
    logpayment.save()

    # prepare dictionary for JSON return
    data = {
        'card_id': card_id,
        'current_balance': new_balance,
        'credit_without_vat': credit_without_vat,
        'credited': credit,
        'vat': card[0].vat,
        'logrefill_id': logrefill.id,
        'logpayment_id': logpayment.id
    }
    return jsonify(data)
def cards_count():
    count = Card.select().count()
    return make_response(str(count))
app = Flask(__name__)
app.config.from_object('WebSite.config')


# instantiate the db wrapper
db = Database(app)

from models import Card

if Card.table_exists() == False:
    Card.create_table()

k_neighbours = Classifiers.KNearestDecks()
naive_bayes = Classifiers.NaiveBayes()

cards = Card.select().execute()
for card in cards:
    entry = {
        "title": card.title,
        "card_name": card.card_name,
        "card_count": card.card_count,
        "hero_class": card.hero_class,
        "archetype": card.archetype,
        "season": card.season,
        "game_mode": card.game_mode 
    }
    naive_bayes.add_card(entry)
    k_neighbours.update_deck(entry)


import WebSite.api