no.difi.sdp.client2.internal.EbmsForsendelseBuilder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sikker-digital-post-klient-java Show documentation
Show all versions of sikker-digital-post-klient-java Show documentation
Klient for sending av sikker digital post fra offentlige virksomheter.
package no.difi.sdp.client2.internal;
import no.difi.begrep.sdp.schema_v10.SDPDigitalPost;
import no.difi.sdp.client2.domain.Databehandler;
import no.difi.sdp.client2.domain.Forsendelse;
import no.difi.sdp.client2.domain.TekniskMottaker;
import no.digipost.api.representations.Dokumentpakke;
import no.digipost.api.representations.EbmsAktoer;
import no.digipost.api.representations.EbmsForsendelse;
import no.digipost.api.representations.Organisasjonsnummer;
import no.digipost.api.representations.StandardBusinessDocumentFactory;
import org.joda.time.DateTime;
import org.unece.cefact.namespaces.standardbusinessdocumentheader.StandardBusinessDocument;
import java.util.UUID;
public class EbmsForsendelseBuilder {
private final SDPBuilder sdpBuilder;
private final CreateDokumentpakke createDokumentpakke;
public EbmsForsendelseBuilder() {
sdpBuilder = new SDPBuilder();
createDokumentpakke = new CreateDokumentpakke();
}
public Billable buildEbmsForsendelse(Databehandler databehandler, Organisasjonsnummer meldingsformidler, Forsendelse forsendelse) {
TekniskMottaker mottaker = forsendelse.getTekniskMottaker();
EbmsAktoer ebmsAvsender = EbmsAktoer.avsender(databehandler.organisasjonsnummer.getOrganisasjonsnummer());
EbmsAktoer ebmsMottaker = EbmsAktoer.meldingsformidler(meldingsformidler);
//SBD
String meldingsId = UUID.randomUUID().toString();
Organisasjonsnummer sbdhMottaker = mottaker.organisasjonsnummer;
Organisasjonsnummer sbdhAvsender = Organisasjonsnummer.of(databehandler.organisasjonsnummer.getOrganisasjonsnummer());
SDPDigitalPost sikkerDigitalPost = sdpBuilder.buildDigitalPost(forsendelse);
StandardBusinessDocument standardBusinessDocument = StandardBusinessDocumentFactory.create(sbdhAvsender, sbdhMottaker, meldingsId, DateTime.now(), forsendelse.getKonversasjonsId(), sikkerDigitalPost);
Billable dokumentpakkeWithBillableBytes = createDokumentpakke.createDokumentpakke(databehandler, forsendelse);
EbmsForsendelse ebmsForsendelse = EbmsForsendelse.create(ebmsAvsender, ebmsMottaker, sbdhMottaker, standardBusinessDocument, dokumentpakkeWithBillableBytes.entity)
.withPrioritet(forsendelse.getPrioritet().getEbmsPrioritet())
.withMpcId(forsendelse.getMpcId())
.withAction(forsendelse.type.action)
.build();
return new Billable<>(ebmsForsendelse, dokumentpakkeWithBillableBytes.billableBytes);
}
}