Skip to content

Commit 739257b

Browse files
committed
refactor!: List/Search Numbers returns list
1 parent 0cb4764 commit 739257b

File tree

4 files changed

+19
-23
lines changed

4 files changed

+19
-23
lines changed

CHANGELOG.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,13 @@ All notable changes to this project will be documented in this file.
44
The format is based on [Keep a Changelog](http://keepachangelog.com/)
55
and this project adheres to [Semantic Versioning](http://semver.org/).
66

7-
## [1.0.0] - 2024-10-?? (expected)
7+
## [1.0.0] - 2024-10-25 (expected)
88
First stable GA release
99

1010
### Changed
1111
- `Sms.wasSuccessfullySent()` now an extension function rather than being part of the client
12+
- `Numbers.listOwned()` now returns `List<OwnedNumber>` instead of `ListNumbersResponse`
13+
- `Numbers.searchAvailable()` now returns `List<AvailableNumber>` instead of `SearchNumbersResponse`
1214

1315
## [1.0.0-RC2] - 2024-09-26
1416
Messages API updates based on Java SDK v8.11.0

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@
138138
</plugin>
139139
<plugin>
140140
<artifactId>maven-surefire-plugin</artifactId>
141-
<version>3.5.0</version>
141+
<version>3.5.1</version>
142142
</plugin>
143143
<plugin>
144144
<groupId>org.jacoco</groupId>

src/main/kotlin/com/vonage/client/kt/Numbers.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -80,22 +80,22 @@ class Numbers internal constructor(private val client: NumbersClient) {
8080
*
8181
* @param filter (OPTIONAL) A lambda function for specifying the filter properties.
8282
*
83-
* @return A [ListNumbersResponse] object containing the list of owned numbers.
83+
* @return The list of owned numbers matching the filter criteria.
8484
*
8585
* @throws [NumbersResponseException] If the list could not be retrieved.
8686
*/
87-
fun listOwned(filter: ListNumbersFilter.Builder.() -> Unit = {}): ListNumbersResponse =
88-
client.listNumbers(ListNumbersFilter.builder().apply(filter).build())
87+
fun listOwned(filter: ListNumbersFilter.Builder.() -> Unit = {}): List<OwnedNumber> =
88+
client.listNumbers(ListNumbersFilter.builder().apply(filter).build()).numbers.asList()
8989

9090
/**
9191
* Search for numbers that are available to purchase.
9292
*
9393
* @param filter A lambda function for specifying the search filter properties.
9494
*
95-
* @return A [SearchNumbersResponse] object containing the list of available numbers.
95+
* @return The list of available numbers matching the filter critera.
9696
*
9797
* @throws [NumbersResponseException] If the search request could not be completed.
9898
*/
99-
fun searchAvailable(filter: SearchNumbersFilter.Builder.() -> Unit): SearchNumbersResponse =
100-
client.searchNumbers(SearchNumbersFilter.builder().apply(filter).build())
99+
fun searchAvailable(filter: SearchNumbersFilter.Builder.() -> Unit): List<AvailableNumber> =
100+
client.searchNumbers(SearchNumbersFilter.builder().apply(filter).build()).numbers.asList()
101101
}

src/test/kotlin/com/vonage/client/kt/NumbersTest.kt

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ class NumbersTest : AbstractTest() {
7373
)
7474
}
7575

76-
private fun assertOwnedNumbers(params: Map<String, Any>, invocation: Numbers.() -> ListNumbersResponse) {
76+
private fun assertOwnedNumbers(params: Map<String, Any>, invocation: Numbers.() -> List<OwnedNumber>) {
7777
val type = Type.MOBILE_LVN
7878
val voiceCallbackType = CallbackType.SIP
7979
val messagesCallbackValue = "aaaaaaaa-bbbb-cccc-dddd-0123456789ab"
@@ -103,12 +103,9 @@ class NumbersTest : AbstractTest() {
103103

104104
val response = invocation(client)
105105
assertNotNull(response)
106-
assertEquals(count, response.count)
107-
val numbers = response.numbers
108-
assertNotNull(numbers)
109-
assertEquals(2, numbers.size)
106+
assertEquals(2, response.size)
110107

111-
val empty = numbers[0]
108+
val empty = response[0]
112109
assertNotNull(empty)
113110
assertNull(empty.msisdn)
114111
assertNull(empty.country)
@@ -119,7 +116,7 @@ class NumbersTest : AbstractTest() {
119116
assertNull(empty.type)
120117
assertNull(empty.features)
121118

122-
val main = numbers[1]
119+
val main = response[1]
123120
assertNotNull(main)
124121
assertEquals(country, main.country)
125122
assertEquals(toNumber, main.msisdn)
@@ -133,7 +130,7 @@ class NumbersTest : AbstractTest() {
133130
assertThrowsGet(url, invocation)
134131
}
135132

136-
private fun assertAvailableNumbers(params: Map<String, Any>, invocation: Numbers.() -> SearchNumbersResponse) {
133+
private fun assertAvailableNumbers(params: Map<String, Any>, invocation: Numbers.() -> List<AvailableNumber>) {
137134
val landline = "44800123456"
138135
val url = "/number/search"
139136
mockGet(
@@ -161,20 +158,17 @@ class NumbersTest : AbstractTest() {
161158

162159
val response = invocation(client)
163160
assertNotNull(response)
164-
assertEquals(count, response.count)
165-
val numbers = response.numbers
166-
assertNotNull(numbers)
167-
assertEquals(3, numbers.size)
161+
assertEquals(3, response.size)
168162

169-
val costOnly = numbers[0]
163+
val costOnly = response[0]
170164
assertNotNull(costOnly)
171165
assertEquals(1.29, costOnly.cost.toDouble())
172166
assertNull(costOnly.type)
173167
assertNull(costOnly.country)
174168
assertNull(costOnly.msisdn)
175169
assertNull(costOnly.features)
176170

177-
val main = numbers[1]
171+
val main = response[1]
178172
assertNotNull(main)
179173
assertEquals(Type.LANDLINE_TOLL_FREE, Type.fromString(main.type))
180174
assertEquals(3.80, main.cost.toDouble())
@@ -185,7 +179,7 @@ class NumbersTest : AbstractTest() {
185179
assertEquals(1, mainFeatures.size)
186180
assertEquals(Feature.VOICE, Feature.fromString(mainFeatures[0]))
187181

188-
val mobile = numbers[2]
182+
val mobile = response[2]
189183
assertEquals(country, mobile.country)
190184
assertEquals(toNumber, mobile.msisdn)
191185
assertEquals(Type.MOBILE_LVN, Type.fromString(mobile.type))

0 commit comments

Comments
 (0)