Skip to content
Merged
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
Expand Up @@ -38,13 +38,14 @@ public class DocMeta {
private final boolean displayOnLanding;

private boolean previewEnabled;
private final Map<String, ?> docMetaMap;
private final Map<String, Object> docMetaMap;

@SuppressWarnings("unchecked")
public DocMeta(String metaJson) {
this(JsonUtils.deserializeAsMap(metaJson));
this((Map<String, Object>) JsonUtils.deserializeAsMap(metaJson));
}

public DocMeta(Map<String, ?> docMetaMap) {
public DocMeta(Map<String, Object> docMetaMap) {
this.id = stringValue(docMetaMap, "id", "");
this.type = stringValue(docMetaMap, "type", "no-type");
this.title = stringValue(docMetaMap, "title", "no-title");
Expand All @@ -57,6 +58,12 @@ public DocMeta(Map<String, ?> docMetaMap) {
this.docMetaMap = docMetaMap;
}

public void addMetaIfNotPresent(String key, Object value) {
if (!docMetaMap.containsKey(key)) {
docMetaMap.put(key, value);
}
}

public DocMeta cloneWithNewJson(String docMetaJson) {
DocMeta clone = new DocMeta(docMetaJson);
clone.setId(this.id);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* Add: Slack setup via env variable
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
* Add: Slack persisted questions
* Add: Slack detached questions
Original file line number Diff line number Diff line change
Expand Up @@ -239,6 +239,7 @@ export function TextSelectionMenu({ containerNode }: { containerNode: HTMLDivEle
selectedPrefix: panelData!.prefixSuffixMatch.prefix,
selectedSuffix: panelData!.prefixSuffixMatch.suffix,
pageId: currentPageId(),
pageOrigin: document.location.origin,
slackChannel: getDocMeta().slackChannel,
question: question,
context: panelData!.context,
Expand Down
3 changes: 2 additions & 1 deletion znai-slack-bot/slack_bot.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,8 @@ def ask_in_slack():

question_id = str(uuid.uuid4())
page_id = data.get('pageId')
page_url = f"http://localhost:5173/preview/{page_id}?questionId={question_id}"
page_origin = data.get('pageOrigin')
page_url = f"{page_origin}/{page_id}/?questionId={question_id}"
selected_text = data.get('selectedText')
selected_prefix = data.get('selectedPrefix', '')
selected_suffix = data.get('selectedSuffix', '')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1033,13 +1033,29 @@ public Configuration withAdditionalLookupPaths(List<String> additionalLookupPath
public Configuration withMetaFromJsonFile(Path path) {
String json = fileTextContent(path);
docMeta = new DocMeta(json);
attachSlackMetaFromEnvVars(docMeta);

withTitle(docMeta.getTitle());
withType(docMeta.getType());

return this;
}

private void attachSlackMetaFromEnvVars(DocMeta docMeta) {
addMetaFromEnvVar(docMeta, "sendToSlackUrl", "ZNAI_SEND_TO_SLACK_URL");
addMetaFromEnvVar(docMeta, "slackChannel", "ZNAI_SLACK_CHANNEL");
addMetaFromEnvVar(docMeta, "slackActiveQuestionsUrl", "ZNAI_SLACK_ACTIVE_QUESTIONS_URL");
addMetaFromEnvVar(docMeta, "resolveSlackQuestionUrl", "ZNAI_RESOLVE_SLACK_QUESTION_URL");
addMetaFromEnvVar(docMeta, "sendToSlackIncludeContentType", "ZNAI_SEND_TO_SLACK_INCLUDE_CONTENT_TYPE");
}

private void addMetaFromEnvVar(DocMeta docMeta, String key, String envVarName) {
String envValue = System.getenv(envVarName);
if (envValue != null) {
docMeta.addMetaIfNotPresent(key, envValue);
}
}

public Configuration withEnabledPreview(boolean isPreviewEnabled) {
this.isPreviewEnabled = isPreviewEnabled;
return this;
Expand Down