Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add transaction_id to SEP-12 requests #134

Merged
merged 2 commits into from
Jun 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ val jvmVersion = JavaVersion.VERSION_11

allprojects {
group = "org.stellar.wallet-sdk"
version = "1.6.0"
version = "1.7.0-SNAPSHOT"
}

subprojects {
Expand Down
12 changes: 12 additions & 0 deletions wallet-sdk/src/main/kotlin/org/stellar/walletsdk/customer/Sep12.kt
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,16 @@ internal constructor(
* @param type (optional) the type of action the customer is being KYCd for.
* @param lang (optional) Defaults to en. Language code specified using ISO 639-1. Human-readable
* descriptions, choices, and messages should be in this language.
* @param transactionId (optional) the ID of the transaction that the customer is being KYC'ed
* for.
* @return a customer data object
*/
suspend fun get(
id: String? = null,
memo: ULong? = null,
type: String? = null,
lang: String? = null,
transactionId: String? = null,
): GetCustomerResponse {
validateMemo(memo)

Expand All @@ -42,6 +45,7 @@ internal constructor(
urlBuilder.addParameter("memo", memo?.toString())
urlBuilder.addParameter("type", type)
urlBuilder.addParameter("lang", lang)
urlBuilder.addParameter("transaction_id", transactionId)
val urlString = urlBuilder.buildString()

val response = httpClient.authGet<GetCustomerResponse>(urlString, token)
Expand Down Expand Up @@ -69,19 +73,23 @@ internal constructor(
* @param memo (optional) the client-generated memo of type ID that uniquely identifies the
* customer. If a memo is present in the decoded SEP-10 JWT's sub value, it must match this
* parameter value.
* @param transactionId (optional) the ID of the transaction that the customer is being KYC'ed
* for.
* @return a customer with id information
*/
suspend fun add(
sep9Info: Map<String, String>,
memo: ULong? = null,
type: String? = null,
transactionId: String? = null,
): AddCustomerResponse {
val customer: MutableMap<String, String> = mutableMapOf()

populateMap(type, customer, memo, sep9Info)

val urlBuilder = URLBuilder(baseUrl)
urlBuilder.appendPathSegments("customer")
urlBuilder.addParameter("transaction_id", transactionId)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@philipliu @Ifropc shouldn't the transaction_id value go in the request body (aka populateMap) instead of a url parameter for this PUT request?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for catching this. I'll publish a PR to fix this.

val urlString = urlBuilder.buildString()

return httpClient.putJson(urlString, customer.toMap(), token)
Expand All @@ -98,13 +106,16 @@ internal constructor(
* @param memo (optional) the client-generated memo of type ID that uniquely identifies the
* customer. If a memo is present in the decoded SEP-10 JWT's sub value, it must match this
* parameter value.
* @param transactionId (optional) the ID of the transaction that the customer is being KYC'ed
* for.
* @return a customer with id information
*/
suspend fun update(
sep9Info: Map<String, String>,
id: String,
type: String? = null,
memo: ULong? = null,
transactionId: String? = null,
): AddCustomerResponse {
val customer: MutableMap<String, String> = mutableMapOf("id" to id)

Expand All @@ -116,6 +127,7 @@ internal constructor(

val urlBuilder = URLBuilder(baseUrl)
urlBuilder.appendPathSegments("customer")
urlBuilder.addParameter("transaction_id", transactionId)
Copy link

@CassioMG CassioMG Aug 23, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@philipliu @Ifropc same question here: shouldn't the transaction_id value go in the request body (aka populateMap) instead of a url parameter for this PUT request?

val urlString = urlBuilder.buildString()

return httpClient.putJson(urlString, customer.toMap(), token)
Expand Down
Loading