Skip to content

Commit

Permalink
Merge pull request #29 from navikt/tiltaksvariant-navneendring
Browse files Browse the repository at this point in the history
tc-33 tiltaksvariant -> tiltakstype
  • Loading branch information
taniaholst authored Feb 14, 2022
2 parents 04f4ec8 + d2250f4 commit 9fdcf97
Show file tree
Hide file tree
Showing 50 changed files with 410 additions and 407 deletions.
12 changes: 6 additions & 6 deletions .github/workflows/build-pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,12 @@ jobs:
- name: Build with Gradle
# Disable test until we can mock out the koin components initialized at start
# run: ./gradlew test build --info
run: ./gradlew build -x test --info
- name: Publish test report
uses: ScaCap/action-surefire-report@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
report_paths: "**/build/test-results/test/TEST-*.xml"
# run: ./gradlew build -x test --info
# - name: Publish test report
# uses: ScaCap/action-surefire-report@v1
# with:
# github_token: ${{ secrets.GITHUB_TOKEN }}
# report_paths: "**/build/test-results/test/TEST-*.xml"

build-fe:
name: Build (frontend)
Expand Down
2 changes: 1 addition & 1 deletion backend/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ Disse miljøvariablene må være satt opp:
```sh
export DB_HOST=localhost
export DB_PORT=5442
export DB_DATABASE=amt-informasjon-api
export DB_DATABASE=mulighetsrommet-db
export DB_USERNAME=valp
export DB_PASSWORD=valp
export DB_URL=jdbc:postgresql://${DB_HOST}:${DB_PORT}/${DB_DATABASE}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import no.nav.mulighetsrommet.api.routes.healthRoutes
import no.nav.mulighetsrommet.api.routes.innsatsgruppeRoutes
import no.nav.mulighetsrommet.api.routes.swaggerRoutes
import no.nav.mulighetsrommet.api.routes.tiltaksgjennomforingRoutes
import no.nav.mulighetsrommet.api.routes.tiltaksvariantRoutes
import no.nav.mulighetsrommet.api.routes.tiltakstypeRoutes
import org.koin.ktor.ext.inject

fun main(args: Array<String>): Unit = io.ktor.server.netty.EngineMain.main(args)
Expand All @@ -41,7 +41,7 @@ fun Application.module() {
routing {
healthRoutes()
swaggerRoutes()
tiltaksvariantRoutes()
tiltakstypeRoutes()
tiltaksgjennomforingRoutes()
innsatsgruppeRoutes()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ data class Tiltaksgjennomforing(
val id: Int? = 0,
val tittel: String,
val beskrivelse: String,
val tiltaksvariantId: Int,
val tiltakstypeId: Int,
val tiltaksnummer: Int,
@Serializable(with = DateSerializer::class)
val fraDato: LocalDateTime? = null,
Expand All @@ -21,7 +21,7 @@ data class Tiltaksgjennomforing(
)

object TiltaksgjennomforingTable : IntIdTable() {
val tiltaksvariantId = reference("tiltaksvariant_id", TiltaksvariantTable)
val tiltakstypeId = reference("tiltakstype_id", TiltakstypeTable)
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 @@ -5,15 +5,15 @@ import org.jetbrains.exposed.dao.id.IntIdTable
import org.jetbrains.exposed.sql.Column

@Serializable
data class Tiltaksvariant(
data class Tiltakstype(
val id: Int? = 0,
val tittel: String,
val beskrivelse: String,
val ingress: String,
val innsatsgruppe: Int?
)

object TiltaksvariantTable : IntIdTable() {
object TiltakstypeTable : IntIdTable() {
val tittel: Column<String> = varchar("tittel", 500)
val beskrivelse: Column<String> = text("beskrivelse")
val ingress: Column<String> = varchar("ingress", 500)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import no.nav.mulighetsrommet.api.database.DatabaseFactory
import no.nav.mulighetsrommet.api.kafka.KafkaFactory
import no.nav.mulighetsrommet.api.services.InnsatsgruppeService
import no.nav.mulighetsrommet.api.services.TiltaksgjennomforingService
import no.nav.mulighetsrommet.api.services.TiltaksvariantService
import no.nav.mulighetsrommet.api.services.TiltakstypeService
import org.koin.dsl.module
import org.koin.ktor.ext.Koin
import org.koin.logger.SLF4JLogger
Expand All @@ -28,6 +28,6 @@ private val kafka = module(createdAtStart = true) {

private val services = module {
single { TiltaksgjennomforingService(get()) }
single { TiltaksvariantService(get()) }
single { TiltakstypeService(get()) }
single { InnsatsgruppeService(get()) }
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,69 +10,69 @@ import io.ktor.routing.delete
import io.ktor.routing.get
import io.ktor.routing.post
import io.ktor.routing.put
import no.nav.mulighetsrommet.api.domain.Tiltaksvariant
import no.nav.mulighetsrommet.api.domain.Tiltakstype
import no.nav.mulighetsrommet.api.services.TiltaksgjennomforingService
import no.nav.mulighetsrommet.api.services.TiltaksvariantService
import no.nav.mulighetsrommet.api.services.TiltakstypeService
import org.koin.ktor.ext.inject

fun Route.tiltaksvariantRoutes() {
fun Route.tiltakstypeRoutes() {

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

get("/api/tiltaksvarianter") {
get("/api/tiltakstyper") {
val innsatsgruppe = call.request.queryParameters["innsatsgruppe"]?.toIntOrNull()
val items = tiltaksvariantService.getTiltaksvarianter(innsatsgruppe)
val items = tiltakstypeService.getTiltakstyper(innsatsgruppe)
call.respond(items)
}
get("/api/tiltaksvarianter/{id}") {
get("/api/tiltakstyper/{id}") {
val id = call.parameters["id"]?.toIntOrNull() ?: return@get call.respondText(
"Mangler eller ugyldig",
status = HttpStatusCode.BadRequest
)
val tiltak = tiltaksvariantService.getTiltaksvariantById(id) ?: return@get call.respondText(
val tiltak = tiltakstypeService.getTiltakstypeById(id) ?: return@get call.respondText(
"Det finner ikke noe tiltak med id $id",
status = HttpStatusCode.NotFound
)
call.respond(tiltak)
}
get("/api/tiltaksvarianter/{id}/tiltaksgjennomforinger") {
get("/api/tiltakstyper/{id}/tiltaksgjennomforinger") {

val id = call.parameters["id"]?.toIntOrNull() ?: return@get call.respondText(
"Mangler eller ugyldig id",
status = HttpStatusCode.BadRequest
)
val tiltaksgjennomforinger = tiltaksgjennomforingService.getTiltaksgjennomforingerByTiltaksvariantId(id)
val tiltaksgjennomforinger = tiltaksgjennomforingService.getTiltaksgjennomforingerByTiltakstypeId(id)
call.respond(tiltaksgjennomforinger)
}
post("/api/tiltaksvarianter") {
val tiltaksvariant = call.receive<Tiltaksvariant>()
val createdTiltak = tiltaksvariantService.createTiltaksvariant(tiltaksvariant)
post("/api/tiltakstyper") {
val tiltakstype = call.receive<Tiltakstype>()
val createdTiltak = tiltakstypeService.createTiltakstype(tiltakstype)
call.respond(HttpStatusCode.Created, createdTiltak)
}
put("/api/tiltaksvarianter/{id}") {
put("/api/tiltakstyper/{id}") {
val id = call.parameters["id"]?.toIntOrNull() ?: return@put call.respondText(
"Mangler eller ugyldig id",
status = HttpStatusCode.BadRequest
)
tiltaksvariantService.getTiltaksvariantById(id) ?: return@put call.respondText(
tiltakstypeService.getTiltakstypeById(id) ?: return@put call.respondText(
"Det finner ikke noe tiltak med id $id",
status = HttpStatusCode.NotFound
)
val tiltaksvariant = call.receive<Tiltaksvariant>()
val updatedTiltaksvariant = tiltaksvariantService.updateTiltaksvariant(id, tiltaksvariant)
call.respond(updatedTiltaksvariant!!)
val tiltakstype = call.receive<Tiltakstype>()
val updatedTiltakstype = tiltakstypeService.updateTiltakstype(id, tiltakstype)
call.respond(updatedTiltakstype!!)
}
delete("/api/tiltaksvarianter/{id}") {
delete("/api/tiltakstyper/{id}") {
val id = call.parameters["id"] ?: return@delete call.respondText(
"Mangler eller ugyldig id",
status = HttpStatusCode.BadRequest
)

val tiltaksvariant = tiltaksvariantService.getTiltaksvariantById(id.toInt()) ?: return@delete call.respondText(
val tiltakstype = tiltakstypeService.getTiltakstypeById(id.toInt()) ?: return@delete call.respondText(
"Det finner ikke noe tiltak med id $id",
status = HttpStatusCode.NotFound
)
call.respond(tiltaksvariantService.archivedTiltaksvariant(tiltaksvariant))
call.respond(tiltakstypeService.archivedTiltakstype(tiltakstype))
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ class TiltaksgjennomforingService(private val db: DatabaseFactory) {
}
}

suspend fun getTiltaksgjennomforingerByTiltaksvariantId(id: Int): List<Tiltaksgjennomforing> {
suspend fun getTiltaksgjennomforingerByTiltakstypeId(id: Int): List<Tiltaksgjennomforing> {
val tiltaksgjennomforingRows = db.dbQuery {
TiltaksgjennomforingTable.select { TiltaksgjennomforingTable.tiltaksvariantId eq id }.toList()
TiltaksgjennomforingTable.select { TiltaksgjennomforingTable.tiltakstypeId eq id }.toList()
}
return tiltaksgjennomforingRows.map { row ->
toTiltaksgjennomforing(row)
Expand All @@ -44,7 +44,7 @@ class TiltaksgjennomforingService(private val db: DatabaseFactory) {
tittel = row[TiltaksgjennomforingTable.tittel],
beskrivelse = row[TiltaksgjennomforingTable.beskrivelse],
tiltaksnummer = row[TiltaksgjennomforingTable.tiltaksnummer],
tiltaksvariantId = row[TiltaksgjennomforingTable.tiltaksvariantId].value,
tiltakstypeId = row[TiltaksgjennomforingTable.tiltakstypeId].value,
fraDato = row[TiltaksgjennomforingTable.fraDato],
tilDato = row[TiltaksgjennomforingTable.tilDato]
)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
package no.nav.mulighetsrommet.api.services

import no.nav.mulighetsrommet.api.database.DatabaseFactory
import no.nav.mulighetsrommet.api.domain.Tiltakstype
import no.nav.mulighetsrommet.api.domain.TiltakstypeTable
import org.jetbrains.exposed.sql.ResultRow
import org.jetbrains.exposed.sql.SortOrder
import org.jetbrains.exposed.sql.and
import org.jetbrains.exposed.sql.andWhere
import org.jetbrains.exposed.sql.insertAndGetId
import org.jetbrains.exposed.sql.select
import org.jetbrains.exposed.sql.update

class TiltakstypeService(private val db: DatabaseFactory) {

suspend fun getTiltakstyper(innsatsgruppe: Int?): List<Tiltakstype> {
val rows = db.dbQuery {
val query = TiltakstypeTable
.select { TiltakstypeTable.archived eq false }
.orderBy(TiltakstypeTable.id to SortOrder.ASC)

innsatsgruppe?.let { query.andWhere { TiltakstypeTable.innsatsgruppeId eq it } }

query.toList()
}
return rows.map { row ->
toTiltakstype(row)
}
}

suspend fun createTiltakstype(tiltakstype: Tiltakstype): Tiltakstype {
val id = db.dbQuery {
TiltakstypeTable.insertAndGetId {
it[innsatsgruppeId] = tiltakstype.innsatsgruppe
it[tittel] = tiltakstype.tittel
it[beskrivelse] = tiltakstype.beskrivelse
it[ingress] = tiltakstype.ingress
it[archived] = false
}
}
return getTiltakstypeById(id.value)!!
}

suspend fun updateTiltakstype(id: Int, tiltakstype: Tiltakstype): Tiltakstype? {
db.dbQuery {
TiltakstypeTable.update({ TiltakstypeTable.id eq id and (TiltakstypeTable.archived eq false) }) {
it[innsatsgruppeId] = tiltakstype.innsatsgruppe
it[tittel] = tiltakstype.tittel
it[beskrivelse] = tiltakstype.beskrivelse
it[ingress] = tiltakstype.ingress
}
}
return getTiltakstypeById(id)
}

suspend fun archivedTiltakstype(tiltakstype: Tiltakstype) = db.dbQuery {
TiltakstypeTable.update({ TiltakstypeTable.id eq tiltakstype.id }) {
it[archived] = true
}
}

suspend fun getTiltakstypeById(id: Int): Tiltakstype? {
val tiltakstypeRow = db.dbQuery {
TiltakstypeTable
.select { TiltakstypeTable.id eq id and (TiltakstypeTable.archived eq false) }
.firstOrNull()
}

return tiltakstypeRow?.let { toTiltakstype(it) }
}

private fun toTiltakstype(row: ResultRow): Tiltakstype =
Tiltakstype(
id = row[TiltakstypeTable.id].value,
tittel = row[TiltakstypeTable.tittel],
beskrivelse = row[TiltakstypeTable.beskrivelse],
ingress = row[TiltakstypeTable.ingress],
innsatsgruppe = row[TiltakstypeTable.innsatsgruppeId]
)
}

This file was deleted.

6 changes: 3 additions & 3 deletions backend/src/main/resources/db/migration/R__triggers.sql
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ BEGIN
END;
$$ LANGUAGE plpgsql;

DROP TRIGGER IF EXISTS set_timestamp ON tiltaksvariant;
DROP TRIGGER IF EXISTS set_timestamp ON tiltakstype;

CREATE TRIGGER set_timestamp
BEFORE UPDATE
ON tiltaksvariant
ON tiltakstype
FOR EACH ROW
EXECUTE PROCEDURE trigger_set_timestamp();
EXECUTE PROCEDURE trigger_set_timestamp();
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,3 @@ ALTER TABLE tiltaksvariant
RENAME CONSTRAINT tiltakstype_pkey TO tiltaksvariant_pkey;
ALTER TABLE tiltaksgjennomforing
RENAME COLUMN tiltakstype_id to tiltaksvariant_id;

Loading

0 comments on commit 9fdcf97

Please sign in to comment.