Skip to content

Commit 22058ed

Browse files
committed
Support Create Multireddit api method
1 parent 6957b26 commit 22058ed

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

src/main/java/org/quantumbadger/redreader/common/Constants.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,8 @@ public static final class Reddit {
149149
public static final String PATH_MULTIREDDITS_MINE = "/api/multi/mine.json";
150150
public static final String PATH_COMMENTS = "/comments/";
151151
public static final String PATH_ME = "/api/v1/me";
152+
public static final String PATH_MULTIREDDIT = "/api/multi";
153+
152154

153155
public static String getScheme() {
154156
return SCHEME_HTTPS;

src/main/java/org/quantumbadger/redreader/reddit/RedditAPI.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
import androidx.annotation.Nullable;
2626
import androidx.appcompat.app.AppCompatActivity;
2727

28+
import org.json.JSONArray;
29+
import org.json.JSONObject;
2830
import org.quantumbadger.redreader.account.RedditAccount;
2931
import org.quantumbadger.redreader.activities.BugReportActivity;
3032
import org.quantumbadger.redreader.cache.CacheManager;
@@ -65,6 +67,7 @@
6567
import java.util.ArrayList;
6668
import java.util.Collection;
6769
import java.util.Collections;
70+
import java.util.HashMap;
6871
import java.util.LinkedList;
6972
import java.util.List;
7073
import java.util.Map;
@@ -959,6 +962,35 @@ public void onFailure(@NonNull final RRError error) {
959962
));
960963
}
961964

965+
public static void createMultireddit(
966+
final CacheManager cm,
967+
final APIResponseHandler.ActionResponseHandler handler,
968+
final RedditAccount user,
969+
final String multiredditName,
970+
final List<String> subredditNames,
971+
final Context context) {
972+
973+
final Uri.Builder builder = Constants.Reddit.getUriBuilder(
974+
Constants.Reddit.PATH_MULTIREDDIT)
975+
.appendPath("user")
976+
.appendPath(user.username)
977+
.appendPath("m")
978+
.appendPath(multiredditName);
979+
980+
final Map<String, String> jsonData = new HashMap<>();
981+
jsonData.put("display_name", multiredditName);
982+
jsonData.put("visibility", "private");
983+
jsonData.put("subreddits", new JSONArray(subredditNames).toString());
984+
985+
cm.makeRequest(createPostRequest(
986+
UriString.from(builder.build()),
987+
user,
988+
new ArrayList<>(Collections.singleton(
989+
new PostField("model", new JSONObject(jsonData).toString()))),
990+
context,
991+
new GenericResponseHandler(handler)));
992+
}
993+
962994
@Nullable
963995
private static APIResponseHandler.APIFailureType findFailureType(final JsonValue response) {
964996

0 commit comments

Comments
 (0)