77import androidx .annotation .NonNull ;
88import androidx .annotation .Nullable ;
99
10- import com .facebook .react .bridge .Arguments ;
1110import com .facebook .react .bridge .Promise ;
1211import com .facebook .react .bridge .ReactApplicationContext ;
1312import com .facebook .react .bridge .ReactContextBaseJavaModule ;
1413import com .facebook .react .bridge .ReactMethod ;
1514import com .facebook .react .bridge .ReadableArray ;
1615import com .facebook .react .bridge .ReadableMap ;
1716import com .facebook .react .module .annotations .ReactModule ;
18- import com .facebook .react .bridge .WritableMap ;
19- import com .facebook .react .bridge .WritableArray ;
2017import com .google .firebase .messaging .RemoteMessage ;
2118
2219import org .jetbrains .annotations .NotNull ;
2724import io .intercom .android .sdk .Intercom ;
2825import io .intercom .android .sdk .UserAttributes ;
2926import io .intercom .android .sdk .api .ReactNativeHeaderInterceptor ;
27+ import io .intercom .android .sdk .helpcenter .api .CollectionContentRequestCallback ;
3028import io .intercom .android .sdk .helpcenter .api .CollectionRequestCallback ;
29+ import io .intercom .android .sdk .helpcenter .api .HelpCenterArticleSearchResult ;
30+ import io .intercom .android .sdk .helpcenter .api .SearchRequestCallback ;
3131import io .intercom .android .sdk .helpcenter .collections .HelpCenterCollection ;
32+ import io .intercom .android .sdk .helpcenter .sections .HelpCenterCollectionContent ;
3233import io .intercom .android .sdk .identity .Registration ;
3334import io .intercom .android .sdk .push .IntercomPushClient ;
3435
@@ -303,28 +304,19 @@ public void fetchHelpCenterCollections(Promise promise) {
303304 CollectionRequestCallback collectionRequestCallback = new CollectionRequestCallback () {
304305 @ Override
305306 public void onComplete (@ NotNull List <HelpCenterCollection > list ) {
306- HelpCenterCollection [] returnArray = new HelpCenterCollection [list .size ()];
307-
308- returnArray = list .toArray (returnArray );
309- WritableArray promiseArray = Arguments .createArray ();
310- for (HelpCenterCollection helpCenterCollection : returnArray ) {
311- WritableMap item = Arguments .createMap ();
312- item .putString ("id" , helpCenterCollection .getId ());
313- item .putString ("title" , helpCenterCollection .getTitle ());
314- item .putString ("summary" , helpCenterCollection .getSummary ());
315- promiseArray .pushMap (item );
316- }
317- promise .resolve (promiseArray );
307+ promise .resolve (IntercomHelpCenterHelpers .parseHelpCenterCollectionsToReadableArray (list ));
318308 }
319309
320310 @ Override
321311 public void onError (int i ) {
312+ Log .e (NAME , "fetchHelpCenterCollections error" );
322313 promise .reject (String .valueOf (i ), "fetchHelpCenterCollections error" );
323314 }
324315
325316 @ Override
326317 public void onFailure () {
327- promise .reject ("901" , "fetchHelpCenterCollections faliure" );
318+ Log .e (NAME , "fetchHelpCenterCollections failure" );
319+ promise .reject (IntercomErrorCodes .FETCH_HELP_CENTER_COLLECTIONS , "fetchHelpCenterCollections failure" );
328320 }
329321 };
330322
@@ -333,10 +325,75 @@ public void onFailure() {
333325 } catch (Exception err ) {
334326 Log .e (NAME , "fetchHelpCenterCollections error:" );
335327 Log .e (NAME , err .toString ());
336- promise .reject (IntercomErrorCodes .DISPLAY_HELP_CENTER_COLLECTIONS , err .toString ());
328+ promise .reject (IntercomErrorCodes .FETCH_HELP_CENTER_COLLECTIONS , err .toString ());
329+ }
330+ }
331+
332+ @ ReactMethod
333+ public void fetchHelpCenterCollection (String collectionId , Promise promise ) {
334+ try {
335+
336+ CollectionContentRequestCallback collectionContentCallback = new CollectionContentRequestCallback () {
337+ @ Override
338+ public void onComplete (@ NotNull HelpCenterCollectionContent helpCenterCollectionContent ) {
339+ promise .resolve (IntercomHelpCenterHelpers .parseHelpCenterCollectionsContentToReadableMap (helpCenterCollectionContent ));
340+ }
341+
342+ @ Override
343+ public void onError (int i ) {
344+ Log .e (NAME , "fetchHelpCenterCollection error" );
345+ promise .reject (String .valueOf (i ), "fetchHelpCenterCollection error" );
346+ }
347+
348+ @ Override
349+ public void onFailure () {
350+ Log .e (NAME , "fetchHelpCenterCollection failure" );
351+ promise .reject (IntercomErrorCodes .FETCH_HELP_CENTER_COLLECTION , "fetchHelpCenterCollection failure" );
352+ }
353+ };
354+
355+ Intercom .client ().fetchHelpCenterCollection (collectionId , collectionContentCallback );
356+
357+ } catch (Exception err ) {
358+ Log .e (NAME , "fetchHelpCenterCollection error:" );
359+ Log .e (NAME , err .toString ());
360+ promise .reject (IntercomErrorCodes .FETCH_HELP_CENTER_COLLECTION , err .toString ());
337361 }
338362 }
339363
364+ @ ReactMethod
365+ public void searchHelpCenter (String searchTerm , Promise promise ) {
366+ try {
367+
368+ SearchRequestCallback collectionContentCallback = new SearchRequestCallback () {
369+ @ Override
370+ public void onComplete (@ NotNull List <HelpCenterArticleSearchResult > helpCenterArticleSearchResult ) {
371+ promise .resolve (IntercomHelpCenterHelpers .parseHelpCenterArticleSearchToReadableArray (helpCenterArticleSearchResult ));
372+ }
373+
374+ @ Override
375+ public void onError (int i ) {
376+ Log .e (NAME , "searchHelpCenter error" );
377+ promise .reject (String .valueOf (i ), "searchHelpCenter error" );
378+ }
379+
380+ @ Override
381+ public void onFailure () {
382+ Log .e (NAME , "searchHelpCenter failure" );
383+ promise .reject (IntercomErrorCodes .SEARCH_HELP_CENTER , "searchHelpCenter failure" );
384+ }
385+ };
386+
387+ Intercom .client ().searchHelpCenter (searchTerm , collectionContentCallback );
388+
389+ } catch (Exception err ) {
390+ Log .e (NAME , "searchHelpCenter error:" );
391+ Log .e (NAME , err .toString ());
392+ promise .reject (IntercomErrorCodes .SEARCH_HELP_CENTER , err .toString ());
393+ }
394+ }
395+
396+
340397 @ ReactMethod
341398 public void displayCarousel (String carouselId , Promise promise ) {
342399 try {
0 commit comments