Skip to content

Commit 866cafe

Browse files
author
Jon Bernard
committed
get messaging serve working to the ldk can receive which link was clicked and fire the onclick functions
1 parent d5b0360 commit 866cafe

File tree

5 files changed

+600
-427
lines changed

5 files changed

+600
-427
lines changed

ldk/go/examples/whisper-disambiguation/loop/loop.go

Lines changed: 98 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -87,81 +87,107 @@ func (c *Loop) LoopStart(sidekick ldk.Sidekick) error {
8787
return err
8888
}
8989

90-
// recallItem := data.Results[0]
90+
elements := make(map[string]ldk.WhisperContentDisambiguationElement)
91+
92+
for index := range data.Results {
93+
item := data.Results[index]
94+
elements[item.ID] = &ldk.WhisperContentDisambiguationElementOption{
95+
Label: item.Firm,
96+
Order: uint32(index) + 1,
97+
OnChange: func(key string) {
98+
go func() {
99+
err := c.sidekick.Whisper().List(c.ctx, &ldk.WhisperContentList{
100+
Label: item.Firm + " Recall",
101+
Elements: map[string]ldk.WhisperContentListElement{
102+
"topMessage": &ldk.WhisperContentListElementMessage{
103+
Style: ldk.WhisperContentListElementStyleNone,
104+
Body: item.Description,
105+
Align: ldk.WhisperContentListElementAlignLeft,
106+
Order: 0,
107+
},
108+
"sectionDivider": &ldk.WhisperContentListElementDivider{
109+
Order: 1,
110+
},
111+
"reason": &ldk.WhisperContentListElementPair{
112+
Label: "Reason",
113+
Order: 2,
114+
Value: item.Reason,
115+
},
116+
"distribution": &ldk.WhisperContentListElementPair{
117+
Label: "Distribution",
118+
Order: 3,
119+
Value: item.Distribution,
120+
},
121+
"quantity": &ldk.WhisperContentListElementPair{
122+
Label: "Quantity",
123+
Order: 4,
124+
Value: item.Quantity,
125+
},
126+
"codes": &ldk.WhisperContentListElementPair{
127+
Extra: true,
128+
Label: "Codes",
129+
Order: 5,
130+
Value: item.Codes,
131+
},
132+
"id": &ldk.WhisperContentListElementPair{
133+
Extra: true,
134+
Label: "Recall number",
135+
Order: 6,
136+
Value: item.ID,
137+
},
138+
"date": &ldk.WhisperContentListElementPair{
139+
Extra: true,
140+
Label: "Date initiated",
141+
Order: 7,
142+
Value: item.Date,
143+
},
144+
"recallType": &ldk.WhisperContentListElementPair{
145+
Extra: true,
146+
Label: "Recall type",
147+
Order: 8,
148+
Value: item.RecallType,
149+
},
150+
"type": &ldk.WhisperContentListElementPair{
151+
Extra: true,
152+
Label: "Product type",
153+
Order: 9,
154+
Value: item.Type,
155+
},
156+
"classification": &ldk.WhisperContentListElementPair{
157+
Extra: true,
158+
Label: "Classification",
159+
Order: 10,
160+
Value: item.Classification,
161+
},
162+
"address": &ldk.WhisperContentListElementPair{
163+
Extra: true,
164+
Label: "Company address",
165+
Order: 11,
166+
Value: item.Address1 + " " + item.Address2 + " " + item.City + ", " + item.State + " " + item.Zip + " " + item.Country,
167+
},
168+
},
169+
})
170+
if err != nil {
171+
c.logger.Error("failed to emit whisper", "error", err)
172+
}
173+
}()
174+
},
175+
}
176+
}
177+
178+
elements["header1"] = &ldk.WhisperContentDisambiguationElementText{
179+
Body: "# JB section text",
180+
Order: 0,
181+
}
182+
elements["header2"] = &ldk.WhisperContentDisambiguationElementText{
183+
Body: "# JB section text",
184+
Order: 6,
185+
}
91186

92187
go func() {
93188
_, err := c.sidekick.Whisper().Disambiguation(c.ctx, &ldk.WhisperContentDisambiguation{
94-
Label: "Latest FDA Recall dis",
95-
Elements: map[string]ldk.WhisperContentDisambiguationElement{
96-
"header1": &ldk.WhisperContentDisambiguationElementText{
97-
Body: "# JB section text",
98-
Order: 0,
99-
},
100-
"option1": &ldk.WhisperContentDisambiguationElementOption{
101-
Label: "This is one option",
102-
Order: 1,
103-
OnChange: func(key string) {
104-
c.logger.Info("OnChange", "key", key)
105-
err = c.sidekick.Whisper().Markdown(c.ctx, &ldk.WhisperContentMarkdown{
106-
Label: "Example Controller Go",
107-
Markdown: "Link pressed " + key,
108-
})
109-
if err != nil {
110-
c.logger.Error("failed to emit whisper", "error", err)
111-
return
112-
}
113-
},
114-
},
115-
"option2": &ldk.WhisperContentDisambiguationElementOption{
116-
Label: "This is two option",
117-
Order: 2,
118-
OnChange: func(key string) {
119-
c.logger.Info("OnChange", "key", key)
120-
err = c.sidekick.Whisper().Markdown(c.ctx, &ldk.WhisperContentMarkdown{
121-
Label: "Example Controller Go",
122-
Markdown: "Link pressed " + key,
123-
})
124-
if err != nil {
125-
c.logger.Error("failed to emit whisper", "error", err)
126-
return
127-
}
128-
},
129-
},
130-
"header2": &ldk.WhisperContentDisambiguationElementText{
131-
Body: "# JB section text two",
132-
Order: 3,
133-
},
134-
"option3": &ldk.WhisperContentDisambiguationElementOption{
135-
Label: "This is three option",
136-
Order: 4,
137-
OnChange: func(key string) {
138-
c.logger.Info("OnChange", "key", key)
139-
err = c.sidekick.Whisper().Markdown(c.ctx, &ldk.WhisperContentMarkdown{
140-
Label: "Example Controller Go",
141-
Markdown: "Link pressed " + key,
142-
})
143-
if err != nil {
144-
c.logger.Error("failed to emit whisper", "error", err)
145-
return
146-
}
147-
},
148-
},
149-
"option4": &ldk.WhisperContentDisambiguationElementOption{
150-
Label: "This is four option",
151-
Order: 5,
152-
OnChange: func(key string) {
153-
c.logger.Info("OnChange", "key", key)
154-
err = c.sidekick.Whisper().Markdown(c.ctx, &ldk.WhisperContentMarkdown{
155-
Label: "Example Controller Go",
156-
Markdown: "Link pressed " + key,
157-
})
158-
if err != nil {
159-
c.logger.Error("failed to emit whisper", "error", err)
160-
return
161-
}
162-
},
163-
},
164-
},
189+
Label: "Latest FDA Food Recalls",
190+
Elements: elements,
165191
})
166192
if err != nil {
167193
c.logger.Error("failed to emit whisper", "error", err)

0 commit comments

Comments
 (0)