@@ -51,51 +51,34 @@ internal class DefaultTermsService @Inject constructor(
51
51
52
52
override suspend fun getTerms (serviceType : TermsService .ServiceType ,
53
53
baseUrl : String ): GetTermsResponse {
54
- return if (serviceType == TermsService .ServiceType .Homeserver ) {
55
- getHomeserverTerms(baseUrl)
56
- } else {
57
- val url = buildUrl(baseUrl, serviceType)
58
- val termsResponse = executeRequest(null ) {
59
- termsAPI.getTerms(" ${url} terms" )
60
- }
61
- GetTermsResponse (termsResponse, getAlreadyAcceptedTermUrlsFromAccountData())
54
+ val url = buildUrl(baseUrl, serviceType)
55
+ val termsResponse = executeRequest(null ) {
56
+ termsAPI.getTerms(" ${url} terms" )
62
57
}
58
+ return GetTermsResponse (termsResponse, getAlreadyAcceptedTermUrlsFromAccountData())
63
59
}
64
60
65
61
/* *
66
62
* We use a trick here to get the homeserver T&C, we use the register API
67
63
*/
68
- private suspend fun getHomeserverTerms (baseUrl : String ): GetTermsResponse {
64
+ override suspend fun getHomeserverTerms (baseUrl : String ): TermsResponse {
69
65
return try {
70
66
executeRequest(null ) {
71
67
termsAPI.register(baseUrl + NetworkConstants .URI_API_PREFIX_PATH_R0 + " register" )
72
68
}
73
69
// Return empty result if it succeed, but it should never happen
74
- buildEmptyGetTermsResponse ()
70
+ TermsResponse ()
75
71
} catch (throwable: Throwable ) {
76
72
@Suppress(" UNCHECKED_CAST" )
77
- ((throwable.toRegistrationFlowResponse()
78
- ?.params?.get(LoginFlowTypes .TERMS ) as ? JsonDict )
79
- ?.get(" policies" ) as ? JsonDict )
80
- ?.let { dict ->
81
- GetTermsResponse (
82
- serverResponse = TermsResponse (
83
- policies = dict
84
- ),
85
- alreadyAcceptedTermUrls = emptySet()
86
- )
87
- }
88
- ? : buildEmptyGetTermsResponse()
73
+ TermsResponse (
74
+ policies = (throwable.toRegistrationFlowResponse()
75
+ ?.params
76
+ ?.get(LoginFlowTypes .TERMS ) as ? JsonDict )
77
+ ?.get(" policies" ) as ? JsonDict
78
+ )
89
79
}
90
80
}
91
81
92
- private fun buildEmptyGetTermsResponse (): GetTermsResponse {
93
- return GetTermsResponse (
94
- serverResponse = TermsResponse (),
95
- alreadyAcceptedTermUrls = emptySet()
96
- )
97
- }
98
-
99
82
override suspend fun agreeToTerms (serviceType : TermsService .ServiceType ,
100
83
baseUrl : String ,
101
84
agreedUrls : List <String >,
@@ -133,8 +116,6 @@ internal class DefaultTermsService @Inject constructor(
133
116
val servicePath = when (serviceType) {
134
117
TermsService .ServiceType .IntegrationManager -> NetworkConstants .URI_INTEGRATION_MANAGER_PATH
135
118
TermsService .ServiceType .IdentityService -> NetworkConstants .URI_IDENTITY_PATH_V2
136
- TermsService .ServiceType .Homeserver ->
137
- error(" You cannot use this API with parameter TermsService.ServiceType.Homeserver" )
138
119
}
139
120
return " ${baseUrl.ensureTrailingSlash()}$servicePath "
140
121
}
0 commit comments