Welcome to mirror list, hosted at ThFree Co, Russian Federation.

DeckAPI.java « api « deck « nextcloud « niedermann « it « java « main « src « app - github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 9883608c2691e000f0b9644a6083f00a16da31bf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
package it.niedermann.nextcloud.deck.api;


import java.util.List;

import io.reactivex.Observable;
import it.niedermann.nextcloud.deck.model.AccessControl;
import it.niedermann.nextcloud.deck.model.Attachment;
import it.niedermann.nextcloud.deck.model.Board;
import it.niedermann.nextcloud.deck.model.Card;
import it.niedermann.nextcloud.deck.model.Label;
import it.niedermann.nextcloud.deck.model.Stack;
import it.niedermann.nextcloud.deck.model.full.FullBoard;
import it.niedermann.nextcloud.deck.model.full.FullCard;
import it.niedermann.nextcloud.deck.model.full.FullStack;
import it.niedermann.nextcloud.deck.model.propagation.CardUpdate;
import it.niedermann.nextcloud.deck.model.propagation.Reorder;
import okhttp3.MultipartBody;
import okhttp3.ResponseBody;
import retrofit2.http.Body;
import retrofit2.http.DELETE;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.PUT;
import retrofit2.http.Part;
import retrofit2.http.Path;
import retrofit2.http.Query;

public interface DeckAPI {

    String MODIFIED_SINCE_HEADER = "If-Modified-Since";

    // ### BOARDS
    @POST("boards")
    Observable<FullBoard> createBoard(@Body Board board);

    @GET("boards/{id}")
    Observable<FullBoard> getBoard(@Path("id") long id, @Header(MODIFIED_SINCE_HEADER) String lastSync);

    @PUT("boards/{id}")
    Observable<FullBoard> updateBoard(@Path("id") long id, @Body Board board);

    @DELETE("boards/{id}")
    Observable<Void> deleteBoard(@Path("id") long id);

    @DELETE("boards/{id}/undo_delete")
    Observable<FullBoard> restoreBoard(@Path("id") long id);

    @GET("boards")
    Observable<List<FullBoard>> getBoards(@Query ("details") boolean verbose, @Header(MODIFIED_SINCE_HEADER) String lastSync );


    // ### Stacks
    @POST("boards/{boardId}/stacks")
    Observable<FullStack>  createStack(@Path("boardId") long boardId, @Body Stack stack);

    @PUT("boards/{boardId}/stacks/{stackId}")
    Observable<FullStack> updateStack(@Path("boardId") long boardId, @Path("stackId") long id, @Body Stack stack);

    @DELETE("boards/{boardId}/stacks/{stackId}")
    Observable<Void> deleteStack(@Path("boardId") long boardId, @Path("stackId") long id);

    @GET("boards/{boardId}/stacks/{stackId}")
    Observable<FullStack> getStack(@Path("boardId") long boardId, @Path("stackId") long id, @Header(MODIFIED_SINCE_HEADER) String lastSync);

    @GET("boards/{boardId}/stacks")
    Observable<List<FullStack>> getStacks(@Path("boardId") long boardId, @Header(MODIFIED_SINCE_HEADER) String lastSync);

    @GET("boards/{boardId}/stacks/archived")
    Observable<List<Stack>> getArchivedStacks(@Path("boardId") long boardId, @Header(MODIFIED_SINCE_HEADER) String lastSync);


    // ### Cards
    @POST("boards/{boardId}/stacks/{stackId}/cards")
    Observable<FullCard> createCard(@Path("boardId") long boardId, @Path("stackId") long stackId, @Body Card card);

    @PUT("boards/{boardId}/stacks/{stackId}/cards/{cardId}")
    Observable<FullCard> updateCard(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId, @Body CardUpdate card);

    @FormUrlEncoded
    @PUT("boards/{boardId}/stacks/{stackId}/cards/{cardId}/assignLabel")
    Observable assignLabelToCard(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId, @Field("labelId") long labelId);

    @FormUrlEncoded
    @PUT("boards/{boardId}/stacks/{stackId}/cards/{cardId}/removeLabel")
    Observable unassignLabelFromCard(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId, @Field("labelId") long labelId);

    @FormUrlEncoded
    @PUT("boards/{boardId}/stacks/{stackId}/cards/{cardId}/assignUser")
    Observable<Void> assignUserToCard(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId, @Field("userId") String userUID);

    @FormUrlEncoded
    @PUT("boards/{boardId}/stacks/{stackId}/cards/{cardId}/unassignUser")
    Observable<Void> unassignUserFromCard(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId, @Field("userId")  String userUID);

    @PUT("boards/{boardId}/stacks/{stackId}/cards/{cardId}/reorder")
    Observable<List<FullCard>> moveCard(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId, @Body Reorder reorder);

    @DELETE("boards/{boardId}/stacks/{stackId}/cards/{cardId}")
    Observable<Void> deleteCard(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId);

    @GET("boards/{boardId}/stacks/{stackId}/cards/{cardId}")
    Observable<FullCard> getCard(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId, @Header(MODIFIED_SINCE_HEADER) String lastSync);


    // ### LABELS
    @GET("boards/{boardId}/labels/{labelId}")
    Observable<Label> getLabel(@Path("boardId") long boardId, @Path("labelId") long labelId, @Header(MODIFIED_SINCE_HEADER) String lastSync);

    @PUT("boards/{boardId}/labels/{labelId}")
    Observable<Label> updateLabel(@Path("boardId") long boardId, @Path("labelId") long labelId, @Body Label label);

    @POST("boards/{boardId}/labels")
    Observable<Label> createLabel(@Path("boardId") long boardId, @Body Label label);

    @DELETE("boards/{boardId}/labels/{labelId}")
    Observable<Void> deleteLabel(@Path("boardId") long boardId, @Path("labelId") long labelId);


    // ### ATTACHMENTS
    @GET("boards/{boardId}/stacks/{stackId}/cards/{cardId}/attachments/{attachmentId}")
    Observable<ResponseBody> downloadAttachment(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId, @Path("attachmentId") long attachmentId);

    @GET("boards/{boardId}/stacks/{stackId}/cards/{cardId}/attachments")
    Observable<List<Attachment>> getAttachments(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId);

    @Multipart
    @POST("boards/{boardId}/stacks/{stackId}/cards/{cardId}/attachments?type=deck_file")
    Observable<Attachment> uploadAttachment(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId,  @Part MultipartBody.Part type, @Part MultipartBody.Part attachment);

    @Multipart
    @PUT("boards/{boardId}/stacks/{stackId}/cards/{cardId}/attachments?type=deck_file")
    Observable<Attachment>  updateAttachment(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId, @Path("attachmentId") long attachmentId, @Part MultipartBody.Part type, @Part MultipartBody.Part attachment);

    @DELETE("boards/{boardId}/stacks/{stackId}/cards/{cardId}/attachments/{attachmentId}")
    Observable<Void> deleteAttachment(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId, @Path("attachmentId") long attachmentId);

    @PUT("boards/{boardId}/stacks/{stackId}/cards/{cardId}/attachments/{attachmentId}/restore")
    Observable<Attachment> restoreAttachment(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId, @Path("attachmentId") long attachmentId);

    // ### ACL
    @POST("boards/{boardId}/acl")
    Observable<AccessControl> createAccessControl(@Path("boardId") long boardId, @Body AccessControl acl);

    @PUT("boards/{boardId}/acl/{aclId}")
    Observable<AccessControl> updateAccessControl(@Path("boardId") long boardId, @Path("aclId") long aclId, @Body AccessControl acl);

    @DELETE("boards/{boardId}/acl/{aclId}")
    Observable<Void> deleteAccessControl(@Path("boardId") long boardId, @Path("aclId") long aclId, @Body AccessControl acl);

    // ### COMMENTS

}