Backend for saksbehandling av sykepengesøknader
Spesialist er inndelt i moduler etter lag i en onion architecture.
Alle lag på samme nivå har kun avhengighet og kjennskap til lag på nivå innenfor seg selv. De har ikke kjennskap til lag på samme nivå, eller nivåer utenfor.
Modulene og deres avhengigheter:
Vi bruker Ktlint for linting av koden, for å sette dette opp må man kjøre følgende kommando:
./gradlew addKtlintFormatGitPreCommitHook
Det holder å kjøre kommandoen en gang, så er commithooken satt opp for fremtidige commits.
For å kunne kjøre gradle må du legge til githubUser
og githubPassword
i ~/.gradle/gradle.properties
filen. For å
få tak i githubPassword
må du lage et personal access token. Lag et classic token
med read:packages
scope.
githubUser=x-access-token
githubPassword=<token>
For å kjøre tester trenger du docker. Du kan enten installere klienten fra docker eller bruke colima.
brew install colima docker
For at colima skal virke må disse env variablene settes opp i ~/.zshrc
:
export TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE=/var/run/docker.sock
export DOCKER_HOST=unix://$HOME/.colima/default/docker.sock
colima start
- Kjør tasken
graphqlIntrospectSchema
i spesialist-client-spleis, enten i IntelliJ eller fra kommandolinja- Fra kommandolinja:
./gradlew :spesialist-client-spleis:graphqlIntrospectSchema
- Fra kommandolinja:
- Gjør eventuelt endringer i hva som skal hentes fra spleis i filen
hentSnapshot.graphql
- Kjør tasken
graphqlGenerateClient
for å få generert klassene, disse genereres basert på hva som er definert ihentSnapshot.graphql
.
ℹ️
graphqlGenerateClient
vil også kjøres som en del av et vanlig bygg, i motsetning tilgraphqlIntrospectSchema
.
Hvis du nylig har gjort endringer i GraphQL-typer, -mutations, -queries eller -subscriptions og ønsker å teste disse endringene, er det lurt å først oppdatere lokalt testskjema, slik at du får syntax highlighting, code completion og et bedre liv. Da gjør du følgende:
- Kjør opp LocalApp.kt sin main-metode, det starter en lokal GraphQL-server.
- Finn filen graphql.config.yml og kjør
spesialist-local
, som vil oppdatere schema_til_bruk_fra_tester.grapqhl. - Eller trykk på oppdater-ikonet i
schema_til_bruk_fra_tester.grapqhl
, ser ut til å gjøre det samme. - Commit endringene i
schema_til_bruk_fra_tester.graphql
.
- kjør main-funksjonen i LocalApp.kt
- gå til http://localhost:4321/graphql/playground i en nettleser
- TODO: finn ut hvordan man veksler inn tokenet som skrives ut under oppstart av LocalApp til et bearer token, og sett det som header i playgrounden
- Finn filen .testcontainers.properties, ligger ofte på hjemmeområdet ditt, eksempelvis
~/.testcontainers.properties
- Legg til denne verdien:
testcontainers.reuse.enable=true
- Finn nyeste versjon av gradle her: https://gradle.org/releases/
- Kjør
./gradlew wrapper --gradle-version $gradleVersjon
to ganger, ref. dokumentasjonen til Gradle. - Oppdater gradle-versjon i build.gradle.kts-filen:
gradleVersion = "$gradleVersjon"
En selvstendig app for å slette testpersoner, kjører kun i dev.
Spleis-testdata fyrer av et kafka-event som spesialist-opprydding-dev lytter på og sletter testpersoner.
Spørsmål knyttet til koden eller prosjektet kan stilles som issues her på GitHub.
Interne henvendelser kan sendes via Slack i kanalen #team-bømlo-værsågod.
Dette repoet bruker GitHub Copilot til å generere kode.