mirror of
https://github.com/k0shk0sh/FastHub.git
synced 2025-12-08 19:05:54 +00:00
67 lines
2.1 KiB
Java
67 lines
2.1 KiB
Java
package com.fastaccess.data.service;
|
|
|
|
|
|
import androidx.annotation.NonNull;
|
|
import androidx.annotation.StringDef;
|
|
|
|
import com.fastaccess.data.dao.NotificationSubscriptionBodyModel;
|
|
import com.fastaccess.data.dao.Pageable;
|
|
import com.fastaccess.data.dao.RepoSubscriptionModel;
|
|
import com.fastaccess.data.dao.model.Comment;
|
|
import com.fastaccess.data.dao.model.Notification;
|
|
|
|
import java.lang.annotation.Retention;
|
|
import java.lang.annotation.RetentionPolicy;
|
|
|
|
import io.reactivex.Observable;
|
|
import retrofit2.Response;
|
|
import retrofit2.http.Body;
|
|
import retrofit2.http.DELETE;
|
|
import retrofit2.http.GET;
|
|
import retrofit2.http.PATCH;
|
|
import retrofit2.http.PUT;
|
|
import retrofit2.http.Path;
|
|
import retrofit2.http.Query;
|
|
import retrofit2.http.Url;
|
|
|
|
/**
|
|
* Created by Kosh on 19 Feb 2017, 6:34 PM
|
|
*/
|
|
|
|
public interface NotificationService {
|
|
String SUBSCRIPTION_URL = "https://github.com/notifications/thread";
|
|
|
|
String ISSUE_THREAD_CLASS = "Issue";
|
|
String PULL_REQUEST_THREAD_CLASS = "PullRequest";
|
|
String SUBSCRIBE = "subscribe";
|
|
String MUTE = "mute";
|
|
String UTF8 = "✓";
|
|
|
|
@StringDef({
|
|
ISSUE_THREAD_CLASS,
|
|
PULL_REQUEST_THREAD_CLASS
|
|
})
|
|
@Retention(RetentionPolicy.SOURCE) @interface ThreadClass {}
|
|
|
|
@StringDef({
|
|
SUBSCRIBE,
|
|
MUTE
|
|
})
|
|
@Retention(RetentionPolicy.SOURCE) @interface ThreadId {}
|
|
|
|
@GET("notifications") Observable<Pageable<Notification>> getNotifications(@Query("since") String date);
|
|
|
|
@GET("notifications?all=true&per_page=200") Observable<Pageable<Notification>> getAllNotifications();
|
|
|
|
@PATCH("notifications/threads/{id}") Observable<Response<Boolean>> markAsRead(@Path("id") String id);
|
|
|
|
@GET() Observable<Comment> getComment(@Url @NonNull String commentUrl);
|
|
|
|
@GET("notifications/threads/{id}/subscription") Observable<RepoSubscriptionModel> isSubscribed(@Path("id") long id);
|
|
|
|
@DELETE("notifications/threads/{id}/subscription") Observable<Response<Boolean>> unSubscribe(@Path("id") long id);
|
|
|
|
@PUT("notifications/threads/{id}/subscription")
|
|
Observable<Response<Boolean>> subscribe(@Path("id") long id, @Body NotificationSubscriptionBodyModel body);
|
|
}
|