Add some resources
This commit is contained in:
@@ -20,11 +20,13 @@ import service.DictTypeService
|
|||||||
import service.DictTypeServiceImpl
|
import service.DictTypeServiceImpl
|
||||||
import service.DictionaryServiceImpl
|
import service.DictionaryServiceImpl
|
||||||
import service.PronunciationServiceImpl
|
import service.PronunciationServiceImpl
|
||||||
|
import service.LanguageServiceImpl
|
||||||
|
import service.TranslationServiceImpl
|
||||||
import web.dictType
|
import web.dictType
|
||||||
import web.dictionary
|
import web.dictionary
|
||||||
import web.pronunciation
|
import web.pronunciation
|
||||||
|
import web.language
|
||||||
|
import web.translation
|
||||||
|
|
||||||
fun Application.module() {
|
fun Application.module() {
|
||||||
install(DefaultHeaders)
|
install(DefaultHeaders)
|
||||||
@@ -44,12 +46,16 @@ fun Application.module() {
|
|||||||
val dictTypeService = DictTypeServiceImpl()
|
val dictTypeService = DictTypeServiceImpl()
|
||||||
val dictionaryService = DictionaryServiceImpl()
|
val dictionaryService = DictionaryServiceImpl()
|
||||||
val pronunciationService = PronunciationServiceImpl()
|
val pronunciationService = PronunciationServiceImpl()
|
||||||
|
val languageService = LanguageServiceImpl()
|
||||||
|
val translationService = TranslationServiceImpl()
|
||||||
|
|
||||||
routing {
|
routing {
|
||||||
index()
|
index()
|
||||||
dictType(dictTypeService)
|
dictType(dictTypeService)
|
||||||
dictionary(dictionaryService)
|
dictionary(dictionaryService)
|
||||||
pronunciation(pronunciationService)
|
pronunciation(pronunciationService)
|
||||||
|
language(languageService)
|
||||||
|
translation(translationService)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
package dao
|
package dao
|
||||||
|
|
||||||
import models.Translation
|
|
||||||
import org.jetbrains.exposed.dao.*
|
import org.jetbrains.exposed.dao.*
|
||||||
import org.jetbrains.exposed.dao.id.EntityID
|
import org.jetbrains.exposed.dao.id.EntityID
|
||||||
import tables.Pronunciations
|
import tables.Pronunciations
|
||||||
import models.Pronunciation
|
import models.Pronunciation
|
||||||
import tables.PronunciationTypes
|
|
||||||
|
|
||||||
class PronunciationDao(id: EntityID<Int>) : IntEntity(id) {
|
class PronunciationDao(id: EntityID<Int>) : IntEntity(id) {
|
||||||
companion object : IntEntityClass<PronunciationDao>(Pronunciations)
|
companion object : IntEntityClass<PronunciationDao>(Pronunciations)
|
||||||
|
|||||||
0
src/main/kotlin/dao/TermDao.kt
Normal file
0
src/main/kotlin/dao/TermDao.kt
Normal file
@@ -11,4 +11,17 @@ class TranslationDao(id: EntityID<Int>) : IntEntity(id) {
|
|||||||
var langName1 by Translations.langName1
|
var langName1 by Translations.langName1
|
||||||
var langName2 by Translations.langName2
|
var langName2 by Translations.langName2
|
||||||
var direction by Translations.direction
|
var direction by Translations.direction
|
||||||
|
var dictionary by DictionaryDao referencedOn Translations.dictionaryId
|
||||||
|
var lang1 by LanguageDao referencedOn Translations.lang1Id
|
||||||
|
var lang2 by LanguageDao referencedOn Translations.lang2Id
|
||||||
|
|
||||||
|
fun toModel() : Translation = Translation(
|
||||||
|
id = id.value,
|
||||||
|
dictionaryId = dictionary.id.value,
|
||||||
|
lang1Id = lang1.id.value,
|
||||||
|
lang2Id = lang2.id.value,
|
||||||
|
lang1Name = langName1,
|
||||||
|
lang2Name = langName2,
|
||||||
|
direction = direction
|
||||||
|
)
|
||||||
}
|
}
|
||||||
9
src/main/kotlin/service/LanguageService.kt
Normal file
9
src/main/kotlin/service/LanguageService.kt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
package service
|
||||||
|
|
||||||
|
import dao.LanguageDao
|
||||||
|
import models.Language
|
||||||
|
|
||||||
|
interface LanguageService {
|
||||||
|
fun getLanguage(id: Int): Language?
|
||||||
|
fun getAllLanguages(): List<Language>
|
||||||
|
}
|
||||||
17
src/main/kotlin/service/LanguageServiceImpl.kt
Normal file
17
src/main/kotlin/service/LanguageServiceImpl.kt
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
package service
|
||||||
|
|
||||||
|
import dao.LanguageDao
|
||||||
|
import org.jetbrains.exposed.sql.transactions.transaction
|
||||||
|
import service.DatabaseFactory.dbExecId
|
||||||
|
import models.Language
|
||||||
|
|
||||||
|
class LanguageServiceImpl : LanguageService {
|
||||||
|
override fun getLanguage(id: Int): Language? = dbExecId(1) {
|
||||||
|
LanguageDao.findById(id)?.toModel()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getAllLanguages(): List<Language> = dbExecId(1) {
|
||||||
|
LanguageDao.all().map { it.toModel() }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
9
src/main/kotlin/service/TranslationService.kt
Normal file
9
src/main/kotlin/service/TranslationService.kt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
package service
|
||||||
|
|
||||||
|
import dao.TranslationDao
|
||||||
|
import models.Translation
|
||||||
|
|
||||||
|
interface TranslationService {
|
||||||
|
fun getTranslation(id: Int): Translation?
|
||||||
|
fun getAllTranslations(): List<Translation>
|
||||||
|
}
|
||||||
17
src/main/kotlin/service/TranslationServiceImpl.kt
Normal file
17
src/main/kotlin/service/TranslationServiceImpl.kt
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
package service
|
||||||
|
|
||||||
|
import dao.TranslationDao
|
||||||
|
import org.jetbrains.exposed.sql.transactions.transaction
|
||||||
|
import service.DatabaseFactory.dbExecId
|
||||||
|
import models.Translation
|
||||||
|
|
||||||
|
class TranslationServiceImpl : TranslationService {
|
||||||
|
override fun getTranslation(id: Int): Translation? = dbExecId(1) {
|
||||||
|
TranslationDao.findById(id)?.toModel()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getAllTranslations(): List<Translation> = dbExecId(1) {
|
||||||
|
TranslationDao.all().map { it.toModel() }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
29
src/main/kotlin/web/LanguageResource.kt
Normal file
29
src/main/kotlin/web/LanguageResource.kt
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
package web
|
||||||
|
|
||||||
|
import io.ktor.http.*
|
||||||
|
import io.ktor.server.request.*
|
||||||
|
import io.ktor.server.response.*
|
||||||
|
import io.ktor.server.routing.*
|
||||||
|
import io.ktor.server.websocket.*
|
||||||
|
import io.ktor.websocket.*
|
||||||
|
import service.LanguageServiceImpl
|
||||||
|
import service.LanguageService
|
||||||
|
|
||||||
|
fun Route.language(LanguageService: LanguageServiceImpl) {
|
||||||
|
|
||||||
|
route("/language") {
|
||||||
|
|
||||||
|
get {
|
||||||
|
call.respond(LanguageService.getAllLanguages())
|
||||||
|
}
|
||||||
|
|
||||||
|
get("/{id}") {
|
||||||
|
val id = call.parameters["id"]?.toInt() ?: throw IllegalStateException("Must provide id")
|
||||||
|
val language = LanguageService.getLanguage(id)
|
||||||
|
if (language == null) call.respond(HttpStatusCode.NotFound)
|
||||||
|
else call.respond(language)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
29
src/main/kotlin/web/TranslationResource.kt
Normal file
29
src/main/kotlin/web/TranslationResource.kt
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
package web
|
||||||
|
|
||||||
|
import io.ktor.http.*
|
||||||
|
import io.ktor.server.request.*
|
||||||
|
import io.ktor.server.response.*
|
||||||
|
import io.ktor.server.routing.*
|
||||||
|
import io.ktor.server.websocket.*
|
||||||
|
import io.ktor.websocket.*
|
||||||
|
import service.TranslationServiceImpl
|
||||||
|
import service.TranslationService
|
||||||
|
|
||||||
|
fun Route.translation(TranslationService: TranslationServiceImpl) {
|
||||||
|
|
||||||
|
route("/translation") {
|
||||||
|
|
||||||
|
get {
|
||||||
|
call.respond(TranslationService.getAllTranslations())
|
||||||
|
}
|
||||||
|
|
||||||
|
get("/{id}") {
|
||||||
|
val id = call.parameters["id"]?.toInt() ?: throw IllegalStateException("Must provide id")
|
||||||
|
val Translation = TranslationService.getTranslation(id)
|
||||||
|
if (Translation == null) call.respond(HttpStatusCode.NotFound)
|
||||||
|
else call.respond(Translation)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user