interface NotificationAPI {
@Headers("Authorization: key=$SERVER_KEY", "Content-Type:$CONTENT_TYPE") //Server key -> 엑세스 토큰`
@POST("http://192.168.0.68:3000/sendNotification")
suspend fun postNotification(
@Body notification: PushNotification
): Result<ResponseBody>
}
class RetrofitInstance {
companion object {
private val retrofit by lazy {
// Create a new HttpLoggingInterceptor.
val logging = HttpLoggingInterceptor().apply {
level = HttpLoggingInterceptor.Level.BODY
}
// Add the interceptor to OkHttpClient.
val client = OkHttpClient.Builder()
.addInterceptor(logging)
.build()
Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.client(client) // Add the custom OkHttpClient.
.build()
}
val api by lazy {
retrofit.create(NotificationAPI::class.java)
}
}
}
data class PushNotification(
val data:NotificationData,
val to : String
)
data class NotificationData(
val title : String,
val nickname : String,
val message: String
)
class Constants {
companion object {
const val BASE_URL ="https://fcm.googleapis.com/v1/projects/animal-1ccca/messages:send"
const val SERVER_KEY="Bearer ya29.a0AbVbY6PkbZnMpQxSJk7faQbX2xlj5qu6N6qFzEm-9WFHlntC2HsUIxHZZAgPHj0-ykG-I0qC-A44liOwkeKUU0VrCXq7mGSBJ28IozpNp53PIjhATJPMajS8BCxfjhez0aGaxOigxZirMko7qfkIH7gWehFi5MRSaCgYKAbsSARISFQFWKvPlJoLvCSfEd1HoIeU9sjX-vQ0167"/*"MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCy3I59SnrCETzw\\n2a7mFHhIs7AyGmuUnXzih2sHLhwyrXZSFIGBhWd8Es0YYl70+Znbm47UIKV0ULmt\\nbH84+HBoLIvFTbmGiPv7D8MIhGg43dChEnlNjW8TN4HSnsWdjR93J4ynnX+n/wRy\\nw5d5v+dZ7QiIhTrgrH/mmxSS6V6d9ZnWsvsZhNrpLR0YxGtKM4lq4a64hm2oWS/l\\nIoLjivfnoSsqIDM8mSqGa4M/qD5DzNHFzr4e6HNs1oxCP6ZLFnm8Sy5UxUBj8QjQ\\nohc5rslcMaGIeQcehRUt2A4aASb2Zih8fvOEzgA9XZ0rZEio+mlUS8dSmAzsC9p3\\njWUvOtzHAgMBAAECggEAAvv+HqYO/Uz3VNd0/R7LUP86ieN59w1Xp5n11bVVwBy3\\n1C/GZ2hX7TCNHoKJrhG6GPlz/SMcT6AHMRcV2lf+3CYeIOkmltGTTsGZEfvPl19Q\\nG1fpETuyZkIvVtnSV0ojA8RzqtpMZnuxUc7kqKHklNIJKen7LQOD0M+2nKrrKryG\\nqJ7HT7ppqWdZQ+C2MTV/sa2CWgGeU8D85bnc5B9nPhXtfD8i2jy2x9C2bdNNRQtX\\n4E6ZYRizUBOsXVJEVn48rOdU9KavwWK3eTd769gjcLudBsdtRSSgMZvvNdVvFY4a\\n8HR7AYPP2c/a4s0TZM51PrElgP/0aZ9/jh+AiTd/YQKBgQDvSGGwB2Q2AYjTimKV\\nHBZTMkCOeAqIYtCyjzgwWOwdCJkcEPFLTJUYv8G9kWJK6dPIe4E7uWJ+0H1Yk6Nj\\nvQZ4nU1E1en/EiuSmarn+83g81ohPwIsRB+AP6XdkzCnvRtgfbeKYjLiL7vbLa6R\\n4ElXCXogKwYkx90Y/11vWZZnJwKBgQC/W4e9bqpxrXZ6qpkSA5QLsFRUsGVXyBfY\\n0qKoOrhJm69QfdKGsboWGagxetT4TcXI3+e+ol+VJU5yTtQO32YAJtU1s9lndmqK\\n8vdi5z5eUHtRX3tKn+S99j4r5hBPs7AJEFskxqShXD6uwedMwmfIZS6MjHs39HHn\\nXfQbl5hhYQKBgHxgAi7uWJ9dwtI6Hy3kUJJkD3w+VzM3McVufkVbIzegLX2SLOn3\\n35PisICpng7UZbnSwITbwp+qHU06SHZiXYe6M9yw2BU2S6HC8Dvu/b+Mnm+jgayi\\nqEEQVFXM2UCHIkDQd+OdUVeSejHeF9xJWbW8/lbUJjheDsWcjuN/DJeHAoGATNIs\\nDkqNNpHSzLAMP4UcPA0P7efa54C2wh7dmffo3/QWT5QTnmtfL1whf6u2L/DZBCmP\\nWaLKCJAvjAhFbasVwd3VHngTQUvyvdGIqzX2fdqFh0dzsaO7Kt/eWbVEuxqCA0GD\\ntaHhmb30lCfX+aLaE0M7isUi+nWx/JZlV2ZmkEECgYAvOMNPuFcZG4lNIdPvlsPt\\nDpX6Yw7eCSfBDwDwqg/eJ2P9kJ1PFgaILFL+4LjiresVMgCSN49uTj0WfFzF9foC\\nLfLmAmur/goFrZwdnWhfcQKC/9jUPVvx36IsdCNe9Bak22VZ+W7+qgIZd1dTfbLQ\\nFSOajmOX1y0/UoyEk9YD1A==" +
"k+J1E0DFYOyaN5DUY7Db3g=="*/
const val CONTENT_TYPE ="application/json"
}
}