summaryrefslogtreecommitdiffstats
path: root/_build/static/archives/extend/attachments/20131029/3df30c1d/attachment.html
blob: fed7bc121aea08e4aa378af6cfdeff2d4c0129d4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
<tt>
&lt;html&gt;&lt;head&gt;&lt;meta&nbsp;http-equiv=&quot;content-type&quot;&nbsp;content=&quot;text/html;&nbsp;charset=utf-8&quot;&gt;&lt;/head&gt;&lt;body&nbsp;dir=&quot;auto&quot;&gt;&lt;div&gt;Sorry&nbsp;for&nbsp;terse&nbsp;but&nbsp;I&nbsp;only&nbsp;have&nbsp;a&nbsp;phone.&nbsp;Why&nbsp;can't&nbsp;you&nbsp;return&nbsp;a&nbsp;404&nbsp;here?&nbsp;&nbsp;Using&nbsp;something&nbsp;like&nbsp;cowboy:reply(404,&nbsp;...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Ivan&lt;br&gt;&lt;br&gt;--&lt;br&gt;festina&nbsp;lente&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;On&nbsp;29&nbsp;Oct&nbsp;2013,&nbsp;at&nbsp;21:25,&nbsp;Daniel&nbsp;Goertzen&nbsp;&lt;&lt;a&nbsp;href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;&gt;&nbsp;wrote:&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;blockquote&nbsp;type=&quot;cite&quot;&gt;&lt;div&gt;&lt;div&nbsp;dir=&quot;ltr&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;My&nbsp;situation&nbsp;is&nbsp;that&nbsp;I&nbsp;have&nbsp;a&nbsp;rest&nbsp;handler&nbsp;that&nbsp;may&nbsp;fail&nbsp;due&nbsp;to&nbsp;invalid&nbsp;url&nbsp;segments.&nbsp;&nbsp;Example&nbsp;situation:&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;span&nbsp;style=&quot;font-family:courier&nbsp;new,monospace&quot;&gt;init(_Transport,&nbsp;_Req,&nbsp;_Opts)&nbsp;-&gt;&lt;br&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{upgrade,&nbsp;protocol,&nbsp;cowboy_rest}.&lt;br&gt;&lt;br&gt;content_types_provided(Req,&nbsp;State)&nbsp;-&gt;&lt;br&gt;&nbsp;&nbsp;&nbsp;&nbsp;{[{&lt;&lt;&quot;application/json&quot;&gt;&gt;,&nbsp;get_json}],&nbsp;Req,&nbsp;State}.&lt;br&gt;&lt;br&gt;get_json(Req0,&nbsp;State)&nbsp;-&gt;&lt;br&gt;&nbsp;&nbsp;&nbsp;&nbsp;{Params,&nbsp;Req1}&nbsp;=&nbsp;lists:mapfoldl(fun&nbsp;cowboy_req:binding/2,&nbsp;Req0,&nbsp;[param1,&nbsp;param2,&nbsp;param3,&nbsp;....]),&lt;br&gt;<br>
&lt;br&gt;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;catch&nbsp;other_module:request(Params)&nbsp;of&lt;br&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{'EXIT',&nbsp;{badarg,&nbsp;_}}&nbsp;-&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&nbsp;style=&quot;font-family:courier&nbsp;new,monospace&quot;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hmmm,&nbsp;Params&nbsp;were&nbsp;bad&nbsp;and&nbsp;I&nbsp;would&nbsp;like&nbsp;to&nbsp;return&nbsp;a&nbsp;404&nbsp;code&nbsp;now.&lt;br&gt;<br>
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&nbsp;style=&quot;font-family:courier&nbsp;new,monospace&quot;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;-&gt;&lt;br&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{jiffy:encode(Result),&nbsp;Req1,&nbsp;State}&lt;br&gt;&nbsp;&nbsp;&nbsp;&nbsp;end.&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So&nbsp;I&nbsp;would&nbsp;like&nbsp;to&nbsp;return&nbsp;a&nbsp;404&nbsp;code&nbsp;when&nbsp;my&nbsp;underlying&nbsp;request&nbsp;function&nbsp;fails,&nbsp;but&nbsp;it&nbsp;appears&nbsp;my&nbsp;choices&nbsp;are:&lt;br&gt;<br>
&lt;/div&gt;&lt;div&gt;&lt;br&gt;-&nbsp;return&nbsp;a&nbsp;200&nbsp;(ok)&nbsp;response&nbsp;with&nbsp;data.&lt;br&gt;&lt;/div&gt;&lt;div&gt;-&nbsp;crash&nbsp;and&nbsp;cause&nbsp;a&nbsp;500&nbsp;(Internal&nbsp;Server&nbsp;Error)&nbsp;response&nbsp;to&nbsp;be&nbsp;returned.&nbsp;&nbsp;Not&nbsp;exactly&nbsp;the&nbsp;sentiment&nbsp;I&nbsp;want.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Is&nbsp;there&nbsp;some&nbsp;other&nbsp;way&nbsp;to&nbsp;cause&nbsp;a&nbsp;404&nbsp;response?&lt;br&gt;<br>
&lt;br&gt;&lt;/div&gt;&lt;div&gt;I&nbsp;realize&nbsp;I&nbsp;could&nbsp;add&nbsp;path&nbsp;constraint&nbsp;functions,&nbsp;but&nbsp;I&nbsp;will&nbsp;be&nbsp;replicating&nbsp;logic&nbsp;from&nbsp;my&nbsp;underlying&nbsp;request&nbsp;function.&nbsp;&nbsp;Furthermore,&nbsp;the&nbsp;constraint&nbsp;functions&nbsp;consider&nbsp;parameters&nbsp;in&nbsp;isolation,&nbsp;so&nbsp;that&nbsp;won't&nbsp;work&nbsp;if&nbsp;the&nbsp;validity&nbsp;of&nbsp;parameters&nbsp;is&nbsp;coupled.&lt;br&gt;<br>
&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Thanks,&lt;br&gt;Dan.&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;<br>
&lt;/div&gt;&lt;/blockquote&gt;&lt;blockquote&nbsp;type=&quot;cite&quot;&gt;&lt;div&gt;&lt;span&gt;_______________________________________________&lt;/span&gt;&lt;br&gt;&lt;span&gt;Extend&nbsp;mailing&nbsp;list&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;a&nbsp;href=&quot;mailto:[email protected]&quot;&gt;[email protected]&lt;/a&gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;a&nbsp;href=&quot;http://lists.ninenines.eu:81/listinfo/extend&quot;&gt;http://lists.ninenines.eu:81/listinfo/extend&lt;/a&gt;&lt;/span&gt;&lt;br&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/body&gt;&lt;/html&gt;
</tt>