Estoy tratando de usar AWS SES getIdentityVerificationAttributes a través del código y tengo problemas para analizar el objeto que regresa.
Hice un lío con el código a continuación, pero AWS dice que volverá como un mapa, así que intenté hacer un .get() y arrojó un error de que .get() no es una función. Así que traté de trabajar con Object.entries pero aún no puedo encontrar una buena manera de devolver el VerificationStatus de este objeto. Esperaba que JSON.Parse(identityVerify) funcionara, pero no lo hace (obteniendo "ERROR SyntaxError: token inesperado o en JSON en la posición 1").
const isEmailAWSVerified = async (Email) => { try { console.log('[isEmailAWSVerified] Email: ', Email); /* data = { VerificationAttributes: { "myEmail@example.com": { VerificationStatus: "Success", // Could be "Pending", "Failed"... VerificationToken: "EXAMPLE3VYb9EDI2nTOQRi/Tf6MI/6bD6THIGiP1MVY=" } } } */ let identityVerify= await SES.getIdentityVerificationAttributes( {Identities: [`${Email}`]}) .promise(); console.log('[isEmailAWSVerified] - identityVerify', identityVerify); const parsedResponse = JSON.Parse(identityVerify); const ret = Object.entries(identityVerify.VerificationAttributes).map(([key, val]) => { let status = ''; if (key === Email) { const tmp = JSON.Parse(val); console.log('[isEmailAWSVerified -- Inside Map] tmp: ', tmp); // status = Object.entries(val).map(([key, val]) => { // return val; // }); return status; } return ''; }) console.log('[isEmailAWSVerified] - ret', ret); return ret === 'Success' ? 1 : 0; } catch ( err) { console.log('[isEmailAWSVerified] - ERROR', err); return 0; } }Encontré un buen ejemplo en PHP: ¿cómo puedo traducir eso a JS?
try: response = self.ses_client.get_identity_verification_attributes( Identities=[identity]) status = response['VerificationAttributes'].get( identity, {'VerificationStatus': 'NotFound'})['VerificationStatus'] logger.info("Got status of %s for %s.", status, identity) except ClientError: logger.exception("Couldn't get status for %s.", identity) raise else: return statusEn realidad, no necesitamos JSON.Parse porque ya es un objeto. Podemos obtener el estado de verificación simplemente usando const status = identityVerify.VerificationAttributes[ ${Email} ].VerificationStatus;