Business Logic layer (Redux-Saga)
Saga
本体
export
export
function
function*
*
postMessageSaga
postMessageSaga(
(api
api:
:
APIClient
APIClient,
,
action
action:
:
ReduxAction
ReduxAction<
<{
{
message
message:
:
//
1.
コメントボックスに入力されたメッセージを取り出す
//
1.
コメントボックスに入力されたメッセージを取り出す
const
const
{
{
message
message
}
}
=
=
action
action.
.payload
payload;
;
//
2.
本当に送信するかの確認のためにダイアログを表示する
//
2.
本当に送信するかの確認のためにダイアログを表示する
const
const
confirmParams
confirmParams:
:
ConfirmParams
ConfirmParams
=
=
{
{
message
message:
:
"
本当にメッセージを送信しますか?"
"
本当にメッセージを送信しますか?",
,
confirmText
confirmText:
:
"
はい"
"
はい",
,
dismissText
dismissText:
:
"
いいえ"
"
いいえ"
}
};
;
if
if
(
(!
!(
(yield
yield
call
call(
(nativeConfirm
nativeConfirm,
,
confirmParams
confirmParams)
))
))
)
{
{
return
return;
;
}
}
const
const
evidenceId
evidenceId
=
=
yield
yield
select
select(
(transactionEvidenceSelector
transactionEvidenceSelector)
);
;
try
try
{
{
//
3.
確認ボタンが押されたらメッセージをAPI
に送信する
//
3.
確認ボタンが押されたらメッセージをAPI
に送信する
yield
yield
call
call(
([
[api
api,
,
api
api.
.postTransactionmessage
postTransactionmessage]
],
,
{
{
evidenceId
evidenceId,
,
message
message
}
})
);
;
}
}
catch
catch(
(e
e)
)
{
{