@@ -12,21 +12,21 @@ import java.io.OutputStreamWriter
1212import java.net.HttpURLConnection
1313import java.net.URL
1414
15- interface BatteryProvisionAPI {
16- suspend fun provision (deviceId : String , password : String , token : String ): String
15+ interface DeviceProvisionAPI {
16+ suspend fun provision (modelName : String , deviceId : String , password : String , token : String ): String
1717}
1818
19- class BatteryProvisionAPIREST (private val apiURL : URL ) : BatteryProvisionAPI {
19+ class DeviceProvisionAPIREST (private val apiURL : URL ) : DeviceProvisionAPI {
2020
2121 companion object {
22- private const val TAG = " BatteryProvisionAPIREST "
22+ private const val TAG = " DeviceProvisionAPIREST "
2323 }
2424
25- override suspend fun provision (deviceId : String , password : String , token : String ): String = withContext(Dispatchers .IO ) {
25+ override suspend fun provision (modelName : String , deviceId : String , password : String , token : String ): String = withContext(Dispatchers .IO ) {
2626 Log .d(ESPProvisionProvider .TAG , " apiURL $apiURL " )
2727 val uri = Uri .parse(apiURL.toString()).buildUpon()
2828 .appendPath(" rest" )
29- .appendPath(" battery " )
29+ .appendPath(" device " )
3030 .build()
3131
3232 val url = URL (uri.toString())
@@ -38,6 +38,7 @@ class BatteryProvisionAPIREST(private val apiURL: URL) : BatteryProvisionAPI {
3838 connection.doOutput = true
3939
4040 val requestBody = JSONObject ().apply {
41+ put(" modelName" , modelName)
4142 put(" deviceId" , deviceId)
4243 put(" password" , password)
4344 }
@@ -57,28 +58,28 @@ class BatteryProvisionAPIREST(private val apiURL: URL) : BatteryProvisionAPI {
5758 Log .d(ESPProvisionProvider .TAG , " Response code $responseCode " )
5859 Log .d(ESPProvisionProvider .TAG , " Response text $responseText " )
5960 when (responseCode) {
60- 401 -> throw BatteryProvisionAPIError .Unauthorized
61- 409 -> throw BatteryProvisionAPIError .BusinessError
62- else -> throw BatteryProvisionAPIError .UnknownError
61+ 401 -> throw DeviceProvisionAPIError .Unauthorized
62+ 409 -> throw DeviceProvisionAPIError .BusinessError
63+ else -> throw DeviceProvisionAPIError .UnknownError
6364 }
6465 }
6566
6667 val json = JSONObject (responseText)
6768 return @withContext json.getString(" assetId" )
68- } catch (e: BatteryProvisionAPIError ) {
69+ } catch (e: DeviceProvisionAPIError ) {
6970 throw e
7071 } catch (e: Exception ) {
71- throw BatteryProvisionAPIError .GenericError (e)
72+ throw DeviceProvisionAPIError .GenericError (e)
7273 } finally {
7374 connection.disconnect()
7475 }
7576 }
7677}
7778
78- sealed class BatteryProvisionAPIError (message : String? = null , cause : Throwable ? = null ) : Exception(message, cause) {
79- object Unauthorized : BatteryProvisionAPIError (" Unauthorized" )
80- data class CommunicationError (val reason : String ) : BatteryProvisionAPIError (reason)
81- object BusinessError : BatteryProvisionAPIError (" Business logic error" )
82- data class GenericError (val error : Throwable ) : BatteryProvisionAPIError (error.message, error)
83- object UnknownError : BatteryProvisionAPIError (" Unknown error" )
79+ sealed class DeviceProvisionAPIError (message : String? = null , cause : Throwable ? = null ) : Exception(message, cause) {
80+ object Unauthorized : DeviceProvisionAPIError (" Unauthorized" )
81+ data class CommunicationError (val reason : String ) : DeviceProvisionAPIError (reason)
82+ object BusinessError : DeviceProvisionAPIError (" Business logic error" )
83+ data class GenericError (val error : Throwable ) : DeviceProvisionAPIError (error.message, error)
84+ object UnknownError : DeviceProvisionAPIError (" Unknown error" )
8485}
0 commit comments