All Downloads are FREE. Search and download functionalities are using the official Maven repository.

no.ks.fiks.bekymringsmelding.produsent.klient.BekymringsmeldingApiImpl Maven / Gradle / Ivy

There is a newer version: 2.0.1
Show newest version
package no.ks.fiks.bekymringsmelding.produsent.klient;

import jakarta.ws.rs.client.Client;
import jakarta.ws.rs.client.Entity;
import jakarta.ws.rs.core.GenericType;
import jakarta.ws.rs.core.MediaType;
import lombok.NonNull;
import no.ks.fiks.bekymringsmelding.produsent.klient.model.BekymringsmeldingId;
import no.ks.fiks.bekymringsmelding.produsent.klient.model.Bydel;
import no.ks.fiks.bekymringsmelding.produsent.klient.model.Historikk;
import no.ks.fiks.bekymringsmelding.produsent.klient.model.Krypteringsnokler;
import no.ks.fiks.maskinporten.Maskinportenklient;
import org.glassfish.jersey.media.multipart.FormDataMultiPart;
import org.glassfish.jersey.media.multipart.MultiPart;
import org.glassfish.jersey.media.multipart.file.StreamDataBodyPart;

import java.io.InputStream;
import java.util.List;
import java.util.UUID;

public class BekymringsmeldingApiImpl implements BekymringsmeldingApi {
    private final Client client;
    private final String baseUrl;
    private final Maskinportenklient maskinporten;
    private final UUID fiksOrgId;
    private final String integrasjonId;
    private final String integrasjonPassord;

    public BekymringsmeldingApiImpl(Client client, String baseUrl, Maskinportenklient maskinporten, UUID fiksOrgId, String integrasjonId, String integrasjonPassord) {
        this.client = client;
        this.baseUrl = baseUrl;
        this.maskinporten = maskinporten;
        this.fiksOrgId = fiksOrgId;
        this.integrasjonId = integrasjonId;
        this.integrasjonPassord = integrasjonPassord;
    }

    @Override
    public List getBydeler(@NonNull String kommunenummer) {
        return client.target(baseUrl)
                .path("api/v1/kommuner")
                .path(kommunenummer)
                .path("bydeler")
                .request(MediaType.APPLICATION_JSON_TYPE)
                .header("IntegrasjonId", integrasjonId)
                .header("IntegrasjonPassord", integrasjonPassord)
                .header("Authorization", String.format("Bearer %s", maskinporten.getAccessToken("ks:fiks")))
                .get()
                .readEntity(new GenericType>() {});
    }

    @Override
    public Krypteringsnokler getKrypteringsnokler(@NonNull String kommunenummer, @NonNull String bydelsnummer) {
        return client.target(baseUrl)
                .path("api/v1/mottak/fagsystem")
                .path(kommunenummer)
                .path(bydelsnummer)
                .path("krypteringsnokler")
                .request(MediaType.APPLICATION_JSON_TYPE)
                .header("IntegrasjonId", integrasjonId)
                .header("IntegrasjonPassord", integrasjonPassord)
                .header("Authorization", String.format("Bearer %s", maskinporten.getAccessToken("ks:fiks")))
                .get()
                .readEntity(Krypteringsnokler.class);
    }

    @Override
    public UUID sendBekymringsmelding(@NonNull String kommunenummer, @NonNull String bydelsnummer, @NonNull InputStream bekymringsmeldingPdfInputStream, @NonNull InputStream bekymringsmeldingAsiceInputStream) {
        StreamDataBodyPart bekymringsmeldingPdf = new StreamDataBodyPart("bekymringsmelding", bekymringsmeldingPdfInputStream, "bekymringsmelding.pdf");
        StreamDataBodyPart asiceZip = new StreamDataBodyPart("asice", bekymringsmeldingAsiceInputStream, "asice.zip");

        MultiPart multipart = new FormDataMultiPart().bodyPart(bekymringsmeldingPdf).bodyPart(asiceZip);

        return client.target(baseUrl)
                .path("/api/v1/mottak/fagsystem")
                .path(fiksOrgId.toString())
                .path(kommunenummer)
                .path(bydelsnummer)
                .path("offentlig")
                .request(MediaType.APPLICATION_JSON_TYPE)
                .header("IntegrasjonId", integrasjonId)
                .header("IntegrasjonPassord", integrasjonPassord)
                .header("Authorization", String.format("Bearer %s", maskinporten.getAccessToken("ks:fiks")))
                .post(Entity.entity(multipart, multipart.getMediaType()))
                .readEntity(BekymringsmeldingId.class).getUuid();
    }

    @Override
    public List status(@NonNull UUID bekymringsmeldingId) {
        return client.target(baseUrl)
                .path("api/v1/mottak/fagsystem")
                .path(fiksOrgId.toString())
                .path("bekymringsmelding")
                .path(bekymringsmeldingId.toString())
                .path("status")
                .request(MediaType.APPLICATION_JSON_TYPE)
                .header("IntegrasjonId", integrasjonId)
                .header("IntegrasjonPassord", integrasjonPassord)
                .header("Authorization", String.format("Bearer %s", maskinporten.getAccessToken("ks:fiks")))
                .get()
                .readEntity(new GenericType>() {});
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy