Skip to content

Commit 3d2b816

Browse files
committed
feat(api): updates (#121)
1 parent b8618b0 commit 3d2b816

4 files changed

Lines changed: 84 additions & 22 deletions

File tree

lithic-java-core/src/main/kotlin/com/lithic/api/models/DigitalCardArt.kt

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import com.lithic.api.core.toUnmodifiable
1616
import com.lithic.api.errors.LithicInvalidDataException
1717
import java.time.OffsetDateTime
1818
import java.util.Objects
19+
import java.util.Optional
1920

2021
@JsonDeserialize(builder = DigitalCardArt.Builder::class)
2122
@NoAutoDetect
@@ -24,6 +25,7 @@ private constructor(
2425
private val token: JsonField<String>,
2526
private val cardProgramToken: JsonField<String>,
2627
private val isEnabled: JsonField<Boolean>,
28+
private val isCardProgramDefault: JsonField<Boolean>,
2729
private val created: JsonField<OffsetDateTime>,
2830
private val network: JsonField<Network>,
2931
private val description: JsonField<String>,
@@ -43,6 +45,10 @@ private constructor(
4345
/** Whether the card art is enabled. */
4446
fun isEnabled(): Boolean = isEnabled.getRequired("is_enabled")
4547

48+
/** Whether the card art is the default card art to be added upon tokenization. */
49+
fun isCardProgramDefault(): Optional<Boolean> =
50+
Optional.ofNullable(isCardProgramDefault.getNullable("is_card_program_default"))
51+
4652
/** Timestamp of when card art was created. */
4753
fun created(): OffsetDateTime = created.getRequired("created")
4854

@@ -61,6 +67,11 @@ private constructor(
6167
/** Whether the card art is enabled. */
6268
@JsonProperty("is_enabled") @ExcludeMissing fun _isEnabled() = isEnabled
6369

70+
/** Whether the card art is the default card art to be added upon tokenization. */
71+
@JsonProperty("is_card_program_default")
72+
@ExcludeMissing
73+
fun _isCardProgramDefault() = isCardProgramDefault
74+
6475
/** Timestamp of when card art was created. */
6576
@JsonProperty("created") @ExcludeMissing fun _created() = created
6677

@@ -79,6 +90,7 @@ private constructor(
7990
token()
8091
cardProgramToken()
8192
isEnabled()
93+
isCardProgramDefault()
8294
created()
8395
network()
8496
description()
@@ -97,6 +109,7 @@ private constructor(
97109
this.token == other.token &&
98110
this.cardProgramToken == other.cardProgramToken &&
99111
this.isEnabled == other.isEnabled &&
112+
this.isCardProgramDefault == other.isCardProgramDefault &&
100113
this.created == other.created &&
101114
this.network == other.network &&
102115
this.description == other.description &&
@@ -110,6 +123,7 @@ private constructor(
110123
token,
111124
cardProgramToken,
112125
isEnabled,
126+
isCardProgramDefault,
113127
created,
114128
network,
115129
description,
@@ -120,7 +134,7 @@ private constructor(
120134
}
121135

122136
override fun toString() =
123-
"DigitalCardArt{token=$token, cardProgramToken=$cardProgramToken, isEnabled=$isEnabled, created=$created, network=$network, description=$description, additionalProperties=$additionalProperties}"
137+
"DigitalCardArt{token=$token, cardProgramToken=$cardProgramToken, isEnabled=$isEnabled, isCardProgramDefault=$isCardProgramDefault, created=$created, network=$network, description=$description, additionalProperties=$additionalProperties}"
124138

125139
companion object {
126140

@@ -132,6 +146,7 @@ private constructor(
132146
private var token: JsonField<String> = JsonMissing.of()
133147
private var cardProgramToken: JsonField<String> = JsonMissing.of()
134148
private var isEnabled: JsonField<Boolean> = JsonMissing.of()
149+
private var isCardProgramDefault: JsonField<Boolean> = JsonMissing.of()
135150
private var created: JsonField<OffsetDateTime> = JsonMissing.of()
136151
private var network: JsonField<Network> = JsonMissing.of()
137152
private var description: JsonField<String> = JsonMissing.of()
@@ -142,6 +157,7 @@ private constructor(
142157
this.token = digitalCardArt.token
143158
this.cardProgramToken = digitalCardArt.cardProgramToken
144159
this.isEnabled = digitalCardArt.isEnabled
160+
this.isCardProgramDefault = digitalCardArt.isCardProgramDefault
145161
this.created = digitalCardArt.created
146162
this.network = digitalCardArt.network
147163
this.description = digitalCardArt.description
@@ -175,6 +191,17 @@ private constructor(
175191
@ExcludeMissing
176192
fun isEnabled(isEnabled: JsonField<Boolean>) = apply { this.isEnabled = isEnabled }
177193

194+
/** Whether the card art is the default card art to be added upon tokenization. */
195+
fun isCardProgramDefault(isCardProgramDefault: Boolean) =
196+
isCardProgramDefault(JsonField.of(isCardProgramDefault))
197+
198+
/** Whether the card art is the default card art to be added upon tokenization. */
199+
@JsonProperty("is_card_program_default")
200+
@ExcludeMissing
201+
fun isCardProgramDefault(isCardProgramDefault: JsonField<Boolean>) = apply {
202+
this.isCardProgramDefault = isCardProgramDefault
203+
}
204+
178205
/** Timestamp of when card art was created. */
179206
fun created(created: OffsetDateTime) = created(JsonField.of(created))
180207

@@ -218,6 +245,7 @@ private constructor(
218245
token,
219246
cardProgramToken,
220247
isEnabled,
248+
isCardProgramDefault,
221249
created,
222250
network,
223251
description,

lithic-java-core/src/main/kotlin/com/lithic/api/models/PaymentListParams.kt

Lines changed: 43 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,14 @@ import com.lithic.api.core.NoAutoDetect
99
import com.lithic.api.core.toUnmodifiable
1010
import com.lithic.api.errors.LithicInvalidDataException
1111
import com.lithic.api.models.*
12+
import java.time.OffsetDateTime
1213
import java.util.Objects
1314
import java.util.Optional
1415

1516
class PaymentListParams
1617
constructor(
18+
private val begin: OffsetDateTime?,
19+
private val end: OffsetDateTime?,
1720
private val endingBefore: String?,
1821
private val financialAccountToken: String?,
1922
private val pageSize: Long?,
@@ -24,6 +27,10 @@ constructor(
2427
private val additionalHeaders: Map<String, List<String>>,
2528
) {
2629

30+
fun begin(): Optional<OffsetDateTime> = Optional.ofNullable(begin)
31+
32+
fun end(): Optional<OffsetDateTime> = Optional.ofNullable(end)
33+
2734
fun endingBefore(): Optional<String> = Optional.ofNullable(endingBefore)
2835

2936
fun financialAccountToken(): Optional<String> = Optional.ofNullable(financialAccountToken)
@@ -39,6 +46,8 @@ constructor(
3946
@JvmSynthetic
4047
internal fun getQueryParams(): Map<String, List<String>> {
4148
val params = mutableMapOf<String, List<String>>()
49+
this.begin?.let { params.put("begin", listOf(it.toString())) }
50+
this.end?.let { params.put("end", listOf(it.toString())) }
4251
this.endingBefore?.let { params.put("ending_before", listOf(it.toString())) }
4352
this.financialAccountToken?.let {
4453
params.put("financial_account_token", listOf(it.toString()))
@@ -63,6 +72,8 @@ constructor(
6372
}
6473

6574
return other is PaymentListParams &&
75+
this.begin == other.begin &&
76+
this.end == other.end &&
6677
this.endingBefore == other.endingBefore &&
6778
this.financialAccountToken == other.financialAccountToken &&
6879
this.pageSize == other.pageSize &&
@@ -75,6 +86,8 @@ constructor(
7586

7687
override fun hashCode(): Int {
7788
return Objects.hash(
89+
begin,
90+
end,
7891
endingBefore,
7992
financialAccountToken,
8093
pageSize,
@@ -87,7 +100,7 @@ constructor(
87100
}
88101

89102
override fun toString() =
90-
"PaymentListParams{endingBefore=$endingBefore, financialAccountToken=$financialAccountToken, pageSize=$pageSize, result=$result, startingAfter=$startingAfter, status=$status, additionalQueryParams=$additionalQueryParams, additionalHeaders=$additionalHeaders}"
103+
"PaymentListParams{begin=$begin, end=$end, endingBefore=$endingBefore, financialAccountToken=$financialAccountToken, pageSize=$pageSize, result=$result, startingAfter=$startingAfter, status=$status, additionalQueryParams=$additionalQueryParams, additionalHeaders=$additionalHeaders}"
91104

92105
fun toBuilder() = Builder().from(this)
93106

@@ -99,6 +112,8 @@ constructor(
99112
@NoAutoDetect
100113
class Builder {
101114

115+
private var begin: OffsetDateTime? = null
116+
private var end: OffsetDateTime? = null
102117
private var endingBefore: String? = null
103118
private var financialAccountToken: String? = null
104119
private var pageSize: Long? = null
@@ -110,6 +125,8 @@ constructor(
110125

111126
@JvmSynthetic
112127
internal fun from(paymentListParams: PaymentListParams) = apply {
128+
this.begin = paymentListParams.begin
129+
this.end = paymentListParams.end
113130
this.endingBefore = paymentListParams.endingBefore
114131
this.financialAccountToken = paymentListParams.financialAccountToken
115132
this.pageSize = paymentListParams.pageSize
@@ -120,6 +137,18 @@ constructor(
120137
additionalHeaders(paymentListParams.additionalHeaders)
121138
}
122139

140+
/**
141+
* Date string in RFC 3339 format. Only entries created after the specified time will be
142+
* included. UTC time zone.
143+
*/
144+
fun begin(begin: OffsetDateTime) = apply { this.begin = begin }
145+
146+
/**
147+
* Date string in RFC 3339 format. Only entries created before the specified time will be
148+
* included. UTC time zone.
149+
*/
150+
fun end(end: OffsetDateTime) = apply { this.end = end }
151+
123152
/**
124153
* A cursor representing an item's token before which a page of results should end. Used to
125154
* retrieve the previous page of results before this item.
@@ -185,6 +214,8 @@ constructor(
185214

186215
fun build(): PaymentListParams =
187216
PaymentListParams(
217+
begin,
218+
end,
188219
endingBefore,
189220
financialAccountToken,
190221
pageSize,
@@ -275,53 +306,47 @@ constructor(
275306

276307
companion object {
277308

309+
@JvmField val DECLINED = Status(JsonField.of("DECLINED"))
310+
278311
@JvmField val PENDING = Status(JsonField.of("PENDING"))
279312

280-
@JvmField val VOIDED = Status(JsonField.of("VOIDED"))
313+
@JvmField val RETURNED = Status(JsonField.of("RETURNED"))
281314

282315
@JvmField val SETTLED = Status(JsonField.of("SETTLED"))
283316

284-
@JvmField val DECLINED = Status(JsonField.of("DECLINED"))
285-
286-
@JvmField val EXPIRED = Status(JsonField.of("EXPIRED"))
287-
288317
@JvmStatic fun of(value: String) = Status(JsonField.of(value))
289318
}
290319

291320
enum class Known {
321+
DECLINED,
292322
PENDING,
293-
VOIDED,
323+
RETURNED,
294324
SETTLED,
295-
DECLINED,
296-
EXPIRED,
297325
}
298326

299327
enum class Value {
328+
DECLINED,
300329
PENDING,
301-
VOIDED,
330+
RETURNED,
302331
SETTLED,
303-
DECLINED,
304-
EXPIRED,
305332
_UNKNOWN,
306333
}
307334

308335
fun value(): Value =
309336
when (this) {
337+
DECLINED -> Value.DECLINED
310338
PENDING -> Value.PENDING
311-
VOIDED -> Value.VOIDED
339+
RETURNED -> Value.RETURNED
312340
SETTLED -> Value.SETTLED
313-
DECLINED -> Value.DECLINED
314-
EXPIRED -> Value.EXPIRED
315341
else -> Value._UNKNOWN
316342
}
317343

318344
fun known(): Known =
319345
when (this) {
346+
DECLINED -> Known.DECLINED
320347
PENDING -> Known.PENDING
321-
VOIDED -> Known.VOIDED
348+
RETURNED -> Known.RETURNED
322349
SETTLED -> Known.SETTLED
323-
DECLINED -> Known.DECLINED
324-
EXPIRED -> Known.EXPIRED
325350
else -> throw LithicInvalidDataException("Unknown Status: $value")
326351
}
327352

lithic-java-core/src/test/kotlin/com/lithic/api/models/DigitalCardArtTest.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ class DigitalCardArtTest {
1818
.description("string")
1919
.isEnabled(true)
2020
.network(DigitalCardArt.Network.MASTERCARD)
21+
.isCardProgramDefault(true)
2122
.build()
2223
assertThat(digitalCardArt).isNotNull
2324
assertThat(digitalCardArt.token()).isEqualTo("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
@@ -28,5 +29,6 @@ class DigitalCardArtTest {
2829
assertThat(digitalCardArt.description()).isEqualTo("string")
2930
assertThat(digitalCardArt.isEnabled()).isEqualTo(true)
3031
assertThat(digitalCardArt.network()).isEqualTo(DigitalCardArt.Network.MASTERCARD)
32+
assertThat(digitalCardArt.isCardProgramDefault()).contains(true)
3133
}
3234
}

lithic-java-core/src/test/kotlin/com/lithic/api/models/PaymentListParamsTest.kt

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
package com.lithic.api.models
44

55
import com.lithic.api.models.*
6+
import java.time.OffsetDateTime
67
import org.assertj.core.api.Assertions.assertThat
78
import org.junit.jupiter.api.Test
89

@@ -11,33 +12,39 @@ class PaymentListParamsTest {
1112
@Test
1213
fun createPaymentListParams() {
1314
PaymentListParams.builder()
15+
.begin(OffsetDateTime.parse("2019-12-27T18:11:19.117Z"))
16+
.end(OffsetDateTime.parse("2019-12-27T18:11:19.117Z"))
1417
.endingBefore("string")
1518
.financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
1619
.pageSize(123L)
1720
.result(PaymentListParams.Result.APPROVED)
1821
.startingAfter("string")
19-
.status(PaymentListParams.Status.PENDING)
22+
.status(PaymentListParams.Status.DECLINED)
2023
.build()
2124
}
2225

2326
@Test
2427
fun getQueryParams() {
2528
val params =
2629
PaymentListParams.builder()
30+
.begin(OffsetDateTime.parse("2019-12-27T18:11:19.117Z"))
31+
.end(OffsetDateTime.parse("2019-12-27T18:11:19.117Z"))
2732
.endingBefore("string")
2833
.financialAccountToken("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
2934
.pageSize(123L)
3035
.result(PaymentListParams.Result.APPROVED)
3136
.startingAfter("string")
32-
.status(PaymentListParams.Status.PENDING)
37+
.status(PaymentListParams.Status.DECLINED)
3338
.build()
3439
val expected = mutableMapOf<String, List<String>>()
40+
expected.put("begin", listOf("2019-12-27T18:11:19.117Z"))
41+
expected.put("end", listOf("2019-12-27T18:11:19.117Z"))
3542
expected.put("ending_before", listOf("string"))
3643
expected.put("financial_account_token", listOf("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"))
3744
expected.put("page_size", listOf("123"))
3845
expected.put("result", listOf(PaymentListParams.Result.APPROVED.toString()))
3946
expected.put("starting_after", listOf("string"))
40-
expected.put("status", listOf(PaymentListParams.Status.PENDING.toString()))
47+
expected.put("status", listOf(PaymentListParams.Status.DECLINED.toString()))
4148
assertThat(params.getQueryParams()).isEqualTo(expected)
4249
}
4350

0 commit comments

Comments
 (0)