Skip to content

Commit

Permalink
Merge pull request #61 from navikt/fix/type-errors-after-tiltakstype-…
Browse files Browse the repository at this point in the history
…overhaul

Fix typing errors and adjustments to frontend to conform to changes of tiltakstyper
  • Loading branch information
Steffen Lien authored Mar 9, 2022
2 parents 1d256eb + 93fc35a commit 18005b9
Show file tree
Hide file tree
Showing 30 changed files with 422 additions and 204 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package no.nav.mulighetsrommet.api.domain

import kotlinx.serialization.Serializable
import no.nav.mulighetsrommet.api.database.PGEnum
import no.nav.mulighetsrommet.api.utils.DateSerializer
import org.jetbrains.exposed.dao.id.IntIdTable
import org.jetbrains.exposed.sql.Column
Expand All @@ -12,7 +13,7 @@ data class Tiltaksgjennomforing(
val id: Int? = 0,
val tittel: String,
val beskrivelse: String,
val tiltakstypeId: Int,
val tiltakskode: Tiltakskode,
val tiltaksnummer: Int,
@Serializable(with = DateSerializer::class)
val fraDato: LocalDateTime? = null,
Expand All @@ -21,7 +22,7 @@ data class Tiltaksgjennomforing(
)

object TiltaksgjennomforingTable : IntIdTable() {
val tiltakstypeId = reference("tiltakstype_id", TiltakstypeTable)
val tiltakskode: Column<Tiltakskode> = customEnumeration("tiltakskode", "tiltakskode", { value -> Tiltakskode.valueOf(value as String) }, { PGEnum("tiltakskode", it) }).references(TiltakstypeTable.tiltakskode)
val tittel: Column<String> = text("tittel")
val beskrivelse: Column<String> = text("beskrivelse")
val tiltaksnummer: Column<Int> = integer("tiltaksnummer")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ object TiltakstypeTable : IntIdTable() {
val navn: Column<String> = text("navn")
val innsatsgruppeId: Column<Int> = integer("innsatsgruppe_id").references(InnsatsgruppeTable.id)
val sanityId: Column<Int?> = integer("sanity_id").nullable()
val tiltakskode = customEnumeration("tiltakskode", "tiltakskode", { value -> Tiltakskode.valueOf(value as String) }, { PGEnum("tiltakskode", it) })
val tiltakskode: Column<Tiltakskode> = customEnumeration("tiltakskode", "tiltakskode", { value -> Tiltakskode.valueOf(value as String) }, { PGEnum("tiltakskode", it) })
val fraDato: Column<LocalDateTime?> = datetime("dato_fra").nullable()
val tilDato: Column<LocalDateTime?> = datetime("dato_til").nullable()
val createdBy: Column<String?> = text("created_by").nullable()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,14 @@ import io.ktor.response.respondText
import io.ktor.routing.Route
import io.ktor.routing.get
import no.nav.mulighetsrommet.api.domain.Tiltakskode
import no.nav.mulighetsrommet.api.services.TiltaksgjennomforingService
import no.nav.mulighetsrommet.api.services.TiltakstypeService
import org.koin.ktor.ext.inject

fun Route.tiltakstypeRoutes() {

val tiltakstypeService: TiltakstypeService by inject()
val tiltaksgjennomforingService: TiltaksgjennomforingService by inject()

get("/api/tiltakstyper") {
val tiltakstyper = tiltakstypeService.getTiltakstyper()
Expand All @@ -28,4 +30,12 @@ fun Route.tiltakstypeRoutes() {
call.respondText(text = "Fant ikke tiltakstype", status = HttpStatusCode.NotFound)
}
}
get("/api/tiltakstyper/{tiltakskode}/tiltaksgjennomforinger") {
runCatching {
val tiltakskode = Tiltakskode.valueOf(call.parameters["tiltakskode"]!!)
tiltaksgjennomforingService.getTiltaksgjennomforingerByTiltakskode(tiltakskode)
}.onSuccess { tiltaksgjennomforinger ->
call.respond(tiltaksgjennomforinger)
}.onFailure { call.respondText("Fant ikke tiltakstype", status = HttpStatusCode.NotFound) }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package no.nav.mulighetsrommet.api.services
import no.nav.mulighetsrommet.api.database.DatabaseFactory
import no.nav.mulighetsrommet.api.domain.Tiltaksgjennomforing
import no.nav.mulighetsrommet.api.domain.TiltaksgjennomforingTable
import no.nav.mulighetsrommet.api.domain.Tiltakskode
import org.jetbrains.exposed.sql.ResultRow
import org.jetbrains.exposed.sql.select
import org.jetbrains.exposed.sql.selectAll
Expand All @@ -29,9 +30,9 @@ class TiltaksgjennomforingService(private val db: DatabaseFactory) {
}
}

suspend fun getTiltaksgjennomforingerByTiltakstypeId(id: Int): List<Tiltaksgjennomforing> {
suspend fun getTiltaksgjennomforingerByTiltakskode(tiltakskode: Tiltakskode): List<Tiltaksgjennomforing> {
val tiltaksgjennomforingRows = db.dbQuery {
TiltaksgjennomforingTable.select { TiltaksgjennomforingTable.tiltakstypeId eq id }.toList()
TiltaksgjennomforingTable.select { TiltaksgjennomforingTable.tiltakskode eq tiltakskode }.toList()
}
return tiltaksgjennomforingRows.map { row ->
toTiltaksgjennomforing(row)
Expand All @@ -44,7 +45,7 @@ class TiltaksgjennomforingService(private val db: DatabaseFactory) {
tittel = row[TiltaksgjennomforingTable.tittel],
beskrivelse = row[TiltaksgjennomforingTable.beskrivelse],
tiltaksnummer = row[TiltaksgjennomforingTable.tiltaksnummer],
tiltakstypeId = row[TiltaksgjennomforingTable.tiltakstypeId].value,
tiltakskode = row[TiltaksgjennomforingTable.tiltakskode],
fraDato = row[TiltaksgjennomforingTable.fraDato],
tilDato = row[TiltaksgjennomforingTable.tilDato]
)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
-- Remove constraint
ALTER TABLE tiltaksgjennomforing DROP CONSTRAINT fk_tiltakstype;

-- Add new column
ALTER TABLE tiltaksgjennomforing ADD COLUMN tiltakskode tiltakskode;
ALTER TABLE tiltaksgjennomforing
ADD CONSTRAINT fk_tiltakskode FOREIGN KEY (tiltakskode) REFERENCES tiltakstype (tiltakskode);

-- Migrate rows
UPDATE tiltaksgjennomforing t1
SET tiltakskode = t2.tiltakskode
FROM tiltakstype t2
WHERE t1.id = t2.id;

-- Drop old column
ALTER TABLE tiltaksgjennomforing DROP COLUMN tiltakstype_id;
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on conflict (id) do update set tittel = excluded.tittel,

-- La til 50, ikke sikkert vi trenger flere.
-- insert into tiltakstype (id, innsatsgruppe_id, navn, tiltakskode, dato_fra, dato_til)
-- values (1, 1, 'Arbeid med Bistand (AB)', 'ABIST', '2001-01-01', '2019-12-31'),
-- values (1, 1, 'Arbeid med Bistand (AB)', 'ABIST', '2001-01-01', '2019-12-31')
-- (2, 1, 'Arbeid med bistand A oppfølging', 'ABOPPF', '2008-08-01', '2013-12-31'),
-- (3, 1, 'Arbeid med bistand B', 'ABTBOPPF', '2008-08-01', '2013-12-31'),
-- (4, 1, 'Arbeid med bistand A utvidet oppfølging', 'ABUOPPF', '2008-08-01', '2013-12-31'),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
-- INSERT INTO tiltaksgjennomforing
-- VALUES (1, 13, 'Truckførerkurs i Namsos',
-- 'Her kan du lære å kræsje med truck.', 1000, '2020-06-01', '2020-12-01')
-- INSERT INTO tiltaksgjennomforing (id, tittel, beskrivelse, tiltaksnummer, fra_dato, til_dato, tiltakskode)
-- VALUES (1, 'Truckførerkurs i Namsos',
-- 'Her kan du lære å kræsje med truck.', 1000, '2020-06-01', '2020-12-01', 'ABIST')
-- ON CONFLICT (id) DO UPDATE SET tittel = EXCLUDED.tittel,
-- tiltakstype_id = EXCLUDED.tiltakstype_id,
-- beskrivelse = EXCLUDED.beskrivelse;
--
-- SELECT setval('tiltaksgjennomforing_id_seq', (SELECT MAX(id) from "tiltaksgjennomforing"));
161 changes: 137 additions & 24 deletions backend/src/main/resources/web/openapi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ paths:
text/plain:
schema:
type: string
enum: [PONG]
enum: [ PONG ]

/api/innsatsgrupper:
get:
Expand Down Expand Up @@ -55,13 +55,35 @@ paths:
operationId: getTiltakstype
responses:
200:
description: The specified tiltakstype.
description: the specified tiltakstype.
content:
application/json:
schema:
$ref: "#/components/schemas/Tiltakstype"
404:
description: The specified tiltakstype was not found.
description: the specified tiltakstype was not found.
content:
text/plain:
schema:
type: string
/api/tiltakstyper/{tiltakskode}/tiltaksgjennomforinger:
parameters:
- $ref: "#/components/parameters/Tiltakskode"
get:
tags:
- mulighetsrommet
operationId: getTiltaksgjennomforingerByTiltakskode
responses:
200:
description: An array of tiltaksgjennomføringer for specified tiltakskode.
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/Tiltaksgjennomforing"
404:
description: the specified tiltakstype was not found.
content:
text/plain:
schema:
Expand Down Expand Up @@ -116,7 +138,7 @@ components:
description: Tiltakskode
required: true
schema:
type: string
$ref: "#/components/schemas/Tiltakskode"

schemas:
Innsatsgruppe:
Expand All @@ -132,22 +154,6 @@ components:
- id
- tittel
- beskrivelse
UnsavedTiltakstype:
type: object
properties:
innsatsgruppe:
type: number
nullable: true
tittel:
type: string
beskrivelse:
type: string
ingress:
type: string
required:
- tittel
- beskrivelse
- ingress
Tiltakstype:
type: object
properties:
Expand All @@ -162,7 +168,7 @@ components:
navn:
type: string
tiltakskode:
type: string
$ref: "#/components/schemas/Tiltakskode"
fraDato:
type: string
nullable: true
Expand Down Expand Up @@ -190,8 +196,8 @@ components:
type: string
beskrivelse:
type: string
tiltakstypeId:
type: integer
tiltakskode:
$ref: "#/components/schemas/Tiltakskode"
tiltaksnummer:
type: string
fraDato:
Expand All @@ -211,7 +217,114 @@ components:
- id
- tittel
- beskrivelse
- tiltakstypeId
- tiltakskode
- tilataksnummer
- fraDato
- tilDato
Tiltakskode:
type: string
enum:
- ABIST
- ABOPPF
- ABTBOPPF
- ABUOPPF
- AMBF1
- AMBF2
- AMBF3
- AMO
- AMOB
- AMOE
- AMOY
- ANNUTDANN
- ARBDOGNSM
- ARBFORB
- ARBRDAGSM
- ARBRRDOGN
- ARBRRHBAG
- ARBRRHBSM
- ARBRRHDAG
- ARBTREN
- ASV
- ATG
- AVKLARAG
- AVKLARKV
- AVKLARSP
- AVKLARSV
- AVKLARUS
- BIA
- BIO
- BREVKURS
- DIGIOPPARB
- DIVTILT
- EKSPEBIST
- ENKELAMO
- ENKFAGYRKE
- ETAB
- FLEKSJOBB
- FORSAMOENK
- FORSAMOGRU
- FORSFAGENK
- FORSFAGGRU
- FORSHOYUTD
- FUNKSJASS
- GRUFAGYRKE
- GRUNNSKOLE
- GRUPPEAMO
- HOYEREUTD
- HOYSKOLE
- INDJOBSTOT
- INDOPPFAG
- INDOPPFOLG
- INDOPPFSP
- INDOPPRF
- INKLUTILS
- INST_S
- IPSUNG
- ITGRTILS
- JOBBBONUS
- JOBBFOKUS
- JOBBK
- JOBBKLUBB
- JOBBSKAP
- KAT
- KURS
- LONNTIL
- LONNTILAAP
- LONNTILL
- LONNTILS
- MENTOR
- MIDLONTIL
- NETTAMO
- NETTKURS
- OPPLT2AAR
- PRAKSKJERM
- PRAKSORD
- PV
- REAKTUFOR
- REFINO
- SPA
- STATLAERL
- SUPPEMP
- SYSSLANG
- SYSSOFF
- TIDSUBLONN
- TILPERBED
- TILRETTEL
- TILRTILSK
- TILSJOBB
- UFØREPENLØ
- UTBHLETTPS
- UTBHPSLD
- UTBHSAMLI
- UTDPERMVIK
- UTDYRK
- UTVAOONAV
- UTVOPPFOPL
- VALS
- VARLONTIL
- VASV
- VATIAROR
- VIDRSKOLE
- VIKARBLED
- VV
- YHEMMOFF
2 changes: 1 addition & 1 deletion frontend/.env
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
VITE_BACKEND_API_ROOT=''
VITE_BACKEND_API_ROOT='http://localhost:8080'
VITE_ENABLE_MOCK=true
2 changes: 1 addition & 1 deletion frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@
"eslint-plugin-react": "^7.24.0",
"faker": "^5.5.3",
"msw": "^0.36.2",
"openapi-typescript-codegen": "^0.12.5",
"openapi-typescript-codegen": "^0.20.1",
"postcss": "^8.4.6",
"prettier": "^2.5.1",
"rimraf": "^3.0.2",
Expand Down
2 changes: 1 addition & 1 deletion frontend/src/Routes.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import TiltakstypeOversikt from './views/tiltakstype-oversikt/TiltakstypeOversik
const Routes = () => {
return (
<Switch>
<Route exact path="/tiltakstyper/:id" component={TiltakstypeDetaljer} />
<Route exact path="/tiltakstyper/:tiltakskode" component={TiltakstypeDetaljer} />
<Route
exact
path="/tiltakstyper/:tiltakstypeId/tiltaksgjennomforinger/:tiltaksgjennomforingsId"
Expand Down
2 changes: 1 addition & 1 deletion frontend/src/api/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ export { OpenAPI } from './core/OpenAPI';

export type { Innsatsgruppe } from './models/Innsatsgruppe';
export type { Tiltaksgjennomforing } from './models/Tiltaksgjennomforing';
export { Tiltakskode } from './models/Tiltakskode';
export type { Tiltakstype } from './models/Tiltakstype';
export type { UnsavedTiltakstype } from './models/UnsavedTiltakstype';

export { InternalService } from './services/InternalService';
export { MulighetsrommetService } from './services/MulighetsrommetService';
4 changes: 3 additions & 1 deletion frontend/src/api/models/Tiltaksgjennomforing.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@
/* tslint:disable */
/* eslint-disable */

import type { Tiltakskode } from './Tiltakskode';

export type Tiltaksgjennomforing = {
id: number;
tittel: string;
beskrivelse: string;
tiltakstypeId: number;
tiltakskode: Tiltakskode;
tiltaksnummer?: string;
fraDato: string | null;
tilDato: string | null;
Expand Down
Loading

0 comments on commit 18005b9

Please sign in to comment.