Skip to content

Commit

Permalink
Bytt så mange sealed class->interface på 10 min
Browse files Browse the repository at this point in the history
  • Loading branch information
hestad committed Oct 3, 2023
1 parent 7db0afc commit c6f6023
Show file tree
Hide file tree
Showing 18 changed files with 108 additions and 74 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -163,21 +163,21 @@ data class Fagsak(
val sakstype: String = "FAGSAK",
)

sealed class DokumentVariant {
abstract val filtype: String
abstract val fysiskDokument: String
abstract val variantformat: String
sealed interface DokumentVariant {
val filtype: String
val fysiskDokument: String
val variantformat: String

data class ArkivPDF(
override val fysiskDokument: String,
) : DokumentVariant() {
) : DokumentVariant {
override val filtype: String = "PDFA"
override val variantformat: String = "ARKIV"
}

data class OriginalJson(
override val fysiskDokument: String,
) : DokumentVariant() {
) : DokumentVariant {
override val filtype: String = "JSON"
override val variantformat: String = "ORIGINAL"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ class DokDistFordelingClient(val baseUrl: String, val tokenOppslag: TokenOppslag
}
}

private sealed class PayloadTyper {
private sealed interface PayloadTyper {
enum class Distribusjonstype(val value: String) {
VEDTAK("VEDTAK"),
VIKTIG("VIKTIG"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -219,16 +219,16 @@ internal class JournalpostHttpClient(
}
}

sealed class GraphQLApiFeil {
sealed interface GraphQLApiFeil {

data class TekniskFeil(val request: Any, val msg: String) : GraphQLApiFeil()
sealed class HttpFeil : GraphQLApiFeil() {
data class NotFound(val request: Any, val msg: String) : HttpFeil()
data class ServerError(val request: Any, val msg: String) : HttpFeil()
data class BadRequest(val request: Any, val msg: String) : HttpFeil()
data class Forbidden(val request: Any, val msg: String) : HttpFeil()
data class TekniskFeil(val request: Any, val msg: String) : GraphQLApiFeil
sealed interface HttpFeil : GraphQLApiFeil {
data class NotFound(val request: Any, val msg: String) : HttpFeil
data class ServerError(val request: Any, val msg: String) : HttpFeil
data class BadRequest(val request: Any, val msg: String) : HttpFeil
data class Forbidden(val request: Any, val msg: String) : HttpFeil

data class Ukjent(val request: Any, val msg: String) : HttpFeil()
data class Ukjent(val request: Any, val msg: String) : HttpFeil
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,9 @@ internal data class KonsistensavstemmingData(
)
}

/**
* TODO jah: Bytt til sealed interface? Må løse protected
*/
sealed class Aksjonsdata {
@JacksonXmlProperty
@Suppress("unused")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ internal fun List<Adressetype>.finnRiktigAdresseformatOgMapTilPdlAdresse(): List
adresseformat = format.type,
adressetype = adressetype,
)

is PostadresseIFrittFormat -> PdlData.Adresse(
adresselinje = listOfNotNull(
format.adresselinje1,
Expand All @@ -21,12 +22,14 @@ internal fun List<Adressetype>.finnRiktigAdresseformatOgMapTilPdlAdresse(): List
adresseformat = format.type,
adressetype = adressetype,
)

is Postboksadresse -> PdlData.Adresse(
adresselinje = "${format.postbokseier}, ${format.postboks}",
postnummer = format.postnummer,
adresseformat = format.type,
adressetype = adressetype,
)

is UkjentBosted -> null
is Matrikkeladresse -> PdlData.Adresse(
adresselinje = format.tilleggsnavn ?: "",
Expand All @@ -36,6 +39,7 @@ internal fun List<Adressetype>.finnRiktigAdresseformatOgMapTilPdlAdresse(): List
adresseformat = format.type,
adressetype = adressetype,
)

is UtenlandskAdresse -> PdlData.Adresse(
adresselinje = listOfNotNull(
format.adressenavnNummer,
Expand All @@ -48,6 +52,7 @@ internal fun List<Adressetype>.finnRiktigAdresseformatOgMapTilPdlAdresse(): List
adresseformat = format.type,
adressetype = adressetype,
)

is UtenlandskAdresseIFrittFormat -> PdlData.Adresse(
adresselinje = listOfNotNull(
format.adresselinje1,
Expand Down Expand Up @@ -93,61 +98,83 @@ internal fun List<Adressetype>.finnRiktigAdresseformatOgMapTilPdlAdresse(): List
}.distinct()
}

sealed class Adressetype(val type: String)
sealed interface Adressetype {
val type: String
}

data class Bostedsadresse(
val vegadresse: Vegadresse?,
val ukjentBosted: UkjentBosted?,
val matrikkeladresse: Matrikkeladresse?,
) : Adressetype(type = "Bostedsadresse")
) : Adressetype {
override val type: String = "Bostedsadresse"
}

data class Kontaktadresse(
val vegadresse: Vegadresse?,
val postadresseIFrittFormat: PostadresseIFrittFormat?,
val postboksadresse: Postboksadresse?,
val utenlandskAdresse: UtenlandskAdresse?,
val utenlandskAdresseIFrittFormat: UtenlandskAdresseIFrittFormat?,
) : Adressetype(type = "Kontaktadresse")
) : Adressetype {
override val type: String = "Kontaktadresse"
}

data class Oppholdsadresse(
val vegadresse: Vegadresse?,
val matrikkeladresse: Matrikkeladresse?,
val utenlandskAdresse: UtenlandskAdresse?,
) : Adressetype(type = "Oppholdsadresse")
) : Adressetype {
override val type: String = "Oppholdsadresse"
}

sealed interface Adresseformat {
val type: String
}

sealed class Adresseformat(val type: String)
data class Vegadresse(
val husnummer: String?,
val husbokstav: String?,
val adressenavn: String?,
val kommunenummer: String?,
val postnummer: String?,
val bruksenhetsnummer: String?,
) : Adresseformat(type = "Vegadresse")
) : Adresseformat {
override val type = "Vegadresse"
}

data class PostadresseIFrittFormat(
val adresselinje1: String?,
val adresselinje2: String?,
val adresselinje3: String?,
val postnummer: String?,
) : Adresseformat(type = "PostadresseIFrittFormat")
) : Adresseformat {
override val type = "PostadresseIFrittFormat"
}

data class Postboksadresse(
val postbokseier: String?,
val postboks: String?,
val postnummer: String?,
) : Adresseformat(type = "Postboksadresse")
) : Adresseformat {
override val type = "Postboksadresse"
}

data class UkjentBosted(
val bostedskommune: String,
) : Adresseformat(type = "UkjentBosted")
) : Adresseformat {
override val type = "UkjentBosted"
}

data class Matrikkeladresse(
val matrikkelId: Long?,
val bruksenhetsnummer: String?,
val tilleggsnavn: String?,
val postnummer: String?,
val kommunenummer: String?,
) : Adresseformat(type = "Matrikkeladresse")
) : Adresseformat {
override val type = "PostadresseIFrittFormat"
}

data class UtenlandskAdresse(
val adressenavnNummer: String?,
Expand All @@ -157,7 +184,9 @@ data class UtenlandskAdresse(
val bySted: String?,
val regionDistriktOmraade: String?,
val landkode: String,
) : Adresseformat(type = "UtenlandskAdresse")
) : Adresseformat {
override val type = "UtenlandskAdresse"
}

data class UtenlandskAdresseIFrittFormat(
val adresselinje1: String?,
Expand All @@ -166,4 +195,6 @@ data class UtenlandskAdresseIFrittFormat(
val postkode: String?,
val byEllerStedsnavn: String?,
val landkode: String,
) : Adresseformat(type = "UtenlandskAdresseIFrittFormat")
) : Adresseformat {
override val type = "UtenlandskAdresseIFrittFormat"
}
Original file line number Diff line number Diff line change
Expand Up @@ -66,19 +66,19 @@ data class Attesteringshistorikk private constructor(
JsonSubTypes.Type(value = Attestering.Iverksatt::class, name = "Iverksatt"),
JsonSubTypes.Type(value = Attestering.Underkjent::class, name = "Underkjent"),
)
sealed class Attestering {
abstract val attestant: NavIdentBruker.Attestant
abstract val opprettet: Tidspunkt
sealed interface Attestering {
val attestant: NavIdentBruker.Attestant
val opprettet: Tidspunkt

data class Iverksatt(override val attestant: NavIdentBruker.Attestant, override val opprettet: Tidspunkt) :
Attestering()
Attestering

data class Underkjent(
override val attestant: NavIdentBruker.Attestant,
override val opprettet: Tidspunkt,
val grunn: Grunn,
val kommentar: String,
) : Attestering() {
) : Attestering {
enum class Grunn {
INNGANGSVILKÅRENE_ER_FEILVURDERT,
BEREGNINGEN_ER_FEIL,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,23 +19,23 @@ interface KopierbarForSnitt<Type> {
fun copy(args: CopyArgs.Snitt): Type?
}

sealed class CopyArgs {
sealed class Tidslinje : CopyArgs() {
sealed interface CopyArgs {
sealed interface Tidslinje : CopyArgs {
/**
* Kopier aktuelt objekt og sett perioden til å være [periode].
*/
data class NyPeriode(val periode: Periode) : Tidslinje()
data class NyPeriode(val periode: Periode) : Tidslinje

/**
* Kopier aktuelt objekt som det er.
*/
data object Full : Tidslinje()
data object Full : Tidslinje
}

/**
* Lager kopi hvor perioden settes til snittet av periodene.
*/
data class Snitt(val periode: Periode) : CopyArgs() {
data class Snitt(val periode: Periode) : CopyArgs {
fun snittFor(original: Periode): Periode? {
return original.snitt(periode)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ interface LeaderPodLookup {
fun amITheLeader(localHostName: String): Either<LeaderPodLookupFeil, Boolean>
}

sealed class LeaderPodLookupFeil {
data object KunneIkkeKontakteLeaderElectorContainer : LeaderPodLookupFeil()
data object UkjentSvarFraLeaderElectorContainer : LeaderPodLookupFeil()
sealed interface LeaderPodLookupFeil {
data object KunneIkkeKontakteLeaderElectorContainer : LeaderPodLookupFeil
data object UkjentSvarFraLeaderElectorContainer : LeaderPodLookupFeil
}
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ data class MottattKravgrunnlag(
ansvarligEnhet = "8020",
kontrollFelt = kravgrunnlag.eksternKontrollfelt,
behandler = kravgrunnlag.behandler,
tilbakekrevingsperioder = kravgrunnlag.grunnlagsperioder.map { grunnlagsperiode ->
tilbakekrevingsperioder = kravgrunnlag.grunnlagsmåneder.map { grunnlagsperiode ->
Tilbakekrevingsvedtak.Tilbakekrevingsperiode(
periode = grunnlagsperiode.måned,
renterBeregnes = false,
Expand All @@ -165,7 +165,7 @@ data class MottattKravgrunnlag(
.multiply(it.skatteProsent)
.divide(BigDecimal("100"))
.setScale(0, RoundingMode.DOWN)
.min(grunnlagsperiode.beløpSkattMnd),
.min(grunnlagsperiode.betaltSkattForYtelsesgruppen),
tilbakekrevingsresultat = Tilbakekrevingsvedtak.Tilbakekrevingsresultat.FULL_TILBAKEKREVING,
skyld = Tilbakekrevingsvedtak.Skyld.BRUKER,
)
Expand All @@ -189,7 +189,7 @@ data class MottattKravgrunnlag(
ansvarligEnhet = "8020",
kontrollFelt = kravgrunnlag.eksternKontrollfelt,
behandler = kravgrunnlag.behandler, // TODO behandler bør sannsynligvis være fra tilbakekrevingsbehandling/revurdering og ikke kravgrunnlaget
tilbakekrevingsperioder = kravgrunnlag.grunnlagsperioder.map { grunnlagsperiode ->
tilbakekrevingsperioder = kravgrunnlag.grunnlagsmåneder.map { grunnlagsperiode ->
Tilbakekrevingsvedtak.Tilbakekrevingsperiode(
periode = grunnlagsperiode.måned,
renterBeregnes = false,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ internal class TilbakekrevingsbehandlingTest {
tilbakekrevingsvedtak.tilbakekrevingsperioder
.flatMap { it.tilbakekrevingsbeløp }
.filterIsInstance<Tilbakekrevingsvedtak.Tilbakekrevingsperiode.Tilbakekrevingsbeløp.TilbakekrevingsbeløpYtelse>()
.all { it.beløpSkatt == BigDecimal("1759") && it.beløpSkatt < kravgrunnlag.grunnlagsperioder[0].beløpSkattMnd } shouldBe true
.all { it.beløpSkatt == BigDecimal("1759") && it.beløpSkatt < kravgrunnlag.grunnlagsmåneder[0].betaltSkattForYtelsesgruppen } shouldBe true
}
}

Expand Down
6 changes: 3 additions & 3 deletions test-common/src/main/kotlin/TilbakekrevingTestData.kt
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,11 @@ fun matchendeKravgrunnlag(
status = Kravgrunnlag.KravgrunnlagStatus.Nytt,
behandler = "K231B433",
utbetalingId = utbetalingId,
grunnlagsperioder = it.hentFeilutbetalteBeløp()
grunnlagsmåneder = it.hentFeilutbetalteBeløp()
.map { (periode, feilutbetaling) ->
Kravgrunnlag.Grunnlagsmåned(
måned = periode.tilMåned(),
beløpSkattMnd = BigDecimal(4395),
betaltSkattForYtelsesgruppen = BigDecimal(4395),
grunnlagsbeløp = listOf(
Kravgrunnlag.Grunnlagsmåned.Grunnlagsbeløp(
kode = KlasseKode.KL_KODE_FEIL_INNT,
Expand Down Expand Up @@ -86,6 +86,6 @@ fun nyKravgrunnlag(
status = status,
behandler = behandler,
utbetalingId = utbetalingId,
grunnlagsperioder = grunnlagsperioder,
grunnlagsmåneder = grunnlagsperioder,
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ fun kravgrunnlagPåSakHendelse(
status = status,
behandler = behandler,
utbetalingId = utbetalingId,
grunnlagsperioder = grunnlagsmåneder,
grunnlagsmåneder = grunnlagsmåneder,
saksnummer = saksnummer,
),
revurderingId = revurderingId,
Expand All @@ -102,7 +102,7 @@ fun grunnlagsmåned(
): Kravgrunnlag.Grunnlagsmåned {
return Kravgrunnlag.Grunnlagsmåned(
måned = måned,
beløpSkattMnd = betaltSkattForYtelsesgruppen,
betaltSkattForYtelsesgruppen = betaltSkattForYtelsesgruppen,
grunnlagsbeløp = grunnlagsbeløps,
)
}
Expand Down
Loading

0 comments on commit c6f6023

Please sign in to comment.