Copy
grpcurl \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-d '
{
"block": {
"destinationId": "64f14bd8-c49b-4dd0-b30d-5780861f8324",
"prefix": "2345",
"status": "A_ALLOCATED",
"assignmentDate": "2024-02-01T16:50:15Z"
}
}
' \
sandbox.api.shamrock.wgtwo.com:443 \
wgtwo.number_portability.v1.NumberBlockService/CreateOrUpdateNumberBlock
Copy
package com.example.numberPortability
import com.google.protobuf.util.Timestamps
import com.wgtwo.api.v1.number_portability.NumberBlockServiceGrpcKt
import com.wgtwo.api.v1.number_portability.NumberBlockStatus
import com.wgtwo.api.v1.number_portability.createOrUpdateNumberBlockRequest
import com.wgtwo.api.v1.number_portability.numberBlock
import io.grpc.ManagedChannelBuilder
import io.grpc.Status
import io.grpc.StatusException
import kotlinx.coroutines.runBlocking
import java.util.Date
import java.util.UUID.randomUUID
import kotlin.test.assertFailsWith
private val channel = ManagedChannelBuilder.forAddress("sandbox.api.shamrock.wgtwo.com", 443).build()
private val stub = NumberBlockServiceGrpcKt.NumberBlockServiceCoroutineStub(channel)
fun main() = runBlocking {
val createOrUpdateNumberBlockRequest = createOrUpdateNumberBlockRequest {
block = numberBlock {
destinationId = "64f14bd8-c49b-4dd0-b30d-5780861f8324"
prefix = "2345"
status = NumberBlockStatus.A_ALLOCATED
assignmentDate = Timestamps.fromDate(Date())
}
}
println("createOrUpdateNumberBlockRequest:
$createOrUpdateNumberBlockRequest")
val createOrUpdateNumberBlockResponse = stub.createOrUpdateNumberBlock(createOrUpdateNumberBlockRequest)
println("createOrUpdateNumberBlockResponse:
$createOrUpdateNumberBlockResponse")
val createOrUpdateNumberBlockRequestWithoutPrefix = createOrUpdateNumberBlockRequest {
block = numberBlock {
destinationId = randomUUID().toString()
status = NumberBlockStatus.A_ALLOCATED
assignmentDate = Timestamps.parse("2021-06-01T00:00:00.000Z")
}
}
println("createOrUpdateNumberBlockRequestWithoutPrefix:
$createOrUpdateNumberBlockRequestWithoutPrefix")
val exception = assertFailsWith<StatusException>("exception is not a StatusException") {
stub.createOrUpdateNumberBlock(createOrUpdateNumberBlockRequestWithoutPrefix)
}
assert(exception.status.code == Status.INVALID_ARGUMENT.code) {
"status code is not INVALID_ARGUMENT: ${exception.status.code}"
}
}