diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/TangemTechApi.kt b/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/TangemTechApi.kt index c109e5b91e..7b474dd442 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/TangemTechApi.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/TangemTechApi.kt @@ -140,6 +140,40 @@ interface TangemTechApi { @GET("stories/{story_id}") suspend fun getStoryById(@Path("story_id") storyId: String): ApiResponse + // region push notifications + @GET("notification/push_notifications_eligible_networks") + suspend fun getEligibleNetworksForPushNotifications(): ApiResponse> + + @POST("user-wallets/applications/") + suspend fun createApplicationId( + @Body + body: NotificationApplicationCreateBody, + ): ApiResponse + + @PATCH("user-wallets/applications/{application_id}") + suspend fun updatePushTokenForApplicationId( + @Path("application_id") applicationId: String, + @Body body: NotificationApplicationCreateBody, + ): ApiResponse + + @PATCH("user-wallets/wallets/{wallet_id}/notify") + suspend fun setNotificationsEnabled(@Path("wallet_id") walletId: String, @Body body: WalletBody): ApiResponse + // endregion + + // region wallets + @PATCH("user-wallets/wallets/{wallet_id}") + suspend fun updateWallet(@Path("wallet_id") walletId: String, @Body body: WalletBody): ApiResponse + + @POST("user-wallets/wallets/create-and-connect-by-appuid/{application_id}") + suspend fun associateApplicationIdWithWallets( + @Path("application_id") applicationId: String, + @Body body: List, + ): ApiResponse + + @GET("user-wallets/wallets/{wallet_id}") + suspend fun getWalletById(@Path("wallet_id") walletId: String): ApiResponse + // endregion + companion object { val marketsQuoteFields = listOf( "price", diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/CryptoNetworkResponse.kt b/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/CryptoNetworkResponse.kt new file mode 100644 index 0000000000..610606eae8 --- /dev/null +++ b/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/CryptoNetworkResponse.kt @@ -0,0 +1,11 @@ +package com.tangem.datasource.api.tangemTech.models + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class CryptoNetworkResponse( + @Json(name = "id") val id: Int, + @Json(name = "networkId") val networkId: String, + @Json(name = "name") val name: String, +) \ No newline at end of file diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/NotificationApplicationCreateBody.kt b/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/NotificationApplicationCreateBody.kt new file mode 100644 index 0000000000..e28589eefa --- /dev/null +++ b/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/NotificationApplicationCreateBody.kt @@ -0,0 +1,14 @@ +package com.tangem.datasource.api.tangemTech.models + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class NotificationApplicationCreateBody( + @Json(name = "pushToken") val pushToken: String, + @Json(name = "platform") val platform: String, + @Json(name = "device") val device: String, + @Json(name = "systemVersion") val systemVersion: String, + @Json(name = "language") val language: String, + @Json(name = "timezone") val timezone: String, +) \ No newline at end of file diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/NotificationApplicationIdResponse.kt b/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/NotificationApplicationIdResponse.kt new file mode 100644 index 0000000000..4a2191fc4e --- /dev/null +++ b/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/NotificationApplicationIdResponse.kt @@ -0,0 +1,9 @@ +package com.tangem.datasource.api.tangemTech.models + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class NotificationApplicationIdResponse( + @Json(name = "uid") val appId: String, +) \ No newline at end of file diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/NotificationApplicationUpdateBody.kt b/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/NotificationApplicationUpdateBody.kt new file mode 100644 index 0000000000..ff5d0863cb --- /dev/null +++ b/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/NotificationApplicationUpdateBody.kt @@ -0,0 +1,12 @@ +package com.tangem.datasource.api.tangemTech.models + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class NotificationApplicationUpdateBody( + @Json(name = "pushToken") val pushToken: String, + @Json(name = "systemVersion") val systemVersion: String? = null, + @Json(name = "language") val language: String? = null, + @Json(name = "timezone") val timezone: String? = null, +) \ No newline at end of file diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/WalletBody.kt b/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/WalletBody.kt new file mode 100644 index 0000000000..d7a5fa0b91 --- /dev/null +++ b/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/WalletBody.kt @@ -0,0 +1,10 @@ +package com.tangem.datasource.api.tangemTech.models + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class WalletBody( + @Json(name = "notifyStatus") val notifyStatus: String? = null, + @Json(name = "name") val name: String? = null, +) \ No newline at end of file diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/WalletIdBody.kt b/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/WalletIdBody.kt new file mode 100644 index 0000000000..dbadddd6fc --- /dev/null +++ b/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/WalletIdBody.kt @@ -0,0 +1,9 @@ +package com.tangem.datasource.api.tangemTech.models + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class WalletIdBody( + @Json(name = "id") val walletId: String, +) \ No newline at end of file diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/WalletResponse.kt b/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/WalletResponse.kt new file mode 100644 index 0000000000..ad0ff4ebc6 --- /dev/null +++ b/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/models/WalletResponse.kt @@ -0,0 +1,11 @@ +package com.tangem.datasource.api.tangemTech.models + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class WalletResponse( + @Json(name = "notifyStatus") val notifyStatus: String? = null, + @Json(name = "name") val name: String? = null, + @Json(name = "id") val id: String, +) \ No newline at end of file