Skip to content

Commit

Permalink
Deprecate module
Browse files Browse the repository at this point in the history
  • Loading branch information
lpil committed Feb 19, 2024
1 parent 195833b commit dab491b
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 87 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Changelog

## Unreleased

- The `gleam/http/service` module has been deprecated in favour of other
packages such as Wisp and Glen.

## v3.5.3 - 2023-12-22

- Fixed warnings on Gleam v0.33.0.
Expand Down
41 changes: 10 additions & 31 deletions src/gleam/http/service.gleam
Original file line number Diff line number Diff line change
Expand Up @@ -4,34 +4,26 @@ import gleam/http/response.{type Response}
import gleam/list
import gleam/result

// TODO: document
@deprecated("Use middleware packages such as Wisp or Glen instead")
pub type Service(in, out) =
fn(Request(in)) -> Response(out)

@deprecated("Use middleware packages such as Wisp or Glen instead")
pub type Middleware(before_req, before_resp, after_req, after_resp) =
fn(Service(before_req, before_resp)) -> Service(after_req, after_resp)
fn(fn(Request(before_req)) -> Response(before_resp)) ->
fn(Request(after_req)) -> Response(after_resp)

/// A middleware that transform the response body returned by the service using
/// a given function.
///
pub fn map_response_body(
service: Service(req, a),
with mapper: fn(a) -> b,
) -> Service(req, b) {
@deprecated("Use middleware packages such as Wisp or Glen instead")
pub fn map_response_body(service, with mapper: fn(a) -> b) {
fn(req) {
req
|> service
|> response.map(mapper)
}
}

/// A middleware that prepends a header to the request.
///
pub fn prepend_response_header(
service: Service(req, resp),
key: String,
value: String,
) -> Service(req, resp) {
@deprecated("Use middleware packages such as Wisp or Glen instead")
pub fn prepend_response_header(service, key: String, value: String) {
fn(req) {
req
|> service
Expand All @@ -56,21 +48,8 @@ fn get_override_method(request: Request(t)) -> Result(http.Method, Nil) {
}
}

/// A middleware that overrides an incoming POST request with a method given in
/// the request's `_method` query paramerter. This is useful as web browsers
/// typically only support GET and POST requests, but our application may
/// expect other HTTP methods that are more semantically correct.
///
/// The methods PUT, PATCH, and DELETE are accepted for overriding, all others
/// are ignored.
///
/// The `_method` query paramerter can be specified in a HTML form like so:
///
/// <form method="POST" action="/item/1?_method=DELETE">
/// <button type="submit">Delete item</button>
/// </form>
///
pub fn method_override(service: Service(req, resp)) -> Service(req, resp) {
@deprecated("Use middleware packages such as Wisp or Glen instead")
pub fn method_override(service) {
fn(request) {
request
|> ensure_post
Expand Down
56 changes: 0 additions & 56 deletions test/gleam/http/service_test.gleam

This file was deleted.

0 comments on commit dab491b

Please sign in to comment.