Coverage Summary for Class: HttpLogEntityMapperKt (dev.skymansandy.wiretap.data.mappers)
| Class |
Class, %
|
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| HttpLogEntityMapperKt |
100%
(1/1)
|
100%
(3/3)
|
100%
(2/2)
|
100%
(60/60)
|
100%
(156/156)
|
/*
* Copyright (c) 2026 skymansandy. All rights reserved.
*/
package dev.skymansandy.wiretap.data.mappers
import dev.skymansandy.wiretap.data.db.room.entity.HttpLogEntity
import dev.skymansandy.wiretap.data.db.room.entity.HttpLogListProjection
import dev.skymansandy.wiretap.domain.model.HttpLog
import dev.skymansandy.wiretap.domain.model.ResponseSource
import dev.skymansandy.wiretap.helper.util.HeadersSerializerUtil
internal fun HttpLogEntity.toDomain(): HttpLog {
return HttpLog(
id = id,
url = url,
method = method,
requestHeaders = HeadersSerializerUtil.deserialize(requestHeaders),
requestBody = requestBody,
responseCode = responseCode.toInt(),
responseHeaders = HeadersSerializerUtil.deserialize(responseHeaders),
responseBody = responseBody,
responseBodySize = responseBody?.length?.toLong() ?: 0,
durationMs = durationMs,
source = ResponseSource.valueOf(source),
timestamp = timestamp,
matchedRuleId = matchedRuleId,
protocol = protocol,
remoteAddress = remoteAddress,
tlsProtocol = tlsProtocol,
cipherSuite = cipherSuite,
certificateCn = certificateCn,
issuerCn = issuerCn,
certificateExpiry = certificateExpiry,
)
}
internal fun HttpLogListProjection.toDomain(): HttpLog {
return HttpLog(
id = id,
url = url,
method = method,
requestHeaders = HeadersSerializerUtil.deserialize(requestHeaders),
responseCode = responseCode.toInt(),
responseHeaders = HeadersSerializerUtil.deserialize(responseHeaders),
responseBodySize = responseBodySize,
durationMs = durationMs,
source = ResponseSource.valueOf(source),
timestamp = timestamp,
matchedRuleId = matchedRuleId,
protocol = protocol,
remoteAddress = remoteAddress,
tlsProtocol = tlsProtocol,
cipherSuite = cipherSuite,
certificateCn = certificateCn,
issuerCn = issuerCn,
certificateExpiry = certificateExpiry,
)
}
internal fun HttpLog.toRoomEntity(): HttpLogEntity {
return HttpLogEntity(
id = id,
url = url,
method = method,
requestHeaders = HeadersSerializerUtil.serialize(requestHeaders),
requestBody = requestBody,
responseCode = responseCode.toLong(),
responseHeaders = HeadersSerializerUtil.serialize(responseHeaders),
responseBody = responseBody,
durationMs = durationMs,
source = source.name,
timestamp = timestamp,
matchedRuleId = matchedRuleId,
protocol = protocol,
remoteAddress = remoteAddress,
tlsProtocol = tlsProtocol,
cipherSuite = cipherSuite,
certificateCn = certificateCn,
issuerCn = issuerCn,
certificateExpiry = certificateExpiry,
)
}