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,23 @@
package com.slack.api.model.event;

import lombok.Data;

import java.util.List;

/**
* The user clicked the native stop button while the agent session was processing.
* <p>
* https://docs.slack.dev/reference/events/agent_session_stopped
*/
@Data
public class AgentSessionStoppedEvent implements Event {

public static final String TYPE_NAME = "agent_session_stopped";

private final String type = TYPE_NAME;
private String channel;
private String user;
private String threadTs;
private List<String> streamingMessageTs;
private String eventTs;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.slack.api.model.event;

import lombok.Data;

/**
* The user renamed an agent session.
* <p>
* https://docs.slack.dev/reference/events/agent_session_title_changed
*/
@Data
public class AgentSessionTitleChangedEvent implements Event {

public static final String TYPE_NAME = "agent_session_title_changed";

private final String type = TYPE_NAME;
private String channel;
private String user;
private String teamId;
private String threadTs;
private String title;
private String previousTitle;
private String eventTs;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package test_locally.api.model.event;

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

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

public class AgentSessionStoppedEventTest {

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

@Test
public void deserialize() {
String json = "{\n" +
" \"type\": \"agent_session_stopped\",\n" +
" \"channel\": \"C0123ABC456\",\n" +
" \"user\": \"U0123ABC456\",\n" +
" \"streaming_message_ts\": [\"1787267140.336949\"],\n" +
" \"thread_ts\": \"1787267126.742989\",\n" +
" \"event_ts\": \"1787267141.948630\"\n" +
"}";
AgentSessionStoppedEvent event = GsonFactory.createSnakeCase().fromJson(json, AgentSessionStoppedEvent.class);
assertThat(event.getType(), is("agent_session_stopped"));
assertThat(event.getChannel(), is("C0123ABC456"));
assertThat(event.getUser(), is("U0123ABC456"));
assertThat(event.getStreamingMessageTs().size(), is(1));
assertThat(event.getStreamingMessageTs().get(0), is("1787267140.336949"));
assertThat(event.getThreadTs(), is("1787267126.742989"));
assertThat(event.getEventTs(), is("1787267141.948630"));
}

@Test
public void serialize() {
Gson gson = GsonFactory.createSnakeCase();
AgentSessionStoppedEvent event = new AgentSessionStoppedEvent();
String generatedJson = gson.toJson(event);
String expectedJson = "{\"type\":\"agent_session_stopped\"}";
assertThat(generatedJson, is(expectedJson));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package test_locally.api.model.event;

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

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

public class AgentSessionTitleChangedEventTest {

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

@Test
public void deserialize() {
String json = "{\n" +
" \"type\": \"agent_session_title_changed\",\n" +
" \"channel\": \"C0123ABC456\",\n" +
" \"user\": \"U0123ABC456\",\n" +
" \"team_id\": \"T0123ABC456\",\n" +
" \"thread_ts\": \"1787267269.063879\",\n" +
" \"title\": \"New title\",\n" +
" \"previous_title\": \"Old title\",\n" +
" \"event_ts\": \"1787267281.002810\"\n" +
"}";
AgentSessionTitleChangedEvent event = GsonFactory.createSnakeCase().fromJson(json, AgentSessionTitleChangedEvent.class);
assertThat(event.getType(), is("agent_session_title_changed"));
assertThat(event.getChannel(), is("C0123ABC456"));
assertThat(event.getUser(), is("U0123ABC456"));
assertThat(event.getTeamId(), is("T0123ABC456"));
assertThat(event.getThreadTs(), is("1787267269.063879"));
assertThat(event.getTitle(), is("New title"));
assertThat(event.getPreviousTitle(), is("Old title"));
assertThat(event.getEventTs(), is("1787267281.002810"));
}

@Test
public void serialize() {
Gson gson = GsonFactory.createSnakeCase();
AgentSessionTitleChangedEvent event = new AgentSessionTitleChangedEvent();
String generatedJson = gson.toJson(event);
String expectedJson = "{\"type\":\"agent_session_title_changed\"}";
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.AgentSessionStoppedPayload;
import com.slack.api.model.event.AgentSessionStoppedEvent;

public abstract class AgentSessionStoppedHandler extends EventHandler<AgentSessionStoppedPayload> {

@Override
public String getEventType() {
return AgentSessionStoppedEvent.TYPE_NAME;
}
}
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.AgentSessionTitleChangedPayload;
import com.slack.api.model.event.AgentSessionTitleChangedEvent;

public abstract class AgentSessionTitleChangedHandler extends EventHandler<AgentSessionTitleChangedPayload> {

@Override
public String getEventType() {
return AgentSessionTitleChangedEvent.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.AgentSessionStoppedEvent;
import lombok.Data;

import java.util.List;

@Data
public class AgentSessionStoppedPayload implements EventsApiPayload<AgentSessionStoppedEvent> {

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 AgentSessionStoppedEvent event;
}
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.AgentSessionTitleChangedEvent;
import lombok.Data;

import java.util.List;

@Data
public class AgentSessionTitleChangedPayload implements EventsApiPayload<AgentSessionTitleChangedEvent> {

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 AgentSessionTitleChangedEvent event;
}
Loading