From 1fbb63ccb0ee1608ceb54a5681f14cf88cd1f9ec Mon Sep 17 00:00:00 2001 From: Matheus Amaral da Costa <161625293+MatheusADC@users.noreply.github.com> Date: Mon, 8 Jul 2024 13:27:21 -0300 Subject: [PATCH] Update index.js --- .../lambda/index.js | 53 ++++++++++++------- 1 file changed, 35 insertions(+), 18 deletions(-) diff --git a/amzn1.ask.skill.8920a0f8-7875-4579-97ad-70500f03732f (4) (1)/lambda/index.js b/amzn1.ask.skill.8920a0f8-7875-4579-97ad-70500f03732f (4) (1)/lambda/index.js index 69d8693..09cac81 100644 --- a/amzn1.ask.skill.8920a0f8-7875-4579-97ad-70500f03732f (4) (1)/lambda/index.js +++ b/amzn1.ask.skill.8920a0f8-7875-4579-97ad-70500f03732f (4) (1)/lambda/index.js @@ -26,40 +26,57 @@ const CadastrarProdutoIntentHandler = { async handle(handlerInput) { var nomeProduto = Alexa.getSlotValue(handlerInput.requestEnvelope, 'nomeProduto'); var preco = Alexa.getSlotValue(handlerInput.requestEnvelope, 'preco'); - var precoDecimal = parseFloat(preco.replace(',', '.')); var nomeCliente = Alexa.getSlotValue(handlerInput.requestEnvelope, 'nomeCliente'); var telefoneCliente = Alexa.getSlotValue(handlerInput.requestEnvelope, 'telefoneCliente'); var id = Alexa.getSlotValue(handlerInput.requestEnvelope, 'identificacao'); var status = Alexa.getSlotValue(handlerInput.requestEnvelope, 'status'); var data = Alexa.getSlotValue(handlerInput.requestEnvelope, 'data'); - + var confirmacao = Alexa.getSlotValue(handlerInput.requestEnvelope, 'confirmacao'); + var produto = { 'nomeProduto': nomeProduto, - 'preco': precoDecimal, + 'preco': preco, 'nomeCliente': nomeCliente, 'telefoneCliente': telefoneCliente, 'id': id, 'status': status, 'data': data }; - + var dados = await handlerInput.attributesManager.getPersistentAttributes(); - - if(Array.isArray(dados)){ - dados.push(produto); + + if (Array.isArray(dados)) { + var idExistente = dados.some(item => item.id === id); + if (idExistente) { + const speakOutput = 'Esse ID já foi utilizado. Por favor, forneça um ID diferente.'; + return handlerInput.responseBuilder + .speak(speakOutput) + .reprompt(speakOutput) + .getResponse(); + } else { + dados.push(produto); + } } else { - dados = [ produto ]; + dados = [produto]; + } + + if (confirmacao === 'não' || confirmacao === 'nao') { + const speakOutput = 'O produto não foi cadastrado.'; + return handlerInput.responseBuilder + .speak(speakOutput) + .reprompt(speakOutput) + .getResponse(); + } else { + handlerInput.attributesManager.setPersistentAttributes(dados); + await handlerInput.attributesManager.savePersistentAttributes(); + + const speakOutputSuccess = 'O produto foi cadastrado com sucesso!'; + + return handlerInput.responseBuilder + .speak(speakOutputSuccess) + .reprompt(speakOutputSuccess) + .getResponse(); } - - handlerInput.attributesManager.setPersistentAttributes(dados); - await handlerInput.attributesManager.savePersistentAttributes(); - - const speakOutput = 'O produto foi cadastrado com sucesso!'; - - return handlerInput.responseBuilder - .speak(speakOutput) - .reprompt(speakOutput) - .getResponse(); } };