Browse Source

Moved mappers to separate file

Vadik Sirekanyan 7 years ago
parent
commit
b40f7dc92a

+ 2 - 7
app/src/main/java/com/sirekanyan/knigopis/feature/MainActivity.kt

@@ -12,9 +12,7 @@ import com.sirekanyan.knigopis.common.functions.createLoginIntent
 import com.sirekanyan.knigopis.common.functions.extra
 import com.sirekanyan.knigopis.common.functions.logError
 import com.sirekanyan.knigopis.dependency.providePresenter
-import com.sirekanyan.knigopis.model.EMPTY_BOOK
 import com.sirekanyan.knigopis.feature.book.createBookIntent
-import com.sirekanyan.knigopis.model.createEditBook
 import com.sirekanyan.knigopis.feature.books.BooksPresenter
 import com.sirekanyan.knigopis.feature.login.LoginPresenter
 import com.sirekanyan.knigopis.feature.notes.NotesPresenter
@@ -23,10 +21,7 @@ import com.sirekanyan.knigopis.feature.user.createUserIntent
 import com.sirekanyan.knigopis.feature.users.UsersPresenter
 import com.sirekanyan.knigopis.feature.users.getMainState
 import com.sirekanyan.knigopis.feature.users.saveMainState
-import com.sirekanyan.knigopis.model.BookDataModel
-import com.sirekanyan.knigopis.model.CurrentTab
-import com.sirekanyan.knigopis.model.NoteModel
-import com.sirekanyan.knigopis.model.UserModel
+import com.sirekanyan.knigopis.model.*
 import ru.ulogin.sdk.UloginAuthActivity
 
 private const val LOGIN_REQUEST_CODE = 0
@@ -127,7 +122,7 @@ class MainActivity : BaseActivity(),
     }
 
     override fun openBookScreen(book: BookDataModel) {
-        startActivityForResult(createBookIntent(createEditBook(book)), BOOK_REQUEST_CODE)
+        startActivityForResult(createBookIntent(book.toEditModel()), BOOK_REQUEST_CODE)
     }
 
     override fun openUserScreen(user: UserModel) {

+ 2 - 12
app/src/main/java/com/sirekanyan/knigopis/feature/book/BookInteractor.kt

@@ -1,10 +1,9 @@
 package com.sirekanyan.knigopis.feature.book
 
 import com.sirekanyan.knigopis.MAX_BOOK_PRIORITY
-import com.sirekanyan.knigopis.MIN_BOOK_PRIORITY
 import com.sirekanyan.knigopis.model.EditBookModel
-import com.sirekanyan.knigopis.model.dto.FinishedBookToSend
-import com.sirekanyan.knigopis.model.dto.PlannedBookToSend
+import com.sirekanyan.knigopis.model.toFinishedBook
+import com.sirekanyan.knigopis.model.toPlannedBook
 import com.sirekanyan.knigopis.repository.BookRepository
 import io.reactivex.Completable
 
@@ -23,13 +22,4 @@ class BookInteractorImpl(private val repository: BookRepository) : BookInteracto
             repository.saveBook(book.id, book.toPlannedBook(), initialBook.isPlanned)
         }
 
-    private fun EditBookModel.toPlannedBook(): PlannedBookToSend {
-        val priority = progress.takeIf { it in (MIN_BOOK_PRIORITY..MAX_BOOK_PRIORITY) }
-        return PlannedBookToSend(title, author, notes, priority)
-    }
-
-    private fun EditBookModel.toFinishedBook(): FinishedBookToSend {
-        return FinishedBookToSend(title, author, date.day, date.month, date.year, notes)
-    }
-
 }

+ 0 - 11
app/src/main/java/com/sirekanyan/knigopis/model/EditBookModel.kt

@@ -12,17 +12,6 @@ fun createTodoBook(title: String, author: String, notes: String) =
 fun createDoneBook(title: String, author: String) =
     EditBookModel(BookAction.COPY, title = title, author = author, progress = MAX_BOOK_PRIORITY)
 
-fun createEditBook(book: BookDataModel) =
-    EditBookModel(
-        BookAction.EDIT,
-        book.id,
-        book.title,
-        book.author,
-        if (book.isFinished) MAX_BOOK_PRIORITY else book.priority,
-        if (book.isFinished) book.date else EMPTY_DATE,
-        book.notes
-    )
-
 @Parcelize
 class EditBookModel(
     val action: BookAction,

+ 31 - 4
app/src/main/java/com/sirekanyan/knigopis/model/mappers.kt

@@ -4,11 +4,9 @@ import android.text.SpannableString
 import android.text.format.DateUtils
 import android.text.style.SuperscriptSpan
 import com.sirekanyan.knigopis.MAX_BOOK_PRIORITY
+import com.sirekanyan.knigopis.MIN_BOOK_PRIORITY
 import com.sirekanyan.knigopis.common.functions.createBookImageUrl
-import com.sirekanyan.knigopis.model.dto.FinishedBook
-import com.sirekanyan.knigopis.model.dto.Note
-import com.sirekanyan.knigopis.model.dto.PlannedBook
-import com.sirekanyan.knigopis.model.dto.Subscription
+import com.sirekanyan.knigopis.model.dto.*
 
 fun PlannedBook.toBookModel(group: BookGroupModel) =
     BookDataModel(
@@ -61,3 +59,32 @@ fun Note.toNoteModel() =
         user.name,
         user.avatarUrl
     )
+
+fun BookDataModel.toEditModel(): EditBookModel =
+    EditBookModel(
+        BookAction.EDIT,
+        id,
+        title,
+        author,
+        if (isFinished) MAX_BOOK_PRIORITY else priority,
+        if (isFinished) date else EMPTY_DATE,
+        notes
+    )
+
+fun EditBookModel.toPlannedBook(): PlannedBookToSend =
+    PlannedBookToSend(
+        title,
+        author,
+        notes,
+        progress.takeIf { it in (MIN_BOOK_PRIORITY..MAX_BOOK_PRIORITY) }
+    )
+
+fun EditBookModel.toFinishedBook(): FinishedBookToSend =
+    FinishedBookToSend(
+        title,
+        author,
+        date.day,
+        date.month,
+        date.year,
+        notes
+    )