Skip to content

Commit dd4f2ef

Browse files
thewheatchoran
authored andcommitted
Update webhook topics and add ping (#245)
1 parent 1a3bced commit dd4f2ef

File tree

2 files changed

+66
-3
lines changed

2 files changed

+66
-3
lines changed

README.md

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -613,13 +613,37 @@ Subscription subscription = new Subscription();
613613
subscription.setUrl(new URI("https://example.org/webhooks/1"));
614614
subscription.addTopic(Subscription.Topic.USER_CREATED);
615615
subscription.addTopic(Subscription.Topic.USER_TAG_CREATED);
616-
subscription.addTopic(Subscription.Topic.COMPANY);
617-
subscription.setAppID("pi3243fa");
618616
Subscription.create(subscription);
619617

618+
// create a subscribtion and subscribe to events
619+
Subscription subscription = new Subscription();
620+
subscription.addTopic(Subscription.Topic.EVENT_CREATED);
621+
Map<String,ArrayList<String>> metadata = new HashMap<String, ArrayList<String>>();
622+
ArrayList<String> events = new ArrayList<String>(Arrays.asList("cart"));
623+
metadata.put("event_names", events);
624+
subscription.setMetadata(metadata);
625+
subscription.setMetadata(metadata);
626+
Subscription.create(subscription);
627+
628+
// update a subscription
629+
Subscription subscription = Subscription.find("nsub_60ca7690-4020-11e4-b789-4961958e51bd");
630+
subscription.addTopic(Subscription.Topic.COMPANY_CREATED);
631+
Subscription updatedSubscription = Subscription.update(subscription);
632+
633+
// delete a subscription
634+
Subscription subscription = new Subscription();
635+
subscription.setId("nsub_83793feb-8394-4cb6-91d6-68ef4dd08a8e");
636+
Subscription deletedSubscription = Subscription.delete(subscription);
637+
620638
// find a subscription
621639
subscription = Subscription.find("nsub_60ca7690-4020-11e4-b789-4961958e51bd");
622640

641+
// ping a subscription by ID
642+
Subscription.ping("nsub_60ca7690-4020-11e4-b789-4961958e51bd");
643+
// ping a subscription by subscription object
644+
subscription = Subscription.find("nsub_60ca7690-4020-11e4-b789-4961958e51bd");
645+
Subscription.ping(subscription);
646+
623647
// list subscriptions
624648
SubscriptionCollection list = Subscription.list();
625649
while(list.hasNext()) {

intercom-java/src/main/java/io/intercom/api/Subscription.java

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,15 @@ public static SubscriptionCollection list() throws InvalidException, Authorizati
4242
return DataResource.list(SENTINEL, "subscriptions", SubscriptionCollection.class);
4343
}
4444

45+
public static Subscription ping(String id) throws InvalidException, AuthorizationException {
46+
final HttpClient resource = new HttpClient(UriBuilder.newBuilder().path("subscriptions").path(id).path("ping").build());
47+
return resource.post(Subscription.class, null);
48+
}
49+
50+
public static Subscription ping(Subscription subscription) throws InvalidException, AuthorizationException {
51+
return ping(subscription.getId());
52+
}
53+
4554
public static NotificationCollection sentFeed(String id) throws InvalidException, AuthorizationException {
4655
final URI feedURI = UriBuilder.newBuilder()
4756
.path("subscriptions")
@@ -72,8 +81,16 @@ public static class Topic {
7281

7382
private final static String CONVERSATION_NAME = "conversation";
7483

84+
private final static String CONVERSATION_PART_NAME = "conversation_part";
85+
7586
private static final String USER_NAME = "user";
7687

88+
private static final String CONTACT_NAME = "contact";
89+
90+
private static final String VISITOR_NAME = "visitor";
91+
92+
private static final String EVENT_NAME = "event";
93+
7794
public static final Topic PING = new Topic("ping", SUBTYPE_WILDCARD);
7895

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

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

95-
public static final Topic CONVERSATION_ADMIN_OPEN = new Topic(CONVERSATION_NAME, "admin.open");
112+
public static final Topic CONVERSATION_ADMIN_OPEN = new Topic(CONVERSATION_NAME, "admin.opened");
96113

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

116+
public static final Topic CONVERSATION_ADMIN_SINGLE_CREATED = new Topic(CONVERSATION_NAME, "admin.single.created");
117+
118+
public static final Topic CONVERSATION_PART_TAG_CREATED= new Topic(CONVERSATION_PART_NAME, "tag.created");
119+
99120
public static final Topic USER = new Topic(USER_NAME, SUBTYPE_WILDCARD);
100121

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

124+
public static final Topic USER_DELETED = new Topic(USER_NAME, "deleted");
125+
126+
public static final Topic USER_EMAIL_UPDATED = new Topic(USER_NAME, "email.updated");
127+
103128
public static final Topic USER_UNSUBSCRIBED = new Topic(USER_NAME, "unsubscribed");
104129

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

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

134+
public static final Topic CONTACT = new Topic(CONTACT_NAME, SUBTYPE_WILDCARD);
135+
136+
public static final Topic CONTACT_ADDED_EMAIL = new Topic(CONTACT_NAME, "added_email");
137+
138+
public static final Topic CONTACT_CREATED= new Topic(CONTACT_NAME, "created");
139+
140+
public static final Topic CONTACT_SIGNED_UP = new Topic(CONTACT_NAME, "signed_up");
141+
142+
public static final Topic VISITOR = new Topic(VISITOR_NAME, SUBTYPE_WILDCARD);
143+
144+
public static final Topic VISITOR_SIGNED_UP = new Topic(VISITOR_NAME, "signed_up");
145+
146+
public static final Topic EVENT_CREATED = new Topic(EVENT_NAME, "created");
147+
109148
public static final Topic ALL_TOPIC = valueOf("all");
110149

111150
public static Topic valueOf(String type) throws IllegalArgumentException {

0 commit comments

Comments
 (0)