Skip to content

Commit b6ecbf1

Browse files
Merge pull request #94 from dvonthenen/webhook-url-async-api
Fix Appending QueryString to URI
2 parents 50da528 + 071a411 commit b6ecbf1

File tree

10 files changed

+168
-79
lines changed

10 files changed

+168
-79
lines changed

examples/redaction/cmd.go

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,15 @@ func main() {
4040

4141
asyncClient := async.New(restClient)
4242

43-
jobConvo, err := asyncClient.PostFile(ctx, "phoneNumber.mp3")
43+
// jobConvo, err := asyncClient.PostFile(ctx, "phoneNumber.mp3")
44+
ufRequest := interfaces.AsyncURLFileRequest{
45+
DetectEntities: true,
46+
EnableSpeakerDiarization: true,
47+
DiarizationSpeakerCount: 2,
48+
ParentRefs: true,
49+
Sentiment: true,
50+
}
51+
jobConvo, err := asyncClient.PostFileWithOptions(ctx, "phoneNumber.mp3", ufRequest)
4452
if err == nil {
4553
fmt.Printf("JobID: %s, ConversationID: %s\n\n", jobConvo.JobID, jobConvo.ConversationID)
4654
} else {
@@ -60,7 +68,10 @@ func main() {
6068

6169
// custom headers to enable options
6270
params := make(map[string][]string, 0)
63-
params["exclude"] = []string{"[\"PERSON_NAME\"]"}
71+
// params["exclude"] = []string{"[\"PERSON_NAME\"]"}
72+
// params["exclude"] = []string{"[\"PHONE_NUMBER\"]"}
73+
// params["exclude"] = []string{"[\"PERSON_NAME\"]", "[\"PHONE_NUMBER\"]"}
74+
params["exclude"] = []string{"\"PERSON_NAME\"", "\"PHONE_NUMBER\""}
6475
params["redact"] = []string{"true"}
6576
ctx = cfginterfaces.WithCustomParameters(ctx, params)
6677

pkg/api/async/v1/bookmarks.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ func (c *Client) GetBookmarks(ctx context.Context, conversationId string) (*asyn
3838
}
3939

4040
// request
41-
URI := fmt.Sprintf("%s?%s",
41+
URI := fmt.Sprintf("%s%s",
4242
version.GetManagementAPI(version.BookmarksURI, conversationId),
4343
c.getQueryParamFromContext(ctx))
4444
klog.V(6).Infof("Calling %s\n", URI)
@@ -94,7 +94,7 @@ func (c *Client) GetBookmarkById(ctx context.Context, conversationId, bookmarkId
9494
}
9595

9696
// request
97-
URI := fmt.Sprintf("%s?%s",
97+
URI := fmt.Sprintf("%s%s",
9898
version.GetManagementAPI(version.BookmarksByIdURI, conversationId, bookmarkId),
9999
c.getQueryParamFromContext(ctx))
100100
klog.V(6).Infof("Calling %s\n", URI)
@@ -166,7 +166,7 @@ func (c *Client) CreateBookmark(ctx context.Context, conversationId string, requ
166166
}
167167

168168
// request
169-
URI := fmt.Sprintf("%s?%s",
169+
URI := fmt.Sprintf("%s%s",
170170
version.GetManagementAPI(version.BookmarksURI, conversationId),
171171
c.getQueryParamFromContext(ctx))
172172
klog.V(6).Infof("Calling %s\n", URI)
@@ -240,7 +240,7 @@ func (c *Client) UpdateBookmark(ctx context.Context, conversationId, bookmarkId
240240
}
241241

242242
// request
243-
URI := fmt.Sprintf("%s?%s",
243+
URI := fmt.Sprintf("%s%s",
244244
version.GetManagementAPI(version.BookmarksByIdURI, conversationId, bookmarkId),
245245
c.getQueryParamFromContext(ctx))
246246
klog.V(6).Infof("Calling %s\n", URI)
@@ -305,7 +305,7 @@ func (c *Client) DeleteBookmark(ctx context.Context, conversationId, bookmarkId
305305
}
306306

307307
// request
308-
URI := fmt.Sprintf("%s?%s",
308+
URI := fmt.Sprintf("%s%s",
309309
version.GetManagementAPI(version.BookmarksByIdURI, conversationId, bookmarkId),
310310
c.getQueryParamFromContext(ctx))
311311
klog.V(6).Infof("Calling %s\n", URI)
@@ -359,7 +359,7 @@ func (c *Client) GetSummaryOfBookmark(ctx context.Context, conversationId, bookm
359359
}
360360

361361
// request
362-
URI := fmt.Sprintf("%s?%s",
362+
URI := fmt.Sprintf("%s%s",
363363
version.GetAsyncAPI(version.BookmarkSummaryURI, conversationId, bookmarkId),
364364
c.getQueryParamFromContext(ctx))
365365
klog.V(6).Infof("Calling %s\n", URI)

pkg/api/async/v1/conversation.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ func (c *Client) GetConversations(ctx context.Context) (*asyncinterfaces.Convers
2929
}
3030

3131
// request
32-
URI := fmt.Sprintf("%s?%s",
32+
URI := fmt.Sprintf("%s%s",
3333
version.GetAsyncAPI(version.ConversationsURI),
3434
c.getQueryParamFromContext(ctx))
3535
klog.V(6).Infof("Calling %s\n", URI)
@@ -80,7 +80,7 @@ func (c *Client) GetConversation(ctx context.Context, conversationId string) (*a
8080
}
8181

8282
// request
83-
URI := fmt.Sprintf("%s?%s",
83+
URI := fmt.Sprintf("%s%s",
8484
version.GetAsyncAPI(version.ConversationURI, conversationId),
8585
c.getQueryParamFromContext(ctx))
8686
klog.V(6).Infof("Calling %s\n", URI)

pkg/api/async/v1/intelligence.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ func (c *Client) GetTopics(ctx context.Context, conversationId string) (*asyncin
3737
}
3838

3939
// request
40-
URI := fmt.Sprintf("%s?%s",
40+
URI := fmt.Sprintf("%s%s",
4141
version.GetAsyncAPI(version.TopicsURI, conversationId),
4242
c.getQueryParamFromContext(ctx))
4343
klog.V(6).Infof("Calling %s\n", URI)
@@ -88,7 +88,7 @@ func (c *Client) GetQuestions(ctx context.Context, conversationId string) (*asyn
8888
}
8989

9090
// request
91-
URI := fmt.Sprintf("%s?%s",
91+
URI := fmt.Sprintf("%s%s",
9292
version.GetAsyncAPI(version.QuestionsURI, conversationId),
9393
c.getQueryParamFromContext(ctx))
9494
klog.V(6).Infof("Calling %s\n", URI)
@@ -139,7 +139,7 @@ func (c *Client) GetFollowUps(ctx context.Context, conversationId string) (*asyn
139139
}
140140

141141
// request
142-
URI := fmt.Sprintf("%s?%s",
142+
URI := fmt.Sprintf("%s%s",
143143
version.GetAsyncAPI(version.FollowUpsURI, conversationId),
144144
c.getQueryParamFromContext(ctx))
145145
klog.V(6).Infof("Calling %s\n", URI)
@@ -190,7 +190,7 @@ func (c *Client) GetEntities(ctx context.Context, conversationId string) (*async
190190
}
191191

192192
// request
193-
URI := fmt.Sprintf("%s?%s",
193+
URI := fmt.Sprintf("%s%s",
194194
version.GetAsyncAPI(version.EntitiesURI, conversationId),
195195
c.getQueryParamFromContext(ctx))
196196
klog.V(6).Infof("Calling %s\n", URI)
@@ -241,7 +241,7 @@ func (c *Client) GetActionItems(ctx context.Context, conversationId string) (*as
241241
}
242242

243243
// request
244-
URI := fmt.Sprintf("%s?%s",
244+
URI := fmt.Sprintf("%s%s",
245245
version.GetAsyncAPI(version.ActionItemsURI, conversationId),
246246
c.getQueryParamFromContext(ctx))
247247
klog.V(6).Infof("Calling %s\n", URI)
@@ -292,7 +292,7 @@ func (c *Client) GetMessages(ctx context.Context, conversationId string) (*async
292292
}
293293

294294
// request
295-
URI := fmt.Sprintf("%s?%s",
295+
URI := fmt.Sprintf("%s%s",
296296
version.GetAsyncAPI(version.MessagesURI, conversationId),
297297
c.getQueryParamFromContext(ctx))
298298
klog.V(6).Infof("Calling %s\n", URI)
@@ -343,7 +343,7 @@ func (c *Client) GetSummary(ctx context.Context, conversationId string) (*asynci
343343
}
344344

345345
// request
346-
URI := fmt.Sprintf("%s?%s",
346+
URI := fmt.Sprintf("%s%s",
347347
version.GetAsyncAPI(version.SummaryURI, conversationId),
348348
c.getQueryParamFromContext(ctx))
349349
klog.V(6).Infof("Calling %s\n", URI)
@@ -394,7 +394,7 @@ func (c *Client) GetAnalytics(ctx context.Context, conversationId string) (*asyn
394394
}
395395

396396
// request
397-
URI := fmt.Sprintf("%s?%s",
397+
URI := fmt.Sprintf("%s%s",
398398
version.GetAsyncAPI(version.AnalyticsURI, conversationId),
399399
c.getQueryParamFromContext(ctx))
400400
klog.V(6).Infof("Calling %s\n", URI)
@@ -445,7 +445,7 @@ func (c *Client) GetTracker(ctx context.Context, conversationId string) (*asynci
445445
}
446446

447447
// request
448-
URI := fmt.Sprintf("%s?%s",
448+
URI := fmt.Sprintf("%s%s",
449449
version.GetAsyncAPI(version.TrackersURI, conversationId),
450450
c.getQueryParamFromContext(ctx))
451451
klog.V(6).Infof("Calling %s\n", URI)
@@ -516,7 +516,7 @@ func (c *Client) GetTranscript(ctx context.Context, conversationId string, reque
516516
}
517517

518518
// request
519-
URI := fmt.Sprintf("%s?%s",
519+
URI := fmt.Sprintf("%s%s",
520520
version.GetAsyncAPI(version.TranscriptURI, conversationId),
521521
c.getQueryParamFromContext(ctx))
522522
klog.V(6).Infof("Calling %s\n", URI)

pkg/api/async/v1/members.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ func (c *Client) GetMembers(ctx context.Context, conversationId string) (*asynci
3636
}
3737

3838
// request
39-
URI := fmt.Sprintf("%s?%s",
39+
URI := fmt.Sprintf("%s%s",
4040
version.GetAsyncAPI(version.MembersURI, conversationId),
4141
c.getQueryParamFromContext(ctx))
4242
klog.V(6).Infof("Calling %s\n", URI)
@@ -87,7 +87,7 @@ func (c *Client) UpdateMember(ctx context.Context, conversationId string, member
8787
}
8888

8989
// request
90-
URI := fmt.Sprintf("%s?%s",
90+
URI := fmt.Sprintf("%s%s",
9191
version.GetAsyncAPI(version.MemberURI, conversationId, member.ID),
9292
c.getQueryParamFromContext(ctx))
9393
klog.V(6).Infof("Calling %s\n", URI)
@@ -143,7 +143,7 @@ func (c *Client) UpdateSpeakers(ctx context.Context, conversationId string, spea
143143
}
144144

145145
// request
146-
URI := fmt.Sprintf("%s?%s",
146+
URI := fmt.Sprintf("%s%s",
147147
version.GetAsyncAPI(version.SpeakersURI, conversationId),
148148
c.getQueryParamFromContext(ctx))
149149
klog.V(6).Infof("Calling %s\n", URI)

pkg/api/async/v1/summaryui.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ func (c *Client) GetTextSummaryUI(ctx context.Context, conversationId string, re
9999
}
100100

101101
// request
102-
URI := fmt.Sprintf("%s?%s",
102+
URI := fmt.Sprintf("%s%s",
103103
version.GetAsyncAPI(version.SummaryURI, conversationId),
104104
c.getQueryParamFromContext(ctx))
105105
klog.V(6).Infof("Calling %s\n", URI)
@@ -157,7 +157,7 @@ func (c *Client) GetAudioSummaryUI(ctx context.Context, conversationId string, r
157157
}
158158

159159
// request
160-
URI := fmt.Sprintf("%s?%s",
160+
URI := fmt.Sprintf("%s%s",
161161
version.GetAsyncAPI(version.SummaryURI, conversationId),
162162
c.getQueryParamFromContext(ctx))
163163
klog.V(6).Infof("Calling %s\n", URI)
@@ -215,7 +215,7 @@ func (c *Client) GetVideoSummaryUI(ctx context.Context, conversationId string, r
215215
}
216216

217217
// request
218-
URI := fmt.Sprintf("%s?%s",
218+
URI := fmt.Sprintf("%s%s",
219219
version.GetAsyncAPI(version.SummaryURI, conversationId),
220220
c.getQueryParamFromContext(ctx))
221221
klog.V(6).Infof("Calling %s\n", URI)

pkg/api/async/v1/utils.go

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,35 @@ func (c *Client) getQueryParamFromContext(ctx context.Context) string {
2727
}
2828
}
2929

30-
if len(params) > 0 {
31-
queryString := ""
30+
// TODO: replace with https://github.com/google/go-querystring
31+
// API differs from how go-querystring works
32+
//
33+
// go-querystring : []vals -> key=vals[0]&key=vals[1]
34+
// symbl API: []vals -> key=["$vals[0]", "$vals[1]"]
35+
//
36+
// need to look into switching that behavior in order to use go-querystring lib
37+
if len(params) > 1 {
38+
queryString := "?"
3239
for k, vs := range params {
33-
for _, v := range vs {
34-
if len(queryString) > 1 {
35-
queryString += "&"
40+
if len(queryString) > 3 {
41+
queryString += "&"
42+
}
43+
if len(vs) == 1 {
44+
queryString += fmt.Sprintf("%s=%s", k, vs[0])
45+
} else {
46+
appended := false
47+
for _, v := range vs {
48+
if !appended {
49+
queryString += fmt.Sprintf("%s=[", k)
50+
appended = true
51+
} else {
52+
queryString += ","
53+
}
54+
queryString += fmt.Sprintf("%s", v)
55+
}
56+
if len(vs) > 0 {
57+
queryString += "]"
3658
}
37-
queryString += fmt.Sprintf("%s=%s", k, v)
3859
}
3960
}
4061
klog.V(5).Infof("Final Query String: %s\n", queryString)

pkg/api/nebula/v1/nebula.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ func (c *Client) AskNebula(ctx context.Context, request nebulainterfaces.AskNebu
5454
}
5555

5656
// request
57-
URI := fmt.Sprintf("%s?%s",
57+
URI := fmt.Sprintf("%s%s",
5858
version.GetNebulaAsyncAPI(version.AskNebulaURI),
5959
c.getQueryParamFromContext(ctx))
6060
klog.V(6).Infof("Calling %s\n", URI)

pkg/api/nebula/v1/utils.go

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,35 @@ func (c *Client) getQueryParamFromContext(ctx context.Context) string {
2727
}
2828
}
2929

30-
if len(params) > 0 {
31-
queryString := ""
30+
// TODO: replace with https://github.com/google/go-querystring
31+
// API differs from how go-querystring works
32+
//
33+
// go-querystring : []vals -> key=vals[0]&key=vals[1]
34+
// symbl API: []vals -> key=["$vals[0]", "$vals[1]"]
35+
//
36+
// need to look into switching that behavior in order to use go-querystring lib
37+
if len(params) > 1 {
38+
queryString := "?"
3239
for k, vs := range params {
33-
for _, v := range vs {
34-
if len(queryString) > 1 {
35-
queryString += "&"
40+
if len(queryString) > 3 {
41+
queryString += "&"
42+
}
43+
if len(vs) == 1 {
44+
queryString += fmt.Sprintf("%s=%s", k, vs[0])
45+
} else {
46+
appended := false
47+
for _, v := range vs {
48+
if !appended {
49+
queryString += fmt.Sprintf("%s=[", k)
50+
appended = true
51+
} else {
52+
queryString += ","
53+
}
54+
queryString += fmt.Sprintf("%s", v)
55+
}
56+
if len(vs) > 0 {
57+
queryString += "]"
3658
}
37-
queryString += fmt.Sprintf("%s=%s", k, v)
3859
}
3960
}
4061
klog.V(5).Infof("Final Query String: %s\n", queryString)

0 commit comments

Comments
 (0)