Skip to content

Commit 4660180

Browse files
committed
Reduce nesting
1 parent 8199111 commit 4660180

File tree

1 file changed

+52
-52
lines changed

1 file changed

+52
-52
lines changed

virtusize/src/main/java/com/virtusize/android/VirtusizeRepository.kt

Lines changed: 52 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -93,66 +93,66 @@ internal class VirtusizeRepository(
9393
virtusizeProductCheckResponseMap.getOrPut(virtusizeProduct.externalId) {
9494
virtusizeAPIService.productCheck(virtusizeProduct)
9595
}
96-
if (productCheckResponse.isSuccessful) {
97-
val productCheck = productCheckResponse.successData!!
98-
virtusizeProduct.productCheckData = productCheck
96+
if (!productCheckResponse.isSuccessful) {
97+
productCheckResponse.failureData?.let { error -> messageHandler.onError(error) }
98+
return@coroutineScope false
99+
}
99100

100-
// Send API Event UserSawProduct as non-blocking
101-
launch {
102-
sendEvent(
103-
virtusizeProduct,
104-
VirtusizeEvent.UserSawProduct(),
105-
)
106-
}
101+
val productCheck = productCheckResponse.successData!!
102+
virtusizeProduct.productCheckData = productCheck
107103

108-
productCheck.data?.let { productCheckData ->
109-
if (productCheckData.validProduct) {
110-
if (productCheckData.fetchMetaData) {
111-
if (virtusizeProduct.imageUrl != null) {
112-
// If image URL is valid, send image URL to server
113-
val sendProductImageResponse =
114-
virtusizeAPIService.sendProductImageToBackend(
115-
product = virtusizeProduct,
116-
)
117-
if (!sendProductImageResponse.isSuccessful) {
118-
sendProductImageResponse.failureData?.let {
119-
messageHandler.onError(
120-
it,
121-
)
122-
}
123-
}
124-
} else {
125-
VirtusizeErrorType.ImageUrlNotValid.throwError()
126-
}
127-
}
104+
// Send API Event UserSawProduct as non-blocking
105+
launch {
106+
sendEvent(
107+
virtusizeProduct,
108+
VirtusizeEvent.UserSawProduct(),
109+
)
110+
}
128111

129-
// Send API Event UserSawWidgetButton as non-blocking
130-
launch {
131-
sendEvent(
132-
virtusizeProduct,
133-
VirtusizeEvent.UserSawWidgetButton(),
134-
)
135-
}
112+
val productCheckData = productCheck.data ?: return@coroutineScope false
136113

137-
withContext(Dispatchers.Main) {
138-
presenter?.onValidProductCheck(virtusizeProduct)
139-
}
140-
return@coroutineScope true
141-
} else {
142-
withContext(Dispatchers.Main) {
143-
presenter?.hasInPageError(
144-
externalProductId = virtusizeProduct.externalId,
145-
error =
146-
VirtusizeErrorType.InvalidProduct.virtusizeError(
147-
extraMessage = virtusizeProduct.externalId,
148-
),
114+
if (productCheckData.validProduct) {
115+
if (productCheckData.fetchMetaData) {
116+
if (virtusizeProduct.imageUrl != null) {
117+
// If image URL is valid, send image URL to server
118+
val sendProductImageResponse =
119+
virtusizeAPIService.sendProductImageToBackend(
120+
product = virtusizeProduct,
149121
)
122+
if (!sendProductImageResponse.isSuccessful) {
123+
sendProductImageResponse.failureData?.let {
124+
messageHandler.onError(
125+
it,
126+
)
127+
}
150128
}
151-
return@coroutineScope false
129+
} else {
130+
VirtusizeErrorType.ImageUrlNotValid.throwError()
152131
}
153-
} ?: return@coroutineScope false
132+
}
133+
134+
// Send API Event UserSawWidgetButton as non-blocking
135+
launch {
136+
sendEvent(
137+
virtusizeProduct,
138+
VirtusizeEvent.UserSawWidgetButton(),
139+
)
140+
}
141+
142+
withContext(Dispatchers.Main) {
143+
presenter?.onValidProductCheck(virtusizeProduct)
144+
}
145+
return@coroutineScope true
154146
} else {
155-
productCheckResponse.failureData?.let { error -> messageHandler.onError(error) }
147+
withContext(Dispatchers.Main) {
148+
presenter?.hasInPageError(
149+
externalProductId = virtusizeProduct.externalId,
150+
error =
151+
VirtusizeErrorType.InvalidProduct.virtusizeError(
152+
extraMessage = virtusizeProduct.externalId,
153+
),
154+
)
155+
}
156156
return@coroutineScope false
157157
}
158158
}

0 commit comments

Comments
 (0)