<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif; ">
<div>
<div style="font-family: Consolas; font-size: medium; "><br>
</div>
<div style="font-family: Consolas; font-size: medium; ">  I'm not looking too closely at the errors, so this may not be all you</div>
<div style="font-family: Consolas; font-size: medium; ">need, but, all of the REST callbacks can return a tuple of {halt,</div>
<div style="font-family: Consolas; font-size: medium; ">Response, State}, which is the correct idiom to use when you want to stop</div>
<div style="font-family: Consolas; font-size: medium; ">the REST handler from continuing (so in your code you'd return {halt,</div>
<div style="font-family: Consolas; font-size: medium; ">Resp3, State}).</div>
<div style="font-family: Consolas; font-size: medium; "><br>
</div>
<div style="font-family: Consolas; font-size: medium; ">  That said, you may want to look at the REST handler's flow logic; there</div>
<div style="font-family: Consolas; font-size: medium; ">is a path that will automatically return a 201 if you opt to use it (I</div>
<div style="font-family: Consolas; font-size: medium; ">don't recall it offhand, and it may be that migrating to use it is more</div>
<div style="font-family: Consolas; font-size: medium; ">effort than just halting with a 201).</div>
<div style="font-family: Consolas; font-size: medium; "><br>
</div>
<div style="font-family: Consolas; font-size: medium; ">  If the former doesn't address everything, and the latter isn't feasible</div>
<div style="font-family: Consolas; font-size: medium; ">(or you have questions about it), consider signing up for and asking on</div>
<div style="font-family: Consolas; font-size: medium; ">the 99s mailing list, <a href="mailto:extend@lists.ninenines.eu">extend@lists.ninenines.eu</a>.</div>
<div style="font-family: Consolas; font-size: medium; ">  </div>
<div style="font-family: Consolas; font-size: medium; "><br>
</div>
<div style="font-family: Consolas; font-size: medium; ">On 6/12/13 4:35 AM, "<a href="mailto:erlang-questions-request@erlang.org">erlang-questions-request@erlang.org</a>"</div>
<div style="font-family: Consolas; font-size: medium; "><<a href="mailto:erlang-questions-request@erlang.org">erlang-questions-request@erlang.org</a>> wrote:</div>
<div style="font-family: Consolas; font-size: medium; "><br>
</div>
<blockquote id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style="font-family: Consolas; font-size: medium; border-left-color: rgb(181, 196, 223); border-left-width: 5px; border-left-style: solid; padding: 0px 0px 0px 5px; margin: 0px 0px 0px 5px; ">
<div>How can I set status code in my REST POST handler.</div>
<div><br>
</div>
<div>Now I'm doing this</div>
<div><br>
</div>
<div>make_post(Req, State) -></div>
<div>  lager:info("post"),</div>
<div>  Resp = cowboy_req:set_resp_body(<<"HELLO POST\n">>, Req),</div>
<div>  {ok, Resp3} = cowboy_req:reply(201, Resp),</div>
<div>  {true, Resp3, State}.</div>
<div><br>
</div>
<div>But I receive such errors:</div>
<div><br>
</div>
<div>1:43:10.510 [info] [nonode@nohost#pbshare_logic_registration#<0.205.0>]</div>
<div>[handle_info#35] :Exit Logic from <0.204.0> Reason:</div>
<div>{function_clause,[{cowboy_req,reply,[204,[],<<>>,{http_req,#Port<0.6355>,r</div>
<div>anch_tcp,keepalive,<0.204.0>,<<"POST">>,'HTTP/1.1',{{127,0,0,1},50024},<<"</div>
<div>localhost">>,undefined,8080,<<"/rest/registration/make">>,[<<"make">>],<<></div>
<blockquote id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style="border-left-color: rgb(181, 196, 223); border-left-width: 5px; border-left-style: solid; padding: 0px 0px 0px 5px; margin: 0px 0px 0px 5px; ">
<div>,undefined,[],[{<<"user-agent">>,<<"curl/7.29.0">>},{<<"host">>,<<"localh</div>
<div>ost:8080">>},{<<"accept">>,<<"</div>
</blockquote>
<div>*/*</div>
<div>">>},{<<"content-type">>,<<"application/json">>},{<<"content-length">>,<<"</div>
<div>14">>}],[{<<"content-length">>,14},{<<"expect">>,undefined},{<<"content-le</div>
<div>ngth">>,14},{<<"content-type">>,{<<"application">>,<<"json">>,[]}},{<<"if-</div>
<div>modified-since">>,undefined},{<<"if-none-match">>,undefined},{<<"if-unmodi</div>
<div>fied-since">>,undefined},{<<"if-match">>,undefined},{<<"accept">>,[{{<<"</div>
<div>*">>,<<"*">>,[]},1000,[]}]}],undefined,[{charset,undefined},{media_type,{<</div>
<div><"application">>,<<"json">>,[]}}],done,undefined,<<>>,false,done,[],<<>>,u</div>
<div>ndefined}],[{file,"src/cowboy_req.erl"},{line,948}]},{cowboy_rest,respond,</div>
<div>3,[{file,"src/cowboy_rest.erl"},{line,1085}]},{cowboy_rest,upgrade,4,[{fil</div>
<div>e,"src/cowboy_rest.erl"},{line,75}]},{cowboy_protocol,execute,4,[{file,"sr</div>
<div>c/cowboy_protocol.erl"},{line,523}]}]}</div>
<div>21:43:10.510 [error] [Undefined#Undefined#emulator] [Undefined#Undefined]</div>
<div>:Error in process <0.204.0> with exit value:</div>
<div>{function_clause,[{cowboy_req,reply,[204,[],<<0</div>
<div>bytes>>,{http_req,#Port<0.6355>,ranch_tcp,keepalive,<0.204.0>,<<4</div>
<div>bytes>>,'HTTP/1.1',{{127,0,0,1},50024},<<9 bytes>>,undefined,8080,<<23</div>
<div>bytes>>,[<<4 bytes>>],<<0 bytes>>,undefined,[],[{<<10 bytes>>,<<11</div>
<div>bytes>>},{<<4 bytes>>,<<14 bytes>>},{<<6 bytes>>,<<3 bytes>>},{<<12</div>
<div>bytes>>,<<16 bytes>>},{<<14 bytes>>,<<2 bytes>>}],[{<<14 bytes>>,14},{<<6</div>
<div>bytes>>,undefined},{<<14 bytes>>,14},{<<12 bytes>>,{<<11 bytes>>,<<4</div>
<div>bytes>>,[]}},{<<17 bytes>>,undefined},{<<13 bytes>>,undefined},{<<19</div>
<div>bytes>>,undefined},{<<8 bytes>>,undefined...</div>
</blockquote>
<div style="font-family: Consolas; font-size: medium; "><br>
</div>
</div>
</body>
</html>