Skip to content

Commit ebe3028

Browse files
committed
Remove redunant qualifiers for req functions
1 parent 9bc283c commit ebe3028

File tree

5 files changed

+63
-63
lines changed

5 files changed

+63
-63
lines changed

CHANGELOG.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44

55
- The `gleam/http` module gains the `Scheme`, `Service`, `Request`, and
66
`Response` types, along with associated functions `scheme_to_string`,
7-
`scheme_from_string`, `req_uri`, `response`, `req_segments`, `req_query`,
7+
`scheme_from_string`, `req_uri`, `response`, `req_segments`, `get_query`,
88
`get_req_header`, `get_resp_header`, `prepend_req_header`, `seq_req_host`,
9-
`set_req_path`, `prepend_resp_header`, `set_req_method`, `set_req_body`,
9+
`set_req_path`, `prepend_resp_header`, `set_method`, `set_req_body`,
1010
`set_resp_body`, `map_resp_body`, `map_req_body` `try_map_resp_body`,
11-
`set_req_query`, `req_from_uri`, `default_req`, and `redirect`.
11+
`set_query`, `req_from_uri`, `default_req`, and `redirect`.
1212
- Created the `gleam/http/middleware` module with the `Middleware` type and
1313
the `method_override`, `prepend_resp_header`, `map_resp_body` middleware
1414
functions.

src/gleam/http.gleam

+42-42
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ pub fn req_segments(request: Request(body)) -> List(String) {
191191
}
192192

193193
/// Decode the query of a request.
194-
pub fn req_query(
194+
pub fn get_query(
195195
request: Request(body),
196196
) -> Result(List(tuple(String, String)), Nil) {
197197
case request.query {
@@ -200,6 +200,46 @@ pub fn req_query(
200200
}
201201
}
202202

203+
// TODO: test
204+
// TODO: escape
205+
// TODO: record update syntax
206+
/// Set the query of the request.
207+
///
208+
pub fn set_query(
209+
req: Request(body),
210+
query: List(tuple(String, String)),
211+
) -> Request(body) {
212+
let pair = fn(t: tuple(String, String)) {
213+
string_builder.from_strings([t.0, "=", t.1])
214+
}
215+
let query = query
216+
|> list.map(pair)
217+
|> list.intersperse(string_builder.from_string("&"))
218+
|> string_builder.concat
219+
|> string_builder.to_string
220+
|> Some
221+
let Request(
222+
method: method,
223+
headers: headers,
224+
body: body,
225+
scheme: scheme,
226+
host: host,
227+
port: port,
228+
path: path,
229+
query: _,
230+
) = req
231+
Request(
232+
method: method,
233+
headers: headers,
234+
body: body,
235+
scheme: scheme,
236+
host: host,
237+
port: port,
238+
path: path,
239+
query: query,
240+
)
241+
}
242+
203243
/// Get the value for a given header.
204244
///
205245
/// If the request does not have that header then `Error(Nil)` is returned.
@@ -293,7 +333,7 @@ pub fn set_req_body(
293333
// TODO: record update syntax
294334
/// Set the method of the request.
295335
///
296-
pub fn set_req_method(req: Request(body), method: Method) -> Request(body) {
336+
pub fn set_method(req: Request(body), method: Method) -> Request(body) {
297337
let Request(
298338
method: _,
299339
headers: headers,
@@ -433,43 +473,3 @@ pub fn set_req_path(req: Request(body), path: String) -> Request(body) {
433473
query: query,
434474
)
435475
}
436-
437-
// TODO: test
438-
// TODO: escape
439-
// TODO: record update syntax
440-
/// Set the query of the request.
441-
///
442-
pub fn set_req_query(
443-
req: Request(body),
444-
query: List(tuple(String, String)),
445-
) -> Request(body) {
446-
let pair = fn(t: tuple(String, String)) {
447-
string_builder.from_strings([t.0, "=", t.1])
448-
}
449-
let query = query
450-
|> list.map(pair)
451-
|> list.intersperse(string_builder.from_string("&"))
452-
|> string_builder.concat
453-
|> string_builder.to_string
454-
|> Some
455-
let Request(
456-
method: method,
457-
headers: headers,
458-
body: body,
459-
scheme: scheme,
460-
host: host,
461-
port: port,
462-
path: path,
463-
query: _,
464-
) = req
465-
Request(
466-
method: method,
467-
headers: headers,
468-
body: body,
469-
scheme: scheme,
470-
host: host,
471-
port: port,
472-
path: path,
473-
query: query,
474-
)
475-
}

src/gleam/http/middleware.gleam

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ fn ensure_post(req: Request(a)) {
4141
}
4242

4343
fn get_override_method(req) {
44-
try query_params = http.req_query(req)
44+
try query_params = http.get_query(req)
4545
try method = list.key_find(query_params, "_method")
4646
try method = http.parse_method(method)
4747
case method {
@@ -69,7 +69,7 @@ pub fn method_override(service: Service(req, resp)) -> Service(req, resp) {
6969
req
7070
|> ensure_post
7171
|> result.then(get_override_method)
72-
|> result.map(http.set_req_method(req, _))
72+
|> result.map(http.set_method(req, _))
7373
|> result.unwrap(req)
7474
|> service
7575
}

test/gleam/http/middleware_test.gleam

+12-12
Original file line numberDiff line numberDiff line change
@@ -11,44 +11,44 @@ pub fn method_override_test() {
1111

1212
// No overriding without the query param
1313
http.default_req()
14-
|> http.set_req_method(Get)
14+
|> http.set_method(Get)
1515
|> service
1616
|> should.equal(Response(200, [], Get))
1717

1818
http.default_req()
19-
|> http.set_req_method(Post)
19+
|> http.set_method(Post)
2020
|> service
2121
|> should.equal(Response(200, [], Post))
2222

2323
// Can override
2424
http.default_req()
25-
|> http.set_req_method(Post)
26-
|> http.set_req_query([tuple("_method", "DELETE")])
25+
|> http.set_method(Post)
26+
|> http.set_query([tuple("_method", "DELETE")])
2727
|> service
2828
|> should.equal(Response(200, [], Delete))
2929

3030
http.default_req()
31-
|> http.set_req_method(Post)
32-
|> http.set_req_query([tuple("_method", "PATCH")])
31+
|> http.set_method(Post)
32+
|> http.set_query([tuple("_method", "PATCH")])
3333
|> service
3434
|> should.equal(Response(200, [], Patch))
3535

3636
http.default_req()
37-
|> http.set_req_method(Post)
38-
|> http.set_req_query([tuple("_method", "PUT")])
37+
|> http.set_method(Post)
38+
|> http.set_query([tuple("_method", "PUT")])
3939
|> service
4040
|> should.equal(Response(200, [], Put))
4141

4242
// Cannot override with other methods
4343
http.default_req()
44-
|> http.set_req_method(Post)
45-
|> http.set_req_query([tuple("_method", "OPTIONS")])
44+
|> http.set_method(Post)
45+
|> http.set_query([tuple("_method", "OPTIONS")])
4646
|> service
4747
|> should.equal(Response(200, [], Post))
4848

4949
http.default_req()
50-
|> http.set_req_method(Post)
51-
|> http.set_req_query([tuple("_method", "SOMETHING")])
50+
|> http.set_method(Post)
51+
|> http.set_query([tuple("_method", "SOMETHING")])
5252
|> service
5353
|> should.equal(Response(200, [], Post))
5454
}

test/gleam/http_test.gleam

+4-4
Original file line numberDiff line numberDiff line change
@@ -698,7 +698,7 @@ pub fn req_segments_test() {
698698
should.equal(["ellen", "ripley"], http.req_segments(request))
699699
}
700700

701-
pub fn req_query_test() {
701+
pub fn get_query_test() {
702702
let make_request = fn(query) {
703703
http.Request(
704704
method: http.Get,
@@ -713,13 +713,13 @@ pub fn req_query_test() {
713713
}
714714

715715
let request = make_request(Some("foo=x%20y"))
716-
should.equal(Ok([tuple("foo", "x y")]), http.req_query(request))
716+
should.equal(Ok([tuple("foo", "x y")]), http.get_query(request))
717717

718718
let request = make_request(None)
719-
should.equal(Ok([]), http.req_query(request))
719+
should.equal(Ok([]), http.get_query(request))
720720

721721
let request = make_request(Some("foo=%!2"))
722-
should.equal(Error(Nil), http.req_query(request))
722+
should.equal(Error(Nil), http.get_query(request))
723723
}
724724

725725
pub fn get_resp_header_test() {

0 commit comments

Comments
 (0)