Skip to content

Commit d47c8fc

Browse files
Merge pull request #410 from HubSpot/feature/add_image_preview_support_for_wo
Feature/add image preview support for wo
2 parents fbecc20 + 6b5cec5 commit d47c8fc

File tree

8 files changed

+87
-47
lines changed

8 files changed

+87
-47
lines changed

slack-base/src/main/java/com/hubspot/slack/client/methods/params/chat/workobject/entity/DisplayType.java

Lines changed: 0 additions & 20 deletions
This file was deleted.

slack-base/src/main/java/com/hubspot/slack/client/methods/params/chat/workobject/entity/EntityPayloadAttributesCustomFieldIF.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
@Value.Immutable
1818
@HubSpotStyle
19+
@JsonInclude(JsonInclude.Include.NON_EMPTY)
1920
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
2021
public interface EntityPayloadAttributesCustomFieldIF {
2122
String getKey();
@@ -27,28 +28,28 @@ public interface EntityPayloadAttributesCustomFieldIF {
2728
FieldDataType getType();
2829

2930
//Can only be set when the type is string. This icon will be displayed next to field's text value. Not compatible with tag_color.
30-
@JsonInclude(JsonInclude.Include.NON_EMPTY)
3131
Optional<Icon> getIcon();
3232

3333
//Can only be set when the type is string, date, or timestamp. The field's content will be hyperlinked with the URL specified here
34-
@JsonInclude(JsonInclude.Include.NON_EMPTY)
3534
Optional<String> getLink();
3635

3736
//Can only be set when the type is string. Allows the string to be highlighted in of one of the following colors: red, yellow, green, gray, blue. E.g. tag_color: "red"
38-
@JsonInclude(JsonInclude.Include.NON_EMPTY)
3937
@JsonSerialize(using = TagColorSerializer.class)
4038
@JsonDeserialize(using = TagColorDeserializer.class)
4139
Optional<TagColor> getTagColor();
4240

41+
//Can only be set when the type is string. Allows the string to be formatted in markdown. Incompatible with the icon or link properties. Set format: "markdown". Available values: "string", "markdown"
42+
Optional<String> getFormat();
43+
44+
//Can only be set when the type is string. Expands the field across a wider area in the unfurl card. Set long: true.
45+
Optional<Boolean> isLong();
46+
4347
//Used when the field's type is slack#/types/image.
44-
@JsonInclude(JsonInclude.Include.NON_EMPTY)
4548
Optional<String> getImageUrl();
4649

4750
//Used when the field's type is slack#/types/image.
48-
@JsonInclude(JsonInclude.Include.NON_EMPTY)
4951
Optional<String> getSlackFile();
5052

5153
//Used when the field's type is slack#/types/image.
52-
@JsonInclude(JsonInclude.Include.NON_EMPTY)
5354
Optional<String> getAltText();
5455
}

slack-base/src/main/java/com/hubspot/slack/client/methods/params/chat/workobject/entity/EntityPayloadAttributesIF.java

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,9 @@
22

33
import com.fasterxml.jackson.annotation.JsonInclude;
44
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
5-
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
65
import com.fasterxml.jackson.databind.annotation.JsonNaming;
7-
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
86
import com.hubspot.immutables.style.HubSpotStyle;
9-
import com.hubspot.slack.client.methods.params.chat.workobject.serializers.DisplayTypeDeserializer;
10-
import com.hubspot.slack.client.methods.params.chat.workobject.serializers.DisplayTypeSerializer;
7+
import com.hubspot.slack.client.methods.params.chat.workobject.entity.fullsizepreview.FullSizePreview;
118
import java.util.Optional;
129
import org.immutables.value.Value;
1310

@@ -19,12 +16,9 @@ public interface EntityPayloadAttributesIF {
1916
EntityPayloadAttributeTitle getTitle();
2017
Optional<String> getDisplayId();
2118

22-
@JsonInclude(JsonInclude.Include.NON_ABSENT)
23-
@JsonSerialize(using = DisplayTypeSerializer.class)
24-
@JsonDeserialize(using = DisplayTypeDeserializer.class)
25-
Optional<DisplayType> getDisplayType();
26-
19+
Optional<String> getDisplayType();
2720
Optional<String> getProductName();
2821
Optional<Icon> getProductIcon();
2922
Optional<String> getLocale();
23+
Optional<FullSizePreview> getFullSizePreview();
3024
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.hubspot.slack.client.methods.params.chat.workobject.entity.fullsizepreview;
2+
3+
public enum FullSizePreviewErrorCode {
4+
FILE_NOT_SUPPORTED("file_not_supported"),
5+
FILE_SIZE_EXCEEDED("file_size_exceeded"),
6+
CUSTOM("custom");
7+
8+
private final String value;
9+
10+
FullSizePreviewErrorCode(String value) {
11+
this.value = value;
12+
}
13+
14+
public String getValue() {
15+
return value;
16+
}
17+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.hubspot.slack.client.methods.params.chat.workobject.entity.fullsizepreview;
2+
3+
import com.fasterxml.jackson.annotation.JsonInclude;
4+
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
5+
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
6+
import com.hubspot.immutables.style.HubSpotStyle;
7+
import com.hubspot.slack.client.methods.params.chat.workobject.serializers.FullSizePreviewErrorCodeDeserializer;
8+
import com.hubspot.slack.client.methods.params.chat.workobject.serializers.FullSizePreviewErrorCodeSerializer;
9+
import org.immutables.value.Value.Immutable;
10+
11+
@Immutable
12+
@HubSpotStyle
13+
@JsonInclude(JsonInclude.Include.NON_EMPTY)
14+
public interface FullSizePreviewErrorIF {
15+
@JsonSerialize(using = FullSizePreviewErrorCodeSerializer.class)
16+
@JsonDeserialize(using = FullSizePreviewErrorCodeDeserializer.class)
17+
FullSizePreviewErrorCode getCode();
18+
19+
String getMessage();
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.hubspot.slack.client.methods.params.chat.workobject.entity.fullsizepreview;
2+
3+
import com.fasterxml.jackson.annotation.JsonInclude;
4+
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
5+
import com.fasterxml.jackson.databind.annotation.JsonNaming;
6+
import com.hubspot.immutables.style.HubSpotStyle;
7+
import java.util.Optional;
8+
import org.immutables.value.Value;
9+
10+
@Value.Immutable
11+
@HubSpotStyle
12+
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
13+
@JsonInclude(JsonInclude.Include.NON_EMPTY)
14+
public interface FullSizePreviewIF {
15+
boolean isSupported();
16+
17+
Optional<String> getPreviewUrl();
18+
19+
Optional<String> getMimeType();
20+
Optional<FullSizePreviewError> getError();
21+
}

slack-base/src/main/java/com/hubspot/slack/client/methods/params/chat/workobject/serializers/DisplayTypeDeserializer.java renamed to slack-base/src/main/java/com/hubspot/slack/client/methods/params/chat/workobject/serializers/FullSizePreviewErrorCodeDeserializer.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,31 @@
33
import com.fasterxml.jackson.core.JsonParser;
44
import com.fasterxml.jackson.databind.DeserializationContext;
55
import com.fasterxml.jackson.databind.JsonDeserializer;
6-
import com.hubspot.slack.client.methods.params.chat.workobject.entity.DisplayType;
6+
import com.hubspot.slack.client.methods.params.chat.workobject.entity.fullsizepreview.FullSizePreviewErrorCode;
77
import java.io.IOException;
88
import java.util.Arrays;
99
import java.util.Optional;
1010

11-
public class DisplayTypeDeserializer extends JsonDeserializer<Optional<DisplayType>> {
11+
public class FullSizePreviewErrorCodeDeserializer
12+
extends JsonDeserializer<Optional<FullSizePreviewErrorCode>> {
1213

1314
@Override
14-
public Optional<DisplayType> deserialize(JsonParser p, DeserializationContext ctxt)
15-
throws IOException {
15+
public Optional<FullSizePreviewErrorCode> deserialize(
16+
JsonParser p,
17+
DeserializationContext ctxt
18+
) throws IOException {
1619
String value = p.getText();
1720
if (value == null || value.isEmpty()) {
1821
return Optional.empty();
1922
}
2023
return Arrays
21-
.stream(DisplayType.values())
24+
.stream(FullSizePreviewErrorCode.values())
2225
.filter(type -> type.getValue().equals(value))
2326
.findFirst();
2427
}
2528

2629
@Override
27-
public Optional<DisplayType> getNullValue(DeserializationContext ctxt) {
30+
public Optional<FullSizePreviewErrorCode> getNullValue(DeserializationContext ctxt) {
2831
return Optional.empty();
2932
}
3033
}

slack-base/src/main/java/com/hubspot/slack/client/methods/params/chat/workobject/serializers/DisplayTypeSerializer.java renamed to slack-base/src/main/java/com/hubspot/slack/client/methods/params/chat/workobject/serializers/FullSizePreviewErrorCodeSerializer.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,31 @@
33
import com.fasterxml.jackson.core.JsonGenerator;
44
import com.fasterxml.jackson.databind.JsonSerializer;
55
import com.fasterxml.jackson.databind.SerializerProvider;
6-
import com.hubspot.slack.client.methods.params.chat.workobject.entity.DisplayType;
6+
import com.hubspot.slack.client.methods.params.chat.workobject.entity.fullsizepreview.FullSizePreviewErrorCode;
77
import java.io.IOException;
88
import java.util.Optional;
99

10-
public class DisplayTypeSerializer extends JsonSerializer<Optional<DisplayType>> {
10+
public class FullSizePreviewErrorCodeSerializer
11+
extends JsonSerializer<Optional<FullSizePreviewErrorCode>> {
1112

1213
@Override
1314
public void serialize(
14-
Optional<DisplayType> displayTypeMaybe,
15+
Optional<FullSizePreviewErrorCode> errorCodeMaybe,
1516
JsonGenerator gen,
1617
SerializerProvider serializers
1718
) throws IOException {
18-
if (displayTypeMaybe.isPresent()) {
19-
gen.writeString(displayTypeMaybe.get().getValue());
19+
if (errorCodeMaybe.isPresent()) {
20+
gen.writeString(errorCodeMaybe.get().getValue());
2021
} else {
2122
gen.writeNull();
2223
}
2324
}
2425

2526
@Override
26-
public boolean isEmpty(SerializerProvider provider, Optional<DisplayType> value) {
27+
public boolean isEmpty(
28+
SerializerProvider provider,
29+
Optional<FullSizePreviewErrorCode> value
30+
) {
2731
return value.isEmpty();
2832
}
2933
}

0 commit comments

Comments
 (0)