Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion src/main/kotlin/es/wokis/data/bo/user/UserBO.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package es.wokis.data.bo.user
import es.wokis.data.constants.ServerConstants.DEFAULT_LANG
import es.wokis.data.constants.ServerConstants.EMPTY_TEXT
import io.ktor.server.auth.*
import java.util.*

data class UserBO(
val id: String? = null,
Expand All @@ -11,5 +12,13 @@ data class UserBO(
val password: String,
val image: String = EMPTY_TEXT,
val lang: String = DEFAULT_LANG,
val createdOn: Long = Date().time,
val emailVerified: Boolean = false,
val badges: List<BadgeBO> = emptyList(),
val devices: List<String> = emptyList()
) : Principal
) : Principal

data class BadgeBO(
val id: Int,
val color: String
)
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,15 @@ class InvoiceLocalDataSourceImpl(private val invoiceCollection: MongoCollection<
}.toList()

override suspend fun addInvoices(id: String, invoices: List<InvoiceBO>): Boolean = try {
invoiceCollection.insertMany(invoices.toDBO()).wasAcknowledged()
invoiceCollection.insertMany(invoices.map { it.copy(userId = id) }.toDBO()).wasAcknowledged()

} catch (e: Throwable) {
println(e.stackTraceToString())
false
}

override suspend fun updateInvoices(id: String, invoices: List<InvoiceBO>): Boolean = try {
invoices.toDBO().map {
invoices.map { it.copy(userId = id) }.toDBO().map {
invoiceCollection.updateOne(InvoiceDBO::id eq it.id, it).wasAcknowledged()
}.all { it }

Expand Down
9 changes: 9 additions & 0 deletions src/main/kotlin/es/wokis/data/dbo/user/UserDBO.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import es.wokis.data.constants.ServerConstants
import es.wokis.data.constants.ServerConstants.DEFAULT_LANG
import org.bson.codecs.pojo.annotations.BsonId
import org.litote.kmongo.Id
import java.util.Date

data class UserDBO(
@BsonId
Expand All @@ -13,5 +14,13 @@ data class UserDBO(
val password: String,
val lang: String = DEFAULT_LANG,
val image: String = ServerConstants.EMPTY_TEXT,
val createdOn: Long = Date().time,
val emailVerified: Boolean = false,
val badges: List<BadgeDBO> = emptyList(),
val devices: List<String> = emptyList()
)

data class BadgeDBO(
val id: Int,
val color: String
)
9 changes: 9 additions & 0 deletions src/main/kotlin/es/wokis/data/dto/user/UserDTO.kt
Original file line number Diff line number Diff line change
@@ -1,12 +1,21 @@
package es.wokis.data.dto.user

import es.wokis.data.constants.ServerConstants
import java.util.*

data class UserDTO(
val id: String,
val username: String,
val email: String,
val image: String = ServerConstants.EMPTY_TEXT,
val lang: String,
val createdOn: Long = Date().time,
val emailVerified: Boolean = false,
val badges: List<BadgeDTO> = emptyList(),
val devices: List<String> = emptyList()
)

data class BadgeDTO(
val id: Int,
val color: String
)
53 changes: 49 additions & 4 deletions src/main/kotlin/es/wokis/data/mapper/user/UserMapper.kt
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
package es.wokis.data.mapper.user

import es.wokis.data.bo.user.BadgeBO
import es.wokis.data.bo.user.UserBO
import es.wokis.data.constants.ServerConstants.EMPTY_TEXT
import es.wokis.data.dbo.user.BadgeDBO
import es.wokis.data.dbo.user.UserDBO
import es.wokis.data.dto.user.BadgeDTO
import es.wokis.data.dto.user.UserDTO
import es.wokis.data.dto.user.auth.LoginDTO
import es.wokis.data.dto.user.auth.RegisterDTO
Expand All @@ -29,7 +32,10 @@ fun UserDTO.toBO() = UserBO(
password = EMPTY_TEXT,
image = image,
lang = lang,
devices = devices
devices = devices,
badges = badges.toBO(),
createdOn = createdOn,
emailVerified = emailVerified
)

fun UserBO.toDBO() = UserDBO(
Expand All @@ -39,7 +45,10 @@ fun UserBO.toDBO() = UserDBO(
password = password,
lang = lang,
image = image,
devices = devices
devices = devices,
badges = badges.toDBO(),
createdOn = createdOn,
emailVerified = emailVerified
)

fun UserDBO.toBO() = UserBO(
Expand All @@ -49,7 +58,10 @@ fun UserDBO.toBO() = UserBO(
password = password,
image = image,
lang = lang,
devices = devices
devices = devices,
badges = badges.toBO(),
createdOn = createdOn,
emailVerified = emailVerified
)

fun List<UserBO>?.toDTO() = this?.map { it.toDTO() }.orEmpty()
Expand All @@ -60,5 +72,38 @@ fun UserBO.toDTO() = UserDTO(
email = email,
image = image,
lang = lang,
devices = devices
devices = devices,
badges = badges.toDTO(),
createdOn = createdOn,
emailVerified = emailVerified
)

@JvmName("toBOBadgeDTO")
fun List<BadgeDTO>.toBO() = this.map { it.toBO() }

fun List<BadgeDBO>.toBO() = this.map { it.toBO() }

fun List<BadgeBO>.toDBO() = this.map { it.toDBO() }

@JvmName("toDTOBadgeBO")
fun List<BadgeBO>.toDTO() = this.map { it.toDTO() }

fun BadgeDTO.toBO() = BadgeBO(
id = id,
color = color
)

fun BadgeDBO.toBO() = BadgeBO(
id = id,
color = color
)

fun BadgeBO.toDBO() = BadgeDBO(
id = id,
color = color
)

fun BadgeBO.toDTO() = BadgeDTO(
id = id,
color = color
)
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,8 @@ class UserRepositoryImpl(private val userLocalDataSource: UserLocalDataSource) :
getUserByEmail(email)?.let { userNotNull ->
updateUser(
userNotNull.copy(
image = imageUrl
image = imageUrl,
emailVerified = true
)
)
}
Expand Down