def increase_user_deposit(): json = request.get_json(silent=True) user_id = json['user_id'] amount = json['amount'] try: user_id = int(user_id) except TypeError: return Response(response='Invalid user id', status=400, mimetype='application/json') try: user = User.get(User.chat_id == user_id) except DoesNotExist as e: return Response(response='There is no such user', status=400, mimetype='application/json') try: amount = float(amount) except ValueError: return Response(response='Not like a fractional number', status=400, mimetype='application/json') TopUp.create(amount=amount, user=user) return Response(response='Successfully', status=200, mimetype='application/json')
def top_up_balance(): data = request.get_json() if data['outputs'][0]['addresses'][0].lower( ) != config.project_eth_address()[2:]: return Response(response='Success', status=200, mimetype='application/json') amount = data['total'] / _ETH_WEI if not amount: return Response(response='Success', status=200, mimetype='application/json') wallet = data['inputs'][0]['addresses'][0].lower() wallet = f'0x{wallet}' try: user = User.get(wallet=wallet) top_up = TopUp.create(user=user, amount=amount, from_wallet=wallet) except DoesNotExist: top_up = TopUp.create(amount=amount, received=False, from_wallet=wallet) return Response(response='Success', status=200, mimetype='application/json')
def lost_top_ups(): lost_top_ups = TopUp.select().where(TopUp.received == False) return render_template( 'lost_top_ups.html', lost_top_ups=lost_top_ups )
def top_up_received(): json_request = request.get_json(silent=True) id = json_request['id'] user_id = json_request['user_id'] try: user_id = int(user_id) except TypeError: return Response(response='Invalid user id', status=400, mimetype='application/json') top_up = TopUp.get(id=id) if top_up.received: return Response(response='Replenishment is already credited', status=400, mimetype='application/json') try: user = User.get(User.chat_id == user_id) except DoesNotExist as e: return Response(response='No such user', status=400, mimetype='application/json') top_up.user = user top_up.received = True top_up.save() return Response(response='Successfully', status=200, mimetype='application/json')
def top_up_delete(): json_request = request.get_json(silent=True) id = json_request['id'] top_up = TopUp.get(id=id) top_up.delete_instance() return Response(response='Successfully', status=200, mimetype='application/json')
def increase_user_deposit(): json = request.get_json(silent=True) user_id = json['user_id'] amount = json['amount'] try: user_id = int(user_id) except TypeError: return Response( response='Неправильный id пользователя', status=400, mimetype='application/json' ) try: user = User.get(User.chat_id == user_id) except DoesNotExist as e: return Response( response='Нет такого юзера', status=400, mimetype='application/json' ) try: amount = float(amount) except ValueError: return Response( response='Не похоже на дробное число', status=400, mimetype='application/json' ) TopUp.create( amount=amount, user=user ) return Response( response='Успешно', status=200, mimetype='application/json' )
def statistics(): def get_chart_data_for_transactions(transactions, columns): statistics_data = {} for transaction in transactions: date = transaction.created_at.strftime("%d %B") if date not in statistics_data: statistics_data[date] = 0 statistics_data[date] += float(transaction.amount) chart_data = [columns] for day in statistics_data.keys(): chart_data.append([day, statistics_data[day]]) return chart_data now = datetime.datetime.now() month_ago = now - datetime.timedelta(days=30) withdrawals = Withdrawal.select() \ .where(Withdrawal.created_at < now) \ .where(Withdrawal.created_at > month_ago).order_by(Withdrawal.created_at) top_ups = TopUp.select() \ .where(TopUp.created_at < now) \ .where(TopUp.created_at > month_ago).order_by(TopUp.created_at) withdrawal_data = get_chart_data_for_transactions(withdrawals, ['Day', 'Withdrawals']) top_up_data = get_chart_data_for_transactions(top_ups, ['Day', 'TopUps']) registrations = User.select().where(User.created_at < now) \ .where(User.created_at > month_ago).order_by(User.created_at) registration_temp = {} for registration in registrations: date = registration.created_at.strftime("%d %B") if date not in registration_temp: registration_temp[date] = 0 registration_temp[date] += 1 registration_data = [['Day', 'Registrations']] for day in registration_temp.keys(): registration_data.append([day, registration_temp[day]]) return render_template('statistics.html', withdrawal_data=withdrawal_data, top_up_data=top_up_data, registration_data=registration_data)
def _demo_top_up(bot, update): from models import TopUp chat_id = bot.chat_id text = update.message.text user = bot.user try: amount = _validate_transaction(user, text, demo=True) except ValueError: bot.send_message(chat_id=chat_id, text='Инпут ерор)))))00') return bot_states.DEMO_TOP_UP top_up = TopUp.create(user=user, amount=amount, from_wallet=user.wallet) bot.send_message(chat_id=chat_id, text=lang.back_to_main_menu(), reply_markup=keyboards.main_keyboard()) return bot_states.MAIN
def top_up_received(): json_request = request.get_json(silent=True) id = json_request['id'] user_id = json_request['user_id'] try: user_id = int(user_id) except TypeError: return Response( response='Неверный id пользователя', status=400, mimetype='application/json' ) top_up = TopUp.get(id=id) if top_up.received: return Response( response='Пополнение уже зачислено', status=400, mimetype='application/json' ) try: user = User.get(User.chat_id == user_id) except DoesNotExist as e: return Response( response='Нет такого пользователя', status=400, mimetype='application/json' ) top_up.user = user top_up.received = True top_up.save() return Response( response='Успешно', status=200, mimetype='application/json' )