@@ -87,81 +87,107 @@ func (c *Loop) LoopStart(sidekick ldk.Sidekick) error {
87
87
return err
88
88
}
89
89
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
+ }
91
186
92
187
go func () {
93
188
_ , 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 ,
165
191
})
166
192
if err != nil {
167
193
c .logger .Error ("failed to emit whisper" , "error" , err )
0 commit comments