[ 
https://issues.apache.org/jira/browse/COUCHDB-882?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12907302#action_12907302
 ] 

Filipe Manana commented on COUCHDB-882:
---------------------------------------

What I meant is:

    Method1 =
    case MochiReq:get(method) of
        % already an atom
        Meth when is_atom(Meth) -> Meth;

        % Non standard HTTP verbs aren't atoms (COPY, MOVE etc) so convert when
        % possible (if any module references the atom, then it's existing).
        Meth -> couch_util:to_binary(Meth)
    end,

Like this, everywhere in the code you know you have to use an atom to match 
standard methods, an binaries for others.
To me it seems like this it simplifies Erlang code that needs to reference 
non-standard methods.



> Nonstandard HTTP methods not converted to JSON correctly
> --------------------------------------------------------
>
>                 Key: COUCHDB-882
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-882
>             Project: CouchDB
>          Issue Type: Bug
>          Components: HTTP Interface
>    Affects Versions: 1.0.1
>         Environment: Erlang R13, Linux
>            Reporter: Jason Smith
>            Priority: Minor
>             Fix For: 1.0.1
>
>         Attachments: 
> 0001-For-unknown-HTTP-methods-Use-a-binary-for-httpd.meth.patch
>
>
> Since COUCHDB-815, CouchDB allows nonstandard or unknown HTTP methods in case 
> a _show or similar function may want to implement a response to that method.
> Unfortunately the (my) patch in that ticket used couch_util:to_existing_atom 
> which returns the passed value unmodified if it has no corresponding atom. 
> That is wrong because the HTTP method will be copied into the `req` object in 
> the view server, therefore it must not be an Erlang string (list of integers) 
> because those do not JSONify correctly. Instead, if the atom does not exist, 
> the method should be converted to a binary.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to