11package com.httpsms
22
3- import android.util.Log
43import okhttp3.MediaType.Companion.toMediaType
54import okhttp3.OkHttpClient
65import okhttp3.Request
@@ -10,11 +9,12 @@ import java.net.URI
109import java.time.ZonedDateTime
1110import java.time.format.DateTimeFormatter
1211import java.util.logging.Level
13- import java.util.logging.Logger.*
12+ import java.util.logging.Logger.getLogger
1413
1514
16- class HttpSmsApiService {
17- private val baseURL = URI (" https://eooi9srbmxw09ng.m.pipedream.net" )
15+ class HttpSmsApiService (private val apiKey : String ) {
16+ private val apiKeyHeader = " X-API-KEY"
17+ private val baseURL = URI (" https://api.httpsms.com" )
1818 private val jsonMediaType = " application/json; charset=utf-8" .toMediaType()
1919
2020 init {
@@ -26,6 +26,7 @@ class HttpSmsApiService {
2626
2727 val request: Request = Request .Builder ()
2828 .url(baseURL.resolve(" /v1/messages/outstanding?owner=${owner} " ).toURL())
29+ .header(apiKeyHeader, apiKey)
2930 .build()
3031
3132 val response = client.newCall(request).execute()
@@ -74,6 +75,7 @@ class HttpSmsApiService {
7475 val request: Request = Request .Builder ()
7576 .url(baseURL.resolve(" /v1/messages/receive" ).toURL())
7677 .post(body.toRequestBody(jsonMediaType))
78+ .header(apiKeyHeader, apiKey)
7779 .build()
7880
7981 val response = client.newCall(request).execute()
@@ -105,6 +107,7 @@ class HttpSmsApiService {
105107 val request: Request = Request .Builder ()
106108 .url(baseURL.resolve(" /v1/messages/${messageId} /events" ).toURL())
107109 .post(body.toRequestBody(jsonMediaType))
110+ .header(apiKeyHeader, apiKey)
108111 .build()
109112
110113 val response = client.newCall(request).execute()
@@ -131,6 +134,7 @@ class HttpSmsApiService {
131134 val request: Request = Request .Builder ()
132135 .url(baseURL.resolve(" /v1/phones" ).toURL())
133136 .put(body.toRequestBody(jsonMediaType))
137+ .header(apiKeyHeader, apiKey)
134138 .build()
135139
136140 val response = client.newCall(request).execute()
@@ -142,4 +146,25 @@ class HttpSmsApiService {
142146 response.close()
143147 Timber .i(" fcm token sent successfully for phone [$phoneNumber ]" )
144148 }
149+
150+
151+ fun validateApiKey (): String? {
152+ val client = OkHttpClient ()
153+
154+ val request: Request = Request .Builder ()
155+ .url(baseURL.resolve(" /v1/users/me" ).toURL())
156+ .header(apiKeyHeader, apiKey)
157+ .get()
158+ .build()
159+
160+ val response = client.newCall(request).execute()
161+ if (! response.isSuccessful) {
162+ Timber .e(" error response [${response.body?.string()} ] with code [${response.code} ] while verifying apiKey [$apiKey ]" )
163+ return " Cannot validate the API key. Check if it is correct and try again."
164+ }
165+
166+ response.close()
167+ Timber .i(" api key [$apiKey ] is valid" )
168+ return null
169+ }
145170}
0 commit comments