2015-02-05 83 views
0

有沒有辦法修改整個{}塊內的http狀態碼?我定義編組器與scalaz.concurrent.Task工作,像這樣:我可以在完成塊中修改http響應狀態嗎?

implicit def taskMarshaller[A](implicit m: Marshaller[A]) = Marshaller[scalaz.concurrent.Task[A]]{(task, ctx) => task.runAsync(_.fold(l => throw l, r => m(r, ctx))) }

和我做

complete { Task {...} }

我希望能夠修改HTTP狀態碼repsonse根據任務的結果。

+1

爲什麼不能你把這種行爲到任務編組本身? – jrudolph 2015-02-05 20:47:22

回答

0

的關鍵是是使用ToResponseMarshallerscalaz.concurrent.Task[(StatusCode, A)]如下:

implicit def scalazTaskWithStatusMarshaller[A](implicit m: ToResponseMarshaller[(StatusCode, A)]): ToResponseMarshaller[scalaz.concurrent.Task[(StatusCode, A)]] = ToResponseMarshaller[scalaz.concurrent.Task[(StatusCode, A)]] { (task, ctx) => task.runAsync(_.fold(l => throw l, r => m(r, ctx))) }

相關問題