elm / http

Make HTTP requests in Elm
https://package.elm-lang.org/packages/elm/http/latest
BSD 3-Clause "New" or "Revised" License
155 stars 46 forks source link

Http.Request fails with `patch` method #67

Open tryzniak opened 4 years ago

tryzniak commented 4 years ago

I'm 99% sure I spotted a bug in Elm. If I try to make a request below

    Http.request
        { method = "patch"
        , headers = []
        , url = Endpoint.singleTaxi n
        , body = body
        , expect = Http.expectJson toMsg taxiDecoder
        , timeout = Nothing
        , tracker = Nothing
        }

I get the following error:

Location: http://localhost:3333/api/taxis/12
Line Number 1, Column 1:

If I uppercase patch then everything works fine! The request below works line:

   Http.request
        { method = "PATCH"
        , headers = []
        , url = Endpoint.singleTaxi n
        , body = body
        , expect = Http.expectJson toMsg taxiDecoder
        , timeout = Nothing
        , tracker = Nothing
        }

Tested on Firefox 70. I think the offending line is https://github.com/elm/http/blob/615275c1dac50befe4fe81f600b960e1f92b239f/src/Elm/Kernel/Http.js#L31

RenFontes commented 4 years ago

Maybe method should just be a custom type with only the supported http verbs?

tryzniak commented 4 years ago

@RenFontes I like your idea, maybe something like:

type Method = GET | POST | ... Custom String

Custom would let a user set any value for a method, though I'm not sure if that make sense, there should probably be such freedom