couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexander Shorin (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (COUCHDB-1330) provides() does not supports returning a status code or headers
Date Fri, 24 Feb 2012 23:53:48 GMT

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

Alexander Shorin commented on COUCHDB-1330:
-------------------------------------------

Oops, it looks like I'd break some things...My position was that provides functions are operates
with data level, providing specific handler for requested content-type, while headers/status
code is metadata that should be determent early. 

However, @Nathan right, there could be {"json": ...} body definition and also {"base64": ...}
that processed behind of scene at CouchDB side.  Mixing them better to count as unexpectable
result due to it depends on key order in json response from query server.

However, there is possible case for data collision:

function (doc, req) {
    provides('html', function () {
        return {
            headers: { Location: 'http://www.iriscouch.com' },
            code: 302,
            json: {status: 'redirecting', message: 'We will take you with us to IrisCouch!'}
        };
    });
  return {
    code: 404,
    headers: {"X-Couch-Reponse": "Relax!"}
    json: {error: 'not_a_chance', reason: "I'm tired, leave me alone!"}
  }
} 

What is expected output? 404 and error message or 302 and redirect? Should headers be merged
or provided_resp one only wins? IMHO, provided_resp should override all resp data, except
in case of chunked response when resp.body = resp.chunks +  resp.body + provided_resp.chunks
+ provided_resp.body.

If nobody stand against those terms I'll update patch to follow described behavior.
                
> provides() does not supports returning a status code or headers
> ---------------------------------------------------------------
>
>                 Key: COUCHDB-1330
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1330
>             Project: CouchDB
>          Issue Type: Bug
>          Components: JavaScript View Server
>    Affects Versions: 1.1.1
>         Environment: Iris Couch
>            Reporter: Jason Smith
>            Priority: Minor
>         Attachments: A_0001-Support-provides-callbacks-indicating-status-code-an.patch
>
>   Original Estimate: 4h
>  Remaining Estimate: 4h
>
> An Iris Couch user lost the ability to redirect from a provides() callback in a show
function: http://getsatisfaction.com/iriscouch/topics/_provides_method_not_returning_code_and_headers
> This show function no longer works:
> function (doc, req) {
>     provides('html', function () {
>         return {
>             headers: { Location: 'http://www.iriscouch.com' },
>             code: 302,
>             body: 'Redirecting to IrisCouch website...'
>         };
>     });   
> }
> This looks like a regression from 1.1.0; although there are no unit tests so perhaps
strictly speaking it was unsupported functionality. Git bisect places the error at the patch
to COUCHDB-1272.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message