Skip to content

Commit bf62efd

Browse files
Expose NSData
1 parent 041800f commit bf62efd

File tree

14 files changed

+73
-33
lines changed

14 files changed

+73
-33
lines changed

sdk.core/src/androidMain/kotlin/io/nyris/sdk/internal/repository/imagematching/ImageMatchingRequestBuilderImpl.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,4 @@ internal actual class ImageMatchingRequestBuilderImpl actual constructor(
1717
}
1818
}
1919

20-
internal typealias DataType = ByteArray
20+
internal actual typealias DataType = ByteArray

sdk.core/src/commonMain/kotlin/io/nyris/sdk/builder/FeedbackRequestBuilder.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,12 @@ package io.nyris.sdk.builder
1818
import io.nyris.sdk.model.Feedback
1919

2020
interface FeedbackRequestBuilder {
21-
suspend fun send(feedback: Feedback): Result<Unit>
21+
suspend fun send(feedback: Feedback): NyrisResult
22+
}
23+
24+
sealed class NyrisResult {
25+
object Successfull : NyrisResult()
26+
object Fail : NyrisResult()
27+
28+
2229
}

sdk.core/src/commonMain/kotlin/io/nyris/sdk/builder/ImageMatchingRequestBuilder.kt

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,25 +15,26 @@
1515
*/
1616
package io.nyris.sdk.builder
1717

18+
import io.nyris.sdk.internal.repository.imagematching.DataType
1819
import io.nyris.sdk.model.MatchResponse
1920

20-
interface ImageMatchingRequestBuilder<D> {
21-
fun limit(limit: Int): ImageMatchingRequestBuilder<D>
21+
interface ImageMatchingRequestBuilder {
22+
fun limit(limit: Int): ImageMatchingRequestBuilder
2223

23-
fun language(language: String): ImageMatchingRequestBuilder<D>
24+
fun language(language: String): ImageMatchingRequestBuilder
2425

25-
fun threshold(threshold: Float): ImageMatchingRequestBuilder<D>
26+
fun threshold(threshold: Float): ImageMatchingRequestBuilder
2627

2728
fun geolocation(
2829
lat: Float,
2930
lon: Float,
3031
dist: Int,
31-
): ImageMatchingRequestBuilder<D>
32+
): ImageMatchingRequestBuilder
3233

33-
fun filters(filters: Map<String, List<String>>): ImageMatchingRequestBuilder<D>
34+
fun filters(filters: Map<String, List<String>>): ImageMatchingRequestBuilder
3435

35-
fun session(session: String): ImageMatchingRequestBuilder<D>
36+
fun session(session: String): ImageMatchingRequestBuilder
3637

3738
// Put the params before this call
38-
suspend fun match(image: D): Result<MatchResponse>
39+
suspend fun match(image: DataType): Result<MatchResponse>
3940
}

sdk.core/src/commonMain/kotlin/io/nyris/sdk/internal/network/feedback/FeedbackService.kt

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,15 @@ package io.nyris.sdk.internal.network.feedback
1818
import io.ktor.client.request.setBody
1919
import io.ktor.http.ContentType
2020
import io.ktor.http.contentType
21+
import io.nyris.sdk.builder.NyrisResult
2122
import io.nyris.sdk.internal.network.Endpoints
2223
import io.nyris.sdk.internal.network.NyrisHttpClient
2324
import io.nyris.sdk.internal.util.Logger
2425
import kotlin.coroutines.CoroutineContext
2526
import kotlinx.coroutines.withContext
2627

2728
internal interface FeedbackService {
28-
suspend fun send(feedbackRequest: FeedbackRequest): Result<Unit>
29+
suspend fun send(feedbackRequest: FeedbackRequest): NyrisResult
2930
}
3031

3132
internal class FeedbackServiceImpl(
@@ -36,19 +37,17 @@ internal class FeedbackServiceImpl(
3637
) : FeedbackService {
3738
override suspend fun send(
3839
feedbackRequest: FeedbackRequest,
39-
): Result<Unit> = withContext(coroutineContext) {
40+
): NyrisResult = withContext(coroutineContext) {
4041
logger.log("[FeedbackServiceImpl] send")
4142
return@withContext try {
4243
httpClient.post(endpoints.feedback) {
4344
contentType(ContentType.Application.Json)
4445

4546
setBody(feedbackRequest)
4647
}
47-
Result.success(Unit)
48+
NyrisResult.Successfull
4849
} catch (e: Throwable) {
49-
Result.failure<Unit>(e).also {
50-
logger.log("[RegionsServiceImpl] result is failure")
51-
}
50+
NyrisResult.Fail
5251
}
5352
}
5453
}

sdk.core/src/commonMain/kotlin/io/nyris/sdk/internal/repository/feedback/FeedbackRepository.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,20 @@
1515
*/
1616
package io.nyris.sdk.internal.repository.feedback
1717

18+
import io.nyris.sdk.builder.NyrisResult
1819
import io.nyris.sdk.internal.network.feedback.FeedbackService
1920
import io.nyris.sdk.internal.util.Logger
2021
import io.nyris.sdk.model.Feedback
2122

2223
internal interface FeedbackRepository {
23-
suspend fun send(feedback: Feedback): Result<Unit>
24+
suspend fun send(feedback: Feedback): NyrisResult
2425
}
2526

2627
internal class FeedbackRepositoryImpl(
2728
private val logger: Logger,
2829
private val feedbackService: FeedbackService,
2930
) : FeedbackRepository {
30-
override suspend fun send(feedback: Feedback): Result<Unit> {
31+
override suspend fun send(feedback: Feedback): NyrisResult {
3132
logger.log("[FeedbackRepositoryImpl] send")
3233
return feedbackService.send(feedback.toFeedbackRequest())
3334
}

sdk.core/src/commonMain/kotlin/io/nyris/sdk/internal/repository/feedback/FeedbackRequestBuilderImpl.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,15 @@
1616
package io.nyris.sdk.internal.repository.feedback
1717

1818
import io.nyris.sdk.builder.FeedbackRequestBuilder
19+
import io.nyris.sdk.builder.NyrisResult
1920
import io.nyris.sdk.internal.util.Logger
2021
import io.nyris.sdk.model.Feedback
2122

2223
internal class FeedbackRequestBuilderImpl(
2324
private val logger: Logger,
2425
private val feedbackRepository: FeedbackRepository,
2526
) : FeedbackRequestBuilder {
26-
override suspend fun send(feedback: Feedback): Result<Unit> {
27+
override suspend fun send(feedback: Feedback): NyrisResult {
2728
logger.log("[FeedbackRequestBuilderImpl] send")
2829
return feedbackRepository.send(feedback)
2930
}

sdk.core/src/commonMain/kotlin/io/nyris/sdk/internal/repository/imagematching/CommonImageMatchingRequestBuilderImpl.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import io.nyris.sdk.internal.util.Logger
66
internal abstract class CommonImageMatchingRequestBuilderImpl(
77
protected val logger: Logger,
88
protected val imageMatchingRepository: ImageMatchingRepository,
9-
) : ImageMatchingRequestBuilder<DataType> {
9+
) : ImageMatchingRequestBuilder {
1010
private var limit: Int? = null
1111
private var language: String? = null
1212
private var threshold: Float? = null
@@ -49,7 +49,7 @@ internal abstract class CommonImageMatchingRequestBuilderImpl(
4949
this.filters = filters
5050
}
5151

52-
override fun session(session: String): ImageMatchingRequestBuilder<DataType> = apply {
52+
override fun session(session: String): ImageMatchingRequestBuilder = apply {
5353
logger.log("[ImageMatchingRequestBuilderImpl] session=$session")
5454
this.session = session
5555
}

sdk.core/src/commonMain/kotlin/io/nyris/sdk/internal/repository/imagematching/ImageMatchingRequestBuilderImpl.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@ import io.nyris.sdk.internal.util.Logger
2020
internal expect class ImageMatchingRequestBuilderImpl(
2121
logger: Logger,
2222
imageMatchingRepository: ImageMatchingRepository,
23-
)
23+
) : CommonImageMatchingRequestBuilderImpl
2424

25-
internal expect class DataType
25+
expect class DataType

sdk.core/src/commonMain/kotlin/io/nyris/sdk/model/Feedback.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ sealed class Feedback private constructor(
2222
class Click(
2323
requestId: String,
2424
sessionId: String,
25+
//TODO: Check if we can use @ShouldRefineInSwift
26+
// https://kotlinlang.org/docs/native-objc-interop.html#hiding-kotlin-declarations
27+
// @ShouldRefineInSwift
28+
// TODO: try to rename KotlinInt to just NSNumber to make it more iOS friendly.
2529
val positions: List<Int>,
2630
val productIds: List<String>,
2731
) : Feedback(requestId, sessionId)

sdk.core/src/iosMain/kotlin/io/nyris/sdk/Nyris.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ actual interface Nyris {
2828
actual fun skuMatching(): SkuMatchingRequestBuilder
2929

3030
actual companion object {
31-
internal actual fun createInstance(
31+
actual fun createInstance(
3232
apiKey: String,
3333
config: NyrisConfig,
3434
): Nyris = NyrisImpl.createInstance(
@@ -48,7 +48,7 @@ class NyrisService(
4848
apiKey = apiKey,
4949
config = NyrisConfig(isDebug = true, platform = NyrisPlatform.IOS)
5050
)
51-
51+
5252
override fun imageMatching(): ImageMatchingRequestBuilder {
5353
return instance.imageMatching()
5454
}

0 commit comments

Comments
 (0)