Skip to content

Commit 538ef10

Browse files
committed
feat: add support for passing contexts
1 parent a558c0a commit 538ef10

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed

message.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,12 @@ func buildParseQuery(req *MessageRequest) string {
128128
if req.Tag != "" {
129129
q += fmt.Sprintf("&tag=%s", req.Tag)
130130
}
131+
if req.Context != nil {
132+
b, _ := json.Marshal(req.Context)
133+
if b != nil {
134+
q += fmt.Sprintf("&context=%s", url.PathEscape(string(b)))
135+
}
136+
}
131137

132138
return q
133139
}

message_test.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"bytes"
77
"net/http"
88
"net/http/httptest"
9+
"net/url"
910
"reflect"
1011
"testing"
1112
)
@@ -146,3 +147,34 @@ func TestSpeech(t *testing.T) {
146147
t.Fatalf("expected \n\tmsg %v \n\tgot %v", wantMessage, msg)
147148
}
148149
}
150+
151+
func Test_buildParseQuery(t *testing.T) {
152+
want := "?q=" + url.PathEscape("hello world") +
153+
"&n=1&tag=tag" +
154+
"&context=" +
155+
url.PathEscape("{"+
156+
"\"reference_time\":\"2014-10-30T12:18:45-07:00\","+
157+
"\"timezone\":\"America/Los_Angeles\","+
158+
"\"locale\":\"en_US\","+
159+
"\"coords\":{\"lat\":32.47104,\"long\":-122.14703}"+
160+
"}")
161+
162+
got := buildParseQuery(&MessageRequest{
163+
Query: "hello world",
164+
N: 1,
165+
Tag: "tag",
166+
Context: &MessageContext{
167+
Locale: "en_US",
168+
Coords: MessageCoords{
169+
Lat: 32.47104,
170+
Long: -122.14703,
171+
},
172+
Timezone: "America/Los_Angeles",
173+
ReferenceTime: "2014-10-30T12:18:45-07:00",
174+
},
175+
})
176+
177+
if got != want {
178+
t.Fatalf("expected \n\tquery = %v \n\tgot = %v", want, got)
179+
}
180+
}

0 commit comments

Comments
 (0)