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
1 change: 1 addition & 0 deletions block-kit/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ Read the [docs](https://docs.slack.dev/block-kit/) to learn concepts behind thes
- **[Input](https://docs.slack.dev/reference/block-kit/blocks/input-block)**: Collects information from users via elements. [Implementation](./src/main/java/blocks/Input.java).
- **[Markdown](https://docs.slack.dev/reference/block-kit/blocks/markdown-block)**: Displays formatted markdown. [Implementation](./src/main/java/blocks/Markdown.java).
- **[Section](https://docs.slack.dev/reference/block-kit/blocks/section-block)**: Displays text, possibly alongside elements. [Implementation](./src/main/java/blocks/Section.java).
- **[Table](https://docs.slack.dev/reference/block-kit/blocks/table-block)**: Displays structured information in a table. [Implementation](./src/main/java/blocks/Table.java).
- **[Task card](https://docs.slack.dev/reference/block-kit/blocks/task-card-block)**: Displays a single task, representing a single action. [Implementation](./src/main/java/blocks/TaskCard.java).
- **[Video](https://docs.slack.dev/reference/block-kit/blocks/video-block)**: Displays an embedded video player. [Implementation](./src/main/java/blocks/Video.java).

Expand Down
41 changes: 41 additions & 0 deletions block-kit/src/main/java/blocks/Table.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package blocks;

import com.slack.api.model.block.Blocks;
import com.slack.api.model.block.TableBlock;

Check failure on line 4 in block-kit/src/main/java/blocks/Table.java

View workflow job for this annotation

GitHub Actions / maven@java17 (block-kit)

cannot find symbol
import com.slack.api.model.block.composition.BlockCompositions;
import com.slack.api.model.block.element.RichTextSectionElement;
import java.util.List;

/**
* Displays structured information in a table.
* {@link https://docs.slack.dev/reference/block-kit/blocks/table-block/}
*/
public class Table {
/**
* A table with the first column wrapped and the second column right aligned.
*/
public static TableBlock example01() {

Check failure on line 17 in block-kit/src/main/java/blocks/Table.java

View workflow job for this annotation

GitHub Actions / maven@java17 (block-kit)

cannot find symbol
TableBlock block = Blocks.table(t -> t.columnSettings(List.of(

Check failure on line 18 in block-kit/src/main/java/blocks/Table.java

View workflow job for this annotation

GitHub Actions / maven@java17 (block-kit)

cannot find symbol

Check failure on line 18 in block-kit/src/main/java/blocks/Table.java

View workflow job for this annotation

GitHub Actions / maven@java17 (block-kit)

cannot find symbol
TableBlock.ColumnSetting.builder().isWrapped(true).build(),

Check failure on line 19 in block-kit/src/main/java/blocks/Table.java

View workflow job for this annotation

GitHub Actions / maven@java17 (block-kit)

package TableBlock does not exist
TableBlock.ColumnSetting.builder().align("right").build()))

Check failure on line 20 in block-kit/src/main/java/blocks/Table.java

View workflow job for this annotation

GitHub Actions / maven@java17 (block-kit)

package TableBlock does not exist
.rows(List.of(
List.of(BlockCompositions.rawText("Header A"), BlockCompositions.rawText("Header B")),

Check failure on line 22 in block-kit/src/main/java/blocks/Table.java

View workflow job for this annotation

GitHub Actions / maven@java17 (block-kit)

cannot find symbol

Check failure on line 22 in block-kit/src/main/java/blocks/Table.java

View workflow job for this annotation

GitHub Actions / maven@java17 (block-kit)

cannot find symbol
List.of(
BlockCompositions.rawText("Data 1A"),

Check failure on line 24 in block-kit/src/main/java/blocks/Table.java

View workflow job for this annotation

GitHub Actions / maven@java17 (block-kit)

cannot find symbol
Blocks.richText(rt -> rt.elements(List.of(RichTextSectionElement.builder()
.elements(List.of(RichTextSectionElement.Link.builder()
.text("Data 1B")
.url("https://slack.com")
.build()))
.build())))),
List.of(
BlockCompositions.rawText("Data 2A"),

Check failure on line 32 in block-kit/src/main/java/blocks/Table.java

View workflow job for this annotation

GitHub Actions / maven@java17 (block-kit)

cannot find symbol
Blocks.richText(rt -> rt.elements(List.of(RichTextSectionElement.builder()
.elements(List.of(RichTextSectionElement.Link.builder()
.text("Data 2B")
.url("https://slack.com")
.build()))
.build())))))));
return block;
}
}
84 changes: 84 additions & 0 deletions block-kit/src/test/java/blocks/TableTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
package blocks;

import static org.junit.jupiter.api.Assertions.assertEquals;

import com.google.gson.JsonParser;
import com.slack.api.model.block.TableBlock;
import com.slack.api.util.json.GsonFactory;
import org.junit.jupiter.api.Test;

public class TableTest {
@Test
public void testExample01() {
TableBlock block = Table.example01();
String actual = GsonFactory.createSnakeCase().toJson(block);
String expected = """
{
"type": "table",
"column_settings": [
{
"is_wrapped": true
},
{
"align": "right"
}
],
"rows": [
[
{
"type": "raw_text",
"text": "Header A"
},
{
"type": "raw_text",
"text": "Header B"
}
],
[
{
"type": "raw_text",
"text": "Data 1A"
},
{
"type": "rich_text",
"elements": [
{
"type": "rich_text_section",
"elements": [
{
"text": "Data 1B",
"type": "link",
"url": "https://slack.com"
}
]
}
]
}
],
[
{
"type": "raw_text",
"text": "Data 2A"
},
{
"type": "rich_text",
"elements": [
{
"type": "rich_text_section",
"elements": [
{
"text": "Data 2B",
"type": "link",
"url": "https://slack.com"
}
]
}
]
}
]
]
}
""";
assertEquals(JsonParser.parseString(expected), JsonParser.parseString(actual));
}
}
Loading