feat: Add notifications api service

This commit is contained in:
Peter Vacho 2025-01-03 17:27:57 +01:00
parent 5cd48cfed6
commit 28211abe93
Signed by: school
GPG key ID: 8CFC3837052871B4
3 changed files with 35 additions and 0 deletions

View file

@ -16,6 +16,7 @@ import com.p_vacho.neat_calendar.api.converters.ColorConverter
import com.p_vacho.neat_calendar.api.services.CategoryService
import com.p_vacho.neat_calendar.api.services.EventsService
import com.p_vacho.neat_calendar.api.services.InvitationsService
import com.p_vacho.neat_calendar.api.services.NotificationService
import com.p_vacho.neat_calendar.api.services.UsersService
object RetrofitClient {
@ -45,6 +46,9 @@ object RetrofitClient {
val usersService: UsersService
get() = retrofitClient!!.create(UsersService::class.java)
val notificationsService: NotificationService
get() = retrofitClient!!.create(NotificationService::class.java)
fun initialize(context: Context) {
appContext = context
baseUrl = getBaseUrl()

View file

@ -0,0 +1,14 @@
package com.p_vacho.neat_calendar.api.models
import java.time.OffsetDateTime
data class NotificationResponse(
val id: String,
val user_id: String,
val event_type: String, // "reminder" / "invitation"
val message: String,
val data: String,
val read: Boolean,
val created_at: OffsetDateTime,
val read_at: OffsetDateTime?,
)

View file

@ -0,0 +1,17 @@
package com.p_vacho.neat_calendar.api.services
import com.p_vacho.neat_calendar.api.models.NotificationResponse
import retrofit2.http.GET
import retrofit2.http.POST
import retrofit2.http.Path
interface NotificationService {
@GET("users/{user_id}/notifications")
suspend fun getUserNotifications(@Path("user_id") userId: String): List<NotificationResponse>
@GET("notifications/{notification_id}")
suspend fun getNotificationId(@Path("notification_id") notificationId: String): NotificationResponse
@POST("notifications/{notification_id}/read")
suspend fun markNotificationRead(@Path("notification_id") notificationId: String): NotificationResponse
}