Skip to content

Commit e033580

Browse files
authored
Fix #1348 channel_convert_to_public message events (#1388)
1 parent 83b8e1b commit e033580

File tree

5 files changed

+119
-1
lines changed

5 files changed

+119
-1
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.slack.api.model.event;
2+
3+
import lombok.Data;
4+
5+
/**
6+
* https://api.slack.com/events/message/channel_convert_to_public
7+
*/
8+
@Data
9+
public class MessageChannelConvertToPublicEvent implements Event {
10+
11+
public static final String TYPE_NAME = "message";
12+
public static final String SUBTYPE_NAME = "channel_convert_to_public";
13+
14+
private final String type = TYPE_NAME;
15+
private final String subtype = SUBTYPE_NAME;
16+
17+
private String user;
18+
private String text;
19+
private String channel;
20+
private String ts;
21+
private String eventTs;
22+
private String channelType; // "channel"
23+
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package test_locally.api.model.event;
2+
3+
import com.slack.api.model.event.MessageChannelConvertToPublicEvent;
4+
import org.junit.Test;
5+
import test_locally.unit.GsonFactory;
6+
7+
import static org.hamcrest.CoreMatchers.is;
8+
import static org.hamcrest.MatcherAssert.assertThat;
9+
10+
public class MessageChannelConvertToPublicEventTest {
11+
12+
@Test
13+
public void typeName() {
14+
assertThat(MessageChannelConvertToPublicEvent.TYPE_NAME, is("message"));
15+
assertThat(MessageChannelConvertToPublicEvent.SUBTYPE_NAME, is("channel_convert_to_public"));
16+
}
17+
18+
@Test
19+
public void deserialize_simple() {
20+
String json = "{\n" +
21+
" \"subtype\": \"channel_convert_to_public\",\n" +
22+
" \"user\": \"W013QGS7BPF\",\n" +
23+
" \"text\": \"made this channel *public*. Any member in this workspace can see and join it.\",\n" +
24+
" \"type\": \"message\",\n" +
25+
" \"ts\": \"1728976211.166339\",\n" +
26+
" \"channel\": \"C07RP9QHR2S\",\n" +
27+
" \"event_ts\": \"1728976211.166339\",\n" +
28+
" \"channel_type\": \"channel\"\n" +
29+
"}";
30+
MessageChannelConvertToPublicEvent event = GsonFactory.createSnakeCase(true, true).fromJson(json, MessageChannelConvertToPublicEvent.class);
31+
assertThat(event.getType(), is("message"));
32+
assertThat(event.getSubtype(), is("channel_convert_to_public"));
33+
assertThat(event.getUser(), is("W013QGS7BPF"));
34+
}
35+
36+
@Test
37+
public void deserialize_api_document() {
38+
String json = "{\n" +
39+
" \"type\": \"message\",\n" +
40+
" \"subtype\": \"channel_convert_to_public\",\n" +
41+
" \"ts\": \"1723680078.026719\",\n" +
42+
" \"text\": \"Made this channel public. Any member in this workspace can see and join it.\",\n" +
43+
" \"user\": \"U123ABC456\",\n" +
44+
" \"channel\": \"C123ABC456\",\n" +
45+
" \"event_ts\": \"1614215651.001300\",\n" +
46+
" \"channel_type\": \"channel\"\n" +
47+
"}";
48+
MessageChannelConvertToPublicEvent event = GsonFactory.createSnakeCase(true, true).fromJson(json, MessageChannelConvertToPublicEvent.class);
49+
assertThat(event.getType(), is("message"));
50+
assertThat(event.getSubtype(), is("channel_convert_to_public"));
51+
assertThat(event.getUser(), is("U123ABC456"));
52+
}
53+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.slack.api.app_backend.events.handler;
2+
3+
import com.slack.api.app_backend.events.EventHandler;
4+
import com.slack.api.app_backend.events.payload.MessageChannelConvertToPublicPayload;
5+
import com.slack.api.model.event.MessageChannelConvertToPublicEvent;
6+
7+
public abstract class MessageChannelConvertToPublicHandler extends EventHandler<MessageChannelConvertToPublicPayload> {
8+
9+
@Override
10+
public String getEventType() {
11+
return MessageChannelConvertToPublicEvent.TYPE_NAME;
12+
}
13+
14+
@Override
15+
public String getEventSubtype() {
16+
return MessageChannelConvertToPublicEvent.SUBTYPE_NAME;
17+
}
18+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.slack.api.app_backend.events.payload;
2+
3+
import com.slack.api.model.event.MessageChannelConvertToPublicEvent;
4+
import lombok.Data;
5+
6+
import java.util.List;
7+
8+
@Data
9+
public class MessageChannelConvertToPublicPayload implements EventsApiPayload<MessageChannelConvertToPublicEvent> {
10+
11+
private String token;
12+
private String enterpriseId;
13+
private String teamId;
14+
private String apiAppId;
15+
private String type;
16+
private List<String> authedUsers;
17+
private List<String> authedTeams;
18+
private List<Authorization> authorizations;
19+
private boolean isExtSharedChannel;
20+
private String eventId;
21+
private Integer eventTime;
22+
private String eventContext;
23+
24+
private MessageChannelConvertToPublicEvent event;
25+
}

slack-app-backend/src/main/java/com/slack/api/app_backend/events/payload/SharedChannelInviteReceivedPayload.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.slack.api.app_backend.events.payload;
22

33
import com.slack.api.model.event.SharedChannelInviteReceivedEvent;
4-
import com.slack.api.model.event.TeamJoinEvent;
54
import lombok.Data;
65

76
import java.util.List;

0 commit comments

Comments
 (0)