iilyak commented on a change in pull request #3568:
URL: https://github.com/apache/couchdb/pull/3568#discussion_r633800391



##########
File path: src/chttpd/src/chttpd_db.erl
##########
@@ -505,148 +570,179 @@ db_req(#httpd{method='POST', path_parts=[_, 
<<"_bulk_get">>],
             #doc_query_args{
                 options = Options
             } = bulk_get_parse_doc_query(Req),
-            AcceptJson =  MochiReq:accepts_content_type("application/json"),
+            AcceptJson = MochiReq:accepts_content_type("application/json"),
             AcceptMixedMp = MochiReq:accepts_content_type("multipart/mixed"),
             AcceptRelatedMp = 
MochiReq:accepts_content_type("multipart/related"),
             AcceptMp = not AcceptJson andalso (AcceptMixedMp orelse 
AcceptRelatedMp),
             case AcceptMp of
                 false ->
                     {ok, Resp} = start_json_response(Req, 200),
                     send_chunk(Resp, <<"{\"results\": [">>),
-                    lists:foldl(fun(Doc, Sep) ->
-                        {DocId, Results, Options1} = 
bulk_get_open_doc_revs(Db, Doc,
-                            Options),
-                        bulk_get_send_docs_json(Resp, DocId, Results, 
Options1, Sep),
-                        <<",">>
-                    end, <<"">>, Docs),
+                    lists:foldl(
+                        fun(Doc, Sep) ->
+                            {DocId, Results, Options1} = 
bulk_get_open_doc_revs(
+                                Db,
+                                Doc,
+                                Options
+                            ),
+                            bulk_get_send_docs_json(Resp, DocId, Results, 
Options1, Sep),
+                            <<",">>
+                        end,
+                        <<"">>,
+                        Docs
+                    ),
                     send_chunk(Resp, <<"]}">>),
                     end_json_response(Resp);
                 true ->
                     OuterBoundary = bulk_get_multipart_boundary(),
-                    MpType = case AcceptMixedMp of
-                        true ->
-                            "multipart/mixed";
-                        _ ->
-                            "multipart/related"
-                    end,
-                    CType = {"Content-Type", MpType ++ "; boundary=\"" ++
-                                          ?b2l(OuterBoundary) ++  "\""},
+                    MpType =
+                        case AcceptMixedMp of
+                            true ->
+                                "multipart/mixed";
+                            _ ->
+                                "multipart/related"
+                        end,
+                    CType =
+                        {"Content-Type",
+                            MpType ++ "; boundary=\"" ++
+                                ?b2l(OuterBoundary) ++ "\""},
                     {ok, Resp} = start_chunked_response(Req, 200, [CType]),
-                    lists:foldl(fun(Doc, _Pre) ->
-                        case bulk_get_open_doc_revs(Db, Doc, Options) of
-                            {_, {ok, []}, _Options1} ->
-                                ok;
-                            {_, {ok, Results}, Options1} ->
-                                send_docs_multipart_bulk_get(Results, Options1,
-                                    OuterBoundary, Resp);
-                            {DocId, {error, {RevId, Error, Reason}}, 
_Options1} ->
-                                Json = ?JSON_ENCODE({[
-                                    {<<"id">>, DocId},
-                                    {<<"rev">>, RevId},
-                                    {<<"error">>, Error},
-                                    {<<"reason">>, Reason}
-                                ]}),
-                                couch_httpd:send_chunk(Resp,[
-                                    <<"\r\n--", OuterBoundary/binary>>,
-                                    <<"\r\nContent-Type: application/json; 
error=\"true\"\r\n\r\n">>,
-                                    Json
-                                ])
-                        end
-                    end, <<"">>, Docs),
+                    lists:foldl(
+                        fun(Doc, _Pre) ->
+                            case bulk_get_open_doc_revs(Db, Doc, Options) of
+                                {_, {ok, []}, _Options1} ->
+                                    ok;
+                                {_, {ok, Results}, Options1} ->
+                                    send_docs_multipart_bulk_get(
+                                        Results,
+                                        Options1,
+                                        OuterBoundary,
+                                        Resp
+                                    );
+                                {DocId, {error, {RevId, Error, Reason}}, 
_Options1} ->
+                                    Json = ?JSON_ENCODE(
+                                        {[
+                                            {<<"id">>, DocId},
+                                            {<<"rev">>, RevId},
+                                            {<<"error">>, Error},
+                                            {<<"reason">>, Reason}
+                                        ]}
+                                    ),
+                                    couch_httpd:send_chunk(Resp, [
+                                        <<"\r\n--", OuterBoundary/binary>>,
+                                        <<"\r\nContent-Type: application/json; 
error=\"true\"\r\n\r\n">>,
+                                        Json
+                                    ])
+                            end
+                        end,
+                        <<"">>,
+                        Docs
+                    ),
                     case Docs of
                         [] ->
                             ok;
                         _ ->
-                            couch_httpd:send_chunk(Resp, <<"\r\n", "--", 
OuterBoundary/binary, "--\r\n">>)
+                            couch_httpd:send_chunk(
+                                Resp,
+                                <<"\r\n", "--", OuterBoundary/binary, 
"--\r\n">>
+                            )
                     end,
                     couch_httpd:last_chunk(Resp)
             end
     end;
-db_req(#httpd{path_parts=[_, <<"_bulk_get">>]}=Req, _Db) ->
+db_req(#httpd{path_parts = [_, <<"_bulk_get">>]} = Req, _Db) ->
     send_method_not_allowed(Req, "POST");
-
-db_req(#httpd{method='GET',path_parts=[_,OP]}=Req, Db) when ?IS_ALL_DOCS(OP) ->
+db_req(#httpd{method = 'GET', path_parts = [_, OP]} = Req, Db) when 
?IS_ALL_DOCS(OP) ->
     case chttpd:qs_json_value(Req, "keys", nil) of
-    Keys when is_list(Keys) ->
-        all_docs_view(Req, Db, Keys, OP);
-    nil ->
-        all_docs_view(Req, Db, undefined, OP);
-    _ ->
-        throw({bad_request, "`keys` parameter must be an array."})
+        Keys when is_list(Keys) ->
+            all_docs_view(Req, Db, Keys, OP);
+        nil ->
+            all_docs_view(Req, Db, undefined, OP);
+        _ ->
+            throw({bad_request, "`keys` parameter must be an array."})
     end;
-
-db_req(#httpd{method='POST',
-    path_parts=[_, OP, <<"queries">>]}=Req, Db) when ?IS_ALL_DOCS(OP) ->
+db_req(
+    #httpd{
+        method = 'POST',
+        path_parts = [_, OP, <<"queries">>]
+    } = Req,
+    Db
+) when ?IS_ALL_DOCS(OP) ->
     Props = chttpd:json_body_obj(Req),
     case couch_views_util:get_view_queries(Props) of
         undefined ->
-            throw({bad_request,
-                <<"POST body must include `queries` parameter.">>});
+            throw({bad_request, <<"POST body must include `queries` 
parameter.">>});
         Queries ->
             multi_all_docs_view(Req, Db, OP, Queries)
     end;
-
-db_req(#httpd{path_parts=[_, OP, <<"queries">>]}=Req,
-    _Db) when ?IS_ALL_DOCS(OP) ->
+db_req(
+    #httpd{path_parts = [_, OP, <<"queries">>]} = Req,
+    _Db
+) when ?IS_ALL_DOCS(OP) ->
     send_method_not_allowed(Req, "POST");
-
-db_req(#httpd{method='POST',path_parts=[_,OP]}=Req, Db) when ?IS_ALL_DOCS(OP) 
->
+db_req(#httpd{method = 'POST', path_parts = [_, OP]} = Req, Db) when 
?IS_ALL_DOCS(OP) ->
     chttpd:validate_ctype(Req, "application/json"),
     {Fields} = chttpd:json_body_obj(Req),
     case couch_util:get_value(<<"keys">>, Fields, nil) of
-    Keys when is_list(Keys) ->
-        all_docs_view(Req, Db, Keys, OP);
-    nil ->
-        all_docs_view(Req, Db, undefined, OP);
-    _ ->
-        throw({bad_request, "`keys` body member must be an array."})
+        Keys when is_list(Keys) ->
+            all_docs_view(Req, Db, Keys, OP);
+        nil ->
+            all_docs_view(Req, Db, undefined, OP);
+        _ ->
+            throw({bad_request, "`keys` body member must be an array."})
     end;
-
-db_req(#httpd{path_parts=[_,OP]}=Req, _Db) when ?IS_ALL_DOCS(OP) ->
+db_req(#httpd{path_parts = [_, OP]} = Req, _Db) when ?IS_ALL_DOCS(OP) ->
     send_method_not_allowed(Req, "GET,HEAD,POST");
-
-db_req(#httpd{method='POST',path_parts=[_,<<"_missing_revs">>]}=Req, Db) ->
+db_req(#httpd{method = 'POST', path_parts = [_, <<"_missing_revs">>]} = Req, 
Db) ->
     chttpd:validate_ctype(Req, "application/json"),
     {JsonDocIdRevs} = chttpd:json_body_obj(Req),
     case fabric2_db:get_missing_revs(Db, JsonDocIdRevs) of
         {error, Reason} ->
             chttpd:send_error(Req, Reason);
         {ok, Results} ->
-            Results2 = [{Id, couch_doc:revs_to_strs(Revs)} ||
-                    {Id, Revs, _} <- Results],
-            send_json(Req, {[
-                {missing_revs, {Results2}}
-            ]})
+            Results2 = [
+                {Id, couch_doc:revs_to_strs(Revs)}
+             || {Id, Revs, _} <- Results
+            ],
+            send_json(
+                Req,
+                {[
+                    {missing_revs, {Results2}}
+                ]}
+            )
     end;
-
-db_req(#httpd{path_parts=[_,<<"_missing_revs">>]}=Req, _Db) ->
+db_req(#httpd{path_parts = [_, <<"_missing_revs">>]} = Req, _Db) ->
     send_method_not_allowed(Req, "POST");
-
-db_req(#httpd{method='POST',path_parts=[_,<<"_revs_diff">>]}=Req, Db) ->
+db_req(#httpd{method = 'POST', path_parts = [_, <<"_revs_diff">>]} = Req, Db) 
->
     chttpd:validate_ctype(Req, "application/json"),
     {JsonDocIdRevs} = chttpd:json_body_obj(Req),
     case fabric2_db:get_missing_revs(Db, JsonDocIdRevs) of
         {error, Reason} ->
             chttpd:send_error(Req, Reason);
         {ok, Results} ->
             Results2 =
-            lists:map(fun({Id, MissingRevs, PossibleAncestors}) ->
-                {Id,
-                    {[{missing, couch_doc:revs_to_strs(MissingRevs)}] ++
-                        if PossibleAncestors == [] ->
-                            [];
-                        true ->
-                            [{possible_ancestors,
-                                couch_doc:revs_to_strs(PossibleAncestors)}]
-                        end}}
-            end, Results),
+                lists:map(
+                    fun({Id, MissingRevs, PossibleAncestors}) ->
+                        {Id, {
+                            [{missing, couch_doc:revs_to_strs(MissingRevs)}] ++
+                                if
+                                    PossibleAncestors == [] ->
+                                        [];
+                                    true ->
+                                        [
+                                            {possible_ancestors,

Review comment:
       0. I would prefer
   ```
   {
       possible_ancestors,
       couch_doc:revs_to_strs(PossibleAncestors)
   }
   ```




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to