Кастомные ошибки и их вызов в скрипте#
Blitz Identity Provider позволяет создавать кастомные ошибки и вызывать их в процедурах входа. Выполните следующие действия:
Руководствуясь инструкцией, добавьте кастомное сообщение об ошибке в файл
messages
в директории/usr/share/identityblitz/blitz-config/custom_messages
.err.bad_gateway=Недоступно
Вызовите данную ошибку при получении
HTTP 502
.if (result.status() == 502) { return HttpLoop.error("bad_gateway", Collections.<String, String>singletonMap("status", "" + result.status())); }
Пример скрипта, вызывающего кастомную ошибку HTTP 502 для метода Flash Call:
package flashcall; import com.identityblitz.core.loop.http.HttpLoop; import com.identityblitz.core.loop.http.HttpLoopRequest; import com.identityblitz.core.loop.http.HttpLoopResult; import com.identityblitz.core.loop.JsObj; import java.util.Collections; public class FlashCallFlow implements HttpLoop { public HttpLoopRequest run(final JsObj obj, final HttpLoopResult result) { if (result == null) { final String number = obj.asString("phone_number"); return HttpLoop.callBuilder("POST", "http://test.flashcall.ru/api/v1") .withHeader("Token", "1234567890") .withBody(JsObj.empty.addString("id", "test").addString("dst_number", number.substring(number.length() - 10))) .build(JsObj.empty); } else if (result.status() == 200) { final JsObj body = result.body(); return HttpLoop.Ok(JsObj.empty.addString("code", body.asString("SenderID"))); } else if (result.status() == 502) { return HttpLoop.error("bad_gateway", Collections.<String, String>singletonMap("status", "" + result.status())); } else { return HttpLoop.error("wrong_http_status", Collections.<String, String>singletonMap("status", "" + result.status())); } } }