def testGetCurrentUser(self): user.get_current_user_key = mock(return_value=None) assert user.get_current_user() == None key = self.newUser(username='******') user.get_current_user_key = mock(return_value=key) u = user.get_current_user() assert u.username == 'username'
def delete(id): """Remove um fornecedor cadastrado. """ logging.debug("Removendo o fornecedor %d persistido na loja", id) #Identificando usuário da requisição email = user.get_current_user().email() logging.debug("Obtendo a entidade da loja para o usuario %s", email) #Obtendo marketplace como parent marketplaceModel = marketplace.get(email) logging.debug("Loja encontrada com sucesso") #Realizando query, selecionando o fornecedor pelo pai e id supplier = ndb.Key('SupplierModel', int(id), parent=marketplaceModel.key).get() if supplier is None: raise IndexError("Fornecedor não encontrado!") logging.debug("Fornecedor encontrado com sucesso") supplier.key.delete() logging.debug("Fornecedor removido com sucesso")
def delete(id): """Remove um produto cadastrado. """ logging.debug("Removendo o produto %d persistido na loja", id) #Identificando usuário da requisição email = user.get_current_user().email() logging.debug("Obtendo a entidade da loja para o usuario %s", email) #Obtendo marketplace como parent marketplaceModel = marketplace.get(email) logging.debug("Loja encontrada com sucesso") #Realizando query, selecionando o produto pelo pai e id product = ndb.Key('ProductModel', int(id), parent=marketplaceModel.key).get() if product is None: raise IndexError("Produto não encontrado!") logging.debug("Produto encontrado com sucesso") product.key.delete() logging.debug("Produto removido com sucesso")
def pick_commands(): assert_user_signed_in() checkbox_prefix = 'checkbox_' checked = {} error = None if request.method == 'POST': try: params = get_params(request.form) user = get_current_user() for k in params.iterkeys(): if k.startswith(checkbox_prefix): command = builtin_commands.get(k[len(checkbox_prefix):]) if command != None: checked[command.name] = True for k in sorted(checked.keys()): user.commands.add(builtin_commands.get(k)) user.put() return redirect(COMMANDS) except ParamException as e: error = e.message return render( 'pick_commands.html', builtin_command_groups=builtin_command_groups, checkbox_prefix=checkbox_prefix, checked=checked, error=error, csrf_token=get_csrf_token(), )
def delete(id): """Remove uma compra cadastrada. """ logging.debug("Removendo a compra %d persistida na loja", id) #Identificando usuário da requisição email = user.get_current_user().email() logging.debug("Obtendo a entidade da loja para o usuario %s", email) #Obtendo marketplace como parent marketplaceModel = marketplace.get(email) logging.debug("Loja encontrada com sucesso") #Realizando query, selecionando a compra pelo pai e id purchase = ndb.Key('PurchaseModel', int(id), parent=marketplaceModel.key).get() if purchase is None: raise IndexError("Compra não encontrada!") logging.debug("Compra encontrada com sucesso") purchase.key.delete() logging.debug("Compra removida com sucesso")
def home(): params = get_params(request.args) query = params.get('q') if query == None: return render('home.html', sample_queries=get_sample_queries()) default_command = params.get('default') try: commands = builtin_commands if user_signed_in(): user = get_current_user() commands = user.commands default_command = user.getDefaultCommand() return redirect(commands.getRedirectUrl(query, default_command)) except (NotEnoughArgumentsException, UnknownCommandException, UnknownDefaultCommandException) as e: return render( 'command_error.html', exception_type=e.__class__.__name__, exception=e, ) except MalformedQueryException: return redirect(HOME)
def get(self, unused_request): """ Get current user marketplace. """ marketplaceModel = models.get(user.get_current_user().email()) return messages.MarketplaceGetMessage( name=marketplaceModel.name, created_date=marketplaceModel.created_date)
def get_marketplace(): """ Get active user marketplace. """ # Identificando usuário da requisição email = user.get_current_user().email() # Return user active marketplace by email return get(email)
def save(self, request): """ Add or update a marketplace to current user. """ marketplaceModel = models.put(email=user.get_current_user().email(), name=request.name) return messages.MarketplaceGetMessage( name=marketplaceModel.name, created_date=marketplaceModel.created_date)
def save(self, request): """ Add or update a marketplace to current user. """ marketplaceModel = models.put( email=user.get_current_user().email(), name=request.name) return messages.MarketplaceGetMessage( name=marketplaceModel.name, created_date=marketplaceModel.created_date)
def set_default_command(): assert_user_signed_in() params = get_params(request.form) default_command = params.get('default_command') user = get_current_user() user.setDefaultCommand(default_command) user.put() return redirect(COMMANDS)
def put(self, request): """Atualizar a loja do usuário. """ logging.debug('Executando endpoint para atualizar a marketplace (loja) do usuário') # Atualizar marketplace (loja) do usuário marketplaceModel = models.put(email=user.get_current_user().email(), name=request.name) #retorna a marketplace (loja) do usuário return messages.MarketplaceGetMessage(name=marketplaceModel.name, created_date=marketplaceModel.created_date)
def get(self, unused_request): """Retornar a loja do usuário. """ logging.debug('Executando endpoint para obter a marketplace (loja) do usuário') #obter marketplaces (lojas) do usuário marketplaceModel = models.get(user.get_current_user().email()) #retorna a marketplace (loja) do usuário return messages.MarketplaceGetMessage(name=marketplaceModel.name, created_date=marketplaceModel.created_date)
def delete_command(): assert_user_signed_in() params = get_params(request.form) user = get_current_user() command = user.commands.get(params.get('delete')) if command != None: user.commands.remove(command.name) user.put() return redirect(COMMANDS)
def get(self, unused_request): """Retornar a loja do usuário. """ logging.debug( 'Executando endpoint para obter a marketplace (loja) do usuário') #obter marketplaces (lojas) do usuário marketplaceModel = models.get(user.get_current_user().email()) #retorna a marketplace (loja) do usuário return messages.MarketplaceGetMessage( name=marketplaceModel.name, created_date=marketplaceModel.created_date)
def commands(): if user_signed_in(): user = get_current_user() return render( 'commands.html', commands=user.commands.asSortedList(), default_command=user.getDefaultCommand(), command_limit=Commands.limit, csrf_token=get_csrf_token(), ) return render( 'builtin_commands.html', builtin_command_groups=builtin_command_groups, )
def save_command(name=None, description=None, url_pattern=None, default_url=None, **kwargs): command = Command( name=name, description=description, url_pattern=url_pattern, default_url=default_url, ) user = get_current_user() user.commands.add(command) user.put()
def save(supplier): """Inclui ou atualiza um fornecedor. """ logging.debug("Persistindo um fornecedor na loja") #Identificando usuário da requisição email = user.get_current_user().email() logging.debug("Obtendo a entidade da loja para o usuario %s", email) #Obtendo marketplace como parent marketplaceModel = marketplace.get(email) logging.debug("Loja encontrada com sucesso") logging.debug( "Criando model para o fornecedor ou selecionando o existente para atualizá-lo" ) if supplier.id is not None: supplierModel = ndb.Key('SupplierModel', int(supplier.id), parent=marketplaceModel.key).get() else: supplierModel = SupplierModel(parent=marketplaceModel.key) #Criando model supplierModel.name = supplier.name supplierModel.email = supplier.email supplierModel.phone = supplier.phone supplierModel.location = supplier.location #Persistindo fornecedor logging.debug("Persistindo fornecedor...") supplierModel.put() logging.debug("Persistido fornecedor %d com sucesso na loja %s", supplierModel.key.id(), marketplaceModel.name) #Atualizando índice update_index(supplierModel) logging.debug("Índice atualizado com sucesso para o fornecedor %s", supplierModel.key.id()) #Retornando fornecedor cadastrado com o id return supplierModel
def put(self, request): """Atualizar a loja do usuário. """ logging.debug( 'Executando endpoint para atualizar a marketplace (loja) do usuário' ) # Atualizar marketplace (loja) do usuário marketplaceModel = models.put(email=user.get_current_user().email(), name=request.name) #retorna a marketplace (loja) do usuário return messages.MarketplaceGetMessage( name=marketplaceModel.name, created_date=marketplaceModel.created_date)
def put(product): """Inclui ou atualiza um produto. """ logging.debug("Persistindo um produto na loja") #Identificando usuário da requisição email = user.get_current_user().email() logging.debug("Obtendo a entidade da loja para o usuario %s", email) #Obtendo marketplace como parent marketplaceModel = marketplace.get(email) logging.debug("Loja encontrada com sucesso") logging.debug( "Criando model para o produto ou selecionando o existente para atualizá-lo" ) if product.id is not None: productModel = ndb.Key('ProductModel', int(product.id), parent=marketplaceModel.key).get() else: productModel = ProductModel(parent=marketplaceModel.key) #Criando model productModel.code = product.code productModel.name = product.name #Persistindo produto logging.debug("Persistindo produto...") productModel.put() logging.debug("Persistido produto %d com sucesso na loja %s", productModel.key.id(), marketplaceModel.name) #Atualizando índice update_index(productModel) logging.debug("Índice atualizado com sucesso para o produto %s", productModel.key.id()) #Retornando produto cadastrado com o id return productModel
def save(supplier): """Inclui ou atualiza um fornecedor. """ logging.debug("Persistindo um fornecedor na loja") #Identificando usuário da requisição email = user.get_current_user().email() logging.debug("Obtendo a entidade da loja para o usuario %s", email) #Obtendo marketplace como parent marketplaceModel = marketplace.get(email) logging.debug("Loja encontrada com sucesso") logging.debug("Criando model para o fornecedor ou selecionando o existente para atualizá-lo") if supplier.id is not None: supplierModel = ndb.Key('SupplierModel', int(supplier.id), parent=marketplaceModel.key).get() else: supplierModel = SupplierModel(parent=marketplaceModel.key) #Criando model supplierModel.name = supplier.name supplierModel.email = supplier.email supplierModel.phone = supplier.phone supplierModel.location = supplier.location #Persistindo fornecedor logging.debug("Persistindo fornecedor...") supplierModel.put() logging.debug("Persistido fornecedor %d com sucesso na loja %s", supplierModel.key.id(), marketplaceModel.name) #Atualizando índice update_index(supplierModel) logging.debug("Índice atualizado com sucesso para o fornecedor %s", supplierModel.key.id()) #Retornando fornecedor cadastrado com o id return supplierModel
def put(product): """Inclui ou atualiza um produto. """ logging.debug("Persistindo um produto na loja") #Identificando usuário da requisição email = user.get_current_user().email() logging.debug("Obtendo a entidade da loja para o usuario %s", email) #Obtendo marketplace como parent marketplaceModel = marketplace.get(email) logging.debug("Loja encontrada com sucesso") logging.debug("Criando model para o produto ou selecionando o existente para atualizá-lo") if product.id is not None: productModel = ndb.Key('ProductModel', int(product.id), parent=marketplaceModel.key).get() else: productModel = ProductModel(parent=marketplaceModel.key) #Criando model productModel.code = product.code productModel.name = product.name #Persistindo produto logging.debug("Persistindo produto...") productModel.put() logging.debug("Persistido produto %d com sucesso na loja %s", productModel.key.id(), marketplaceModel.name) #Atualizando índice update_index(productModel) logging.debug("Índice atualizado com sucesso para o produto %s", productModel.key.id()) #Retornando produto cadastrado com o id return productModel
def edit_command(command_name=None): assert_user_signed_in() if command_name == None: return redirect(NEW_COMMAND_ONLY) user = get_current_user() command = user.commands.get(command_name) if command == None: return redirect(NEW_COMMAND_ONLY + command_name) params = None if request.method == 'POST': # remove command, it might be renamed user.commands.remove(command.name) params = get_params(request.form) try: save_command(**params) return redirect(COMMANDS) except ParamException as e: params['error'] = e.message # add the command back, some other code might use it # before response is finalized user.commands.add(command) else: params = { 'name': command.name, 'description': command.description, 'url_pattern': command.url_pattern, 'default_url': command.default_url, } params['action'] = EDIT_COMMAND_ONLY + command_name params['original_command'] = command_name params['csrf_token'] = get_csrf_token() params['modifiers'] = modifiers return render('new_command.html', **params)
def new_command(command_name=None): assert_user_signed_in() params = {} if command_name != None: user = get_current_user() if user.commands.get(command_name) != None: return redirect(EDIT_COMMAND_ONLY + command_name) params['name'] = command_name if request.method == 'POST': params = get_params(request.form) try: save_command(**params) return redirect(COMMANDS) except ParamException as e: params['error'] = e.message params['action'] = NEW_COMMAND_ONLY params['csrf_token'] = get_csrf_token() params['modifiers'] = modifiers return render('new_command.html', **params)
def list(): """Listar os produtos cadastrados na loja do usuário. """ logging.debug("Listando os produtos cadastrados") #Identificando usuário da requisição email = user.get_current_user().email() logging.debug("Obtendo a entidade da loja para o usuario %s", email) #Obtendo marketplace como parent marketplaceModel = marketplace.get(email) #Realizando query, listando os produtos products = ProductModel.query(ancestor=marketplaceModel.key).order( ProductModel.name).fetch() logging.debug("Foram selecionado(s) %d produtos(s) cadastrados na loja do usuário %s", len(products), email) #Retornando return products
def list(): """Listar os fornecedores cadastrados na loja do usuário. """ logging.debug("Listando os fornecedores cadastrados") #Identificando usuário da requisição email = user.get_current_user().email() logging.debug("Obtendo a entidade da loja para o usuario %s", email) #Obtendo marketplace como parent marketplaceModel = marketplace.get(email) #Realizando query, listando os fornecedores suppliers = SupplierModel.query(ancestor=marketplaceModel.key).order( SupplierModel.name).fetch() logging.debug( "Foram selecionado(s) %d fornecedores(s) cadastrados na loja do usuário %s", len(suppliers), email) #Retornando return suppliers
def list(): """Listar compras cadastradas para a loja do usuário. """ logging.debug("Listando compras cadastradas") #Identificando usuário da requisição email = user.get_current_user().email() logging.debug("Obtendo a entidade da loja para o usuario %s", email) #Obtendo marketplace como parent marketplaceModel = marketplace.get(email) #Realizando query, listando as compras purchases = PurchaseModel.query(ancestor=marketplaceModel.key).order( -PurchaseModel.purchase_date).fetch() logging.debug( "Foram selecionada(s) %d compra(s) para a loja do usuário %s", len(purchases), email) #Retornando return purchases
def put(purchase): """Inclui ou atualiza uma compra. """ logging.debug("Persistindo uma compra na loja") #Identificando usuário da requisição email = user.get_current_user().email() logging.debug("Obtendo a entidade da loja para o usuario %s", email) #Obtendo marketplace como parent marketplaceModel = marketplace.get(email) logging.debug("Loja encontrada com sucesso") logging.debug( "Criando model para a compra ou selecionando o existente para atualizá-lo" ) if purchase.id is not None: purchaseModel = ndb.Key('PurchaseModel', int(purchase.id), parent=marketplaceModel.key).get() else: purchaseModel = PurchaseModel(parent=marketplaceModel.key) #Selecionando models filhas productModel = ndb.Key('ProductModel', int(purchase.product.id), parent=marketplaceModel.key).get() if productModel is None: raise IndexError("Produto com o id %d não encontrado!", purchase.product.id) purchaseModel.product = productModel #Criando model purchaseModel.supplier = purchase.supplier purchaseModel.quantity = purchase.quantity purchaseModel.purchase_date = purchase.purchase_date purchaseModel.received_date = purchase.received_date purchaseModel.cost = purchase.cost purchaseModel.total_cost = purchase.total_cost purchaseModel.exchange_dollar = purchase.exchange_dollar purchaseModel.cost_dollar = purchase.cost_dollar purchaseModel.total_cost_dollar = purchase.total_cost_dollar purchaseModel.shipping_cost = purchase.shipping_cost purchaseModel.track_code = purchase.track_code purchaseModel.invoice = purchase.invoice purchaseModel.payment_date = purchase.payment_date purchaseModel.purchase_link = purchase.purchase_link logging.debug("Persistindo compra...") #Persistindo purchaseModel.put() logging.debug("Persistida compra %d com sucesso na loja ", purchaseModel.key.id(), marketplaceModel.name) return purchaseModel