Skip to content
Draft
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.slack.api.model.event;

import lombok.Data;

/**
* Slack sends the user_connection_status_requested event when it has no connection status for a user.
* Answer it with the apps.user.connection.update API method.
* <p>
* https://docs.slack.dev/reference/events/user_connection_status_requested
*/
@Data
public class UserConnectionStatusRequestedEvent implements Event {

public static final String TYPE_NAME = "user_connection_status_requested";

private final String type = TYPE_NAME;
private String user;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package test_locally.api.model.event;

import com.google.gson.Gson;
import com.slack.api.model.event.UserConnectionStatusRequestedEvent;
import org.junit.Test;
import test_locally.unit.GsonFactory;

import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;

public class UserConnectionStatusRequestedEventTest {

@Test
public void typeName() {
assertThat(UserConnectionStatusRequestedEvent.TYPE_NAME, is("user_connection_status_requested"));
}

@Test
public void deserialize() {
String json = "{\"type\":\"user_connection_status_requested\",\"user\":\"U123ABC456\"}";
UserConnectionStatusRequestedEvent event =
GsonFactory.createSnakeCase().fromJson(json, UserConnectionStatusRequestedEvent.class);
assertThat(event.getType(), is("user_connection_status_requested"));
assertThat(event.getUser(), is("U123ABC456"));
}

@Test
public void serialize() {
Gson gson = GsonFactory.createSnakeCase();
UserConnectionStatusRequestedEvent event = new UserConnectionStatusRequestedEvent();
event.setUser("U123ABC456");
String generatedJson = gson.toJson(event);
String expectedJson = "{\"type\":\"user_connection_status_requested\",\"user\":\"U123ABC456\"}";
assertThat(generatedJson, is(expectedJson));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.slack.api.app_backend.events.handler;

import com.slack.api.app_backend.events.EventHandler;
import com.slack.api.app_backend.events.payload.UserConnectionStatusRequestedPayload;
import com.slack.api.model.event.UserConnectionStatusRequestedEvent;

public abstract class UserConnectionStatusRequestedHandler extends EventHandler<UserConnectionStatusRequestedPayload> {

@Override
public String getEventType() {
return UserConnectionStatusRequestedEvent.TYPE_NAME;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package com.slack.api.app_backend.events.payload;

import com.slack.api.model.event.UserConnectionStatusRequestedEvent;
import lombok.Data;

import java.util.List;

@Data
public class UserConnectionStatusRequestedPayload implements EventsApiPayload<UserConnectionStatusRequestedEvent> {

private String token;
private String enterpriseId;
private String teamId;
private String apiAppId;
private String type;
private List<String> authedUsers;
private List<String> authedTeams;
private List<Authorization> authorizations;
private boolean isExtSharedChannel;
private String eventId;
private Integer eventTime;
private String eventContext;

private UserConnectionStatusRequestedEvent event;
}
Loading