| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- package io.legato.kazusa.api.controller
- import android.text.TextUtils
- import io.legato.kazusa.api.ReturnData
- import io.legato.kazusa.data.appDb
- import io.legato.kazusa.data.entities.BookSource
- import io.legato.kazusa.help.source.SourceHelp
- import io.legato.kazusa.utils.GSON
- import io.legato.kazusa.utils.fromJsonArray
- import io.legato.kazusa.utils.fromJsonObject
- object BookSourceController {
- val sources: ReturnData
- get() {
- val bookSources = appDb.bookSourceDao.all
- val returnData = ReturnData()
- return if (bookSources.isEmpty()) {
- returnData.setErrorMsg("设备源列表为空")
- } else returnData.setData(bookSources)
- }
- fun saveSource(postData: String?): ReturnData {
- val returnData = ReturnData()
- postData ?: return returnData.setErrorMsg("数据不能为空")
- val bookSource = GSON.fromJsonObject<BookSource>(postData).getOrNull()
- if (bookSource != null) {
- if (TextUtils.isEmpty(bookSource.bookSourceName) || TextUtils.isEmpty(bookSource.bookSourceUrl)) {
- returnData.setErrorMsg("源名称和URL不能为空")
- } else {
- appDb.bookSourceDao.insert(bookSource)
- returnData.setData("")
- }
- } else {
- returnData.setErrorMsg("转换源失败")
- }
- return returnData
- }
- fun saveSources(postData: String?): ReturnData {
- postData ?: return ReturnData().setErrorMsg("数据为空")
- val okSources = arrayListOf<BookSource>()
- val bookSources = GSON.fromJsonArray<BookSource>(postData).getOrNull()
- if (bookSources.isNullOrEmpty()) {
- return ReturnData().setErrorMsg("转换源失败")
- }
- bookSources.forEach { bookSource ->
- if (bookSource.bookSourceName.isNotBlank()
- && bookSource.bookSourceUrl.isNotBlank()
- ) {
- appDb.bookSourceDao.insert(bookSource)
- okSources.add(bookSource)
- }
- }
- return ReturnData().setData(okSources)
- }
- fun getSource(parameters: Map<String, List<String>>): ReturnData {
- val url = parameters["url"]?.firstOrNull()
- val returnData = ReturnData()
- if (url.isNullOrEmpty()) {
- return returnData.setErrorMsg("参数url不能为空,请指定源地址")
- }
- val bookSource = appDb.bookSourceDao.getBookSource(url)
- ?: return returnData.setErrorMsg("未找到源,请检查书源地址")
- return returnData.setData(bookSource)
- }
- fun deleteSources(postData: String?): ReturnData {
- kotlin.runCatching {
- GSON.fromJsonArray<BookSource>(postData).getOrThrow().let {
- SourceHelp.deleteBookSources(it)
- }
- }.onFailure {
- return ReturnData().setErrorMsg(it.localizedMessage ?: "数据格式错误")
- }
- return ReturnData().setData("已执行"/*okSources*/)
- }
- }
|