@@ -525,4 +525,51 @@ public CompletableFuture<Response> updateUser(Token token, String userID, Data u
525525 throw new StreamException (e );
526526 }
527527 }
528+
529+ public CompletableFuture <Object > deleteActivities (Token token , BatchDeleteActivitiesRequest request ) throws StreamException {
530+ try {
531+ final URL url = deleteActivitiesURL (baseURL );
532+ final byte [] payload = toJSON (request );
533+ io .getstream .core .http .Request httpRequest = buildPost (url , key , token , payload );
534+ return httpClient .execute (httpRequest ).thenApply (response -> null );
535+ } catch (Exception e ) {
536+ throw new StreamException (e );
537+ }
538+ }
539+
540+ public CompletableFuture <Object > deleteReactions (Token token , BatchDeleteReactionsRequest request ) throws StreamException {
541+ try {
542+
543+ final URL url = deleteReactionsURL (baseURL );
544+ final byte [] payload = toJSON (request );
545+ io .getstream .core .http .Request httpRequest = buildPost (url , key , token , payload );
546+
547+ return httpClient .execute (httpRequest ).thenApply (response -> null );
548+ } catch (Exception e ) {
549+ throw new StreamException (e );
550+ }
551+ }
552+
553+ public CompletableFuture <ExportIDsResponse > exportUserActivities (Token token , String userId ) throws StreamException {
554+ if (userId == null || userId .isEmpty ()) {
555+ throw new IllegalArgumentException ("User ID can't be null or empty" );
556+ }
557+
558+ try {
559+ final URL url = buildExportIDsURL (baseURL , userId );
560+ io .getstream .core .http .Request request = buildGet (url , key , token );
561+ return httpClient
562+ .execute (request )
563+ .thenApply (
564+ response -> {
565+ try {
566+ return deserialize (response , ExportIDsResponse .class );
567+ } catch (StreamException | IOException e ) {
568+ throw new CompletionException (e );
569+ }
570+ });
571+ } catch (MalformedURLException | URISyntaxException e ) {
572+ throw new StreamException (e );
573+ }
574+ }
528575}
0 commit comments