Skip to content

Commit b528889

Browse files
author
Radu Sabau
committed
[VSP-1604] Added network calls for share link
1 parent a27453e commit b528889

File tree

7 files changed

+101
-0
lines changed

7 files changed

+101
-0
lines changed

app/src/main/java/org/permanent/permanent/network/NetworkClient.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ import org.permanent.permanent.network.models.LegacyContact
4141
import org.permanent.permanent.network.models.LocnVO
4242
import org.permanent.permanent.network.models.ProfileItemsRequestContainer
4343
import org.permanent.permanent.network.models.ResponseVO
44+
import org.permanent.permanent.network.models.ShareLinkVO
45+
import org.permanent.permanent.network.models.ShareLinkVOResponse
4446
import org.permanent.permanent.network.models.Shareby_urlVO
4547
import org.permanent.permanent.network.models.SimpleRequestContainer
4648
import org.permanent.permanent.network.models.StorageGift
@@ -55,6 +57,7 @@ import org.permanent.permanent.ui.myFiles.upload.CountingRequestListener
5557
import retrofit2.Call
5658
import retrofit2.Retrofit
5759
import retrofit2.converter.moshi.MoshiConverterFactory
60+
import retrofit2.http.Query
5861
import java.io.File
5962
import java.util.Date
6063

@@ -784,6 +787,10 @@ class NetworkClient(private var okHttpClient: OkHttpClient?, context: Context) {
784787

785788
fun disableTwoFactor(twoFAVO: TwoFAVO): Call<ResponseBody> = stelaAccountService.disableTwoFactor(twoFAVO)
786789

790+
fun getShareLink(shareTokens: List<String>?,shareLinkIds: List<String>?): Call<ShareLinkVOResponse> = stelaAccountService.getShareLink(shareTokens,shareLinkIds)
791+
792+
fun generateShareLink(shareLink: ShareLinkVO): Call<ResponseVO> = stelaAccountService.generateShareLink(shareLink)
793+
787794
fun getPaymentIntent(
788795
accountId: Int,
789796
accountEmail: String?,

app/src/main/java/org/permanent/permanent/network/StelaAccountService.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,29 @@
11
package org.permanent.permanent.network
22

3+
import okhttp3.RequestBody
34
import okhttp3.ResponseBody
45
import org.permanent.permanent.models.Tags
56
import org.permanent.permanent.network.models.ResponseVO
7+
import org.permanent.permanent.network.models.ShareLinkVO
8+
import org.permanent.permanent.network.models.ShareLinkVOResponse
69
import org.permanent.permanent.network.models.TwoFAVO
710
import retrofit2.Call
811
import retrofit2.http.Body
912
import retrofit2.http.GET
1013
import retrofit2.http.POST
1114
import retrofit2.http.PUT
15+
import retrofit2.http.Query
1216

1317
interface StelaAccountService {
1418

19+
@GET("api/v2/share-links")
20+
fun getShareLink(@Query("shareTokens[]") shareTokens: List<String>?,
21+
@Query("shareLinkIds[]") shareLinkIds: List<String>?
22+
): Call<ShareLinkVOResponse>
23+
24+
@POST("api/v2/share-links")
25+
fun generateShareLink(@Body shareLink: ShareLinkVO): Call<ResponseVO>
26+
1527
@PUT("api/v2/account/tags")
1628
fun addRemoveTags(@Body tags: Tags): Call<ResponseVO>
1729

app/src/main/java/org/permanent/permanent/network/models/Datum.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,6 @@ class Datum {
2020
var TagVO: TagVO? = null
2121
var TagLinkVO: TagLinkVO? = null
2222
var PromoVO: PromoVO? = null
23+
var ShareLinkVO: ShareLinkVO? = null
24+
2325
}

app/src/main/java/org/permanent/permanent/network/models/ResponseVO.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,4 +85,8 @@ class ResponseVO {
8585
fun getPromoVO(): PromoVO? {
8686
return getData()?.get(0)?.PromoVO
8787
}
88+
89+
fun getShareLinkVO(): ShareLinkVO? {
90+
return getData()?.get(0)?.ShareLinkVO
91+
}
8892
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package org.permanent.permanent.network.models
2+
3+
4+
data class ShareLinkVOResponse(
5+
val items: List<ShareLinkVO>
6+
)
7+
8+
class ShareLinkVO {
9+
var Id: String? = null
10+
var itemId: String? = null
11+
var itemType: String? = null
12+
var permissionsLevel: String? = null
13+
var accessRestrictions: String? = null
14+
15+
var token: String? = null
16+
17+
var maxUses: Int? = null // can be 0 for unlimited uses
18+
19+
var usesExpended: Int? = null
20+
var expirationTimestamp: String? = null // can be null for no expiration
21+
22+
var createdAt: String? = null
23+
var updatedAt: String? = null
24+
}

app/src/main/java/org/permanent/permanent/repositories/StelaAccountRepository.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package org.permanent.permanent.repositories
33
import org.permanent.permanent.models.Tags
44
import org.permanent.permanent.network.IResponseListener
55
import org.permanent.permanent.network.ITwoFAListener
6+
import org.permanent.permanent.network.models.ShareLinkVO
67
import org.permanent.permanent.network.models.TwoFAVO
78

89
interface StelaAccountRepository {
@@ -18,4 +19,9 @@ interface StelaAccountRepository {
1819
fun sendDisableCode(twoFAVO: TwoFAVO, listener: IResponseListener)
1920

2021
fun disableTwoFactor(twoFAVO: TwoFAVO, listener: IResponseListener)
22+
23+
fun getShareLink(shareTokens: List<String>?,shareLinkIds: List<String>?, listener: IResponseListener)
24+
25+
fun generateShareLink(shareLinkVO: ShareLinkVO, listener: IResponseListener)
26+
2127
}

app/src/main/java/org/permanent/permanent/repositories/StelaAccountRepositoryImpl.kt

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ import org.permanent.permanent.network.ITwoFAListener
1010
import org.permanent.permanent.network.NetworkClient
1111
import org.permanent.permanent.network.models.ErrorResponse
1212
import org.permanent.permanent.network.models.ResponseVO
13+
import org.permanent.permanent.network.models.ShareLinkVO
14+
import org.permanent.permanent.network.models.ShareLinkVOResponse
1315
import org.permanent.permanent.network.models.TwoFAVO
1416
import retrofit2.Call
1517
import retrofit2.Callback
@@ -192,4 +194,48 @@ class StelaAccountRepositoryImpl(context: Context) : StelaAccountRepository {
192194
}
193195
})
194196
}
197+
198+
override fun getShareLink(shareTokens: List<String>?,shareLinkIds: List<String>?, listener: IResponseListener) {
199+
NetworkClient.instance().getShareLink(shareTokens, shareLinkIds).enqueue( object : Callback<ShareLinkVOResponse> {
200+
201+
override fun onResponse(call: Call<ShareLinkVOResponse>, response: Response<ShareLinkVOResponse>) {
202+
if (response.isSuccessful) {
203+
val responseVO = response.body()
204+
if (responseVO != null) {
205+
listener.onSuccess("")
206+
} else {
207+
listener.onFailed(appContext.getString(R.string.generic_error))
208+
}
209+
} else {
210+
listener.onFailed("No Link detected")
211+
}
212+
}
213+
214+
override fun onFailure(call: Call<ShareLinkVOResponse>, t: Throwable) {
215+
listener.onFailed(t.message)
216+
}
217+
})
218+
}
219+
220+
override fun generateShareLink(shareLinkVO: ShareLinkVO, listener: IResponseListener) {
221+
NetworkClient.instance().generateShareLink(shareLinkVO).enqueue( object : Callback<ResponseVO> {
222+
223+
override fun onResponse(call: Call<ResponseVO>, response: Response<ResponseVO>) {
224+
if (response.isSuccessful) {
225+
val responseVO = response.body()
226+
if (responseVO != null) {
227+
listener.onSuccess("")
228+
} else {
229+
listener.onFailed(appContext.getString(R.string.generic_error))
230+
}
231+
} else {
232+
listener.onFailed("No Link detected")
233+
}
234+
}
235+
236+
override fun onFailure(call: Call<ResponseVO>, t: Throwable) {
237+
listener.onFailed(t.message)
238+
}
239+
})
240+
}
195241
}

0 commit comments

Comments
 (0)