Skip to content

Commit

Permalink
legge logikken i service
Browse files Browse the repository at this point in the history
  • Loading branch information
SandraLekve committed Nov 1, 2024
1 parent 6c94b29 commit f6ab682
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 17 deletions.
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
package no.nav.familie.ef.mottak.api

import no.nav.familie.ef.mottak.repository.SøknadRepository
import no.nav.familie.ef.mottak.repository.VedleggRepository
import no.nav.familie.ef.mottak.service.PdfService
import no.nav.familie.ef.mottak.service.SøknadskvitteringService
import no.nav.security.token.support.core.api.Unprotected
import org.springframework.context.annotation.Profile
import org.springframework.data.repository.findByIdOrNull
import org.springframework.http.MediaType.APPLICATION_JSON_VALUE
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.PathVariable
Expand All @@ -17,17 +14,11 @@ import org.springframework.web.bind.annotation.RestController
@RequestMapping("api/soknadskvittering", produces = [APPLICATION_JSON_VALUE])
@Unprotected
class SøknadskvitteringController(
private val pdfService: PdfService,
valknadRepository: SøknadRepository,
val vedleggRepository: VedleggRepository,
valknadKvitteringService: SøknadskvitteringService,
) {
@Unprotected
@GetMapping("{id}")
fun søknad(
@PathVariable id: String,
): Map<String, Any> {
val innsending = søknadRepository.findByIdOrNull(id) ?: error("Kunne ikke finne søknad ($id) i database")
val vedleggTitler = vedleggRepository.finnTitlerForSøknadId(id).sorted()
return pdfService.lagFeltMap(innsending, vedleggTitler)
}
@GetMapping("{søknadId}")
fun hentSøknad(
@PathVariable søknadId: String,
): Map<String, Any> = søknadKvitteringService.hentSøknadOgMapTilGenereltFormat(søknadId)
}
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ class PdfService(
søknadRepository.update(oppdatertSoknad)
}

fun lagFeltMap(
private fun lagFeltMap(
innsending: Søknad,
vedleggTitler: List<String>,
): Map<String, Any> =
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,60 @@
package no.nav.familie.ef.mottak.service

import no.nav.familie.ef.mottak.config.DOKUMENTTYPE_BARNETILSYN
import no.nav.familie.ef.mottak.config.DOKUMENTTYPE_OVERGANGSSTØNAD
import no.nav.familie.ef.mottak.config.DOKUMENTTYPE_SKJEMA_ARBEIDSSØKER
import no.nav.familie.ef.mottak.config.DOKUMENTTYPE_SKOLEPENGER
import no.nav.familie.ef.mottak.mapper.SøknadMapper
import no.nav.familie.ef.mottak.repository.SøknadRepository
import no.nav.familie.ef.mottak.repository.VedleggRepository
import no.nav.familie.ef.mottak.repository.domain.Søknad
import no.nav.familie.ef.mottak.repository.util.findByIdOrThrow
import no.nav.familie.kontrakter.ef.søknad.SkjemaForArbeidssøker
import no.nav.familie.kontrakter.ef.søknad.SøknadBarnetilsyn
import no.nav.familie.kontrakter.ef.søknad.SøknadOvergangsstønad
import no.nav.familie.kontrakter.ef.søknad.SøknadSkolepenger
import org.springframework.stereotype.Service
import org.springframework.transaction.annotation.Transactional

@Service
@Transactional
class SøknadskvitteringService(
private valknadRepository: SøknadRepository,
private val vedleggRepository: VedleggRepository,
) {
fun hentSøknadskvittering(id: String): Søknad = søknadRepository.findByIdOrThrow(id)
fun hentSøknadOgMapTilGenereltFormat(søknadId: String): Map<String, Any> {
val søknad = hentSøknad(søknadId)
val vedleggstitler = hentVedleggstitlerForSøknad(søknadId)
return mapSøknadTilGenereltFormat(søknad, vedleggstitler)
}

private fun hentSøknad(søknadId: String): Søknad = søknadRepository.findByIdOrThrow(søknadId)

private fun hentVedleggstitlerForSøknad(søknadId: String): List<String> = vedleggRepository.finnTitlerForSøknadId(søknadId).sorted()

private fun mapSøknadTilGenereltFormat(
innsending: Søknad,
vedleggTitler: List<String>,
): Map<String, Any> =
when (innsending.dokumenttype) {
DOKUMENTTYPE_OVERGANGSSTØNAD -> {
val dto = SøknadMapper.toDto<SøknadOvergangsstønad>(innsending)
SøknadTreeWalker.mapOvergangsstønad(dto, vedleggTitler)
}
DOKUMENTTYPE_BARNETILSYN -> {
val dto = SøknadMapper.toDto<SøknadBarnetilsyn>(innsending)
SøknadTreeWalker.mapBarnetilsyn(dto, vedleggTitler)
}
DOKUMENTTYPE_SKJEMA_ARBEIDSSØKER -> {
val dto = SøknadMapper.toDto<SkjemaForArbeidssøker>(innsending)
SøknadTreeWalker.mapSkjemafelter(dto)
}
DOKUMENTTYPE_SKOLEPENGER -> {
val dto = SøknadMapper.toDto<SøknadSkolepenger>(innsending)
SøknadTreeWalker.mapSkolepenger(dto, vedleggTitler)
}
else -> {
error("Ukjent eller manglende dokumenttype id: ${innsending.id}")
}
}
}

0 comments on commit f6ab682

Please sign in to comment.