def get(self): current_user = jwt.decode(request.headers['Authorization'], environ.get('JWT_SECRET_KEY'), options={'verify_exp': False}) if Roles().enum_to_name(current_user['sub']['role']) == 'admin': if 'id' in request.args: item = PurchaseModel.get(request.args['id']) item = serialize_model(item) item['cashback'] = calculate_unit_cashback(item['value']) return item elif 'cpf' in request.args: itens = PurchaseModel.get_by_reseller(request.args['cpf']) itens = serialize_model_list(itens) for item in itens: item['cashback'] = calculate_unit_cashback(item['value']) return itens list = PurchaseModel.list() list = serialize_model_list(list) for item in list: item['cashback'] = calculate_unit_cashback(item['value']) return list else: if 'id' in request.args: item = PurchaseModel.get_by_reseller(current_user['sub']['id']) item = serialize_model(item) if item['id'] == request.args['id']: return item else: return list = PurchaseModel.get_by_reseller(current_user['sub']['id']) return list
def test_get_by_reseller(self): purchase = PurchaseModel.get(1) assert purchase != None purchase = PurchaseModel.get_by_reseller('74936635057') assert purchase != None
def get(self): current_user = jwt.decode(request.headers['Authorization'], environ.get('JWT_SECRET_KEY'), options={'verify_exp': False}) if Roles().enum_to_name(current_user['sub']['role']) == 'admin': if 'cpf' in request.args and 'month' in request.args and 'year' in request.args: user = UserModel.get_by_cpf(request.args['cpf']) if user == None: return "Revendedor não encontrado" itens = PurchaseModel.get_by_reseller(user.id) itens = serialize_model_list(itens) itens = list(filter(lambda item: datetime.strptime(item['created_at'], "%Y-%m-%d %H:%M:%S.%f").month == int(request.args['month']) and datetime.strptime(item['created_at'], "%Y-%m-%d %H:%M:%S.%f").year == int(request.args['year']) and item['status'] == "Aprovado", itens)) return {"purchases": itens, "cashback_by_month": calculate_multi_cashback(itens)} else: if 'month' in request.args and 'year' in request.args: itens = PurchaseModel.get_by_reseller(int(current_user['sub']['id'])) itens = serialize_model_list(itens) itens = list(filter(lambda item: datetime.strptime(item['created_at'], "%Y-%m-%d %H:%M:%S.%f").month == int(request.args['month']) and datetime.strptime(item['created_at'], "%Y-%m-%d %H:%M:%S.%f").year == int(request.args['year']) and item['status'] == "Aprovado", itens)) return {"purchases": itens, "cashback_by_month": calculate_multi_cashback(itens)} return "Parâmetros incorretos", 401
def test_post_purchase_endpoint(self, client): auth = client.post( '/api/authentication', json={ 'email': '*****@*****.**', 'password': '******'}) access_decode = json.loads(auth.data.decode()) purchases = len(PurchaseModel.get_by_reseller(2)) res = client.post( '/api/purchase', json={ 'value': 1000, 'code': 30}, headers={ 'Authorization': access_decode['token']}) assert res.status_code == 201 assert json.loads(res.data) == 'success' assert len(PurchaseModel.get_by_reseller(2)) == purchases + 1
def first_purchase(): if UserModel.get_by_cpf("74936635057") == None: first_reseller_user() if PurchaseModel.get_by_reseller(2) != None: return new_purchase = PurchaseModel() new_purchase.code = 1 new_purchase.value = 1000 new_purchase.id_reseller = 1 new_purchase.status = "Em validação" new_purchase.save() return