2019-06-03 10:34:59 +02:00
const dotenv = require ( 'dotenv' ) ;
dotenv . config ( ) ;
2019-06-11 10:26:48 +02:00
const { getRealEstateTypeEnum } = require ( './enums' ) ;
const { getRegionName , getMunicipalityName } = require ( './codes' ) ;
2019-06-03 10:34:59 +02:00
const AWS = require ( 'aws-sdk' ) ;
AWS . config . update ( {
region : process . env . AMAZON _REGION ,
credentials :
{
accessKeyId : process . env . AMAZON _ACCES _KEY _ID ,
secretAccessKey : process . env . AMAZON _SECRET _ACCESS _KEY
}
} ) ;
const sendTemplatedEmail = async ( email , request ) => {
const params = {
Destination : { /* required */
CcAddresses : [
] ,
ToAddresses : [
email
]
} ,
Message : { /* required */
Body : { /* required */
Html : {
Charset : "UTF-8" ,
Data : getEmailHTML ( request )
} ,
Text : {
Charset : "UTF-8" ,
Data : getEmaiTextVersion ( request )
}
} ,
Subject : {
Charset : 'UTF-8' ,
Data : ` Javimi Potvrda: ${ request . realEstateType } ${ getRegionName ( request . region ) } , ${ getMunicipalityName ( request . region , request . municipality ) } `
}
} ,
2019-06-11 10:26:48 +02:00
Source : process . env . SOURCE _EMAIL , /* required */
2019-06-03 10:34:59 +02:00
ReplyToAddresses : [
2019-06-11 10:26:48 +02:00
process . env . SOURCE _EMAIL ,
2019-06-03 10:34:59 +02:00
] ,
} ;
const sendEmailPromise = new AWS . SES ( { apiVersion : '2010-12-01' } ) . sendEmail ( params ) . promise ( ) ;
await sendEmailPromise ;
}
const getEmailHTML = ( realestateRequest ) => {
2019-06-11 10:26:48 +02:00
const realEstateType = getRealEstateTypeEnum ( realestateRequest . realEstateType ) ;
const gardenSize = realEstateType . hasGardenSize ? ` <div><strong>Kvadratura okućnice: Od ${ realestateRequest . gardenSizeMin } do ${ realestateRequest . gardenSizeMax } m2 </strong></div> ` : ` `
2019-06-03 10:34:59 +02:00
return ` <h1> Zdravo,
Naručio / la si da ti javimo ako se nekretnina pojavi u oglasima . < / h 1 >
< h2 > Ovo je tražena nekretnina : < / h 2 >
< div >
2019-06-11 10:26:48 +02:00
< div > < strong > Tip nekretnine : $ { realEstateType . title } < / s t r o n g > < / d i v >
< div > < strong > Područje : $ { getRegionName ( realestateRequest . region ) } < / s t r o n g > < / d i v >
< div > < strong > Mjesto : $ { getMunicipalityName ( realestateRequest . region , realestateRequest . municipality ) } < / s t r o n g > < / d i v >
< div > < strong > Kvadratura nekretnine : Od $ { realestateRequest . sizeMin } do $ { realestateRequest . sizeMax } m2 < / s t r o n g > < / d i v >
$ { gardenSize }
< div > < strong > Cijena : $ { realestateRequest . priceMin } do $ { realestateRequest . priceMax } KM < / s t r o n g > < / d i v >
< / d i v >
< div >
2019-06-03 10:34:59 +02:00
< / d i v >
< div > < strong > Ako želis prestati dobijati obavještenja za ovu pretragu klikni $ { process . env . APP _URL } / odjava / $ { realestateRequest . uniqueId } < / s t r o n g > < / d i v >
< div > < strong > Ako želiš promijeniti uslove pretrage klikni $ { process . env . APP _URL } / pregled / $ { realestateRequest . uniqueId } < / s t r o n g > < / d i v >
< h4 > Tvoj ,
Javimi tim .
< / h 4 > `
}
const getEmaiTextVersion = ( realestateRequest ) => {
2019-06-11 10:26:48 +02:00
const realEstateType = getRealEstateTypeEnum ( realestateRequest . realEstateType ) ;
const gardenSize = realEstateType . hasGardenSize ? "Kvadratura okućnice od " + realestateRequest . gardenSizeMin + " do " + realestateRequest . gardenSizeMax : ""
2019-06-03 10:34:59 +02:00
const text = "Zdravo, \n Naručio/la si da ti javimo ako se nekretnina pojavi u oglasima \n Ovo je tražena nekretnina: \n , Tip nekretnine: "
+ realestateRequest . realEstateType + "\n Područje" + getRegionName ( realestateRequest . region ) + "\n Mjesto " + getMunicipalityName ( realestateRequest . region , realestateRequest . municipality )
+ "\n Kvadratura nekretnine Od " + realestateRequest . sizeMin + " do " + realestateRequest . sizeMaX +
2019-06-11 10:26:48 +02:00
+ gardenSize
2019-06-03 10:34:59 +02:00
"\n Cijena od " + realestateRequest . priceMin + " do " + realestateRequest . priceMax +
"\n Ako želis prestati dobijati obavještenja za ovu pretragu klikni" + process . env . APP _URL + "/odjava/" + realestateRequest . uniqueId +
"\n Ako želiš promijeniti uslove pretrage klikni " + process . env . APP _URL + "/odpregled/" + realestateRequest . uniqueId +
"\n Tvoj,\n Javimi tim"
return text ;
}
module . exports = {
sendTemplatedEmail
} ;