Skip to content
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

TB-140 Legg til nye endepunkter for arkivarisk historikk #218

Merged
merged 1 commit into from
Feb 7, 2025

Conversation

idagyl
Copy link
Contributor

@idagyl idagyl commented Feb 6, 2025

Lukket den forrige PRen pga trøbbel med force pushing etc etter at branchen den bygde på ble merget: #214

Bakgrunn

Det må være mulig å hente ut tilstanden for egenregistrerte data for et gitt tidspunkt tilbake i tid. Dette er blant annet nødvendig for å støtte egenregistrert data inn i Historisk Matrikkelbrev (lovkrav).

Endringer 🚀

  • To nye interne endepunkter for uthenting av egenregistrert data basert på registreringstidspunkt, for henholdvis bygning og bruksenhet. Nytt tillegg på route oppbygningen: /arkiv?registreringstidspunkt=<datoher>
  • Gjenbrukt funksjonene i service laget ved å legge til et nytt parameter for registreringstidspunkt som defaulter til Instant.now() - etter samtale med William. I databasen, rent teknisk, henter vi ut materialiseringer frem til og med oppgitt registreringstidspunkt og bruker den nyeste av de.
  • Lagt til swagger for de nye endepunktene. Har litt problemer med genereringen av schema type for parameterne, men har en issue hos SMILEY4 her: Type not set for Path/Query parameters with CustomProcessor (Instant) SMILEY4/ktor-swagger-ui#180. Midlertidig tenkte jeg at vi kanskje kan leve med at det står "null (date-time)", ellers er det jo mulig å midlertidig sette den som <string> i swagger doc'en og heller legge inn date-time ellernoe i description🤷‍♀️ Ville ikke bruke for mye tid på det i denne oppgaven for å unngå blokking.

Har ikke lagt til noe ekstra tilgangsstyring for nå, det får bli en egen oppgave når vi har fått litt mer oversikt over scopet.

Tips til testing 🧪

  • Sjekk at du klarer å hente ut egenregistrert data på både bygning og bruksenhet via de nye endepunktene og med gyldig registreringstidspunkt.
  • Prøv å egenregistrere noe på en bygning eller bruksenhet. Hent ut langt tilbake i tid og sjekk at du ikke får med de nyeste endringene. Hent ut "nå" og sjekk at du får siste endring med.
  • Sjekk at du får 400 bad request dersom du oppgir et ugyldig datoformat.
  • Se over swagger doc og sjekk at det ser greit og forståelig ut. Kom gjerne med input på ordlyd som kan gjøre det mer beskrivende.

@idagyl idagyl requested a review from a team as a code owner February 6, 2025 11:52
Copy link

github-actions bot commented Feb 6, 2025

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

OpenSSF Scorecard

PackageVersionScoreDetails

Scanned Files

@@ -128,6 +128,14 @@ class BygningRouteTest : TestApplicationWithDb() {
}
}
}

@Test
fun `gitt et ugyldig dato query parameter svarer bygning bad request`() = testApplication {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#214 (comment)

Legger ved den eneste uløste kommentaren på den forrige PRen her @henriwi

Tenker vi bør ha en test som verifiserer at vi får tilbake korrekt data basert på registreringstidspunkt også (eventuelt om dette allerede er dekket av andre tester)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Det kan absolutt fikses! La inn en test på det i BygningRepositoryTest som sjekker direkte på db funksjonene, men alltids fint å få en sjekk på selve rutene også. Siden det er to relativt like endepunkter /bygning vs /bruksenhet, er det ønskelig å kjøre tester på begge på rutenivå egentlig? 👍 Ser at jeg bare tok på en av de, men hvis det er selve ruta man tester kan det kanskje greit med begge 🤷‍♀️ @henriwi

@@ -80,6 +82,51 @@ fun Route.bygningRouting(

call.respond(status, body)
}

get(
"arkiv",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Foreslår å ha denne på toppnivå og gjenbruke respons-typer og slikt. Selv om det blir noe "duplikate" paths, tenker jeg det gir mest mening fra et API-ståsted.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Du får ta en ny titt og se om det ble på det nivået du så for deg nå 😄🫡

Legger til endepunkter for å hente ut egenregistrert data for henholdsvis en bygning og en bruksenhet for et gitt registreringstidspunkt. Åpner for muligheten til å se hva som var registrert på et gitt tidspunkt.

TB-140
@idagyl idagyl force-pushed the TB-140-arkiv-endepunkter-for-bygning-bruksenhet branch from dbc5659 to b2b8060 Compare February 7, 2025 11:49
@idagyl idagyl merged commit db8f83c into main Feb 7, 2025
6 checks passed
@idagyl idagyl deleted the TB-140-arkiv-endepunkter-for-bygning-bruksenhet branch February 7, 2025 12:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants