mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 22:37:56 +01:00 
			
		
		
		
	Use sqldelight in migration (#7331)
* Use sqldelight in migration * Some more changes Co-Authored-By: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com> * Review Changes * Review changes 2 * Review Changes 3 * Review Changes 4 Co-authored-by: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com>
This commit is contained in:
		| @@ -48,6 +48,12 @@ class CategoryRepositoryImpl( | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     override suspend fun getCategoriesForManga(mangaId: Long): List<Category> { | ||||
|         return handler.awaitList { | ||||
|             categoriesQueries.getCategoriesByMangaId(mangaId, categoryMapper) | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     override suspend fun checkDuplicateName(name: String): Boolean { | ||||
|         return handler | ||||
|             .awaitList { categoriesQueries.getCategories() } | ||||
|   | ||||
| @@ -41,8 +41,27 @@ class ChapterRepositoryImpl( | ||||
|     } | ||||
|  | ||||
|     override suspend fun update(chapterUpdate: ChapterUpdate) { | ||||
|         try { | ||||
|             handler.await { | ||||
|         handler.await { | ||||
|             chaptersQueries.update( | ||||
|                 chapterUpdate.mangaId, | ||||
|                 chapterUpdate.url, | ||||
|                 chapterUpdate.name, | ||||
|                 chapterUpdate.scanlator, | ||||
|                 chapterUpdate.read?.toLong(), | ||||
|                 chapterUpdate.bookmark?.toLong(), | ||||
|                 chapterUpdate.lastPageRead, | ||||
|                 chapterUpdate.chapterNumber?.toDouble(), | ||||
|                 chapterUpdate.sourceOrder, | ||||
|                 chapterUpdate.dateFetch, | ||||
|                 chapterUpdate.dateUpload, | ||||
|                 chapterId = chapterUpdate.id, | ||||
|             ) | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     override suspend fun updateAll(chapterUpdates: List<ChapterUpdate>) { | ||||
|         handler.await(inTransaction = true) { | ||||
|             chapterUpdates.forEach { chapterUpdate -> | ||||
|                 chaptersQueries.update( | ||||
|                     chapterUpdate.mangaId, | ||||
|                     chapterUpdate.url, | ||||
| @@ -58,33 +77,6 @@ class ChapterRepositoryImpl( | ||||
|                     chapterId = chapterUpdate.id, | ||||
|                 ) | ||||
|             } | ||||
|         } catch (e: Exception) { | ||||
|             logcat(LogPriority.ERROR, e) | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     override suspend fun updateAll(chapterUpdates: List<ChapterUpdate>) { | ||||
|         try { | ||||
|             handler.await(inTransaction = true) { | ||||
|                 chapterUpdates.forEach { chapterUpdate -> | ||||
|                     chaptersQueries.update( | ||||
|                         chapterUpdate.mangaId, | ||||
|                         chapterUpdate.url, | ||||
|                         chapterUpdate.name, | ||||
|                         chapterUpdate.scanlator, | ||||
|                         chapterUpdate.read?.toLong(), | ||||
|                         chapterUpdate.bookmark?.toLong(), | ||||
|                         chapterUpdate.lastPageRead, | ||||
|                         chapterUpdate.chapterNumber?.toDouble(), | ||||
|                         chapterUpdate.sourceOrder, | ||||
|                         chapterUpdate.dateFetch, | ||||
|                         chapterUpdate.dateUpload, | ||||
|                         chapterId = chapterUpdate.id, | ||||
|                     ) | ||||
|                 } | ||||
|             } | ||||
|         } catch (e: Exception) { | ||||
|             logcat(LogPriority.ERROR, e) | ||||
|         } | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -42,6 +42,15 @@ class MangaRepositoryImpl( | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     override suspend fun moveMangaToCategories(mangaId: Long, categoryIds: List<Long>) { | ||||
|         handler.await(inTransaction = true) { | ||||
|             mangas_categoriesQueries.deleteMangaCategoryByMangaId(mangaId) | ||||
|             categoryIds.map { categoryId -> | ||||
|                 mangas_categoriesQueries.insert(mangaId, categoryId) | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     override suspend fun update(update: MangaUpdate): Boolean { | ||||
|         return try { | ||||
|             handler.await { | ||||
|   | ||||
							
								
								
									
										22
									
								
								app/src/main/java/eu/kanade/data/track/TrackMapper.kt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								app/src/main/java/eu/kanade/data/track/TrackMapper.kt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | ||||
| package eu.kanade.data.track | ||||
|  | ||||
| import eu.kanade.domain.track.model.Track | ||||
|  | ||||
| val trackMapper: (Long, Long, Long, Long, Long?, String, Double, Long, Long, Float, String, Long, Long) -> Track = | ||||
|     { id, mangaId, syncId, remoteId, libraryId, title, lastChapterRead, totalChapters, status, score, remoteUrl, startDate, finishDate -> | ||||
|         Track( | ||||
|             id = id, | ||||
|             mangaId = mangaId, | ||||
|             syncId = syncId, | ||||
|             remoteId = remoteId, | ||||
|             libraryId = libraryId, | ||||
|             title = title, | ||||
|             lastChapterRead = lastChapterRead, | ||||
|             totalChapters = totalChapters, | ||||
|             status = status, | ||||
|             score = score, | ||||
|             remoteUrl = remoteUrl, | ||||
|             startDate = startDate, | ||||
|             finishDate = finishDate, | ||||
|         ) | ||||
|     } | ||||
| @@ -0,0 +1,37 @@ | ||||
| package eu.kanade.data.track | ||||
|  | ||||
| import eu.kanade.data.DatabaseHandler | ||||
| import eu.kanade.domain.track.model.Track | ||||
| import eu.kanade.domain.track.repository.TrackRepository | ||||
|  | ||||
| class TrackRepositoryImpl( | ||||
|     private val handler: DatabaseHandler, | ||||
| ) : TrackRepository { | ||||
|  | ||||
|     override suspend fun getTracksByMangaId(mangaId: Long): List<Track> { | ||||
|         return handler.awaitList { | ||||
|             manga_syncQueries.getTracksByMangaId(mangaId, trackMapper) | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     override suspend fun insertAll(tracks: List<Track>) { | ||||
|         handler.await(inTransaction = true) { | ||||
|             tracks.forEach { mangaTrack -> | ||||
|                 manga_syncQueries.insert( | ||||
|                     mangaId = mangaTrack.id, | ||||
|                     syncId = mangaTrack.syncId, | ||||
|                     remoteId = mangaTrack.remoteId, | ||||
|                     libraryId = mangaTrack.libraryId, | ||||
|                     title = mangaTrack.title, | ||||
|                     lastChapterRead = mangaTrack.lastChapterRead, | ||||
|                     totalChapters = mangaTrack.totalChapters, | ||||
|                     status = mangaTrack.status, | ||||
|                     score = mangaTrack.score, | ||||
|                     remoteUrl = mangaTrack.remoteUrl, | ||||
|                     startDate = mangaTrack.startDate, | ||||
|                     finishDate = mangaTrack.finishDate, | ||||
|                 ) | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user