Skip to content

Commit 9fa28aa

Browse files
slack: specify api end point via env vars (#1344)
1 parent d209491 commit 9fa28aa

6 files changed

Lines changed: 32 additions & 4 deletions

File tree

znai-core/src/main/java/org/testingisdocumenting/znai/core/DocMeta.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,14 @@ public class DocMeta {
3838
private final boolean displayOnLanding;
3939

4040
private boolean previewEnabled;
41-
private final Map<String, ?> docMetaMap;
41+
private final Map<String, Object> docMetaMap;
4242

43+
@SuppressWarnings("unchecked")
4344
public DocMeta(String metaJson) {
44-
this(JsonUtils.deserializeAsMap(metaJson));
45+
this((Map<String, Object>) JsonUtils.deserializeAsMap(metaJson));
4546
}
4647

47-
public DocMeta(Map<String, ?> docMetaMap) {
48+
public DocMeta(Map<String, Object> docMetaMap) {
4849
this.id = stringValue(docMetaMap, "id", "");
4950
this.type = stringValue(docMetaMap, "type", "no-type");
5051
this.title = stringValue(docMetaMap, "title", "no-title");
@@ -57,6 +58,12 @@ public DocMeta(Map<String, ?> docMetaMap) {
5758
this.docMetaMap = docMetaMap;
5859
}
5960

61+
public void addMetaIfNotPresent(String key, Object value) {
62+
if (!docMetaMap.containsKey(key)) {
63+
docMetaMap.put(key, value);
64+
}
65+
}
66+
6067
public DocMeta cloneWithNewJson(String docMetaJson) {
6168
DocMeta clone = new DocMeta(docMetaJson);
6269
clone.setId(this.id);
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* Add: Slack setup via env variable
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
* Add: Slack persisted questions
2+
* Add: Slack detached questions

znai-reactjs/src/doc-elements/text-selection/TextSelectionMenu.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,7 @@ export function TextSelectionMenu({ containerNode }: { containerNode: HTMLDivEle
239239
selectedPrefix: panelData!.prefixSuffixMatch.prefix,
240240
selectedSuffix: panelData!.prefixSuffixMatch.suffix,
241241
pageId: currentPageId(),
242+
pageOrigin: document.location.origin,
242243
slackChannel: getDocMeta().slackChannel,
243244
question: question,
244245
context: panelData!.context,

znai-slack-bot/slack_bot.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ def ask_in_slack():
4545

4646
question_id = str(uuid.uuid4())
4747
page_id = data.get('pageId')
48-
page_url = f"http://localhost:5173/preview/{page_id}?questionId={question_id}"
48+
page_origin = data.get('pageOrigin')
49+
page_url = f"{page_origin}/{page_id}/?questionId={question_id}"
4950
selected_text = data.get('selectedText')
5051
selected_prefix = data.get('selectedPrefix', '')
5152
selected_suffix = data.get('selectedSuffix', '')

znai-website-gen/src/main/java/org/testingisdocumenting/znai/website/WebSite.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1033,13 +1033,29 @@ public Configuration withAdditionalLookupPaths(List<String> additionalLookupPath
10331033
public Configuration withMetaFromJsonFile(Path path) {
10341034
String json = fileTextContent(path);
10351035
docMeta = new DocMeta(json);
1036+
attachSlackMetaFromEnvVars(docMeta);
10361037

10371038
withTitle(docMeta.getTitle());
10381039
withType(docMeta.getType());
10391040

10401041
return this;
10411042
}
10421043

1044+
private void attachSlackMetaFromEnvVars(DocMeta docMeta) {
1045+
addMetaFromEnvVar(docMeta, "sendToSlackUrl", "ZNAI_SEND_TO_SLACK_URL");
1046+
addMetaFromEnvVar(docMeta, "slackChannel", "ZNAI_SLACK_CHANNEL");
1047+
addMetaFromEnvVar(docMeta, "slackActiveQuestionsUrl", "ZNAI_SLACK_ACTIVE_QUESTIONS_URL");
1048+
addMetaFromEnvVar(docMeta, "resolveSlackQuestionUrl", "ZNAI_RESOLVE_SLACK_QUESTION_URL");
1049+
addMetaFromEnvVar(docMeta, "sendToSlackIncludeContentType", "ZNAI_SEND_TO_SLACK_INCLUDE_CONTENT_TYPE");
1050+
}
1051+
1052+
private void addMetaFromEnvVar(DocMeta docMeta, String key, String envVarName) {
1053+
String envValue = System.getenv(envVarName);
1054+
if (envValue != null) {
1055+
docMeta.addMetaIfNotPresent(key, envValue);
1056+
}
1057+
}
1058+
10431059
public Configuration withEnabledPreview(boolean isPreviewEnabled) {
10441060
this.isPreviewEnabled = isPreviewEnabled;
10451061
return this;

0 commit comments

Comments
 (0)