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")
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)
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