diff --git a/desktopData/src/main/kotlin/com/intelligentbackpack/desktopdata/adapter/SchoolSupplyAdapter.kt b/desktopData/src/main/kotlin/com/intelligentbackpack/desktopdata/adapter/SchoolSupplyAdapter.kt index fec75826..a63c7b9f 100644 --- a/desktopData/src/main/kotlin/com/intelligentbackpack/desktopdata/adapter/SchoolSupplyAdapter.kt +++ b/desktopData/src/main/kotlin/com/intelligentbackpack/desktopdata/adapter/SchoolSupplyAdapter.kt @@ -1,5 +1,7 @@ package com.intelligentbackpack.desktopdata.adapter +import book.communication.BuyBook +import com.intelligentbackpack.accessdomain.entities.User import com.intelligentbackpack.desktopdata.adapter.AuthorAdapter.fromDBToDomain import com.intelligentbackpack.desktopdata.db.relations.BookCopyWithAuthors import com.intelligentbackpack.desktopdomain.entities.Book @@ -52,4 +54,16 @@ internal object SchoolSupplyAdapter { this.book = it } } ?: throw IllegalArgumentException("Book not found") + + /** + * Convert from domain book copy to remote book copy + * + * @return Remote book copy + */ + fun BookCopy.fromDomainToRemote(user: User): BuyBook = + BuyBook.newBuilder().apply { + isbn = this@fromDomainToRemote.book.isbn + rfid = this@fromDomainToRemote.rfidCode + emailCompratore = user.email + }.build() } diff --git a/desktopData/src/main/kotlin/com/intelligentbackpack/desktopdata/datasource/DesktopRemoteDataSourceImpl.kt b/desktopData/src/main/kotlin/com/intelligentbackpack/desktopdata/datasource/DesktopRemoteDataSourceImpl.kt index ca3fdeec..330b9f49 100644 --- a/desktopData/src/main/kotlin/com/intelligentbackpack/desktopdata/datasource/DesktopRemoteDataSourceImpl.kt +++ b/desktopData/src/main/kotlin/com/intelligentbackpack/desktopdata/datasource/DesktopRemoteDataSourceImpl.kt @@ -1,6 +1,5 @@ package com.intelligentbackpack.desktopdata.datasource -import book.communication.BuyBook import com.google.firebase.database.DataSnapshot import com.google.firebase.database.DatabaseError import com.google.firebase.database.ValueEventListener @@ -9,6 +8,7 @@ import com.google.firebase.ktx.Firebase import com.intelligentbackpack.accessdomain.entities.Email import com.intelligentbackpack.accessdomain.entities.User import com.intelligentbackpack.desktopdata.adapter.BookAdapter.fromRemoteToDomain +import com.intelligentbackpack.desktopdata.adapter.SchoolSupplyAdapter.fromDomainToRemote import com.intelligentbackpack.desktopdata.adapter.SchoolSupplyAdapter.fromRemoteToDomain import com.intelligentbackpack.desktopdata.api.BackpackApi import com.intelligentbackpack.desktopdata.api.DesktopApi @@ -78,11 +78,7 @@ class DesktopRemoteDataSourceImpl( override fun addSchoolSupply(user: User, schoolSupply: SchoolSupply) { if (schoolSupply is BookCopy) { - val copy = BuyBook.newBuilder().apply { - isbn = schoolSupply.book.isbn - rfid = schoolSupply.rfidCode - emailCompratore = user.email - }.build() + val copy = schoolSupply.fromDomainToRemote(user) val response = desktopApi.addBookCopy(copy).execute() if (!response.isSuccessful) { throw DownloadException(getError(response))