-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hybridbrev: Opnar for å redigere (delar av) brev frå Brevbakeren #1840
Changes from all commits
5df8891
75668c8
38c7be4
5bb1d4d
e6f334c
410977f
0f7e5e7
621980c
985f14c
b282fa2
af3a748
2178b39
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
package no.nav.etterlatte.brev | ||
|
||
import no.nav.etterlatte.brev.model.Slate | ||
import no.nav.pensjon.brevbaker.api.model.RenderedJsonLetter | ||
|
||
object BlockTilSlateKonverterer { | ||
fun konverter(it: RenderedJsonLetter) = Slate( | ||
it | ||
.blocks | ||
.map { block -> tilSlateElement(block) } | ||
.toList() | ||
) | ||
|
||
private fun tilSlateElement(block: RenderedJsonLetter.Block) = when (block.type) { | ||
RenderedJsonLetter.Block.Type.TITLE1 -> Slate.Element( | ||
type = Slate.ElementType.HEADING_TWO, | ||
children = children(block) | ||
) | ||
RenderedJsonLetter.Block.Type.TITLE2 -> Slate.Element( | ||
type = Slate.ElementType.HEADING_THREE, | ||
children = children(block) | ||
) | ||
|
||
RenderedJsonLetter.Block.Type.PARAGRAPH -> Slate.Element( | ||
type = Slate.ElementType.PARAGRAPH, | ||
children = children(block) | ||
) | ||
} | ||
|
||
private fun children(block: RenderedJsonLetter.Block): List<Slate.InnerElement> = when (block.type) { | ||
RenderedJsonLetter.Block.Type.TITLE1 -> (block as RenderedJsonLetter.Block.Title1).content.map { konverter(it) } | ||
RenderedJsonLetter.Block.Type.TITLE2 -> (block as RenderedJsonLetter.Block.Title2).content.map { konverter(it) } | ||
RenderedJsonLetter.Block.Type.PARAGRAPH -> (block as RenderedJsonLetter.Block.Paragraph).content.map { | ||
konverter( | ||
it | ||
) | ||
} | ||
} | ||
|
||
private fun konverter(it: RenderedJsonLetter.ParagraphContent): Slate.InnerElement = when (it.type) { | ||
RenderedJsonLetter.ParagraphContent.Type.ITEM_LIST -> Slate.InnerElement( | ||
type = Slate.ElementType.BULLETED_LIST, | ||
children = | ||
(it as RenderedJsonLetter.ParagraphContent.ItemList).items | ||
.map { item -> | ||
Slate.InnerElement( | ||
type = Slate.ElementType.LIST_ITEM, | ||
text = item.content.joinToString() | ||
) | ||
} | ||
) | ||
|
||
RenderedJsonLetter.ParagraphContent.Type.LITERAL, RenderedJsonLetter.ParagraphContent.Type.VARIABLE -> | ||
Slate.InnerElement( | ||
type = Slate.ElementType.PARAGRAPH, | ||
text = (it as RenderedJsonLetter.ParagraphContent.Text).text | ||
) | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
package no.nav.etterlatte.brev.brevbaker | ||
|
||
import com.fasterxml.jackson.annotation.JsonSubTypes | ||
import com.fasterxml.jackson.annotation.JsonTypeInfo | ||
import no.nav.pensjon.brevbaker.api.model.RenderedJsonLetter | ||
|
||
@JsonTypeInfo( | ||
use = JsonTypeInfo.Id.NAME, | ||
include = JsonTypeInfo.As.EXTERNAL_PROPERTY, | ||
property = "type", | ||
defaultImpl = Void::class | ||
) | ||
@JsonSubTypes( | ||
JsonSubTypes.Type(value = RenderedJsonLetter.Block.Title1::class, name = "TITLE1"), | ||
JsonSubTypes.Type(value = RenderedJsonLetter.Block.Title2::class, name = "TITLE2"), | ||
JsonSubTypes.Type(value = RenderedJsonLetter.Block.Paragraph::class, name = "PARAGRAPH") | ||
) | ||
interface BrevbakerJSONBlockMixIn | ||
|
||
@JsonTypeInfo( | ||
use = JsonTypeInfo.Id.NAME, | ||
include = JsonTypeInfo.As.EXTERNAL_PROPERTY, | ||
property = "type", | ||
defaultImpl = Void::class | ||
) | ||
@JsonSubTypes( | ||
JsonSubTypes.Type(value = RenderedJsonLetter.ParagraphContent.ItemList::class, name = "ITEM_LIST"), | ||
JsonSubTypes.Type(value = RenderedJsonLetter.ParagraphContent.Text.Literal::class, name = "LITERAL"), | ||
JsonSubTypes.Type(value = RenderedJsonLetter.ParagraphContent.Text.Variable::class, name = "VARIABLE") | ||
) | ||
interface BrevbakerJSONParagraphMixIn |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,7 +13,7 @@ data class Slate( | |
@JsonValue val elements: List<Element> = emptyList() | ||
) { | ||
fun flettInn(behandling: Behandling): Slate = when (behandling.revurderingsaarsak) { | ||
RevurderingAarsak.ADOPSJON -> erstatt(this, BrevDataMapper.fra(behandling).second) | ||
RevurderingAarsak.ADOPSJON -> erstatt(this, BrevDataMapper.brevData(behandling)) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ser at omgjøring av farskap er litt med og litt ikke med i denne PR'en -- hadde vært lettere å følge med hvis det var alt eller ingenting for den revurderingsårsaken There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Godt poeng! Noterer det bak øyret til neste gong. |
||
else -> this | ||
} | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hadde det gitt mening med en tredje prosesstype for brev? I denne og forrige
when
er det basically en sjekk på om du er en spesiell versjon av automatisk i kraft av revurderingsårsak, men det kunne vært basert på f.eks. prosessTypeREDIGERBAR_AUTOMATISK
e.l.Har ikke oversikt over de andre stedene det evt. må håndteres da :p
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh, det er ein fristande ide. Samtidig trur eg at vi etter kvart skal over på redigerbar automatisk for alle brev, så usikker på om det vil trengs på sikt 🤔