Skip to content

Commit

Permalink
Merge branch 'main' into dependabot/maven/org.springframework.boot-sp…
Browse files Browse the repository at this point in the history
…ring-boot-starter-parent-3.3.2
  • Loading branch information
stigebil authored Jul 30, 2024
2 parents 8bf998a + ee83a50 commit 64afea0
Show file tree
Hide file tree
Showing 60 changed files with 776 additions and 549 deletions.
23 changes: 0 additions & 23 deletions .github/workflows/delete_images.yml

This file was deleted.

2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -505,7 +505,7 @@
<dependency>
<groupId>com.pinterest.ktlint</groupId>
<artifactId>ktlint-cli</artifactId>
<version>1.2.1</version>
<version>1.3.1</version>
</dependency>
<!-- additional 3rd party ruleset(s) can be specified here -->
</dependencies>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,19 @@ object AvstemmingMapper {
return Base64.getUrlEncoder().encodeToString(bb.array()).substring(0, 22)
}

fun fagområdeTilAvleverendeKomponentKode(fagområde: String): String {
return when (fagområde) {
fun fagområdeTilAvleverendeKomponentKode(fagområde: String): String =
when (fagområde) {
"EFOG" -> "EF"
"EFBT" -> "EF"
"EFSP" -> "EF"
"BA" -> "BA"
"KS" -> "KS"
else -> throw Error("$fagområde støttes ikke ennå")
}
}
}

enum class SystemKode(val kode: String) {
enum class SystemKode(
val kode: String,
) {
OPPDRAGSSYSTEMET("OS"),
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,10 @@ fun logSoapFaultException(e: Exception) {
if (e is SOAPFaultException) {
val details =
e.fault.detail?.let { detail ->
detail.detailEntries.asSequence().mapNotNull { it.textContent }.joinToString(",")
detail.detailEntries
.asSequence()
.mapNotNull { it.textContent }
.joinToString(",")
}
secureLogger.error(
"SOAPFaultException -" +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,7 @@ class ApiExceptionHandler {
@ExceptionHandler(JwtTokenUnauthorizedException::class)
fun handleJwtTokenUnauthorizedException(
jwtTokenUnauthorizedException: JwtTokenUnauthorizedException,
): ResponseEntity<Ressurs<Nothing>> {
return unauthorized("Unauthorized")
}
): ResponseEntity<Ressurs<Nothing>> = unauthorized("Unauthorized")

@ExceptionHandler(Throwable::class)
fun handleThrowable(throwable: Throwable): ResponseEntity<Ressurs<Nothing>> {
Expand All @@ -38,7 +36,8 @@ class ApiExceptionHandler {
fun handleThrowable(feil: IntegrasjonException): ResponseEntity<Ressurs<Nothing>> {
secureLogger.error("Feil mot ${feil.system} har oppstått", feil)
logger.error("Feil mot ${feil.system} har oppstått exception=${getMostSpecificCause(feil)::class}")
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
return ResponseEntity
.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body(Ressurs.failure(errorMessage = feil.message))
}

Expand All @@ -48,7 +47,8 @@ class ApiExceptionHandler {
return when (tssException) {
is TssConnectionException -> serviceUnavailable(tssException.message!!, tssException)
is TssNoDataFoundException -> {
ResponseEntity.status(HttpStatus.NOT_FOUND)
ResponseEntity
.status(HttpStatus.NOT_FOUND)
.body(Ressurs.failure(errorMessage = tssException.message))
}
else -> illegalState(tssException.message!!, tssException)
Expand All @@ -58,7 +58,8 @@ class ApiExceptionHandler {
@ExceptionHandler(FinnesIkkeITps::class)
fun handleThrowable(feil: FinnesIkkeITps): ResponseEntity<Ressurs<Nothing>> {
logger.warn("Personen finnes ikke i TPS system=${feil.system} ")
return ResponseEntity.status(HttpStatus.BAD_REQUEST)
return ResponseEntity
.status(HttpStatus.BAD_REQUEST)
.body(Ressurs.failure(errorMessage = "Personen finnes ikke i TPS"))
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,32 +20,25 @@ import javax.sql.DataSource
@Configuration
class DatabaseConfiguration : AbstractJdbcConfiguration() {
@Bean
fun operations(dataSource: DataSource): NamedParameterJdbcTemplate {
return NamedParameterJdbcTemplate(dataSource)
}
fun operations(dataSource: DataSource): NamedParameterJdbcTemplate = NamedParameterJdbcTemplate(dataSource)

@Bean
fun transactionManager(dataSource: DataSource): PlatformTransactionManager {
return DataSourceTransactionManager(dataSource)
}
fun transactionManager(dataSource: DataSource): PlatformTransactionManager = DataSourceTransactionManager(dataSource)

@Bean
override fun jdbcCustomConversions(): JdbcCustomConversions {
return JdbcCustomConversions(
override fun jdbcCustomConversions(): JdbcCustomConversions =
JdbcCustomConversions(
listOf(
PGobjectTilUtbetalingsoppdragConverter(),
UtbetalingsoppdragTilPGobjectConverter(),
PGobjectTilMmelConverter(),
MmelTilPGobjectConverter(),
),
)
}

@ReadingConverter
class PGobjectTilUtbetalingsoppdragConverter : Converter<PGobject, Utbetalingsoppdrag> {
override fun convert(pGobject: PGobject): Utbetalingsoppdrag? {
return pGobject.value?.let { objectMapper.readValue(it) }
}
override fun convert(pGobject: PGobject): Utbetalingsoppdrag? = pGobject.value?.let { objectMapper.readValue(it) }
}

@WritingConverter
Expand All @@ -59,9 +52,7 @@ class DatabaseConfiguration : AbstractJdbcConfiguration() {

@ReadingConverter
class PGobjectTilMmelConverter : Converter<PGobject, Mmel> {
override fun convert(pGobject: PGobject): Mmel? {
return pGobject.value?.let { objectMapper.readValue(it) }
}
override fun convert(pGobject: PGobject): Mmel? = pGobject.value?.let { objectMapper.readValue(it) }
}

@WritingConverter
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,6 @@ open class IntegrasjonException(
throwable: Throwable? = null,
) : RuntimeException(msg, throwable)

open class FinnesIkkeITps(val system: Integrasjonssystem) : RuntimeException()
open class FinnesIkkeITps(
val system: Integrasjonssystem,
) : RuntimeException()
10 changes: 4 additions & 6 deletions src/main/kotlin/no/nav/familie/oppdrag/config/OppdragMQConfig.kt
Original file line number Diff line number Diff line change
Expand Up @@ -70,12 +70,11 @@ class OppdragMQConfig(
}

@Bean
fun jmsTemplateUtgående(mqQueueConnectionFactory: ConnectionFactory): JmsTemplate {
return JmsTemplate(mqQueueConnectionFactory).apply {
fun jmsTemplateUtgående(mqQueueConnectionFactory: ConnectionFactory): JmsTemplate =
JmsTemplate(mqQueueConnectionFactory).apply {
defaultDestinationName = sendQueue
isSessionTransacted = true
}
}

@Bean
fun tssConnectionFactory(): ConnectionFactory {
Expand Down Expand Up @@ -131,7 +130,6 @@ class OppdragMQConfig(
}

@Bean
fun jmsTemplateAvstemming(mqQueueConnectionFactory: ConnectionFactory): JmsTemplate {
return JmsTemplate(mqQueueConnectionFactory).apply { defaultDestinationName = avstemmingQueue }
}
fun jmsTemplateAvstemming(mqQueueConnectionFactory: ConnectionFactory): JmsTemplate =
JmsTemplate(mqQueueConnectionFactory).apply { defaultDestinationName = avstemmingQueue }
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,13 @@ class ServiceConfig(
@Value("\${OPPDRAG_SERVICE_URL}") private val simulerFpServiceUrl: String,
) {
@Bean
fun stsConfig(): StsConfig {
return StsConfig.builder()
fun stsConfig(): StsConfig =
StsConfig
.builder()
.url(stsUrl)
.username(systemuserUsername)
.password(systemuserPwd)
.build()
}

@Bean
fun simulerFpServicePort(): SimulerFpService =
Expand Down
11 changes: 5 additions & 6 deletions src/main/kotlin/no/nav/familie/oppdrag/config/SwaggerConfig.kt
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,17 @@ class SwaggerConfig {
private val bearer = "JWT"

@Bean
fun openApi(): OpenAPI {
return OpenAPI().info(Info().title("Familie oppdrag api"))
fun openApi(): OpenAPI =
OpenAPI()
.info(Info().title("Familie oppdrag api"))
.components(Components().addSecuritySchemes(bearer, bearerTokenSecurityScheme()))
.addSecurityItem(SecurityRequirement().addList(bearer, listOf("read", "write")))
}

private fun bearerTokenSecurityScheme(): SecurityScheme {
return SecurityScheme()
private fun bearerTokenSecurityScheme(): SecurityScheme =
SecurityScheme()
.type(SecurityScheme.Type.APIKEY)
.scheme(bearer)
.bearerFormat("JWT")
.`in`(SecurityScheme.In.HEADER)
.name("Authorization")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,7 @@ val Oppdrag.id: OppdragId
OppdragId(
this.oppdrag110.kodeFagomraade,
this.oppdrag110.oppdragGjelderId,
this.oppdrag110.oppdragsLinje150?.get(0)?.henvisning!!,
this.oppdrag110.oppdragsLinje150
?.get(0)
?.henvisning!!,
)
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@ class GrensesnittavstemmingMapper(
aksjon = opprettAksjonsdata(aksjonType)
}

private fun opprettAksjonsdata(aksjonType: AksjonType): Aksjonsdata {
return Aksjonsdata().apply {
private fun opprettAksjonsdata(aksjonType: AksjonType): Aksjonsdata =
Aksjonsdata().apply {
this.aksjonType = aksjonType
this.kildeType = KildeType.AVLEV
this.avstemmingType = AvstemmingType.GRSN
Expand All @@ -70,18 +70,16 @@ class GrensesnittavstemmingMapper(
this.avleverendeAvstemmingId = avstemmingId
this.brukerId = fagområde
}
}

private fun opprettAvstemmingsdataLister(oppdragsliste: List<OppdragTilAvstemming>): List<Avstemmingsdata> {
return opprettDetaljdata(oppdragsliste).chunked(ANTALL_DETALJER_PER_MELDING).map {
private fun opprettAvstemmingsdataLister(oppdragsliste: List<OppdragTilAvstemming>): List<Avstemmingsdata> =
opprettDetaljdata(oppdragsliste).chunked(ANTALL_DETALJER_PER_MELDING).map {
lagMelding(AksjonType.DATA).apply {
this.detalj.addAll(it)
}
}
}

private fun opprettDetaljdata(oppdragsliste: List<OppdragTilAvstemming>): List<Detaljdata> {
return oppdragsliste.mapNotNull { oppdrag ->
private fun opprettDetaljdata(oppdragsliste: List<OppdragTilAvstemming>): List<Detaljdata> =
oppdragsliste.mapNotNull { oppdrag ->

leggTilGrunnlagsinformasjon(oppdrag)
leggTilTotalData(oppdrag)
Expand All @@ -106,7 +104,6 @@ class GrensesnittavstemmingMapper(
null
}
}
}

private fun håndterAvstemmingstidspunkt(oppdrag: OppdragTilAvstemming) {
val fom = avstemmingstidspunkt.fom
Expand Down Expand Up @@ -159,13 +156,12 @@ class GrensesnittavstemmingMapper(
OppdragStatus.KVITTERT_UKJENT -> null
}

private fun opprettTotalData(): Totaldata {
return Totaldata().apply {
private fun opprettTotalData(): Totaldata =
Totaldata().apply {
this.totalAntall = total.antall
this.totalBelop = BigDecimal.valueOf(total.beløp)
this.fortegn = getFortegn(total.beløp)
}
}

private fun opprettPeriodeData(): Periodedata {
val fom =
Expand All @@ -180,8 +176,8 @@ class GrensesnittavstemmingMapper(
}
}

private fun opprettGrunnlagsData(): Grunnlagsdata {
return Grunnlagsdata().apply {
private fun opprettGrunnlagsData(): Grunnlagsdata =
Grunnlagsdata().apply {
godkjentAntall = grunnlagsdata.godkjentAntall
godkjentBelop = BigDecimal.valueOf(grunnlagsdata.godkjentBelop)
godkjentFortegn = getFortegn(grunnlagsdata.godkjentBelop)
Expand All @@ -198,17 +194,18 @@ class GrensesnittavstemmingMapper(
avvistBelop = BigDecimal.valueOf(grunnlagsdata.avvistBelop)
avvistFortegn = getFortegn(grunnlagsdata.avvistBelop)
}
}

private fun getSatsBeløp(oppdrag: OppdragTilAvstemming): Long =
oppdrag.utbetalingsoppdrag.utbetalingsperiode.map { it.sats }.reduce(BigDecimal::add).toLong()
oppdrag.utbetalingsoppdrag.utbetalingsperiode
.map { it.sats }
.reduce(BigDecimal::add)
.toLong()

private fun getFortegn(satsbeløp: Long): Fortegn {
return if (satsbeløp >= 0) Fortegn.T else Fortegn.F
}
private fun getFortegn(satsbeløp: Long): Fortegn = if (satsbeløp >= 0) Fortegn.T else Fortegn.F

private fun formaterTilPeriodedataFormat(stringTimestamp: String): String =
LocalDateTime.parse(stringTimestamp, tidspunktFormatter)
LocalDateTime
.parse(stringTimestamp, tidspunktFormatter)
.format(DateTimeFormatter.ofPattern("yyyyMMddHH"))
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,11 @@ object JaxbGrensesnittAvstemmingsdata {

fun tilXml(avstemmingsmelding: Avstemmingsdata): String {
val stringWriter = StringWriter()
jaxbContext.createMarshaller().apply {
setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true)
}.marshal(ObjectFactory().createAvstemmingsdata(avstemmingsmelding), stringWriter)
jaxbContext
.createMarshaller()
.apply {
setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true)
}.marshal(ObjectFactory().createAvstemmingsdata(avstemmingsmelding), stringWriter)
return stringWriter.toString()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ package no.nav.familie.oppdrag.iverksetting
import no.trygdeetaten.skjema.oppdrag.Oppdrag
import java.lang.IllegalArgumentException

enum class Status(val kode: String) {
enum class Status(
val kode: String,
) {
OK("00"),
AKSEPTERT_MEN_NOE_ER_FEIL("04"),
AVVIST_FUNKSJONELLE_FEIL("08"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,9 +103,8 @@ class OppdragMapper {
}
}

fun tilOppdrag(oppdrag110: Oppdrag110): Oppdrag {
return objectFactory.createOppdrag().apply {
fun tilOppdrag(oppdrag110: Oppdrag110): Oppdrag =
objectFactory.createOppdrag().apply {
this.oppdrag110 = oppdrag110
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,8 @@ class OppdragMottaker(
log.debug("Henter oppdrag $oppdragId fra databasen")

val førsteOppdragUtenKvittering =
oppdragLagerRepository.hentKvitteringsinformasjon(oppdragId)
oppdragLagerRepository
.hentKvitteringsinformasjon(oppdragId)
.find { oppdrag -> oppdrag.status == OppdragStatus.LAGT_PÅ_KØ }
if (førsteOppdragUtenKvittering == null) {
log.warn("Oppdraget tilknyttet mottatt kvittering har uventet status i databasen. Oppdraget er: $oppdragId")
Expand Down Expand Up @@ -100,7 +101,5 @@ class OppdragMottaker(
OppdragStatus.KVITTERT_OK
}

fun lesKvittering(svarFraOppdrag: String): Oppdrag {
return Jaxb.tilOppdrag(svarFraOppdrag)
}
fun lesKvittering(svarFraOppdrag: String): Oppdrag = Jaxb.tilOppdrag(svarFraOppdrag)
}
Loading

0 comments on commit 64afea0

Please sign in to comment.