Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 26 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -613,13 +613,37 @@ Subscription subscription = new Subscription();
subscription.setUrl(new URI("https://example.org/webhooks/1"));
subscription.addTopic(Subscription.Topic.USER_CREATED);
subscription.addTopic(Subscription.Topic.USER_TAG_CREATED);
subscription.addTopic(Subscription.Topic.COMPANY);
subscription.setAppID("pi3243fa");
Subscription.create(subscription);

// create a subscribtion and subscribe to events
Subscription subscription = new Subscription();
subscription.addTopic(Subscription.Topic.EVENT_CREATED);
Map<String,ArrayList<String>> metadata = new HashMap<String, ArrayList<String>>();
ArrayList<String> events = new ArrayList<String>(Arrays.asList("cart"));
metadata.put("event_names", events);
subscription.setMetadata(metadata);
subscription.setMetadata(metadata);
Subscription.create(subscription);

// update a subscription
Subscription subscription = Subscription.find("nsub_60ca7690-4020-11e4-b789-4961958e51bd");
subscription.addTopic(Subscription.Topic.COMPANY_CREATED);
Subscription updatedSubscription = Subscription.update(subscription);

// delete a subscription
Subscription subscription = new Subscription();
subscription.setId("nsub_83793feb-8394-4cb6-91d6-68ef4dd08a8e");
Subscription deletedSubscription = Subscription.delete(subscription);

// find a subscription
subscription = Subscription.find("nsub_60ca7690-4020-11e4-b789-4961958e51bd");

// ping a subscription by ID
Subscription.ping("nsub_60ca7690-4020-11e4-b789-4961958e51bd");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might be worth passing in a subscription object here rather than the ID itself. e.g
Subscription.delete(subscription) or
Subscription.update(subscription)
That way they could just use the return object after creating it

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added support for Subscription.ping(subscription) 👍

// ping a subscription by subscription object
subscription = Subscription.find("nsub_60ca7690-4020-11e4-b789-4961958e51bd");
Subscription.ping(subscription);

// list subscriptions
SubscriptionCollection list = Subscription.list();
while(list.hasNext()) {
Expand Down
41 changes: 40 additions & 1 deletion intercom-java/src/main/java/io/intercom/api/Subscription.java
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,15 @@ public static SubscriptionCollection list() throws InvalidException, Authorizati
return DataResource.list(SENTINEL, "subscriptions", SubscriptionCollection.class);
}

public static Subscription ping(String id) throws InvalidException, AuthorizationException {
final HttpClient resource = new HttpClient(UriBuilder.newBuilder().path("subscriptions").path(id).path("ping").build());
return resource.post(Subscription.class, null);
}

public static Subscription ping(Subscription subscription) throws InvalidException, AuthorizationException {
return ping(subscription.getId());
}

public static NotificationCollection sentFeed(String id) throws InvalidException, AuthorizationException {
final URI feedURI = UriBuilder.newBuilder()
.path("subscriptions")
Expand Down Expand Up @@ -72,8 +81,16 @@ public static class Topic {

private final static String CONVERSATION_NAME = "conversation";

private final static String CONVERSATION_PART_NAME = "conversation_part";

private static final String USER_NAME = "user";

private static final String CONTACT_NAME = "contact";

private static final String VISITOR_NAME = "visitor";

private static final String EVENT_NAME = "event";

public static final Topic PING = new Topic("ping", SUBTYPE_WILDCARD);

public static final Topic COMPANY = new Topic(COMPANY_NAME, SUBTYPE_WILDCARD);
Expand All @@ -92,20 +109,42 @@ public static class Topic {

public static final Topic CONVERSATION_ADMIN_CLOSED = new Topic(CONVERSATION_NAME, "admin.closed");

public static final Topic CONVERSATION_ADMIN_OPEN = new Topic(CONVERSATION_NAME, "admin.open");
public static final Topic CONVERSATION_ADMIN_OPEN = new Topic(CONVERSATION_NAME, "admin.opened");

public static final Topic CONVERSATION_ADMIN_NOTED = new Topic(CONVERSATION_NAME, "admin.noted");

public static final Topic CONVERSATION_ADMIN_SINGLE_CREATED = new Topic(CONVERSATION_NAME, "admin.single.created");

public static final Topic CONVERSATION_PART_TAG_CREATED= new Topic(CONVERSATION_PART_NAME, "tag.created");

public static final Topic USER = new Topic(USER_NAME, SUBTYPE_WILDCARD);

public static final Topic USER_CREATED = new Topic(USER_NAME, "created");

public static final Topic USER_DELETED = new Topic(USER_NAME, "deleted");

public static final Topic USER_EMAIL_UPDATED = new Topic(USER_NAME, "email.updated");

public static final Topic USER_UNSUBSCRIBED = new Topic(USER_NAME, "unsubscribed");

public static final Topic USER_TAG_CREATED = new Topic(USER_NAME, "tag.created");

public static final Topic USER_TAG_DELETED = new Topic(USER_NAME, "tag.deleted");

public static final Topic CONTACT = new Topic(CONTACT_NAME, SUBTYPE_WILDCARD);

public static final Topic CONTACT_ADDED_EMAIL = new Topic(CONTACT_NAME, "added_email");

public static final Topic CONTACT_CREATED= new Topic(CONTACT_NAME, "created");

public static final Topic CONTACT_SIGNED_UP = new Topic(CONTACT_NAME, "signed_up");

public static final Topic VISITOR = new Topic(VISITOR_NAME, SUBTYPE_WILDCARD);

public static final Topic VISITOR_SIGNED_UP = new Topic(VISITOR_NAME, "signed_up");

public static final Topic EVENT_CREATED = new Topic(EVENT_NAME, "created");

public static final Topic ALL_TOPIC = valueOf("all");

public static Topic valueOf(String type) throws IllegalArgumentException {
Expand Down