-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
vastaanottajien suodatus sähköpostiosoitteella, pientä koodin siistintää
- Loading branch information
Showing
14 changed files
with
207 additions
and
122 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -10,8 +10,9 @@ import software.amazon.awssdk.services.ses.model.{ConfigurationSet, CreateConfig | |
import software.amazon.awssdk.services.sns.model.{CreateTopicRequest, SubscribeRequest} | ||
import software.amazon.awssdk.services.sqs.model.{CreateQueueRequest, ListQueuesRequest} | ||
import com.amazonaws.services.lambda.runtime.{ClientContext, CognitoIdentity, Context, LambdaLogger} | ||
import fi.oph.viestinvalitys.business.{KantaOperaatiot, Kayttooikeus, Kieli, Kontakti, Prioriteetti, SisallonTyyppi} | ||
import fi.oph.viestinvalitys.business.{KantaOperaatiot, Kayttooikeus, Kieli, Kontakti, Prioriteetti, SisallonTyyppi, VastaanottajanTila} | ||
import fi.oph.viestinvalitys.vastaanotto.security.SecurityConstants | ||
import org.slf4j.LoggerFactory | ||
|
||
import java.util.UUID | ||
import scala.Range | ||
|
@@ -41,6 +42,8 @@ case class TestAwsContext( | |
*/ | ||
object LocalUtil { | ||
|
||
val LOG = LoggerFactory.getLogger(classOf[LocalUtil]) | ||
|
||
final val LOCAL_ATTACHMENTS_BUCKET_NAME = "local-viestinvalityspalvelu-attachments"; | ||
|
||
final val LOCAL_SKANNAUS_QUEUE_NAME = "local-viestinvalityspalvelu-skannaus" | ||
|
@@ -164,29 +167,59 @@ object LocalUtil { | |
val kantaOperaatiot = new KantaOperaatiot(DbUtil.database) | ||
val lahetyksia = kantaOperaatiot.getLahetykset(Option.empty, Option.apply(20), Set(kayttooikeus)) | ||
if(lahetyksia.isEmpty || lahetyksia.length < 3) { | ||
// lähetyksiä massaviestillä jossa samalla viestillä useita vastaanottajia | ||
Range(0, 20).map(counter => { | ||
val lahetys2 = kantaOperaatiot.tallennaLahetys( | ||
"Massalähetysotsikko "+counter, | ||
"omistaja", | ||
"hakemuspalvelu", | ||
Option.apply("0.1.2.3"), | ||
Kontakti(Option.apply("Joku Virkailija"), "[email protected]"), | ||
Option.apply("[email protected]"), | ||
Prioriteetti.NORMAALI, | ||
365 | ||
) | ||
kantaOperaatiot.tallennaViesti("Massaviestin " + counter +" testiotsikko", | ||
"Massaviestin sisältö", | ||
SisallonTyyppi.TEXT, | ||
Set(Kieli.FI), | ||
Map.empty, // maskit | ||
Option.empty, // läh. oid | ||
Option.empty, // lähettäjä | ||
Option.empty, // replyto | ||
Range(0, 20).map(suffix => Kontakti(Option.apply("Joku Vastaanottaja" + suffix), "vastaanottaja" + suffix + "@example.com")), | ||
Seq.empty, | ||
Option.empty, | ||
Option.apply(lahetys2.tunniste), | ||
Option.apply(Prioriteetti.NORMAALI), | ||
Option.apply(365), | ||
Set(kayttooikeus), | ||
Map("avain" -> Seq("arvo")), | ||
"omistaja") | ||
}) | ||
// lähetyksiä joissa räätälöity viesti useilla vastaanottajilla | ||
Range(0, 25).map(counter => { | ||
Range(0, 6).map(counter => { | ||
val lahetys = kantaOperaatiot.tallennaLahetys( | ||
"Testiotsikko "+counter, | ||
"Räätälöidyn massaviestin " + counter + " testiotsikko", | ||
"omistaja", | ||
"hakemuspalvelu", | ||
Option.apply("0.1.2.3"), | ||
Kontakti(Option.apply("Testi Virkailija"+counter), "[email protected]"), | ||
Kontakti(Option.apply("Testi Virkailija" + counter), "[email protected]"), | ||
Option.apply("[email protected]"), | ||
Prioriteetti.NORMAALI, | ||
365 | ||
) | ||
// räätälöidyt viestit lähetystunnuksella, yksi vastaanottaja per viesti | ||
Range(0, 25).map(viestinro => { | ||
kantaOperaatiot.tallennaViesti("Viestin testiotsikko " + viestinro, | ||
val (viesti, vastaanottajat) = kantaOperaatiot.tallennaViesti("Viestin testiotsikko " + viestinro, | ||
"Viestin sisältö " + viestinro, | ||
SisallonTyyppi.TEXT, | ||
Set(Kieli.FI), | ||
Map.empty, | ||
Option.empty, | ||
Option.empty, | ||
Option.empty, | ||
Seq(Kontakti(Option.apply("Vastaanottaja " + viestinro), "vastaanottaja" + viestinro + "@example.com")), | ||
Seq(Kontakti(Option.apply("Testi Vastaanottaja " + viestinro), "testi.vastaanottaja" + viestinro + "@example.com")), | ||
Seq.empty, | ||
Option.empty, | ||
Option.apply(lahetys.tunniste), | ||
|
@@ -195,36 +228,19 @@ object LocalUtil { | |
Set(kayttooikeus), | ||
Map("avain" -> Seq("arvo")), | ||
"omistaja") | ||
if (counter == 1) { | ||
kantaOperaatiot.paivitaVastaanottajaLahetetyksi(vastaanottajat.head.tunniste, "ses-tunniste") | ||
kantaOperaatiot.paivitaVastaanotonTila("ses-tunniste", VastaanottajanTila.DELIVERY, Option.empty) | ||
} else { | ||
if (viestinro <= 10) { | ||
kantaOperaatiot.paivitaVastaanottajaLahetetyksi(vastaanottajat.head.tunniste, "ses-tunniste") | ||
kantaOperaatiot.paivitaVastaanotonTila("ses-tunniste", VastaanottajanTila.DELIVERY, Option.empty) | ||
} | ||
if (viestinro > 10 && viestinro < 15) | ||
kantaOperaatiot.paivitaVastaanottajaVirhetilaan(vastaanottajat.head.tunniste, "lisätiedot virheestä") | ||
} | ||
}) | ||
}) | ||
// lähetys massaviestillä jossa samalla viestillä useita vastaanottajia | ||
val lahetys2 = kantaOperaatiot.tallennaLahetys( | ||
"Massalähetysotsikko", | ||
"omistaja", | ||
"hakemuspalvelu", | ||
Option.apply("0.1.2.3"), | ||
Kontakti(Option.apply("Joku Virkailija"), "[email protected]"), | ||
Option.apply("[email protected]"), | ||
Prioriteetti.NORMAALI, | ||
365 | ||
) | ||
kantaOperaatiot.tallennaViesti("Massaviestin testiotsikko", | ||
"Massaviestin sisältö", | ||
SisallonTyyppi.TEXT, | ||
Set(Kieli.FI), | ||
Map.empty, // maskit | ||
Option.empty, // läh. oid | ||
Option.empty, // lähettäjä | ||
Option.empty, // replyto | ||
Range(0, 20).map(suffix => Kontakti(Option.apply("Vastaanottaja" + suffix), "vastaanottaja" + suffix + "@example.com")), | ||
Seq.empty, | ||
Option.empty, | ||
Option.apply(lahetys2.tunniste), | ||
Option.apply(Prioriteetti.NORMAALI), | ||
Option.apply(365), | ||
Set(kayttooikeus), | ||
Map("avain" -> Seq("arvo")), | ||
"omistaja") | ||
// tyhjä lähetys | ||
val lahetys3 = kantaOperaatiot.tallennaLahetys( | ||
"Orpo lähetys", | ||
|
@@ -245,7 +261,7 @@ object LocalUtil { | |
Option.apply("0.1.2.3"), | ||
Option.apply(Kontakti(Option.apply("Testi Virkailija"), "[email protected]")), | ||
Option.apply("[email protected]"), | ||
Range(0, 3).map(suffix => Kontakti(Option.apply("Vastaanottaja" + suffix), "vastaanottaja" + suffix + "@example.com")), | ||
Range(0, 3).map(suffix => Kontakti(Option.apply("Testi Vastaanottaja" + suffix), "testi.vastaanottaja" + suffix + "@example.com")), | ||
Seq.empty, | ||
Option.apply("testipalvelu"), | ||
Option.empty, | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
56 changes: 56 additions & 0 deletions
56
...nti/src/main/scala/fi/oph/viestinvalitys/raportointi/model/LahetyksetParamValidator.scala
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
package fi.oph.viestinvalitys.raportointi.model | ||
|
||
import fi.oph.viestinvalitys.raportointi.resource.RaportointiAPIConstants.* | ||
import fi.oph.viestinvalitys.raportointi.resource.{ParametriUtil, RaportointiAPIConstants} | ||
|
||
import java.util.Optional | ||
|
||
case class VastaanottajatParams(lahetysTunniste: String, | ||
alkaen: Optional[String], | ||
enintaan: Optional[String], | ||
sivutustila: Optional[String], | ||
tila: Optional[String], | ||
vastaanottajanEmail: Optional[String]) | ||
object LahetyksetParamValidator { | ||
|
||
def validateLahetysTunniste(lahetysTunniste: String): Set[String] = | ||
val uuid = ParametriUtil.asUUID(lahetysTunniste) | ||
Right(Set.empty.asInstanceOf[Set[String]]) | ||
.flatMap(virheet => | ||
if (uuid.isEmpty) Left(virheet.incl(LAHETYSTUNNISTE_INVALID)) else Right(virheet)) | ||
.fold(l => l, r => r) | ||
|
||
def validateEmailParam(emailParam: Optional[String], errorMessage: String): Set[String] = | ||
val validatedEmail = ParametriUtil.asValidEmail(emailParam) | ||
Right(Set.empty.asInstanceOf[Set[String]]) | ||
.flatMap(virheet => | ||
if (emailParam.isPresent && validatedEmail.isEmpty) Left(virheet.incl(errorMessage)) else Right(virheet)) | ||
.fold(l => l, r => r) | ||
|
||
def validateEnintaan(enintaan: Optional[String], min: Int, max: Int, errorMessage: String): Set[String] = | ||
val enintaanInt = ParametriUtil.asInt(enintaan) | ||
Right(Set.empty.asInstanceOf[Set[String]]) | ||
.flatMap(virheet => | ||
if (enintaan.isPresent && (enintaanInt.isEmpty || enintaanInt.get < min || enintaanInt.get > max)) | ||
Left(virheet.incl(errorMessage)) | ||
else Right(virheet)) | ||
.fold(l => l, r => r) | ||
|
||
def validateRaportointiTila(tila: Optional[String], errorMessage: String): Set[String] = | ||
val raportointiTila = ParametriUtil.asValidRaportointitila(tila) | ||
Right(Set.empty.asInstanceOf[Set[String]]) | ||
.flatMap(virheet => | ||
if (tila.isPresent && raportointiTila.isEmpty) Left(virheet.incl(errorMessage)) else Right(virheet)) | ||
.fold(l => l, r => r) | ||
|
||
def validateVastaanottajatParams(params: VastaanottajatParams): Seq[String] = | ||
Seq( | ||
validateLahetysTunniste(params.lahetysTunniste), | ||
validateEmailParam(params.alkaen, ALKAEN_EMAIL_TUNNISTE_INVALID), | ||
validateEnintaan(params.enintaan, VASTAANOTTAJAT_ENINTAAN_MIN, VASTAANOTTAJAT_ENINTAAN_MAX, VASTAANOTTAJAT_ENINTAAN_INVALID), | ||
validateRaportointiTila(params.sivutustila, SIVUTUS_TILA_INVALID), | ||
validateEmailParam(params.vastaanottajanEmail, VASTAANOTTAJA_INVALID), | ||
validateRaportointiTila(params.tila, TILA_INVALID) | ||
).flatten | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.